一,查看KVM虚拟机配置文件及运行状态
1,KVM虚拟机默认的配置文件路径:/etc/libvirt/qemu/
而autostart目录是配置kvm虚拟机开机自启动的目录。
[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命令帮助
[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进行退出
[root@KVM autostart]# virsh Welcome to virsh, the virtualization interactive terminal. Type: 'help' for help with commands 'quit' to quit virsh #
3,查看kvm虚拟机状态
[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,虚拟机的开机:
[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虚拟机必须配置此服务。
[root@localhost ~]#chkconfig acpid on [root@localhost ~]#service acpid restart
然后使用virsh进行关机
[root@KVM autostart]# virsh shutdown hadoop1 Domain hadoop1 is being shutdown
(2)强制关闭电源(就是直接断电,重要的业务不要这么操作)
[root@KVM autostart]# virsh destroy hadoop4 Domain hadoop4 destroyed
6,通过配置文件启动虚拟机
[root@KVM qemu]# virsh create /etc/libvirt/qemu/hadoop4.xml Domain hadoop4 created from /etc/libvirt/qemu/hadoop4.xml
7,配置开机自启动虚拟机(autostart目录是kvm虚拟机开机自启动目录,可以看到该目录中有kvm配置文件的链接)
[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虚拟机配置文件,可以通过这种方式进行配置文件的备份。
[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虚拟机是由配置文件和磁盘文件组成,如果删除的话,把两个文件都要删除
[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 /p_w_picpaths/test/hadoop4.img ###删除磁盘文件 [root@KVM qemu]#
10,重新定义虚拟机配置文件。可通过刚才导出的配置文件来恢复虚拟机,并重新定义
[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也是可以修改的,但不建议。
[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='/p_w_picpaths/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也可以进行编辑修改该配置文件
[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='/p_w_picpaths/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)挂起服务器
[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)恢复服务器
[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进行查询。