我が家のOpenStack server

Table of Contents

⚠️ 本記事の執筆には生成AIを大いに利用しています。

こんにちは。みなさん、自宅サーバしてますか?してますよね?

というわけで、今回は私が自宅サーバで運用しているOpenStack環境を、ハードウェア/ソフトウェア両面の構成、さらにちょっとしたこだわりポイントまで、まるっと紹介したいと思います。

(ちなみに、このブログも自宅のOpenStack環境で動いています!)

1. 我が家のOpenStack、ざっくり概要

  • OpenStack バージョン: 2024.02 “Dalmatian”
  • OS: Ubuntu 24.04 “Noble”
  • 構成:
    • Management Node × 1(iPXE / DHCP / DNSサーバ)
    • Controller Node × 1
    • Compute Node × 2
    • Block Storage Node × 1
  • 用途:
    • インテリア(!?)
    • 仮想化の勉強
    • OSSを動かして遊ぶ
    • ISUCONの練習とか

2. ハードウェア構成

ここからはハードウェアの構成を紹介していきます。 ちなみに見た目はこんな感じです。

自宅サーバ機器たち

ルータ

  • YAMAHA RTX810
    • 家庭内LANとの境界に設置しているVPNルータ
    • L2TP/IPSecで外出先でもVPN接続可能!(後述)
  • Buffalo BHR-4GRV2
    • VMセグメントのゲートウェイ
    • 有線ルータ
    • DMZ機能を利用して管理セグメントからVMへの通信を通せて便利
  • NEC WG2600HS2
    • 管理セグメントのゲートウェイ
    • Wi-Fiを喋れるので管理面への接続が楽ちん
    • DMZ機能なしのため、VPNセグメントからの通信はポートフォワーディングで対応

L2スイッチ

  • ELECOM EHC-G08MN2-HJB

    • 1Gbps × 8ポート
    • VMセグメント用
  • FOXNEO

    • 2.5Gbps × 8ポート + 10G SFP+ ×1(SPFは未使用)
    • 管理セグメント用
    • VMのルートボリュームとかに使うblockstorageの通信をこっちに流すので、こっちに2.5Gbpsスイッチを使っている

サーバ構成

  • Raspberry Pi 4
    • Management Node(iPXE/DHCP/DNS)
    • 4 cores 4 threads / 4GB RAM
  • Raspberry Pi 5
    • OpenStack Controller Node
    • 4 cores 4 threads / 8GB RAM
  • FUJITSU LIFEBOOK
    • Compute Node 1
    • 4 cores 8 threads / 8GB RAM
    • 大学生のとき使っていたノートPC
  • 自作ゲーミングPC
    • Compute Node 2
    • Intel Core i5 13400F 10 cores 16 threads / 32GB RAM
    • パルワールドのために組んだやつをWindows/Ubuntuデュアルブートしている
    • 2.5GB NIC × 1 (onboard) + 10GB NIC × 2 (PCIe)
  • GMKtec miniPC
    • Block Storage Node
    • AMD Ryzen 7 5825U 8 cores 16 threads / 16GB RAM
    • 2.5GB NIC × 2

UPS

  • オムロン UPS BW55T
    • お守り

3. OpenStack構成

  • OpenStack controller node:
    • API servers
      • keystone / nova / neutron / placement / glance / cinder
    • Dashboard
      • horizon
    • DB
      • mysql
    • Messaging Queue
      • rabbitmq
  • OpenStack compute node × 2:
    • nova-compute
    • neutron-openvswitch-agent (ovnにしたい、、、!)
  • OpenStack blockstorage node:
    • cinder-volume (lvm driver)

ブラウザからhorizonにアクセスしてVMの作成等を行えるようになっています。

OpenStackのダッシュボード

また、OpenStackの構築は*自作のAnsible Playbookで行っています! それについては こちら の記事で紹介しているのでぜひご覧ください。

4. 推しポイント紹介!

その1 ネットワークブート

Raspberry Pi 4でiPXEブートサーバを構築を構築しています。

  • DHCPサーバ:iPXE用の一時IP配布
  • TFTPサーバ:iPXEブート用ファイル配布
  • HTTPサーバ:Ubuntuイメージ&cloud-init config配布

新規サーバをLANに繋いで電源を入れるだけで、Ubuntu Nobleが自動インストールされます!すごい!🎉

その2 自宅VPNでどこでも接続!

L2TP/IPSecでVPN接続して、自宅のOpenStack環境に外出先からでもアクセスできます!

VPNの向け先はグローバルIPを直接指してるので、ISPに変えられたら繋がらないです、、、 DDNSとか使いたいなぁとは思っている。

5. 今後やりたいこと

  • RPI5に NVMe SSD を取り付けたい
    • せっかくRPI5を買ったので
    • SDカードをルートボリュームにしたRPI5をコントローラノードにしているせいか、APIサーバの応答が結構遅い
  • Block Storage Nodeで Ceph構築
    • Glance storeとしても使える?
  • モニタリング環境(メトリクスや死活監視)
    • 自宅サーバ落ちたら上に載ってるサービスをAWS環境に切り替えるとかもしたい
  • KubernetesベースでOpenStackを再構築
  • 10G通信 も試してみたい
    • NICはある

おわりに

この環境は完全に趣味の産物ですが、自宅でのインフラ遊びとしては最高に楽しいです。 もし、同じように「自宅でOpenStackやってみたい!」という方がいれば、参考にしてもらえると嬉しいです!