如何用 virsh 管理 KVM 虛擬機器
virsh 是 KVM 的虛擬機器管理工具,例如啟動或停止運作、控制和修改虛擬機器等。virsh 提供不同 virsh 指令,我們可以打 virsh 進入 virsh 指令台,或連同 virsh 指令直接執行。
列出 KVM 虛擬機器及找出名稱
virsh list 可列出運行中的 KVM 虛擬機器,如果需要列出所有 KVM 虛擬機器,包括已停止的,可以加上 –all。我們可從清單中找出不同虛擬機器名稱(domName)。
$ virsh list
$ virsh list –all
查詢 KVM 虛擬機器資料
virsh dominfo 可以顯示某台 KVM 虛擬機器資料, virsh dumpxml 則以 XML 格式來顯示某台 KVM 虛擬機器的詳細設定。
$ virsh dominfo mylinuxvm
$ virsh dumpxml mylinuxvm
啟動和停止 KVM 虛擬機器
在得知虛擬機器名稱後,我們可以使用名稱來啟動(start)、重啟(reboot)、停止(shutdown)、強行停止(destroy)等操作,例如虛擬機器名稱是 mylinuxvm。
$ virsh start mylinuxvm
$ virsh reboot mylinuxvm
$ virsh shutdown mylinuxvm
$ virsh destroy mylinuxvm
管理 KVM 虛擬機器
如果我們在虛擬機器已設定 serial console,我們可以使用 virsh console 來管理 KVM 虛擬機器。
$ virsh console mylinuxvm
在 Ubuntu 16.04 虛擬機器內設定 serial console
$ sudo systemctl enable [email protected]
$ sudo systemctl start [email protected]
在 Ubuntu 14.04 虛擬機器內設定 serial console
首先修改 /etc/default/grub 檔案內的 GRUB_CMDLINE_LINUX_DEFAULT 變數,然後執行 update-grub。
GRUB_CMDLINE_LINUX_DEFAULT=」console=ttyS0,38400n8 console=tty0″
再複製 /etc/init/tty1.conf 到 ttyS0.conf,修改最後一行指令為「exec /sbin/getty -8 38400 ttyS0」。
$ cp /etc/init/tty1.conf /etc/init/ttyS0.conf
$ nano /etc/init/ttyS0.conf
刪除 KVM 虛擬機器
如果不再使用某台 KVM 虛擬機器,我們可以使用 virsh undefine 來刪除該台 KVM 虛擬機器,例如虛擬機器名稱是 mylinuxvm。
$ virsh undefine mylinuxvm