ようへいの日々精進XP

よかろうもん

XenServer で CLI から VM を作成してみた一部始終

XenServer で CLI から VM を作成してみる


概要

  • XenServer のコマンドラインから VM を作成してみる
  • XenCenter を使えないような環境で利用出来る

手順

VM をテンプレートから作成する

テンプレートの UUID を確認する必要があるので、以下のコマンドにて UUID を確認する。

xe template-list | grep "centos 6" -i -A2 -B2

以下のようにテンプレートの UUID を確認することが出来る。

uuid ( RO)                : d61ae2a3-78ee-0ddb-ad60-27582f975824
          name-label ( RW): CentOS 6 (64-bit)
    name-description ( RW): Template that allows VM installation from Xen-aware EL-based distros. To use this template from the CLI, install your VM using vm-install, then set other-config-install-repository to the path to your network repository, e.g. http://<server>/<path> or nfs:server:/<path>

確認した UUID をもとの vm-install にて VM のひな形(?)を作成する。

xe vm-install new-name-label=centos6.x template=d61ae2a3-78ee-0ddb-ad60-27582f975824

コマンドを実行すると仮想マシン(以下 VM )の UUID が作成される。

76e31f28-0a5a-8cc8-f484-ecd589667a8e

仮想ネットワークの UUID を取得する

仮想ネットワークの UUID を取得する。

xe network-list bridge=xenbr0 --minimal

下記のように取得出来るのでメモっておく。

9414dab6-151b-0255-1d1d-3cf729cca0c6

仮想ネットワークインターフェースを VM と関連付けて作成する

xe vif-create vm-uuid=76e31f28-0a5a-8cc8-f484-ecd589667a8e network-uuid=9414dab6-151b-0255-1d1d-3cf729cca0c6 mac=random device=0

以下、VM に関連付けられた仮想ネットワークインターフェースの UUID。

b4eb3593-a285-98e8-e685-2ac8018c7e95

各種起動パラメータの設定

# インストールに利用するリポジトリを指定する
xe vm-param-set uuid=76e31f28-0a5a-8cc8-f484-ecd589667a8e other-config:install-repository=http://mirror.centos.org/centos/6/os/x86_64
# ブートオプションを指定する
xe vm-param-set uuid=76e31f28-0a5a-8cc8-f484-ecd589667a8e PV-args="ksdevice=eth0" #オプションでキックスタートの URL 等も渡せる
# disable_pv_vnc パラメータについては要調査
xe vm-param-set uuid=76e31f28-0a5a-8cc8-f484-ecd589667a8e other-config:disable_pv_vnc=1

VM の起動

UUID を指定して VM を起動する。

xe vm-start uuid=76e31f28-0a5a-8cc8-f484-ecd589667a8e

VM コンソールにアクセス

xe console uuid=76e31f28-0a5a-8cc8-f484-ecd589667a8e

手動操作

  • IP アドレスの設定(DHCP
  • VNC Viewer 又は コマンドラインインストールかを選択

参考にしたところ(というかまんま)


Xentool のインストール

xs-tools.iso の確認

xe cd-list

以下のようにリストアップされる。

uuid ( RO)          : 96477c96-8c92-4dba-b4dd-cb4126fc92a7
    name-label ( RW): xs-tools.iso


uuid ( RO)          : e45ca9ed-db64-4026-8dc4-64851f7046a7
    name-label ( RW): XenCenter.iso

対象の仮想サーバーにて仮想ディスクデバイスの番号を確認する

xe vm-disk-list uuid=<uuid>

XenServer は最大 7 個までの仮想ディスクデバイスが利用可能。

Disk 0 VBD:
uuid ( RO)             : 518b51d5-a0bc-602f-f080-1ca299d655c6
    vm-name-label ( RO): centos6.x
       userdevice ( RW): 0


Disk 0 VDI:
uuid ( RO)             : e3fa28c6-e7fe-4f4b-87d4-f847d74ba771
       name-label ( RW): 0
    sr-name-label ( RO): Local storage
     virtual-size ( RO): 8589934592

上記の userdevice ( RW): 0 を確認し、0 以上 6 以下の数値を次の device= に指定する。

xs-tools.iso を VM に挿入する

xe vm-cd-add cd-name=xs-tools.iso vm=centos6.x device=1

xentool のインストール

一応、CD ドライブが認識されているかを確認する。

dmesg | grep xvdb

xvdb デバイスとして認識されているようだ。

blkfront: xvdb: barriers disabled
 xvdb: unknown partition table

マウントする。

mount -t iso9660 /dev/xvdb /mnt

インストールする。

cd /mnt/Linux
./install.sh

インストール終了。

Detected `CentOS release 6.4 (Final)' (centos version 6).

The following changes will be made to this Virtual Machine:
  * update arp_notify sysctl.conf.
  * packages to be installed/upgraded:
    - xe-guest-utilities-6.1.0-1033.x86_64.rpm
    - xe-guest-utilities-xenstore-6.1.0-1033.x86_64.rpm

Continue? [y/n] Y


準備中...                ########################################### [100%]
   1:xe-guest-utilities-xens########################################### [ 50%]
   2:xe-guest-utilities     ########################################### [100%]

You should now reboot this Virtual Machine.

CD を取り外す

OS からアンマウント。

umount /mnt

XenServer のコンソールからイジェクト。

xe vm-cd-eject vm=centos6.x

参考にしたところ

まとめ

  • 意外に簡単に出来た
  • XenCenter に頼りっきりだったけどコマンドラインから作成することで、若干ではあるが内部構造をかいま見えたような気がする
  • 次はこの VM をテンプレート化してみる