自宅サーバ環境(2022年5月)

投稿者: | 2022年5月12日

定期的に自宅の環境について整理しておかないと忘れてしまうので忘備録も兼ねてまとめておきます。

このブログを公開しているサーバも含めて基本的に自宅サーバで構築しています。
過去の記事でも取り上げていますが我が家にはOpenStackがあります。

しばらく前まで、OpenStackは検証環境だったのですが、今は本番環境もOpenStack上で運用することにしています。

ネットワークの構成

インターネット回線について

外向きのインターネットは我が家は2本引いています。
DocomoのHome 5GとVDSLの光インターネットです。

昨今では在宅の仕事がほぼ100%になったのでバックアップ回線があった方が良い、というのとHome 5G回線が高速であるという話を耳にしたので試しに導入しています。
なお、確かにDL速度は高速(VDSL比較)です。

ネットワーク機器について

まず、家のネットワーク機器について整理します。

種類機器名詳細
ルーターYAMAHA RTX1220IPoEのセッション、PPPoEのセッションを同時に張っています。サーバなどの通信はPPPoEの方から出ていくようになっています。
ルーターDocomo Home 5G上記で説明したとおりの予備回線。若干上りが遅いのでVDSL側と適宜使い分けられるようにしています
ルーター(Wifi アクセスポイント用)Buffaro WXR-5950AX12VDSLを利用して外向きインターネットを使いたい場合に利用します
Wifi アクセスポイントTP-Link RE605XHome 5Gを利用して外向きインターネットを使いたい場合に利用します
有線のスイッチなど適当有線ネットワークは基本的にVDSLを使って通信するように設定しています
ネットワーク機器一覧

構築したネットワークは以下のようになっています。VLANが2つあって、それぞれのデフォルトゲートウェイがVLANごとに違うように設定してあります。これに加えてサーバマシンのゲートウェイはPPPoEの方に向かうように設定しています。

宅内ネットワークの論理構成

また、家の中にWifiのアクセスポイントを2つ設置しておき、外向きの回線をアクセスポイントを変えることで選べるようにしています。ゲームなんかをダウンロードするときはHome 5Gを利用しているアクセスポイントを利用して、いざゲームをやるときは有線につないでVDSL接続のping値の低い回線を利用するといったことをやっています。

OpenStackの構成

OpenStackのマシン構成

2台の小型の自作マシン(DeskMiniを使ったもの)でOpenStackを構築しています。

マシン名パーツ詳細
Control NodeCPUAMD Ryzen 7 5700G
メモリ64GB
SSDWD Red SN700 2000GB
OSUbuntu 20.04
Compute NodeCPUAMD Ryzen 5 2400G
メモリ32GB
HDDWDC WDS200T2B0A
OSUbuntu 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が出てしまいました。アップデート祭りをそのうちやらないといけませんね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です