目標
- 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 が不要になりました