XenServerを利用する上で最低限必要な操作はXenCenterから行うことが出来ますが、XenServerホスト上で利用出来るxeコマンドを使いこなせるようになると何かと便利です。
第3回目となる今回は、以前の2回の記事でもいくつか登場したxeコマンドの代表的なものを紹介したいと思います。
基本編
■仮想マシンの起動
1 2 3 4 5 6 |
# xe vm-start vm="VM Name" ※VM Nameの部分には、仮想マシンの名前(name-label )が入ります。 例 # xe vm-start vm=VM01 |
■仮想マシンのシャットダウン
1 |
# xe vm-shutdown vm="VM Name" |
■仮想マシンのリストを表示
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
# xe vm-list すべての仮想マシンの情報を表示します。情報の内容は仮想マシンのuuid、name-label、power-state です。 なお、power-stateの項目で現在の仮想マシンの状態(起動中か停止中か)がわかります。 例 # xe vm-list uuid ( RO) : f81d64d2-dfd0-b680-0d86-dfecc1ff443f name-label ( RW): VM02 power-state ( RO): halted uuid ( RO) : f281583d-9785-4d9e-a709-3d072e825a52 name-label ( RW): Control domain on host: xenserver power-state ( RO): running uuid ( RO) : 1b89dff9-84c2-6d26-dd69-85806281c3ed name-label ( RW): VM01 power-state ( RO): running |
■UUIDで指定した仮想マシンのドメインIDを取得
1 2 3 4 5 6 7 |
# xe vm-list uuid="uuid" params=dom-id 仮想マシンのuuidはXenCenterや上で説明したxe vm-list コマンドで確認できます。 例 # xe vm-list uuid=1b89dff9-84c2-6d26-dd69-85806281c3ed params=dom-id dom-id ( RO) : 3 |
■ドメインIDで指定した仮想マシンのコンソール画面を出す①
1 2 3 4 5 |
# /usr/lib/xen/bin/xenconsole <id> 抜けるには exit で <id>部分には、ドメインIDが入ります。 |
■ドメインIDで指定した仮想マシンのコンソール画面を出す②
1 2 3 4 5 6 7 |
仮想マシンとドメインIDを確認する # xl list Name ID Mem VCPUs State Time(s) Domain-0 0 746 2 r----- 1787.1 VM01 3 1024 1 -b---- 40.5 VM02 5 1024 1 -b---- 39.6 |
1 2 3 4 5 6 7 8 9 |
ドメインIDを指定して仮想マシンのコンソール画面を出す # xl console [id] 例 # xl console 3 コンソールから抜けてホストOSに戻るには Crtl + ] こちらは、Xenのxmコマンドと似ていますね。 |
■XenServerホストのコンソール画面を出す
1 |
# xsconsole |
直接コンソールにアクセスした際と違って、どぎつい配色で表示されますがデフォルトでこの仕様です。
■ファイル名を指定してVMをインポート
1 2 3 4 5 6 |
# xe vm-import filename="/mnt/exports/xxx.xva" sr-uuid=17ee8f1f-xxxx-xxxx-xxxx-xxxx 別の記事(第1回及び第2回)で紹介していますが、バックアップデータ等のインポートを行う場合に使います。 nfsマウント等でXenServerホストからアクセス可能なディレクトリにインポートの対象となるデータがある場合に必要です。 (ローカルにあるデータのインポートは、XenCenterから行うことが可能です) |
■タスク一覧の表示
1 2 3 4 5 6 7 8 |
# xe task-list uuid ( RO) : d439f57f-a620-2ed3-f0c3-94e2d2726a18 name-label ( RO): Async.VM.snapshot name-description ( RO): status ( RO): pending progress ( RO): 0.005 実行中のタスクが表示されます。 |
■タスクをキャンセルする
1 2 3 |
# xe task-cancel <uuid> 実行中のタスクには個別の<uuid>が付きますので<uuid>を指定してタスクのキャンセルを行うことが可能です。 |
障害対応
最後にxeコマンド以外のコマンドについても紹介します。
■VMを 停止/再起動 しても黄色いアイコンのまま停止してくれない場合に強制シャットダウンを行う方法
1 2 3 |
# /opt/xensource/debug/xenops destroy_domain -domid <id> 仮想マシンのdom-idを破棄することで、強制シャットダウンを行います。 |
■何か不整合が生じた際にxapi(管理用のサービス)を再起動する
1 2 3 4 5 6 |
# xe-toolstack-restart 仮想マシンは正常に起動しているにも関わらず、XenCenterにログイン出来ないという状況に陥った場合に使えるようです。 例えば操作の誤りなどでXenServerのルートディレクトリがスペースを使い果たしてしまうとXenServer XAPIサービスはスタートしません。 その場合に空き容量を確保した上で、上記のコマンドを行うことでVMを起動したままxapiを再起動することが可能です。 |
コマンドの紹介は以上です。
xeコマンド等による操作は、XenCenter上での操作と比べて自由度が高い分、操作を誤る可能性も高くなりますので十分注意が必要です。
ただ、使いこなすことが出来ればコマンドの戻り値からオリジナルのスクリプトを作成することも難しくないと思います。
基本機能に満足していない方は色々と思考錯誤してみるのも良いかもしれませんね。