天天看点

kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置

KVM虚拟化学习笔记系列文章列表

----------------------------------------

kvm虚拟化学习笔记(一)之kvm虚拟化环境安装

<a href="http://koumm.blog.51cto.com/703525/1288795" target="_blank">http://koumm.blog.51cto.com/703525/1288795</a>

kvm虚拟化学习笔记(二)之linux kvm虚拟机安装 

<a href="http://koumm.blog.51cto.com/703525/1289627" target="_blank">http://koumm.blog.51cto.com/703525/1289627</a>

kvm虚拟化学习笔记(三)之windows kvm虚拟机安装

<a href="http://koumm.blog.51cto.com/703525/1290191" target="_blank">http://koumm.blog.51cto.com/703525/1290191</a>

kvm虚拟化学习笔记(四)之kvm虚拟机日常管理与配置

<a href="http://koumm.blog.51cto.com/703525/1290269" target="_blank">http://koumm.blog.51cto.com/703525/1290269</a>

kvm虚拟化学习笔记(五)之windows虚拟机性能调整

<a href="http://koumm.blog.51cto.com/703525/1290682" target="_blank">http://koumm.blog.51cto.com/703525/1290682</a>

kvm虚拟化学习笔记(六)之kvm虚拟机控制台登录配置

<a href="http://koumm.blog.51cto.com/703525/1290996" target="_blank">http://koumm.blog.51cto.com/703525/1290996</a>

kvm虚拟化学习笔记(七)之kvm虚拟机克隆

<a href="http://koumm.blog.51cto.com/703525/1291793" target="_blank">http://koumm.blog.51cto.com/703525/1291793</a>

kvm虚拟化学习笔记(八)之kvm虚拟机vnc配置

<a href="http://koumm.blog.51cto.com/703525/1291803" target="_blank">http://koumm.blog.51cto.com/703525/1291803</a>

kvm虚拟化学习笔记(九)之kvm虚拟机时间配置

<a href="http://koumm.blog.51cto.com/703525/1291862" target="_blank">http://koumm.blog.51cto.com/703525/1291862</a>

kvm虚拟化学习笔记(十)之kvm虚拟机快照备份

<a href="http://koumm.blog.51cto.com/703525/1291893" target="_blank">http://koumm.blog.51cto.com/703525/1291893</a>

kvm虚拟化学习笔记(十一)之kvm虚拟机扩展磁盘空间

<a href="http://koumm.blog.51cto.com/703525/1292146" target="_blank">http://koumm.blog.51cto.com/703525/1292146</a>

kvm虚拟化学习笔记(十二)之kvm linux虚拟机在线扩展磁盘

<a href="http://koumm.blog.51cto.com/703525/1295296" target="_blank">http://koumm.blog.51cto.com/703525/1295296</a>

kvm虚拟化学习笔记(十三)之kvm虚拟机磁盘文件读取小结

<a href="http://koumm.blog.51cto.com/703525/1298845" target="_blank">http://koumm.blog.51cto.com/703525/1298845</a>

kvm虚拟化学习笔记(十四)之kvm虚拟机静态迁移

<a href="http://koumm.blog.51cto.com/703525/1298852" target="_blank">http://koumm.blog.51cto.com/703525/1298852</a>

kvm虚拟化学习笔记(十五)之kvm虚拟机动态迁移

<a href="http://koumm.blog.51cto.com/703525/1300783" target="_blank">http://koumm.blog.51cto.com/703525/1300783</a>

kvm虚拟化学习笔记(十六)之kvm虚拟化存储池配置

<a href="http://koumm.blog.51cto.com/703525/1304196" target="_blank">http://koumm.blog.51cto.com/703525/1304196</a>

kvm虚拟化学习笔记(十七)之KVM到KVM之v2v迁移

<a href="http://koumm.blog.51cto.com/703525/1304271" target="_blank">http://koumm.blog.51cto.com/703525/1304271</a>

kvm虚拟化学习笔记(十八)之ESXi到KVM之v2v迁移

<a href="http://koumm.blog.51cto.com/703525/1304461" target="_blank">http://koumm.blog.51cto.com/703525/1304461</a>

kvm虚拟化学习笔记(十九)之convirt集中管理平台搭建

<a href="http://koumm.blog.51cto.com/703525/1305553" target="_blank">http://koumm.blog.51cto.com/703525/1305553</a>

kvm虚拟化学习笔记(二十)之convirt安装linux系统

<a href="http://koumm.blog.51cto.com/703525/1306526" target="_blank">http://koumm.blog.51cto.com/703525/1306526</a>

KVM虚拟机的管理主要是通过virsh命令对虚拟机进行管理。

(1) KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/

autostart目录是配置kvm虚拟机开机自启动目录。   

<a href="http://koumm.blog.51cto.com/attachment/201309/6/703525_1378480473E6C5.png" target="_blank"></a>

(2) virsh命令帮助

# virsh -help

或直接virsh命令和,再执行子命令。如下所示。

[root@node1 ~]# virsh   

欢迎使用 virsh,虚拟化的交互式终端。 

输入:'help' 来获得命令的帮助信息   

'quit' 退出 

virsh # help   

……

(3) 查看kvm虚拟机状态

# virsh list --all

<a href="http://koumm.blog.51cto.com/attachment/201309/6/703525_1378480475NhF9.png" target="_blank"></a>

# virsh start oeltest01

<a href="http://koumm.blog.51cto.com/attachment/201309/6/703525_1378480476mX7K.png" target="_blank"></a>

(1) 关机

默认情况下virsh工具不能对linux虚拟机进行关机操作,linux操作系统需要开启与启动acpid服务。在安装KVM linux虚拟机必须配置此服务。

# chkconfig acpid on   

# service acpid restart

virsh关机

# virsh shutdown oeltest01

<a href="http://koumm.blog.51cto.com/attachment/201309/6/703525_1378480477Gp0U.png" target="_blank"></a>

(2) 强制关闭电源

# virsh destroy wintest01

<a href="http://koumm.blog.51cto.com/attachment/201309/6/703525_13784804782tFD.png" target="_blank"></a>

# virsh create /etc/libvirt/qemu/wintest01.xml

<a href="http://koumm.blog.51cto.com/attachment/201309/6/703525_13784804806HvH.png" target="_blank"></a>

# virsh autostart oeltest01

<a href="http://koumm.blog.51cto.com/attachment/201309/6/703525_1378480484fiVa.png" target="_blank"></a>

autostart目录是kvm虚拟机开机自启动目录,可以看到该目录中有KVM配置文件链接。

# virsh dumpxml wintest01 &gt; /etc/libvirt/qemu/wintest02.xml 

<a href="http://koumm.blog.51cto.com/attachment/201309/6/703525_1378480487jzlb.png" target="_blank"></a>

KVM虚拟机配置文件可以通过这种方式进行备份。

(1)  删除kvm虚拟机

# virsh undefine wintest01 

说明:该命令只是删除wintest01的配置文件,并不删除虚拟磁盘文件。如下图所示。

<a href="http://koumm.blog.51cto.com/attachment/201309/6/703525_1378480492b6Ch.png" target="_blank"></a>

(2)  重新定义虚拟机配置文件

通过导出备份的配置文件恢复原KVM虚拟机的定义,并重新定义虚拟机。

# mv /etc/libvirt/qemu/wintest02.xml /etc/libvirt/qemu/wintest01.xml 

# virsh define /etc/libvirt/qemu/wintest01.xml 

# virsh edit wintest01 

virsh edit将调用vi命令编辑/etc/libvirt/qemu/wintest01.xml配置文件。也可以直接通过vi命令进行编辑,修改,保存。

可以但不建议直接通过vi编辑。

<a href="http://koumm.blog.51cto.com/attachment/201309/6/703525_1378480501gyhF.png" target="_blank"></a>

[root@node1 qemu]# vi /etc/libvirt/qemu/wintest01.xml 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

<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 </code><code>this</code> <code>xml configuration should be made using:</code>

<code>virsh edit wintest01</code>

<code>or other application using the libvirt API.</code>

<code>--&gt;</code>

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

<code>&lt;name&gt;wintest01&lt;/name&gt;</code>

<code>&lt;uuid&gt;fe31ea48-7d6a-f3cb-cede-2f9bd9dec2bd&lt;/uuid&gt;</code>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

<code>&lt;source file=</code><code>'/data/wintest01.img'</code><code>/&gt;</code>

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

<code>&lt;address type=</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>&lt;/disk&gt;</code>

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

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

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

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

<code>&lt;address type=</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>&lt;controller type=</code><code>'usb'</code> <code>index=</code><code>'0'</code><code>&gt;</code>

<code>&lt;address type=</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>'0x2'</code><code>/&gt;</code>

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

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

<code>&lt;address type=</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>&lt;</code><code>interface</code> <code>type=</code><code>'bridge'</code><code>&gt;</code>

<code>&lt;mac address=</code><code>'52:54:00:2b:2f:fe'</code><code>/&gt;</code>

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

<code>&lt;address type=</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>&lt;/</code><code>interface</code><code>&gt;</code>

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

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

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

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

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

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

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

<code>&lt;graphics type=</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>&lt;listen type=</code><code>'address'</code> <code>address=</code><code>'0.0.0.0'</code><code>/&gt;</code>

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

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

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

<code>&lt;address type=</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>&lt;/video&gt;</code>

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

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

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

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

<code>&lt;seclabel type=</code><code>'none'</code><code>/&gt;</code>

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

配置virsh console见下文

<a href="http://koumm.blog.51cto.com/703525/1290996" target="_blank">kvm虚拟化学习笔记(六)之kvm虚拟机控制台登录配置</a>

# virsh console oeltest01 

(1) 挂起服务器

# virsh suspend oeltest01 

<a href="http://koumm.blog.51cto.com/attachment/201309/6/703525_1378480506AjsY.png" target="_blank"></a>

(2) 恢复服务器

# virsh  resume oeltest01 

<a href="http://koumm.blog.51cto.com/attachment/201309/6/703525_1378480508peWv.png" target="_blank"></a>

virsh命令丰富。可以执行各种维护任务,本文只是从维护与管理的角度例举了常用的命令,为该命令的使用提供一个思路。

本文转自 koumm 51CTO博客,原文链接:http://blog.51cto.com/koumm/1290269,如需转载请自行联系原作者

继续阅读