天天看點

kvm虛拟化學習筆記(四)之kvm虛拟機日常管理與配置

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 &gt; /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>&lt;!--</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>--&gt;</code>

<code>&lt;domain </code><code>type</code><code>=</code><code>'kvm'</code><code>&gt;</code>

<code>  </code><code>&lt;name&gt;Ser08R2-01&lt;</code><code>/name</code><code>&gt;</code>

<code>  </code><code>&lt;uuid&gt;9814b16e-d573-ace0-7bb3-b206fc66b8e1&lt;</code><code>/uuid</code><code>&gt;</code>

<code>  </code><code>&lt;memory unit=</code><code>'KiB'</code><code>&gt;2097152&lt;</code><code>/memory</code><code>&gt;</code>

<code>  </code><code>&lt;currentMemory unit=</code><code>'KiB'</code><code>&gt;2097152&lt;</code><code>/currentMemory</code><code>&gt;</code>

<code>  </code><code>&lt;vcpu placement=</code><code>'static'</code><code>&gt;2&lt;</code><code>/vcpu</code><code>&gt;</code>

<code>  </code><code>&lt;os&gt;</code>

<code>    </code><code>&lt;</code><code>type</code> <code>arch=</code><code>'x86_64'</code> <code>machine=</code><code>'rhel6.6.0'</code><code>&gt;hvm&lt;</code><code>/type</code><code>&gt;</code>

<code>    </code><code>&lt;boot dev=</code><code>'hd'</code><code>/&gt;</code>

<code>  </code><code>&lt;</code><code>/os</code><code>&gt;</code>

<code>  </code><code>&lt;features&gt;</code>

<code>    </code><code>&lt;acpi/&gt;</code>

<code>    </code><code>&lt;apic/&gt;</code>

<code>    </code><code>&lt;pae/&gt;</code>

<code>  </code><code>&lt;</code><code>/features</code><code>&gt;</code>

<code>  </code><code>&lt;clock offset=</code><code>'utc'</code><code>/&gt;</code>

<code>  </code><code>&lt;on_poweroff&gt;destroy&lt;</code><code>/on_poweroff</code><code>&gt;</code>

<code>  </code><code>&lt;on_reboot&gt;restart&lt;</code><code>/on_reboot</code><code>&gt;</code>

<code>  </code><code>&lt;on_crash&gt;restart&lt;</code><code>/on_crash</code><code>&gt;</code>

<code>  </code><code>&lt;devices&gt;</code>

<code>    </code><code>&lt;emulator&gt;</code><code>/usr/libexec/qemu-kvm</code><code>&lt;</code><code>/emulator</code><code>&gt;</code>

<code>    </code><code>&lt;disk </code><code>type</code><code>=</code><code>'file'</code> <code>device=</code><code>'disk'</code><code>&gt;</code>

<code>      </code><code>&lt;driver name=</code><code>'qemu'</code> <code>type</code><code>=</code><code>'raw'</code> <code>cache=</code><code>'none'</code><code>/&gt;</code>

<code>      </code><code>&lt;</code><code>source</code> <code>file</code><code>=</code><code>'/data/kvm/Ser08R2-01.img'</code><code>/&gt;</code>

<code>      </code><code>&lt;target dev=</code><code>'hda'</code> <code>bus=</code><code>'ide'</code><code>/&gt;</code>

<code>      </code><code>&lt;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>/&gt;</code>

<code>    </code><code>&lt;</code><code>/disk</code><code>&gt;</code>

<code>    </code><code>&lt;disk </code><code>type</code><code>=</code><code>'block'</code> <code>device=</code><code>'cdrom'</code><code>&gt;</code>

<code>      </code><code>&lt;driver name=</code><code>'qemu'</code> <code>type</code><code>=</code><code>'raw'</code><code>/&gt;</code>

<code>      </code><code>&lt;target dev=</code><code>'hdc'</code> <code>bus=</code><code>'ide'</code><code>/&gt;</code>

<code>      </code><code>&lt;</code><code>readonly</code><code>/&gt;</code>

<code>      </code><code>&lt;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>/&gt;</code>

<code>    </code><code>&lt;controller </code><code>type</code><code>=</code><code>'usb'</code> <code>index=</code><code>'0'</code> <code>model=</code><code>'ich9-ehci1'</code><code>&gt;</code>

<code>      </code><code>&lt;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>/&gt;</code>

<code>    </code><code>&lt;</code><code>/controller</code><code>&gt;</code>

<code>    </code><code>&lt;controller </code><code>type</code><code>=</code><code>'usb'</code> <code>index=</code><code>'0'</code> <code>model=</code><code>'ich9-uhci1'</code><code>&gt;</code>

<code>      </code><code>&lt;master startport=</code><code>'0'</code><code>/&gt;</code>

<code>      </code><code>&lt;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>/&gt;</code>

<code>    </code><code>&lt;controller </code><code>type</code><code>=</code><code>'usb'</code> <code>index=</code><code>'0'</code> <code>model=</code><code>'ich9-uhci2'</code><code>&gt;</code>

<code>      </code><code>&lt;master startport=</code><code>'2'</code><code>/&gt;</code>

<code>      </code><code>&lt;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>/&gt;</code>

<code>    </code><code>&lt;controller </code><code>type</code><code>=</code><code>'usb'</code> <code>index=</code><code>'0'</code> <code>model=</code><code>'ich9-uhci3'</code><code>&gt;</code>

<code>      </code><code>&lt;master startport=</code><code>'4'</code><code>/&gt;</code>

<code>      </code><code>&lt;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>/&gt;</code>

<code>    </code><code>&lt;controller </code><code>type</code><code>=</code><code>'ide'</code> <code>index=</code><code>'0'</code><code>&gt;</code>

<code>      </code><code>&lt;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>/&gt;</code>

<code>    </code><code>&lt;interface </code><code>type</code><code>=</code><code>'bridge'</code><code>&gt;</code>

<code>      </code><code>&lt;mac address=</code><code>'52:54:00:cd:11:41'</code><code>/&gt;</code>

<code>      </code><code>&lt;</code><code>source</code> <code>bridge=</code><code>'br0'</code><code>/&gt;</code>

<code>      </code><code>&lt;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>/&gt;</code>

<code>    </code><code>&lt;</code><code>/interface</code><code>&gt;</code>

<code>    </code><code>&lt;serial </code><code>type</code><code>=</code><code>'pty'</code><code>&gt;</code>

<code>      </code><code>&lt;target port=</code><code>'0'</code><code>/&gt;</code>

<code>    </code><code>&lt;</code><code>/serial</code><code>&gt;</code>

<code>    </code><code>&lt;console </code><code>type</code><code>=</code><code>'pty'</code><code>&gt;</code>

<code>      </code><code>&lt;target </code><code>type</code><code>=</code><code>'serial'</code> <code>port=</code><code>'0'</code><code>/&gt;</code>

<code>    </code><code>&lt;</code><code>/console</code><code>&gt;</code>

<code>    </code><code>&lt;input </code><code>type</code><code>=</code><code>'mouse'</code> <code>bus=</code><code>'ps2'</code><code>/&gt;</code>

<code>    </code><code>&lt;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>&gt;</code>

<code>      </code><code>&lt;listen </code><code>type</code><code>=</code><code>'address'</code> <code>address=</code><code>'0.0.0.0'</code><code>/&gt;</code>

<code>    </code><code>&lt;</code><code>/graphics</code><code>&gt;</code>

<code>    </code><code>&lt;video&gt;</code>

<code>      </code><code>&lt;model </code><code>type</code><code>=</code><code>'cirrus'</code> <code>vram=</code><code>'9216'</code> <code>heads=</code><code>'1'</code><code>/&gt;</code>

<code>      </code><code>&lt;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>/&gt;</code>

<code>    </code><code>&lt;</code><code>/video</code><code>&gt;</code>

<code>    </code><code>&lt;memballoon model=</code><code>'virtio'</code><code>&gt;</code>

<code>      </code><code>&lt;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>/&gt;</code>

<code>    </code><code>&lt;</code><code>/memballoon</code><code>&gt;</code>

<code>  </code><code>&lt;</code><code>/devices</code><code>&gt;</code>

<code>&lt;</code><code>/domain</code><code>&gt;</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,如需轉載請自行聯系原作者

繼續閱讀