KVM虚拟化笔记(四)------kvm虚拟机日常管理

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

KVM虚拟化笔记(四)------kvm虚拟机日常管理

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


上一篇:深入浅出空间索引:2


下一篇:《深入理解Hadoop(原书第2版)》——1.4大数据和事务性系统