クラウド構築・
OpenNebula 5.4のごく簡単な紹介
OpenNebula 5.
VM Groups
「仮想マシンと仮想マシン」
既存の類似機能としてClusterがありますが、

High Availability
フロントエンドの冗長構成がOpenNebulaネイティブな機能として実装されました。過去のバージョンではCorosyncとPacemakerを利用して冗長構成が組めましたが、
複数のOpenNebulaフロントエンドをゾーンとして束ねるData Center Federation機能も、
OpenNebula 5.4のサポートする環境
Release Notes 5.
OpenNebula 5.4でクラウド環境を構築してみよう
今回は以下の構成で環境を構築します。
- OpenNebulaデーモンの稼働する
「フロントエンド」、 仮想マシンの稼働する 「ホスト」 の合計2台のマシンからなるインフラ構成とします。 - フロントエンド、
ホストともにUbuntu Server 16. 04. 2 LTSを使用します。 - OpenNebula公式リポジトリの5.
4パッケージを使用します。Ubuntu 16. 04 LTSのリポジトリにはOpenNebula 4. 12パッケージがありますが、 こちらは使用しません。 - データベースはデフォルトのSQLiteを使用します。
- データストアの転送ドライバはsshを使用します。
OpenNebulaリポジトリ追加
フロントエンドとホストの両方にOpenNebulaの公式リポジトリを追加します。まずは鍵を登録します。
$ wget -q -O- https://downloads.opennebula.org/repo/repo.key | sudo apt-key add - $ apt-key list (略) pub 2048R/85E16EBF 2013-06-13 uid OpenNebula Repository <[email protected]> sub 2048R/01BC0188 2013-06-13
続いてUbuntu Server 16.
$ sudo bash -c 'echo "deb https://downloads.opennebula.org/repo/5.4/Ubuntu/16.04 stable opennebula" > /etc/apt/sources.list.d/opennebula.list' $ cat /etc/apt/sources.list.d/opennebula.list deb https://downloads.opennebula.org/repo/5.4/Ubuntu/16.04 stable opennebula
apt updateした後、
$ sudo apt update $ apt policy opennebula opennebula: Installed: (none) Candidate: 5.4.0-1 Version table: 5.4.0-1 500 500 https://downloads.opennebula.org/repo/5.4/Ubuntu/16.04 stable/opennebula amd64 Packages 4.12.3+dfsg-3build1 500 500 http://ftp.jaist.ac.jp/pub/Linux/ubuntu xenial/universe amd64 Packages
Candidate: 5.
フロントエンドのセットアップ
OpenNebulaデーモンの稼働するフロントエンドは、
フロントエンド向けパッケージのインストール
apt installで以下のパッケージをインストールします。今回の記事では触れないOneGateやOneFlowといった関連パッケージも一緒にインストールしています。
$ sudo apt install opennebula opennebula-sunstone opennebula-gate opennebula-flow
続いてinstall_
$ sudo /usr/share/one/install_gems (略) About to install these dependencies: * gcc * rake * libxml2-dev * libxslt1-dev * patch * g++ * libsqlite3-dev * libcurl4-openssl-dev * libmysqlclient-dev * ruby-dev * make Press enter to continue... (Enterキーを押下) (略)
OpenNebulaサービスの開始
フロントエンドでOpenNebulaサービスを開始できる状態となりました。さっそくsystemctlコマンドで起動してみましょう。
$ sudo systemctl start opennebula.service $ sudo systemctl start opennebula-sunstone.service
確認のためUNIXアカウントのoneadmin権限でoneuserコマンドを実行してみます。以下のような出力があれば、
$ sudo -u oneadmin oneuser show USER 0 INFORMATION ID : 0 NAME : oneadmin GROUP : oneadmin (略)
Webブラウザでフロントエンドマシンのポート9869番にアクセスし、
http://(フロントエンドのアドレス):9869/

この時点でSunstoneにはOpenNebulaの管理者アカウントoneadminでログインできます。パスワードはフロントエンドの/var/
$ cat /var/lib/one/.one/one_auth oneadmin:(パスワード文字列)
問題なければsystemdから自動起動するよう設定しておきましょう。
$ sudo systemctl enable opennebula.service $ sudo systemctl enable opennebula-sunstone.service
ホストのセットアップ
仮想マシンインスタンスが稼働するホストをセットアップします
Linux環境ではハイパーバイザはKVMを使用します。バージョン4系列まではXen用のドライバスクリプトが用意されていましたが、
ホスト向けパッケージのインストール
ホストはopennebula-nodeパッケージをインストールします。これによりqemu関連やlibvirt関連等の依存パッケージのインストール、
apt policyでインストール候補が5.
$ apt policy opennebula-node opennebula-node: Installed: (none) Candidate: 5.4.0-1 Version table: 5.4.0-1 500 500 https://downloads.opennebula.org/repo/5.4/Ubuntu/16.04 stable/opennebula amd64 Packages 500 https://downloads.opennebula.org/repo/5.4/Ubuntu/16.04 stable/opennebula i386 Packages 4.12.3+dfsg-3build1 500 500 http://ftp.jaist.ac.jp/pub/Linux/ubuntu xenial/universe amd64 Packages 500 http://ftp.jaist.ac.jp/pub/Linux/ubuntu xenial/universe i386 Packages
$ sudo apt install opennebula-node
opennebula-nodeパッケージがインストールされるタイミングでlibvirt関連の設定ファイルがOpenNebula用に書き換わるため、
$ sudo systemctl restart libvirt-bin.service
ブリッジインタフェース設定
仮想マシンへのネットワーク提供用にブリッジインターフェースを作成します。今回はbridge-utilsを使用します。
$ sudo apt install bridge-utils
Ubuntu Server 16.
$ sudo vi /etc/network/interfaces
(以下をコメントアウト)
# The primary network interface
#auto enp3s0
#iface enp3s0 inet dhcp
次に/etc/
$ sudo vi /etc/network/interfaces.d/bridge.cfg
auto enp3s0
iface enp3s0 inet static
address 0.0.0.0
auto br0
iface br0 inet static
address 192.168.1.33
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.254
dns-nameservers 192.168.1.14
dns-search example.org
bridge_ports enp3s0
bridge_fd 9
bridge_hello 2
bridge_maxage 12
bridge_stp off
なお、
上記を設定後、
ノーパスフレーズSSH公開鍵認証設定
OpenNebulaはフロントエンドとホスト間のやりとりをUNIXアカウントのoneadmin権限のSSHで行います。フロントエンド上の各種ドライバスクリプトのホストへの配布や、
フロントエンドでOpenNebulaをインストールしたタイミングで、
ホスト側設定
ホスト側の/etc/
PasswordAuthentication yes
sshdを再起動します。
$ sudo systemctl restart ssh.service
UNIXアカウントoneadminにパスワードを設定します。
$ sudo passwd oneadmin Enter new UNIX password: (パスワード文字列を入力) Retype new UNIX password: (もう一度パスワード文字列を入力) passwd: password updated successfully
フロントエンド側設定
ssh-keyscanコマンドでUNIXアカウントoneadminのknown_
$ ssh-keyscan mogami mogami.example.org host001 host001.example.org >> /var/lib/one/.ssh/known_hosts
SSH鍵ペアとauthorized_
$ scp -rp /var/lib/one/.ssh host001:/var/lib/one oneadmin@host001's password: (ホスト上のoneadminアカウントのパスワードを入力)
UNIXアカウントoneadminがホストにノーパスフレーズのSSH公開鍵認証でログインできること、
oneadmin@mogami:~$ ssh host001 Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-87-generic x86_64) (略) oneadmin@host001:~$ ssh mogami Welcome to Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-87-generic x86_64) (略)
以降は公開鍵認証でログインできるので、
ホストをOpenNebula環境に登録
フロントエンドとホストでノーパスフレーズでのSSHが可能になったことで、
バージョン4系列までのOpenNebulaは、
SSHでのファイル転送
ホストを含む各種リソースのOpenNebulaへの登録は、
$ sudo -i -u oneadmin
onehost createコマンドでホストを登録します。ここではhost001をOpenNebula環境に登録します
$ onehost create host001 -i kvm -v kvm ID: 0
-iオプションはインフォメーションドライバスクリプト、
onehost listコマンドで登録されたホストの一覧を表示します。STATがonになっていれば正常に登録されています。
$ onehost list ID NAME CLUSTER RVM ALLOCATED_CPU ALLOCATED_MEM STAT 0 host001 default 0 0 / 200 (0%) 0K / 7.7G (0%) on
STAT欄が
まとめ
今回はフロントエンドとホストのセットアップ、