定期的に自宅の環境について整理しておかないと忘れてしまうので忘備録も兼ねてまとめておきます。
このブログを公開しているサーバも含めて基本的に自宅サーバで構築しています。
過去の記事でも取り上げていますが我が家にはOpenStackがあります。
しばらく前まで、OpenStackは検証環境だったのですが、今は本番環境もOpenStack上で運用することにしています。
ネットワークの構成
インターネット回線について
外向きのインターネットは我が家は2本引いています。
DocomoのHome 5GとVDSLの光インターネットです。
昨今では在宅の仕事がほぼ100%になったのでバックアップ回線があった方が良い、というのとHome 5G回線が高速であるという話を耳にしたので試しに導入しています。
なお、確かにDL速度は高速(VDSL比較)です。
ネットワーク機器について
まず、家のネットワーク機器について整理します。
種類 | 機器名 | 詳細 |
ルーター | YAMAHA RTX1220 | IPoEのセッション、PPPoEのセッションを同時に張っています。サーバなどの通信はPPPoEの方から出ていくようになっています。 |
ルーター | Docomo Home 5G | 上記で説明したとおりの予備回線。若干上りが遅いのでVDSL側と適宜使い分けられるようにしています |
ルーター(Wifi アクセスポイント用) | Buffaro WXR-5950AX12 | VDSLを利用して外向きインターネットを使いたい場合に利用します |
Wifi アクセスポイント | TP-Link RE605X | Home 5Gを利用して外向きインターネットを使いたい場合に利用します |
有線のスイッチなど | 適当 | 有線ネットワークは基本的にVDSLを使って通信するように設定しています |
構築したネットワークは以下のようになっています。VLANが2つあって、それぞれのデフォルトゲートウェイがVLANごとに違うように設定してあります。これに加えてサーバマシンのゲートウェイはPPPoEの方に向かうように設定しています。
また、家の中にWifiのアクセスポイントを2つ設置しておき、外向きの回線をアクセスポイントを変えることで選べるようにしています。ゲームなんかをダウンロードするときはHome 5Gを利用しているアクセスポイントを利用して、いざゲームをやるときは有線につないでVDSL接続のping値の低い回線を利用するといったことをやっています。
OpenStackの構成
OpenStackのマシン構成
2台の小型の自作マシン(DeskMiniを使ったもの)でOpenStackを構築しています。
マシン名 | パーツ | 詳細 |
Control Node | CPU | AMD Ryzen 7 5700G |
メモリ | 64GB | |
SSD | WD Red SN700 2000GB | |
OS | Ubuntu 20.04 | |
Compute Node | CPU | AMD Ryzen 5 2400G |
メモリ | 32GB | |
HDD | WDC WDS200T2B0A | |
OS | Ubuntu 20.04 |
OpenStackのセットアップについて
採用しているOSについて
以前のセットアップでは、CentOSを利用してPackstackを利用したセットアップを採用していましたが、以下のような理由があり採用するのを辞めました。
- CentOSのバージョンアップが面倒くさい
- packstackだとOpenstackのバージョンアップができない
- トラブルシュートしていると細かいOpenstackのパッケージに詳しくなったので自動インストールにメリットを感じなくなった
今はOSはUbuntuで構築して、公式の手順(https://docs.openstack.org/ja/install-guide/index.htm)に大体従って実施しています。今動かしているOpenStackのバージョンはXenaです。
Ubuntuだと、
- OSのバージョンアップは手軽にできる(古いLTSから新しいLTSは本家が面倒みてくれいるので安心感がある)
- OpenStackのパッケージもこなれてきているので頑張ればメジャーバージョンアップできる場合もある
というような感じになりました。並べると大きな差は無いように見えますが、メンテナンス的にはOSのバージョンを上げれるようになったのは大分嬉しいです。OSのバージョンを上げた後、どうにかしてOpenStackをバージョンアップさえできればなんとかなるというのはうれしいです。
Openstackのコンポーネントについて
公式の手順ではネットワークの構築にlinux-bridgeを利用しています。自分は open-vswitch を利用しています。これは1つのNICで複数のネットワークを持ったりする場合に linux-bridge だと上手く動いてくれなかったためです。
また、最近は swift は利用しないのでインストールしていません。もし、S3 的な何かが欲しくなったらminio でもどこかに立てる方が最近は手軽だと思います。
複数ノードの構成になったので、仮想マシンのマイグレーションを実施する場合があると思い、cinder に volume を作ることを基本の構成としています。これは試しにマイグレーションを実行してみたところ失敗して仮想マシンを失ったことがあるためです。cinder に volume を作っておけば仮想マシンは壊れたとしても、volume は消えません、その volume から仮想マシンを作れば環境の復元ができます。( AWS の EBS と一緒ですね)
仮想マシンの構成
現状だと以下の3台を常時起動しています。
- load balancer
- Apache(このブログなどをホスティングしてます)
- GitLab(個人用のソースコード管理に利用しています)
他にも、minecraftのサーバ、kuberenetesの検証を行うためのインスタンスを適宜起動したりしなかったりしています。
まとめ
本当に忘備録だけの内容ですね。定期的にこういうのはやらないとやるのに気力が必要になってしまいますね。そして、Ubuntuは22.04が出たし、OpenStackもYogaが出てしまいました。アップデート祭りをそのうちやらないといけませんね。