http://www.it165.net/os/html/201309/6183.html
1、virt-install 启动虚机
virt-install \
-n www \
-r 2048 \
-f /var/kvm/images/www.img \
-s 20 \
--vcpus=2 \
--os-type linux \
--os-variant=debianwheezy \
--network bridge=br0 \
--nographics \
--location=‘http://mirrors.163.com/debian/dists/wheezy/main/installer-amd64/‘ \
--extra-args=‘console=tty0 console=ttyS0,115200n8 serial‘
其中location如果是网络的url可以网络启动虚机,但是选择包的时候应该尽量的少,保持一个基本的和SSH服务即可,不然下载很浪费资源。
2、克隆虚机
virt-clone -o debian001 -n debian002 -f /vHost/vm/debian002.img
3、导出虚机配置dumpxml
virsh dumpxml wintest01 > /etc/libvirt/qemu/wintest02.xml
KVM虚拟机的管理主要是通过virsh命令对虚拟机进行管理。
1. 查看KVM虚拟机配置文件及运行状态
(1) KVM虚拟机默认配置文件位置: /etc/libvirt/qemu/
autostart目录是配置kvm虚拟机开机自启动目录。
(2) virsh命令帮助
# virsh -help
或直接virsh命令和,再执行子命令。如下所示。
[[email protected] ~]# virsh
欢迎使用 virsh,虚拟化的交互式终端。
输入:‘help‘ 来获得命令的帮助信息
‘quit‘ 退出
virsh # help
……
(3) 查看kvm虚拟机状态
# virsh list --all
2. KVM虚拟机开机
# virsh start oeltest01
3. KVM虚拟机关机或断电
(1) 关机
默认情况下virsh工具不能对linux虚拟机进行关机操作,linux操作系统需要开启与启动acpid服务。在安装KVM linux虚拟机必须配置此服务。
# chkconfig acpid on
# service acpid restart
virsh关机
# virsh shutdown oeltest01
(2) 强制关闭电源
# virsh destroy wintest01
4. 通过配置文件启动虚拟机
# virsh create /etc/libvirt/qemu/wintest01.xml
5. 配置开机自启动虚拟机
# virsh autostart oeltest01
autostart目录是kvm虚拟机开机自启动目录,可以看到该目录中有KVM配置文件链接。
6. 导出KVM虚拟机配置文件
# virsh dumpxml wintest01 > /etc/libvirt/qemu/wintest02.xml
KVM虚拟机配置文件可以通过这种方式进行备份。
7. 添加与删除KVM虚拟机
(1) 删除kvm虚拟机
# virsh undefine wintest01
说明:该命令只是删除wintest01的配置文件,并不删除虚拟磁盘文件。如下图所示。
(2) 重新定义虚拟机配置文件
通过导出备份的配置文件恢复原KVM虚拟机的定义,并重新定义虚拟机。
# mv /etc/libvirt/qemu/wintest02.xml /etc/libvirt/qemu/wintest01.xml
# virsh define /etc/libvirt/qemu/wintest01.xml
8. 编辑KVM虚拟机配置文件
# virsh edit wintest01
virsh edit将调用vi命令编辑/etc/libvirt/qemu/wintest01.xml配置文件。也可以直接通过vi命令进行编辑,修改,保存。
可以但不建议直接通过vi编辑。
[[email protected] qemu]# vi /etc/libvirt/qemu/wintest01.xml
01.
&
lt
;!--
02.
WARNING: THIS IS AN AUTO-GENERATED FILE. CHANGES TO IT ARE LIKELY TO BE
03.
OVERWRITTEN AND LOST. Changes to this xml configuration should be made using:
04.
virsh edit wintest01
05.
or other application using the libvirt API.
06.
--&
gt
;
07.
&
lt
;domain
type
=‘kvm‘&
gt
;
08.
&
lt
;name&
gt
;wintest01&
lt
;/name&
gt
;
09.
&
lt
;uuid&
gt
;fe31ea48-7d6a-f3cb-cede-2f9bd9dec2bd&
lt
;/uuid&
gt
;
10.
&
lt
;memory unit=‘KiB‘&
gt
;524288&
lt
;/memory&
gt
;
11.
&
lt
;currentMemory unit=‘KiB‘&
gt
;524288&
lt
;/currentMemory&
gt
;
12.
&
lt
;vcpu placement=‘static‘&
gt
;2&
lt
;/vcpu&
gt
;
13.
&
lt
;os&
gt
;
14.
&
lt
;
type
arch=‘x86_64‘ machine=‘rhel6.4.0‘&
gt
;hvm&
lt
;/
type
&
gt
;
15.
&
lt
;boot dev=‘hd‘/&
gt
;
16.
&
lt
;/os&
gt
;
17.
&
lt
;features&
gt
;
18.
&
lt
;acpi/&
gt
;
19.
&
lt
;apic/&
gt
;
20.
&
lt
;pae/&
gt
;
21.
&
lt
;/features&
gt
;
22.
&
lt
;clock offset=‘utc‘/&
gt
;
23.
&
lt
;on_poweroff&
gt
;destroy&
lt
;/on_poweroff&
gt
;
24.
&
lt
;on_reboot&
gt
;restart&
lt
;/on_reboot&
gt
;
25.
&
lt
;on_crash&
gt
;restart&
lt
;/on_crash&
gt
;
26.
&
lt
;devices&
gt
;
27.
&
lt
;emulator&
gt
;/usr/libexec/qemu-kvm&
lt
;/emulator&
gt
;
28.
&
lt
;disk
type
=‘
file
‘ device=‘disk‘&
gt
;
29.
&
lt
;driver name=‘qemu‘
type
=‘raw‘ cache=‘none‘/&
gt
;
30.
&
lt
;
source
file
=‘/data/wintest01.img‘/&
gt
;
31.
&
lt
;target dev=‘hda‘ bus=‘ide‘/&
gt
;
32.
&
lt
;address
type
=‘drive‘ controller=‘0‘ bus=‘0‘ target=‘0‘ unit=‘0‘/&
gt
;
33.
&
lt
;/disk&
gt
;
34.
&
lt
;disk
type
=‘block‘ device=‘cdrom‘&
gt
;
35.
&
lt
;driver name=‘qemu‘
type
=‘raw‘/&
gt
;
36.
&
lt
;target dev=‘hdc‘ bus=‘ide‘/&
gt
;
37.
&
lt
;
readonly
/&
gt
;
38.
&
lt
;address
type
=‘drive‘ controller=‘0‘ bus=‘1‘ target=‘0‘ unit=‘0‘/&
gt
;
39.
&
lt
;/disk&
gt
;
40.
&
lt
;controller
type
=‘usb‘ index=‘0‘&
gt
;
41.
&
lt
;address
type
=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x01‘
function
=‘0x2‘/&
gt
;
42.
&
lt
;/controller&
gt
;
43.
&
lt
;controller
type
=‘ide‘ index=‘0‘&
gt
;
44.
&
lt
;address
type
=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x01‘
function
=‘0x1‘/&
gt
;
45.
&
lt
;/controller&
gt
;
46.
&
lt
;interface
type
=‘bridge‘&
gt
;
47.
&
lt
;mac address=‘52:54:00:2b:2f:fe‘/&
gt
;
48.
&
lt
;
source
bridge=‘br0‘/&
gt
;
49.
&
lt
;address
type
=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x03‘
function
=‘0x0‘/&
gt
;
50.
&
lt
;/interface&
gt
;
51.
&
lt
;serial
type
=‘pty‘&
gt
;
52.
&
lt
;target port=‘0‘/&
gt
;
53.
&
lt
;/serial&
gt
;
54.
&
lt
;console
type
=‘pty‘&
gt
;
55.
&
lt
;target
type
=‘serial‘ port=‘0‘/&
gt
;
56.
&
lt
;/console&
gt
;
57.
&
lt
;input
type
=‘mouse‘ bus=‘ps2‘/&
gt
;
58.
&
lt
;graphics
type
=‘vnc‘ port=‘5911‘ autoport=‘no‘ listen=‘0.0.0.0‘&
gt
;
59.
&
lt
;listen
type
=‘address‘ address=‘0.0.0.0‘/&
gt
;
60.
&
lt
;/graphics&
gt
;
61.
&
lt
;video&
gt
;
62.
&
lt
;model
type
=‘cirrus‘ vram=‘9216‘ heads=‘1‘/&
gt
;
63.
&
lt
;address
type
=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x02‘
function
=‘0x0‘/&
gt
;
64.
&
lt
;/video&
gt
;
65.
&
lt
;memballoon model=‘virtio‘&
gt
;
66.
&
lt
;address
type
=‘pci‘ domain=‘0x0000‘ bus=‘0x00‘ slot=‘0x04‘
function
=‘0x0‘/&
gt
;
67.
&
lt
;/memballoon&
gt
;
68.
&
lt
;/devices&
gt
;
69.
&
lt
;seclabel
type
=‘none‘/&
gt
;
70.
&
lt
;/domain&
gt
;
9. virsh console 控制台管理linux虚拟机
配置virsh console见下文
kvm虚拟化学习笔记(六)之kvm虚拟机控制台登录配置
# virsh console oeltest01
10. 其它virsh命令
(1) 挂起服务器
# virsh suspend oeltest01
(2) 恢复服务器
# virsh resume oeltest01
virsh命令丰富。可以执行各种维护任务,本文只是从维护与管理的角度例举了常用的命令,为该命令的使用提供一个思路。