*ゲスト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]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS