目標
- VM 作成にあたり XenCenter を使わずに作成してみる
- VM のリソース(CPU やメモリ、ハードディスク)も全て XenServer のコマンドラインから設定する
作りたい環境
| リソース | パラメータ |
|---|---|
| CPU | 1vCPU |
| memory | 1024MB |
| HDD | 16GB |
| NIC | 1 |
| OS | CentOS 6.4 |
やってみる
VM の大枠を作る
xe vm-install new-name-label=${VM のラベル名} template=${パラメータの UUID}
上記を実行すると VM の UUID が出力されるので控えておく。
vm-param-set を使って VM のリソースを設定する
VM の UUID が重要になる。
xe vm-param-set uuid=${VM の UUID} VCPUs-at-startup=1
xe vm-param-set uuid=${VM の UUID} VCPUs-max=1
xe vm-param-set uuid=${VM の UUID} memory-dynamic-max=1073741824
xe vm-param-set uuid=${VM の UUID} memory-dynamic-min=1073741824
xe vm-param-set uuid=${VM の UUID} memory-static-max=1073741824
xe vm-param-set uuid=${VM の UUID} memory-static-min=134217728
上記を指定することで 1vCPU と 1024MB のメモリが設定されたことになる。
sr-list を使ってディスクを確認する
SR とは Storage Repository の略称で物理サーバーに接続された物理ディスクや NAS ストレージ等を XenServer で扱えるようにしたフォーマット。
xe sr-list
XenServer のストレージオブジェクトは以下のようなイメージとなる。
+------+ +----+ +-----+ +-----+----+ | User | --> | VM | --- | VBD | --- | VDI | SR | +------+ +----+ +-----+ +-----+----+
SR 内に VDI を作成し VDB によって仮想サーバーと繋がるイメージ。
SR 内に VDI を作る
VDI とは Virtual Disk Image の略称...のはず。
xe vdi-create sr-uuid=${SR の UUID} virtual-size=17179869184 type=system name-label=${VDI のラベル名} sharable=false
上記を実行すると VDI の UUID が出力されるので控えておく。
VBD を作成して VDI と VM を結びつける
VBD とは Virtual Block Device の略称。
xe vbd-create bootable=true device=xvda mode=RW type=Disk unpluggable=false vdi-uuid=${VDI の UUID} vm-uuid=${VM の UUID}
テンプレートから VM を作成していく場合、CentOS 6.4 x86_64 を選択するとデフォルトで 8GB の仮想ディスクが接続されているが、これは一旦、削除しておく。
仮想ネットワークインターフェースを作成する
xe vif-create vm-uuid=${VM の UUID} network-uuid=${Network の UUID} mac=random device=0
device=0 が eth0 になる。
VM の起動オプションを設定する
ネットワークインストールに必要なリポジトリの設定等を行う。
xe vm-param-set uuid=${VM の UUID} other-config:install-repository=http://mirror.centos.org/centos/6/os/x86_64
xe vm-param-set uuid=${VM の UUID} PV-args="ksdevice=eth0"
xe vm-param-set uuid=${VM の UUID} other-config:disable_pv_vnc=1
kickstart オプション等も設定可能。
では、VM を起動する
以下のように VM を起動する。
xe vm-start uuid=${VM の UUID}
以下のようにコンソールにもアクセス可能。
xe console uuid=${VM の UUID}
今日はこれでキマリ
- XenCenter が不要になりました