*ゲストOSの構築 [#v8030a98] 実際にOpenNebulaを用いてゲストOSを構築してみましょう。 このページはOpenNebula公式の、[[A VM with Context & Network 1.4>http://www.opennebula.org/documentation:rel1.4:vmg]]を参考にしています。 *動作環境 [#xe032677] [[フロントエンドノードの構築>OpenNebula/フロントエンドノードの構築]]、 [[クラスタノードの構築>OpenNebula/クラスタノードの構築]]、 [[仮想ネットワークの構築>OpenNebula/仮想ネットワークの構築]]は何れも終わっているものとします。~ またクラスタノードはKVMノードとして登録しているものとします。 *ゲストOS用のイメージ [#ifa56b1b] ゲスト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 *ゲストOS用の定義ファイル [#p99cc8c1] 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を元に作ったネットワークを使用していますが、 ここでは[[仮想ネットワークの構築>OpenNebula/仮想ネットワークの構築]]で構築した、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" ] GRAPHICS = [ type = "vnc", listen = "0.0.0.0", port = "5910" ] #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" #] NAMEはOpenNebula上で取り扱う名前を記述します。~ 省略可能で、省略した場合はone-<id>のルールで自動的に名前がつけられます。 GRAPHICSという項目も追加してあります。~ 指定したIPとポートに対して、VNCで接続することができます。~ 必須ではありませんが、画面の出力を見ることができるので、 トラブルシューティングがしやすくなります。~ またsshと異なり、ゲストOSへの接続性がなくても使用できるというメリットもあります。~ listenとportの項目では、クラスタノードが待ち受けるIPアドレスとport番号をそれぞれ指定します。~ *ゲストOSの作成と配置 [#l540676c] ファイルから、ゲスト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に割り当てられたIPアドレスも表示されています。~ 後でログインする際に必要になるので覚えておきましょう。 *クラスタノードへの配置 [#r0fe79bd] 実際にクラスタノードでゲストOSを起動させるには、onevm deployコマンドを使用します。~ # onevm deploy <vm_id> <host_id> <vm_id>にはゲストOSのID、<host_id>にはクラスタノードのIDをそれぞれ指定します。~ onevm deployを実行すると、実際にファイルのコピーなどが行われます。 *ゲストOSの起動確認 [#fd50903a] onevm deploy実行後、起動を確認します。 sshでログインできます。 # ssh root@192.168.122.2 root@192.168.122.2's password: Chop wood, carry water. # パスワードは password となっています。 ログイン出来れば成功です。 sshでログインできない時には、VNCで調べてみましょう。~ この例では、クラスタノードのport 5910版に対してVNCで接続することができます。 *リンク [#h938071e] [[A VM with Context & Network 1.4>http://www.opennebula.org/documentation:rel1.4:vmg]]~ [[Virtual Machine Definition File 1.4>http://www.opennebula.org/documentation:rel1.4:template]]