Proxmoxや単体のKVMではシステムを支えきれなくなった時
想像してみてください。「混合」インフラを管理している状況を。古いVMware ESXiクラスタがいくつかあり、コマンドラインで動くKVMサーバー群、そしてあちこちに点在するProxmoxノード。上司から、開発チームが自由に仮想マシンを作成できるセルフサービスポータル(Self-service Portal)を、部門別のリソース割り当て(マルチテナント)機能付きで、予算ゼロで構築してほしいと頼まれたら、単体の管理ツールでは限界を感じるはずです。
私のホームラボ環境では、12台のVMを動かすのにProxmoxを使っていました。小規模なクラスタには非常に優れています。しかし、本格的なIaaS(Infrastructure as a Service)モデルへと進むには、物理インフラ層とユーザーサービスを完全に分離する必要があります。ここで、プロフェッショナルなオーケストレーター(Orchestrator)としてのOpenNebulaの真価が発揮されます。
企業にとっての選択肢:OpenStack、Proxmox、それともOpenNebula?
インストールコマンドを打ち込む前に、実際の経験に基づいた簡単な比較表を作成しました。
- OpenStack: 真の「巨人」です。OpenStackの運用には、少なくとも3〜5名の専任エンジニアチームが必要です。ITチームが少人数の場合、これは恐ろしい運用負荷になります。
- Proxmox VE: UIが親しみやすく、使いやすいです。しかし、Proxmoxはマルチプラットフォーム管理能力に欠けています。Proxmoxの画面上でVMwareの仮想マシンを管理することはできません。
- OpenNebula: 完璧な妥協点です。OpenStackよりも軽量でありながら、オーケストレーション能力においてはProxmoxよりも強力です。KVM、VMware、さらにはコンテナ(LXC、Firecracker)を同じダッシュボード上で同時に管理できます。
なぜOpenNebula Community Editionを試すべきなのか?
メリット:
- デプロイが非常に速く、基本的なクラスタなら30〜40分で完了します。
- Sunstone UIはミニマルで、専門家でなくても3クリックで仮想マシンを起動できます。
- 強力なハイブリッドクラウド対応。急な拡張が必要な際、ローカルサーバーのワークロードをAWSやAzureへ簡単に移行できます。
デメリット:
- Community版には自動アップデートスクリプト
one-deployがありません。アップデートは手動で管理する必要があります。 - 日本国内(およびベトナム)のコミュニティはまだ小規模なため、主に英語のドキュメントを参照することになります。
Ubuntu 22.04 LTSへのOpenNebula導入手順
現在、最も理想的なOSはUbuntu 22.04です。管理ノード(Frontend)には最低2 vCPUと4GB RAMが必要です。仮想マシンを実行するノード(Compute Node)については、RAMとSSD/NVMeの速度を優先してください。
1. 環境設定
まず、各ノードが互いを認識できるように、IPアドレスを /etc/hosts ファイルに記述します。初期設定時のポート関連のトラブルを避けるため、一時的にファイアウォールを無効にしておくことをお勧めします。
sudo ufw disable
sudo apt update && sudo apt upgrade -y
2. リポジトリの設定
OpenNebulaでは、Community版のトークンを取得するために公式サイトでのアカウント登録が必要です。以下のコマンドの <TOKEN> を、自身のコードに置き換えてください。
wget -q -O- https://downloads.opennebula.io/repo/repo.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/opennebula.gpg
echo "deb https://<TOKEN>@downloads.opennebula.io/repo/6.6/Ubuntu/22.04 stable opennebula" | sudo tee /etc/apt/sources.list.d/opennebula.list
sudo apt update
3. Frontend(システムの頭脳)のインストール
FrontendはデータベースとWebインターフェースを管理します。デフォルトではSQLiteを使用しますが、実務での運用ならパフォーマンス向上のためにMariaDBへの移行を検討すべきです。
sudo apt install -y opennebula opennebula-sunstone opennebula-gate opennebula-flow
sudo systemctl start opennebula opennebula-sunstone
sudo systemctl enable opennebula opennebula-sunstone
4. 管理画面へのアクセス
管理者のパスワードはシステムによってランダムに生成されます。以下のコマンドでログイン情報を取得してください。
cat /var/lib/one/.one/one_auth
次に、ブラウザを開き、アドレス http://<IP_FRONTEND>:9869 にアクセスします。
KVMノードをシステムに接続する
サーバーで仮想マシンを実行できるように、ノード用パッケージをインストールします。実行ノードとなるサーバーで以下のコマンドを実行してください。
sudo apt install -y opennebula-node-kvm
sudo systemctl restart libvirtd
パスワードなしSSH(Passwordless SSH)の設定
これが最も重要な鍵となります。このステップを間違えると、Frontendからノードを制御できません。Frontendから各ノードへ、 oneadmin ユーザーのSSHキーをコピーする必要があります。
sudo su - oneadmin
ssh-keyscan <NODE_IP> >> ~/.ssh/known_hosts
ssh-copy-id <NODE_IP>
Frontendからノードへ直接SSHを試してください。パスワードを聞かれなければ、最大の難関を突破したことになります。
VMware vCenterの統合:エージェントのインストールは不要
OpenNebulaの大きな利点は、vCenter APIと直接接続できる点です。既存のESXiホスト側に手を加える必要はありません。
- Sunstone画面で、Infrastructure -> Hosts を選択します。
- + ボタンを押し、タイプとして vCenter を選択します。
- vCenterのAPI情報を入力します。
- システムが自動的にクラスタとデータストアをリストアップするので、インポートするものを選びます。
トラブルシューティング:ステータスが「ERR」になった場合
ノードが赤色で表示されても、焦る必要はありません。OpenNebulaのログは非常に詳細です。 /var/log/one/oned.log ファイルを確認してください。最も多いエラーは、 oneadmin ユーザーに仮想化制御の権限がないケースです。以下のコマンドで解決できます。
sudo usermod -aG libvirt,kvm oneadmin
結び
OpenNebulaは、OpenStackの複雑さに足を取られたくないが、プライベートクラウドを構築したいという方にとって現実的な選択肢です。古いVMwareリソースを管理しつつ、KVMのパワーを最大限に活用できます。
インストールが終わったら、次は 仮想ネットワーク(VNET) について調べてみてください。最初からIPレンジやVLANの計画を立てておくことで、インフラのプロフェッショナル度とセキュリティが格段に向上します。

