一,查看KVM虚拟机配置文件及运行状态
1,KVM虚拟机默认的配置文件路径:/etc/libvirt/qemu/
而autostart目录是配置kvm虚拟机开机自启动的目录。
1
2
3
4
5
6
7
8
9
|
[root@KVM qemu] # cd /etc/libvirt/qemu
[root@KVM qemu] # ll
total 24 drwxr-xr-x 2 root root 4096 Feb 2 15:03 autostart ###开机自启动目录
-rw------- 1 root root 2998 Feb 2 13:54 hadoop1.xml -rw------- 1 root root 2988 Feb 2 11:39 hadoop2.xml -rw------- 1 root root 2965 Feb 2 14:03 hadoop4.xml drwx------ 3 root root 4096 Jan 26 16:47 networks -rw------- 1 root root 3036 Feb 2 15:52 win7.xml |
2,virsh命令帮助
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
[root@KVM autostart] # virsh --help
virsh [options]... [<command_string>] virsh [options]... < command > [args...]
options:
-c | --connect=URI hypervisor connection URI
-r | -- readonly connect readonly
-d | --debug=NUM debug level [0-4]
-h | --help this help
-q | --quiet quiet mode
-t | --timing print timing information
-l | --log=FILE output logging to file
- v short version
-V long version
--version[=TYPE] version, TYPE is short or long (default short)
-e | --escape <char> set escape sequence for console
|
或者直接输入virsh,进入虚拟化交互式终端,输入exit或quit进行退出
1
2
3
4
5
|
[root@KVM autostart] # virsh
Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands
'quit' to quit
virsh #
|
3,查看kvm虚拟机状态
1
2
3
4
5
6
7
8
|
[root@KVM autostart] # virsh list --all
Id Name State
---------------------------------------------------- 21 win7 running
23 hadoop4 running
- hadoop1 shut off
- hadoop2 shut off
- oeltest01 shut off
|
4,虚拟机的开机:
1
2
3
4
5
6
7
|
[root@KVM autostart] # virsh start hadoop1
Domain hadoop1 started [root@KVM autostart] # virsh list --all
Id Name State
---------------------------------------------------- 21 win7 running
24 hadoop1 running
|
5,虚拟机的关机或断电
(1)默认情况下virsh工具是不能对Linux虚拟机进行关机操作的,需要开启acpid服务。在安装kvm Linux虚拟机必须配置此服务。
1
2
|
[root@localhost ~] #chkconfig acpid on
[root@localhost ~] #service acpid restart
|
然后使用virsh进行关机
1
2
|
[root@KVM autostart] # virsh shutdown hadoop1
Domain hadoop1 is being shutdown
|
(2)强制关闭电源(就是直接断电,重要的业务不要这么操作)
1
2
|
[root@KVM autostart] # virsh destroy hadoop4
Domain hadoop4 destroyed |
6,通过配置文件启动虚拟机
1
2
|
[root@KVM qemu] # virsh create /etc/libvirt/qemu/hadoop4.xml
Domain hadoop4 created from /etc/libvirt/qemu/hadoop4 .xml
|
7,配置开机自启动虚拟机(autostart目录是kvm虚拟机开机自启动目录,可以看到该目录中有kvm配置文件的链接)
1
2
3
4
5
6
|
[root@KVM autostart] # virsh autostart hadoop4
Domain hadoop4 marked as autostarted [root@KVM autostart] # ll
total 0 lrwxrwxrwx 1 root root 29 Feb 2 17:09 hadoop4.xml -> /etc/libvirt/qemu/hadoop4 .xml
lrwxrwxrwx 1 root root 26 Feb 2 15:03 win7.xml -> /etc/libvirt/qemu/win7 .xml
|
8,导出kvm虚拟机配置文件,可以通过这种方式进行配置文件的备份。
1
2
3
4
5
|
[root@KVM qemu] # virsh dumpxml hadoop4 > /etc/libvirt/qemu/hadoop4.bak.xml
[root@KVM qemu] # ll
total 32 drwxr-xr-x 2 root root 4096 Feb 2 17:09 autostart -rw-r--r-- 1 root root 1 Feb 2 17:13 hadoop1.bak.xml |
9,删除虚拟机,由于kvm虚拟机是由配置文件和磁盘文件组成,如果删除的话,把两个文件都要删除
1
2
3
4
5
6
7
8
9
10
11
12
13
|
[root@KVM qemu] # virsh undefine hadoop4 ###删除hadoop.xml文件,但没有删除磁盘文件
Domain hadoop4 has been undefined [root@KVM qemu] # ll
total 28 drwxr-xr-x 2 root root 4096 Feb 2 17:18 autostart -rw-r--r-- 1 root root 1 Feb 2 17:13 hadoop1.bak.xml -rw------- 1 root root 2998 Feb 2 13:54 hadoop1.xml -rw------- 1 root root 2988 Feb 2 11:39 hadoop2.xml -rw-r--r-- 1 root root 3205 Feb 2 17:13 hadoop4.bak.xml drwx------ 3 root root 4096 Jan 26 16:47 networks -rw------- 1 root root 3036 Feb 2 15:52 win7.xml [root@KVM qemu] # rm -rf /images/test/hadoop4.img ###删除磁盘文件
[root@KVM qemu] #
|
10,重新定义虚拟机配置文件。可通过刚才导出的配置文件来恢复虚拟机,并重新定义
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
[root@KVM qemu] # mv hadoop4.bak.xml hadoop4.xml ###恢复配置文件
[root@KVM qemu] # ll
total 28 drwxr-xr-x 2 root root 4096 Feb 2 17:18 autostart -rw-r--r-- 1 root root 1 Feb 2 17:13 hadoop1.bak.xml -rw------- 1 root root 2998 Feb 2 13:54 hadoop1.xml -rw------- 1 root root 2988 Feb 2 11:39 hadoop2.xml -rw-r--r-- 1 root root 3205 Feb 2 17:13 hadoop4.xml drwx------ 3 root root 4096 Jan 26 16:47 networks -rw------- 1 root root 3036 Feb 2 15:52 win7.xml [root@KVM qemu] # virsh define /etc/libvirt/qemu/hadoop4.xml ###重新定义配置文件
Domain hadoop4 defined from /etc/libvirt/qemu/hadoop4 .xml
[root@KVM qemu] # virsh list --all
Id Name State
---------------------------------------------------- 21 win7 running
24 hadoop1 running
25 hadoop2 running
- hadoop4 shut off ###定义生效
- oeltest01 shut off
|
11,编辑kvm虚拟机配置文件可以使用virsh edit 虚拟机名。不过也可以直接通过vi /etc/libvirt/qemu/hadoop4.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
71
72
73
74
75
76
|
[root@KVM qemu] # virsh edit hadoop4
<domain type = 'qemu' >
<name>hadoop4< /name >
<uuid>586b3cae-943f-d283-d8e7-ed62b01bfa34< /uuid >
<memory unit= 'KiB' >1048576< /memory >
<currentMemory unit= 'KiB' >1048576< /currentMemory >
<vcpu placement= 'static' >1< /vcpu >
<os>
< type arch= 'x86_64' machine= 'rhel6.6.0' >hvm< /type >
<boot dev= 'hd' />
< /os >
<features>
<acpi/>
<apic/>
<pae/>
< /features >
<clock offset= 'utc' />
<on_poweroff>destroy< /on_poweroff >
<on_reboot>restart< /on_reboot >
<on_crash>restart< /on_crash >
<devices>
<emulator> /usr/libexec/qemu-kvm < /emulator >
<disk type = 'file' device= 'disk' >
<driver name= 'qemu' type = 'raw' cache= 'none' />
< source file = '/images/test/hadoop4.img' />
<target dev= 'hda' bus= 'ide' />
<address type = 'drive' controller= '0' bus= '0' target= '0' unit= '0' />
< /disk >
<disk type = 'block' device= 'cdrom' >
<driver name= 'qemu' type = 'raw' />
<target dev= 'hdc' bus= 'ide' />
< readonly />
<address type = 'drive' controller= '0' bus= '1' target= '0' unit= '0' />
< /disk >
<controller type = 'usb' index= '0' model= 'ich9-ehci1' >
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x04' function = '0x7' />
< /controller >
<controller type = 'usb' index= '0' model= 'ich9-uhci1' >
<master startport= '0' />
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x04' function = '0x0' multifunction= 'on' />
< /controller >
<controller type = 'usb' index= '0' model= 'ich9-uhci2' >
<master startport= '2' />
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x04' function = '0x1' />
< /controller >
<controller type = 'usb' index= '0' model= 'ich9-uhci3' >
<master startport= '4' />
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x04' function = '0x2' />
< /controller >
<controller type = 'ide' index= '0' >
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x01' function = '0x1' />
< /controller >
<interface type = 'network' >
<mac address= '52:54:00:fe:f5:a3' />
< source network= 'default' />
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x03' function = '0x0' />
< /interface >
<serial type = 'pty' >
<target port= '0' />
< /serial >
<console type = 'pty' >
<target type = 'serial' port= '0' />
< /console >
<input type = 'mouse' bus= 'ps2' />
<graphics type = 'vnc' port= '5914' autoport= 'no' listen= '0.0.0.0' >
<listen type = 'address' address= '0.0.0.0' />
< /graphics >
<video>
<model type = 'cirrus' vram= '9216' heads= '1' />
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x02' function = '0x0' />
< /video >
<memballoon model= 'virtio' >
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x05' function = '0x0' />
< /memballoon >
< /devices >
< /domain >
|
使用vi也可以进行编辑修改该配置文件
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
71
72
73
74
75
76
77
78
79
80
81
82
|
[root@KVM qemu] # vi /etc/libvirt/qemu/hadoop4.xml
<!-- WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE OVERWRITTEN AND LOST. Changes to this xml configuration should be made using: virsh edit hadoop4
or other application using the libvirt API. --> <domain type = 'qemu' >
<name>hadoop4< /name >
<uuid>586b3cae-943f-d283-d8e7-ed62b01bfa34< /uuid >
<memory unit= 'KiB' >1048576< /memory >
<currentMemory unit= 'KiB' >1048576< /currentMemory >
<vcpu placement= 'static' >1< /vcpu >
<os>
< type arch= 'x86_64' machine= 'rhel6.6.0' >hvm< /type >
<boot dev= 'hd' />
< /os >
<features>
<acpi/>
<apic/>
<pae/>
< /features >
<clock offset= 'utc' />
<on_poweroff>destroy< /on_poweroff >
<on_reboot>restart< /on_reboot >
<on_crash>restart< /on_crash >
<devices>
<emulator> /usr/libexec/qemu-kvm < /emulator >
<disk type = 'file' device= 'disk' >
<driver name= 'qemu' type = 'raw' cache= 'none' />
< source file = '/images/test/hadoop4.img' />
<target dev= 'hda' bus= 'ide' />
<address type = 'drive' controller= '0' bus= '0' target= '0' unit= '0' />
< /disk >
<disk type = 'block' device= 'cdrom' >
<driver name= 'qemu' type = 'raw' />
<target dev= 'hdc' bus= 'ide' />
< readonly />
<address type = 'drive' controller= '0' bus= '1' target= '0' unit= '0' />
< /disk >
<controller type = 'usb' index= '0' model= 'ich9-ehci1' >
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x04' function = '0x7' />
< /controller >
<controller type = 'usb' index= '0' model= 'ich9-uhci1' >
<master startport= '0' />
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x04' function = '0x0' multifunction= 'on' />
< /controller >
<controller type = 'usb' index= '0' model= 'ich9-uhci2' >
<master startport= '2' />
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x04' function = '0x1' />
< /controller >
<controller type = 'usb' index= '0' model= 'ich9-uhci3' >
<master startport= '4' />
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x04' function = '0x2' />
< /controller >
<controller type = 'ide' index= '0' >
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x01' function = '0x1' />
< /controller >
<interface type = 'network' >
<mac address= '52:54:00:fe:f5:a3' />
< source network= 'default' />
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x03' function = '0x0' />
< /interface >
<serial type = 'pty' >
<target port= '0' />
< /serial >
<console type = 'pty' >
<target type = 'serial' port= '0' />
< /console >
<input type = 'mouse' bus= 'ps2' />
<graphics type = 'vnc' port= '5914' autoport= 'no' listen= '0.0.0.0' >
<listen type = 'address' address= '0.0.0.0' />
< /graphics >
<video>
<model type = 'cirrus' vram= '9216' heads= '1' />
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x02' function = '0x0' />
< /video >
<memballoon model= 'virtio' >
<address type = 'pci' domain= '0x0000' bus= '0x00' slot= '0x05' function = '0x0' />
< /memballoon >
< /devices >
< /domain >
|
12,其他virsh命令:
(1)挂起服务器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
[root@KVM qemu] # virsh list --all
Id Name State
---------------------------------------------------- 21 win7 running
24 hadoop1 running
25 hadoop2 running
- hadoop4 shut off
- oeltest01 shut off
[root@KVM qemu] # virsh suspend hadoop1
Domain hadoop1 suspended [root@KVM qemu] # virsh list --all
Id Name State
---------------------------------------------------- 21 win7 running
24 hadoop1 paused
25 hadoop2 running
- hadoop4 shut off
- oeltest01 shut off
|
(2)恢复服务器
1
2
3
4
5
6
7
8
9
10
|
[root@KVM qemu] # virsh resume hadoop1
Domain hadoop1 resumed [root@KVM qemu] # virsh list --all
Id Name State
---------------------------------------------------- 21 win7 running
24 hadoop1 running
25 hadoop2 running
- hadoop4 shut off
- oeltest01 shut off
|
如果想知道更多的命令,可以通过virsh --help进行查询。
本文转自 lqbyz 51CTO博客,原文链接:http://blog.51cto.com/liqingbiao/1740740