virsh 關機 使用virsh管理KVM虛擬機器

2021-10-16 19:56:17 字數 2165 閱讀 8404

使用qemu/kvm虛擬化平台啟動虛擬機器,通常需要手動輸入一行很長的命令,裡面可能有幾十個引數,要想啟動多個虛擬機器,以及監視多個虛擬機器執行狀態會非常困難,這時候就需要virsh這樣乙個虛擬機器的管理工具。

由於前面的文章已經介紹了如何安裝qemu以及如何啟動虛擬機器,這裡就直接從qemu/kvm安裝好以後的地方開始。

1.安裝libvirt

在ubuntu系統中,使用apt-get安裝的libvirt還是1.3版本的,有很多相容性的問題。這裡選擇原始碼安裝libvirt。

先解除安裝系統預設安裝的libvirt(如果沒有安裝忽略這一步):

sudo apt-get purge libvirt

安裝所需環境(其他需要的configure的時候會提示安裝的):

tar xvjf libvirt-4.10.0.tar.xz

cd libvirt-4.10.0/

./configure --prefix=/usr --localstatedir=/var --sysconfdir=/etc #不指定的話缺省會給安裝到/usr/local目錄下

make && make install

安裝完成後檢查是否安裝成功:

# which libvirtd

/usr/sbin/libvirtd

# libvirtd --version

libvirtd (libvirt) 4.10.0

# which virsh

/usr/bin/virsh

# virsh -v

4.10.0

安裝成功後啟動libvirtd服務:

sudo systemctl restart libvirtd

2.通過虛擬機器模板xml檔案啟動虛擬機器

用virsh啟動虛擬機器需要有對應的xml檔案,virsh可以生成這些模板檔案。

demovm

4a9b3f53-fa2a-47f3-a757-dd87720d9d1d

hvmdestroy

restart

destroy

/usr/bin/qemu-system-x86_64

這個xml檔案給虛擬機器配置了各種物理裝置資訊:給虛擬機器起名為demovm,配置了繫結物理核的兩塊虛擬cpu核,記憶體使用預分配的1gb大頁面,總記憶體4gb,虛擬磁碟檔案在'/var/iso/virtual1.qcow2',使用virtio的vhost-user網路介面,乙個串列埠console和乙個vnc埠。虛擬機器的xml檔案非常複雜,只要配置有一項不相容或者設定出錯就會導致啟動失敗。

先定義該模板虛擬機器:

virsh define test.xml

在已經啟動了ovs並開放vhost埠情況下,啟動虛擬機器:

virsh start demovm

通過virsh list已經可以看到虛擬機器執行起來了:

virsh list介面可以看到虛擬機器執行狀態.png

3.遠端終端和關閉虛擬機器

開啟虛擬機器以後,我們可以通過連線到剛才設定的console來訪問虛擬機器的終端:

virsh console demovm --devname serial0

但是問題出現了,為什麼游標一直卡在這,沒有進入終端:

游標卡住.png

通過vnc連線到虛擬機器(這裡用的是tightvnc),終端輸入:

sudo systemctl disable systemd-networkd-wait-online

sudo systemctl ensble [email protected]

sudo systemctl start [email protected]

重新啟動虛擬機器再次嘗試,成功:

登進虛擬機器控制台.png

嘗試用virsh關閉虛擬機器:

virsh shutdown demovm

發現虛擬機器並沒有關機還在執行,登入vnc檢視,原來是圖形化介面的原因,開啟了使用者選擇介面:

ubuntu關機使用者選擇介面.png

查閱資料virsh的shutdown命令是通過acpi傳遞到虛擬機器裡的,進入虛擬機器終端,進入acpi事件處理目錄,修改powerbtn事件處理配置檔案:

cd /etc/acpi/events/

vim powerbtn

修改關機為直接關機不用選擇.png

重啟回到virsh控制台,成功關機。

virsh使用記錄

qemu虛擬機器有多種方式可以啟動,比如通過qemu命令 virsh命令 virt manager等等。相對來說,virsh功能強大 使用簡單 配置方便。下面對最近使用virsh的相關命令做一下記錄。virsh list 檢視執行中的虛擬機器 virsh list all 檢視所有虛擬機器,包括未執...

virsh 關機 KVM virsh常用命令

virsh list all 所有vm virsh start 開機 virsh shutdown 軟關機 virsh destroy 強制關機 virsh dnmpxml vm name name.xml 配置備份,xml配置檔案路徑 etc libvirt qemu virsh undefine...

virsh命令工具

供管理各虛擬機器的命令介面 支援互動模式,檢視 建立 停止 關閉 格式 virsh 控制挃令 虛擬機器名稱 引數 root nova01 virsh welcome to virsh,the virtualization interactive terminal.type help for help...