ゲストOSの構築

実際にOpenNebula?を用いてゲストOSを構築してみましょう。 このページはOpenNebula?公式の、A VM with Context & Network 1.4を参考にしています。

動作環境

フロントエンドノードの構築クラスタノードの構築仮想ネットワークの構築は何れも終わっているものとします。
またクラスタノードはKVMノードとして登録しているものとします。

ゲストOS用のイメージ

ゲスト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用の定義ファイル

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" ]

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"
#]

GRAPHICSという項目も追加してあります。
必須ではありませんが、画面の出力を見ることができるので、 トラブルシューティングがしやすくなります。
またsshと異なり、ゲストOSへの接続性がなくても使用できるというメリットもあります。
listenとportの項目では、クラスタノードが待ち受けるIPアドレスとport番号をそれぞれ指定します。

ゲストOSの作成と配置

ファイルから、ゲスト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アドレスも表示されています。
後でログインする際に必要になるので覚えておきましょう。

クラスタノードへの配置

実際にクラスタノードでゲストOSを起動させるには、onevm deployコマンドを使用します。

# onevm deploy <vm_id> <host_id>

 <vm_id>にはゲストOSのID、<host_id>にはクラスタノードのIDをそれぞれ指定します。
onevm deployを実行すると、実際にファイルのコピーなどが行われます。

ゲストOSの起動確認

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で接続することができます。

リンク

A VM with Context & Network 1.4
Virtual Machine Definition File 1.4


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS