momoto.github.io

Virshをつかって仮想マシンを管理する

 libvirtのコマンドラインツールであるvirshをつかって、仮想マシンを管理する手引きです。virt-installなどで作成した仮想マシンの起動、停止、接続などの操作を行います。

仮想マシンの一覧

 virt-manager(virt-installを含む)で作成した仮想マシンや、XMLファイルから定義した仮想マシンの一覧を表示します。 オプションを何も付けない場合、シャットオフ状態の仮想マシンは一覧に表示されないので、状態に依らずすべての一覧を得るには--allのオプションを付けます。 他のユーザが作成した仮想マシンも一覧には表示されません。

$ virsh list --all
 Id    名前                         状態
----------------------------------------------------
 -     ubuntu-13.04                   シャットオフ
 6     centos-6.4                     実行中

仮想マシンの起動

 定義済みの仮想マシン(libvirtに認識されていてlistに現れる仮想マシン)を起動する場合、virsh start <仮想マシンの名前>のコマンドを使います。

$ virsh start ubuntu-13.04
ドメイン ubuntu-13.04 が起動されました

 未定義の仮想マシンをXMLファイルから定義して、起動する場合、virsh create <XMLファイル>のコマンドを使います。

$ virsh create centos-6.4.backup.xml
ドメイン centos-6.4 が centos-6.4.backup.xml から作成されました

仮想マシンのコンソールへ接続する

 実行中の仮想マシンのシリアルポートへコンソール接続するにはvirsh console <仮想マシンのIDまたは名前>をつかいます。

$ virsh console 6
ドメイン centos-6.4 に接続しました
エスケープ文字は ^] です

CentOS release 6.4 (Final)
Kernel 2.6.32-358.el6.x86_64 on an x86_64

localhost.localdomain login: 

 コンソールへ接続するには、仮想マシンのXMLファイルにシリアルデバイスが定義されていること(ホスト側)と、シリアルポートによる接続が許可されていること(ゲスト側)が必要です。

一時停止と再開

$ virsh suspend 5
ドメイン 5 は一時停止されました

$ virsh resume 5
ドメイン 5 が再開されました

停止する

 ホスト側から仮想マシンを停止させるにはvirsh shutdownまたはvirsh destroyをつかいます。

$ virsh shutdown 6
ドメイン 6 はシャットダウン中です

$ virsh destroy 6
ドメイン 6 は強制停止されました

定義と定義の解除

 仮想マシンの定義を消すにはvirsh undefine <仮想マシンの名前>をつかいます。

$ virsh undefine ubuntu-13.04
ドメイン ubuntu-13.04 の定義が削除されました

 XMLファイルから仮想マシンを定義するにはvirsh define <XMLファイル>をつかいます。

$ virsh define ubuntu-13.04.backup.xml
ドメイン ubuntu-13.04 が ubuntu-13.04.backup.xml から定義されました

 定義済みの仮想マシンの情報をXML形式で出力するにはvirsh dumpxml <仮想マシンのIDまたは名前>をつかいます。

$ virsh dumpxml ubuntu-13.04 > ubuntu-13.04.backup.xml

参考