実際にOpenNebula?を用いてゲストOSを構築してみましょう。 このページはOpenNebula?公式の、A VM with Context & Network 1.4を参考にしています。
フロントエンドノードの構築、
クラスタノードの構築、
仮想ネットワークの構築は何れも終わっているものとします。
またクラスタノードはKVMノードとして登録しているものとします。
ゲストOSのイメージはttylinuxを使用します。
公式ドキュメントで使用しているイメージは、設定ファイルのテンプレートなどもあるので、
ここでも同じ物を使用します。
フロントエンドノード上で、下記のコマンドを実行します。
# mkdir -p one-template # cd one-template # wget http://dev.opennebula.org/attachments/download/170/ttylinux.tar.gz # tar xvzf ttylinux.tar.gz
ttylinux.tar.gzを解凍したファイルの中に、ttylinux.oneがあります。 これがゲストOSの定義を行うファイルです。
NAME = ttylinux CPU = 0.1 MEMORY = 64 DISK = [ source = "/path/to/ttylinux.img", target = "hda", readonly = "no" ] NIC = [ NETWORK = "Small network" ] FEATURES=[ acpi="no" ] #CONTEXT = [ # hostname = "$NAME", # ip_public = "PUBLIC_IP", # files = "/path/to/init.sh /path/to/id_dsa.pub", # target = "hdc", # root_pubkey = "id_dsa.pub", # username = "opennebula", # user_pubkey = "id_dsa.pub" #]
#はコメントです。今回は、コメントアウトしたまま使用します。
まずはDISKの項目にある、"/path/to/ttylinux.img"を適切な値に変更します。
例えば、/home/nanodayo/one-templateに、イメージをダウンロードした場合は
"/home/nanodayo/one-template/ttylinux.img"に書き換えます。
ここで指定したファイルが、後でクラスタノードの適切な場所にコピーされるため、
フロントエンドノード上のパスを指定すればOKです。
続いて、NICの項目も変更します。
デフォルトの設定では、付属のsmall_network.netを元に作ったネットワークを使用していますが、
ここでは仮想ネットワークの構築で構築した、vnet0を使用します。
そしてテンプレートにはありませんが、OSという項目も必ず必要になります。 変更後のttylinux.oneは以下のようになります。
NAME = ttylinux CPU = 0.1 MEMORY = 64 OS=[ BOOT = "hd" ] DISK = [ source = "/home/nanodayo/one-template/ttylinux.img", target = "hda", readonly = "no" ] NIC = [ NETWORK = "vnet0" ] FEATURES=[ acpi="no" ] #CONTEXT = [ # hostname = "$NAME", # ip_public = "PUBLIC_IP", # files = "/path/to/init.sh /path/to/id_dsa.pub", # target = "hdc", # root_pubkey = "id_dsa.pub", # username = "opennebula", # user_pubkey = "id_dsa.pub" #]
ファイルから、ゲストOSをフロントエンドノードへ登録します。下記のコマンドを実行します。
# onevm create ttylinux.one
登録後、onevm listでゲストOSの一覧を確認できます。
# onevm list ID NAME STAT CPU MEM HOSTNAME TIME 1 ttylinux pend 0 0 00 00:03:46
仮想ネットワーク同様、個々のゲストOSの情報はonevm show <ゲストOS>で参照できます。 ゲストOSの指定は、IDでもNAMEでも行えます。
# onevm show ttylinux VID : 1 UID : 0 STATE : PENDING LCM STATE : LCM_INIT DEPLOY ID : MEMORY : 0 CPU : 0 LAST POLL : 0 START TIME : 07/02 16:17:18 STOP TIME : 01/01 09:00:00 NET TX : 0 NET RX : 0 ....: Template :.... CPU : 0.1 DISK : READONLY=no,SOURCE=/home/nanodayo/opennebula/ttylinux.img,TARGET=hda FEATURES : ACPI=no MEMORY : 64 NAME : ttylinux NIC : BRIDGE=virbr0,IP=192.168.1.2,MAC=00:03:c0:a8:7a:02,NETWORK=vnet0,VNID=1 OS : BOOT=hd
実際にクラスタノードでゲストOSを起動させるには、onevm deployコマンドを使用します。
# onevm deploy <vm_id> <host_id>
vm_id>には、ゲストOSのID、<host_id>にはクラスタノードのIDをそれぞれ指定します。
onevm deployを実行すると、実際にファイルのコピーなどが行われます。