KVM虛拟機的管理主要是通過virsh指令對虛拟機進行管理。
(1) KVM虛拟機預設配置檔案位置: /etc/libvirt/qemu/
autostart目錄是配置kvm虛拟機開機自啟動目錄。
<a href="https://s1.51cto.com/oss/201711/22/fd7e73c0ce330a92248c9b3dcc8917c6.png-wh_500x0-wm_3-wmp_4-s_410591388.png" target="_blank"></a>
(2) virsh指令幫助
# virsh -help
或直接virsh指令和,再執行子指令。如下所示。
[root@node1 ~]# virsh
歡迎使用 virsh,虛拟化的互動式終端。
輸入:'help' 來獲得指令的幫助資訊
'quit' 退出
virsh # help
……
(3) 檢視kvm虛拟機狀态
# virsh list --all
# virsh start CentOS6.5-01
(1) 關機
預設情況下virsh工具不能對linux虛拟機進行關機操作,linux作業系統需要開啟與啟動acpid服務。在安裝KVM linux虛拟機必須配置此服務。
# chkconfig acpid on
# service acpid restart
virsh關機
# virsh shutdown CentOS6.5-01
<a href="https://s4.51cto.com/oss/201711/22/ebc882998c43cdf2b977e82f4b7b3a57.png-wh_500x0-wm_3-wmp_4-s_680623031.png" target="_blank"></a>
(2) 強制關閉電源
# virsh destroy Ser08R2-01
# virsh create /etc/libvirt/qemu/Ser08R2-01.xml
# virsh create /etc/libvirt/qemu/CentOS6.5-01.xml
<a href="https://s3.51cto.com/oss/201711/22/1cc2e7e52b526a59563c34258c7260db.png-wh_500x0-wm_3-wmp_4-s_4220059197.png" target="_blank"></a>
# virsh autostart CentOS6.5-01
autostart目錄是kvm虛拟機開機自啟動目錄,可以看到該目錄中有KVM配置檔案連結。
<a href="https://s4.51cto.com/oss/201711/22/3059c042a66a16da2da41180f8f8a0b7.png-wh_500x0-wm_3-wmp_4-s_631111491.png" target="_blank"></a>
# virsh dumpxml Ser08R2-01 > /etc/libvirt/qemu/Ser08R2-02.xml
KVM虛拟機配置檔案可以通過這種方式進行備份。
<a href="https://s2.51cto.com/oss/201711/22/b334ba21c8b665801ff88c9d33736d09.png-wh_500x0-wm_3-wmp_4-s_4225266587.png" target="_blank"></a>
(1) 删除kvm虛拟機
# virsh undefine Ser08R2-01
說明:該指令隻是删除wintest01的配置檔案,并不删除虛拟磁盤檔案。如下圖所示。
(2) 重新定義虛拟機配置檔案
通過導出備份的配置檔案恢複原KVM虛拟機的定義,并重新定義虛拟機。
# mv /etc/libvirt/qemu/Ser08R2-02.xml /etc/libvirt/qemu/Ser08R2-01.xml
# virsh define /etc/libvirt/qemu/Ser08R2-01.xml
<a href="https://s5.51cto.com/oss/201711/22/99a5995481a87df3a65b3631930c477d.png-wh_500x0-wm_3-wmp_4-s_4021482831.png" target="_blank"></a>
# virsh edit Ser08R2-01
virsh edit将調用vi指令編輯/etc/libvirt/qemu/Ser08R2-01.xml配置檔案。也可以直接通過vi指令進行編輯,修改,儲存。
可以但不建議直接通過vi編輯。
<a href="https://s4.51cto.com/oss/201711/22/f68e934863ea0177551faba7d3ae2f54.png-wh_500x0-wm_3-wmp_4-s_983183749.png" target="_blank"></a>
[root@node1 qemu]# vim /etc/libvirt/qemu/Ser08R2-01.xml
<code><!--</code>
<code>WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE </code>
<code>OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:</code>
<code> </code><code>virsh edit Ser08R2-01</code>
<code>or other application using the libvirt API.</code>
<code>--></code>
<code><domain </code><code>type</code><code>=</code><code>'kvm'</code><code>></code>
<code> </code><code><name>Ser08R2-01<</code><code>/name</code><code>></code>
<code> </code><code><uuid>9814b16e-d573-ace0-7bb3-b206fc66b8e1<</code><code>/uuid</code><code>></code>
<code> </code><code><memory unit=</code><code>'KiB'</code><code>>2097152<</code><code>/memory</code><code>></code>
<code> </code><code><currentMemory unit=</code><code>'KiB'</code><code>>2097152<</code><code>/currentMemory</code><code>></code>
<code> </code><code><vcpu placement=</code><code>'static'</code><code>>2<</code><code>/vcpu</code><code>></code>
<code> </code><code><os></code>
<code> </code><code><</code><code>type</code> <code>arch=</code><code>'x86_64'</code> <code>machine=</code><code>'rhel6.6.0'</code><code>>hvm<</code><code>/type</code><code>></code>
<code> </code><code><boot dev=</code><code>'hd'</code><code>/></code>
<code> </code><code><</code><code>/os</code><code>></code>
<code> </code><code><features></code>
<code> </code><code><acpi/></code>
<code> </code><code><apic/></code>
<code> </code><code><pae/></code>
<code> </code><code><</code><code>/features</code><code>></code>
<code> </code><code><clock offset=</code><code>'utc'</code><code>/></code>
<code> </code><code><on_poweroff>destroy<</code><code>/on_poweroff</code><code>></code>
<code> </code><code><on_reboot>restart<</code><code>/on_reboot</code><code>></code>
<code> </code><code><on_crash>restart<</code><code>/on_crash</code><code>></code>
<code> </code><code><devices></code>
<code> </code><code><emulator></code><code>/usr/libexec/qemu-kvm</code><code><</code><code>/emulator</code><code>></code>
<code> </code><code><disk </code><code>type</code><code>=</code><code>'file'</code> <code>device=</code><code>'disk'</code><code>></code>
<code> </code><code><driver name=</code><code>'qemu'</code> <code>type</code><code>=</code><code>'raw'</code> <code>cache=</code><code>'none'</code><code>/></code>
<code> </code><code><</code><code>source</code> <code>file</code><code>=</code><code>'/data/kvm/Ser08R2-01.img'</code><code>/></code>
<code> </code><code><target dev=</code><code>'hda'</code> <code>bus=</code><code>'ide'</code><code>/></code>
<code> </code><code><address </code><code>type</code><code>=</code><code>'drive'</code> <code>controller=</code><code>'0'</code> <code>bus=</code><code>'0'</code> <code>target=</code><code>'0'</code> <code>unit=</code><code>'0'</code><code>/></code>
<code> </code><code><</code><code>/disk</code><code>></code>
<code> </code><code><disk </code><code>type</code><code>=</code><code>'block'</code> <code>device=</code><code>'cdrom'</code><code>></code>
<code> </code><code><driver name=</code><code>'qemu'</code> <code>type</code><code>=</code><code>'raw'</code><code>/></code>
<code> </code><code><target dev=</code><code>'hdc'</code> <code>bus=</code><code>'ide'</code><code>/></code>
<code> </code><code><</code><code>readonly</code><code>/></code>
<code> </code><code><address </code><code>type</code><code>=</code><code>'drive'</code> <code>controller=</code><code>'0'</code> <code>bus=</code><code>'1'</code> <code>target=</code><code>'0'</code> <code>unit=</code><code>'0'</code><code>/></code>
<code> </code><code><controller </code><code>type</code><code>=</code><code>'usb'</code> <code>index=</code><code>'0'</code> <code>model=</code><code>'ich9-ehci1'</code><code>></code>
<code> </code><code><address </code><code>type</code><code>=</code><code>'pci'</code> <code>domain=</code><code>'0x0000'</code> <code>bus=</code><code>'0x00'</code> <code>slot=</code><code>'0x04'</code> <code>function</code><code>=</code><code>'0x7'</code><code>/></code>
<code> </code><code><</code><code>/controller</code><code>></code>
<code> </code><code><controller </code><code>type</code><code>=</code><code>'usb'</code> <code>index=</code><code>'0'</code> <code>model=</code><code>'ich9-uhci1'</code><code>></code>
<code> </code><code><master startport=</code><code>'0'</code><code>/></code>
<code> </code><code><address </code><code>type</code><code>=</code><code>'pci'</code> <code>domain=</code><code>'0x0000'</code> <code>bus=</code><code>'0x00'</code> <code>slot=</code><code>'0x04'</code> <code>function</code><code>=</code><code>'0x0'</code> <code>multifunction=</code><code>'on'</code><code>/></code>
<code> </code><code><controller </code><code>type</code><code>=</code><code>'usb'</code> <code>index=</code><code>'0'</code> <code>model=</code><code>'ich9-uhci2'</code><code>></code>
<code> </code><code><master startport=</code><code>'2'</code><code>/></code>
<code> </code><code><address </code><code>type</code><code>=</code><code>'pci'</code> <code>domain=</code><code>'0x0000'</code> <code>bus=</code><code>'0x00'</code> <code>slot=</code><code>'0x04'</code> <code>function</code><code>=</code><code>'0x1'</code><code>/></code>
<code> </code><code><controller </code><code>type</code><code>=</code><code>'usb'</code> <code>index=</code><code>'0'</code> <code>model=</code><code>'ich9-uhci3'</code><code>></code>
<code> </code><code><master startport=</code><code>'4'</code><code>/></code>
<code> </code><code><address </code><code>type</code><code>=</code><code>'pci'</code> <code>domain=</code><code>'0x0000'</code> <code>bus=</code><code>'0x00'</code> <code>slot=</code><code>'0x04'</code> <code>function</code><code>=</code><code>'0x2'</code><code>/></code>
<code> </code><code><controller </code><code>type</code><code>=</code><code>'ide'</code> <code>index=</code><code>'0'</code><code>></code>
<code> </code><code><address </code><code>type</code><code>=</code><code>'pci'</code> <code>domain=</code><code>'0x0000'</code> <code>bus=</code><code>'0x00'</code> <code>slot=</code><code>'0x01'</code> <code>function</code><code>=</code><code>'0x1'</code><code>/></code>
<code> </code><code><interface </code><code>type</code><code>=</code><code>'bridge'</code><code>></code>
<code> </code><code><mac address=</code><code>'52:54:00:cd:11:41'</code><code>/></code>
<code> </code><code><</code><code>source</code> <code>bridge=</code><code>'br0'</code><code>/></code>
<code> </code><code><address </code><code>type</code><code>=</code><code>'pci'</code> <code>domain=</code><code>'0x0000'</code> <code>bus=</code><code>'0x00'</code> <code>slot=</code><code>'0x03'</code> <code>function</code><code>=</code><code>'0x0'</code><code>/></code>
<code> </code><code><</code><code>/interface</code><code>></code>
<code> </code><code><serial </code><code>type</code><code>=</code><code>'pty'</code><code>></code>
<code> </code><code><target port=</code><code>'0'</code><code>/></code>
<code> </code><code><</code><code>/serial</code><code>></code>
<code> </code><code><console </code><code>type</code><code>=</code><code>'pty'</code><code>></code>
<code> </code><code><target </code><code>type</code><code>=</code><code>'serial'</code> <code>port=</code><code>'0'</code><code>/></code>
<code> </code><code><</code><code>/console</code><code>></code>
<code> </code><code><input </code><code>type</code><code>=</code><code>'mouse'</code> <code>bus=</code><code>'ps2'</code><code>/></code>
<code> </code><code><graphics </code><code>type</code><code>=</code><code>'vnc'</code> <code>port=</code><code>'5911'</code> <code>autoport=</code><code>'no'</code> <code>listen=</code><code>'0.0.0.0'</code><code>></code>
<code> </code><code><listen </code><code>type</code><code>=</code><code>'address'</code> <code>address=</code><code>'0.0.0.0'</code><code>/></code>
<code> </code><code><</code><code>/graphics</code><code>></code>
<code> </code><code><video></code>
<code> </code><code><model </code><code>type</code><code>=</code><code>'cirrus'</code> <code>vram=</code><code>'9216'</code> <code>heads=</code><code>'1'</code><code>/></code>
<code> </code><code><address </code><code>type</code><code>=</code><code>'pci'</code> <code>domain=</code><code>'0x0000'</code> <code>bus=</code><code>'0x00'</code> <code>slot=</code><code>'0x02'</code> <code>function</code><code>=</code><code>'0x0'</code><code>/></code>
<code> </code><code><</code><code>/video</code><code>></code>
<code> </code><code><memballoon model=</code><code>'virtio'</code><code>></code>
<code> </code><code><address </code><code>type</code><code>=</code><code>'pci'</code> <code>domain=</code><code>'0x0000'</code> <code>bus=</code><code>'0x00'</code> <code>slot=</code><code>'0x05'</code> <code>function</code><code>=</code><code>'0x0'</code><code>/></code>
<code> </code><code><</code><code>/memballoon</code><code>></code>
<code> </code><code><</code><code>/devices</code><code>></code>
<code><</code><code>/domain</code><code>></code>
# virsh console oeltest01
(1) 挂起伺服器
# virsh suspend CentOS6.5-01
<a href="https://s4.51cto.com/oss/201711/22/ccac7a39f768c9338e3d77a8f639ee97.png-wh_500x0-wm_3-wmp_4-s_3730880922.png" target="_blank"></a>
(2) 恢複伺服器
# virsh resume CentOS6.5-01
virsh指令豐富。可以執行各種維護任務,本文隻是從維護與管理的角度例舉了常用的指令,為該指令的使用提供一個思路。
本文轉自 dengaosky 51CTO部落格,原文連結:http://blog.51cto.com/dengaosky/1984011,如需轉載請自行聯系原作者