一,查看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