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
手動操作
参考にしたところ(というかまんま)
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 をテンプレート化してみる