ここ2年ぐらいでかなり自宅インフラを充実させてきましたが、色々と良かったこと、微妙だったことなどが見えてきました。
今回はその辺りを思いつくままに挙げてみようかなと思います。
インフラ周りはそこまで強いわけではなく、自己流なのでお手柔らかにお願いします
2024/3/9追記
第二弾も公開しました!
もしよろしければこちらもどうぞ!
https://qiita.com/wancom/items/7265b9e621a72b73e0be
1. 良かったこと:Proxmoxで仮想基盤を構築したこと
最近はDockerでサーバーを建てることも一般的になってきているのでVMが必要になるという機会は減ってきていると思います。
一方で、何も考えずに色々入れて試してみる、ネットワーク周りで遊んでみる、という場合は個人的にはVMの方が楽だと感じています。
仮想基盤をきちんと構築すると、気軽にVMを立てて、捨てて、ができるので非常に便利です。
2. 良かったこと:早々に仮想基盤を3台のノード構成にしたこと
Proxmoxでは複数ノードによるクラスター構成を組むことができます。そして、クラスター構成にすることで仮想マシンを起動したまま別のノードに移動させる、ライブマイグレーションを使用することができます。
ホストのアップデートや掃除などでノードを時々シャットダウンすることがありますが、仮想マシンに影響を与えずにノードを落とせるので非常に便利です。
また、3台という構成も重要で、メンテナンスや障害で一台ダウンしていても安定した仮想基盤を維持することができます。
3. 微妙だったこと:仮想マシンを立てすぎた
仮想基盤便利!と言って40台も建てるとメンテナンスや監視の追加などが大変になります。
ここまできたら、逆に大量のVMに対するソリューションを探してみてもいいかもしれませんね。
4. 良かったこと:NASを導入した
先ほど触れたライブマイグレーションはVMのディスクイメージがノード上にあると、そのデータを転送させる必要があります。これに時間がかかるため、NASにディスクイメージを保管し、ノードには保持させないようにしました。
これによりライブマイグレーションが気軽に行えるようになったほか、何らかの障害でノードがダウンしても自動で他のノードで立ち上げてくれるHA(高可用性)を使うことができるようになりました。
5. 微妙だったこと:NASでHAを行った
SynologyのNASでは、同じ構成のNASが2台存在すると、そのNAS同士でHA構成を組むことができます。これにより、Disk障害だけでなく、筐体自体に異常が発生してもサービスを継続することができます。
ロマンを求めてNASもHA構成にしてみましたが、
- NASの切り替えに1分以上のサービス断が発生することがあり、その間VMがフリーズする
- NAS間でデータを同期する必要があり、LAGが組めなくなるためその分IOのスループットが下がってしまう
というところで問題がありました。ちゃんとした構成にするのであれば、Cephなどの別の仕組みをきちんと導入した方が良さそうです。
とは言いつつ、1~2分程度不安定になるぐらいでその後も継続してVMは動き続けるので、HAはいざという時には有効的だと思います。
6. 微妙だったこと:8ポートのSwitchを買い足した
スイッチ1台では足りなくなったので、2台へ、また足りなくなったので3台へと8ポートのスイッチを増設しました。ただ、8ポートのスイッチを増設すると、スイッチ間の接続で2ポート使えなくなるため、効率が悪くなります。
7. 良かったこと:24ポートのスイッチに移行した
結局ポートが足りなくなって24ポートのスイッチに切り替えることで解決しました。ポートの効率が良くなるほか、電源周りも1本で済むのでシンプルになります。最初からポート数の多いスイッチを買うべきでした。
(ちなみに24ポートのスイッチもポートが足りなくなりそうになっています…)
8. 良かったこと:2.5Gbpsのスイッチを買った
ノードにしているNUCが2.5Gbpsに対応していたので、それを活かせるように2.5GbpsのシンプルなL2スイッチを購入しました。
基本的にノード間の通信なのでスイッチに高度な機能も必要なく、また、VMのライブマイグレーションが早くなり大満足です。
9. 良かったこと:ノードにUSBのNICを足す
クラスター構成時にネットワークが切れると色々と問題が発生します。そのためProxmoxでは複数のネットワークを使ってクラスター間の通信が行えるようになっています。これにより、何らかの理由で片方のネットワークが落ちてももう片方のネットワークでクラスター構成が維持できるようになります。
また、一方は高速な通信が行えるネットワークでノード間の通信を行い、もう一方で外との通信を行う、と言ったことが可能なため、用途に合わせて柔軟な通信が行えるようになりました。
10. 微妙だったこと:ネットワーク周りの冗長化が行えていなかった
スイッチが落ちるとほとんどの機器のネットワークがダウンします。1台のスイッチに依存せず、複数のスイッチで通信を分散される構成を考えて設計するべきでした。
とはいえ、なかなかL2のレベルでの冗長化はコストの面から難しいというのが現状です。
最近のProxmoxではL3のレベルで冗長構成を作ることができそうなことも見えていますので、そう言った方法で解決できないか、今後検討していきたいと思っています。
他にも…
色々列挙していったところ、思ったよりもたくさん出てきたので記事を分割します。
好評であれば(好評でなくても勝手に)第二弾を書こうと思いますのでお楽しみに?
2024/3/9追記
第二弾も公開しました!
もしよろしければこちらもどうぞ!
https://qiita.com/wancom/items/7265b9e621a72b73e0be
あとがき
正月のキャンペーンで何か適当に書こうかなということでつらつらと書き出してみました。
本当にただ書き出したに近いのでお見苦しいところもあったかもしれません。
ただ、中には変なことをしているものもあるので誰かが何かの参考になったらいいなと思っています。
誤字、間違い等ございましたらご指摘いただけますと幸いです。