Libvirt有两种控制方式,命令行和图形界面 图形界面: 通过执行名virt-manager,启动libvirt的图形界面,在图形界面下可以一步一步的创建虚拟机,管理虚拟机,还可以直接控制虚拟机的桌面。 命令行: virsh list # 显示本地活动虚拟机 virsh list –all # 显示本地所有的虚拟机(活动的+不活动的) virsh define ubuntu.xml # 通过配置文件定义一个虚拟机(这个虚拟机还不是活动的) virsh start ubuntu # 启动名字为ubuntu的非活动虚拟机 virsh create ubuntu.xml # 创建虚拟机(创建后,虚拟机立即执行,成为活动主机) virsh suspend ubuntu # 暂停虚拟机 virsh resume ubuntu # 启动暂停的虚拟机 virsh shutdown ubuntu # 正常关闭虚拟机 virsh destroy ubuntu # 强制关闭虚拟机 virsh dominfo ubuntu # 显示虚拟机的基本信息 virsh domname 2 # 显示id号为2的虚拟机名 virsh domid ubuntu # 显示虚拟机id号 virsh domuuid ubuntu # 显示虚拟机的uuid virsh domstate ubuntu # 显示虚拟机的当前状态 virsh dumpxml ubuntu # 显示虚拟机的当前配置文件(可能和定义虚拟机时的配置不同,因为当虚拟机启动时,需要给虚拟机分配id号、uuid、vnc端口号等等) virsh setmem ubuntu 512000 # 给不活动虚拟机设置内存大小 virsh setvcpus ubuntu 4 # 给不活动虚拟机设置cpu个数 virsh edit ubuntu # 编辑配置文件(一般是在刚定义完虚拟机之后) libvirt还提供了一个shell:virsh,直接执行名virsh即可获得一个特殊的shell:virsh,在这个virsh里面可以执行上面的命令(去掉前面的virsh)与本地libvirt交互,还可以通过命令connect命令连接远程libvirt,与之交互,例如:connect xen+ssh://root@10.4.122.11。另外可以只执行一条远程libvirt命令:virsh –c xen+ssh://root@10.4.122.11 list --all ubuntu.xml配置文件举例: <domain type='xen'> <name>ubuntu</name> <memory>1048576</memory> <currentMemory>524288</currentMemory> <vcpu>2</vcpu> <os> <type>hvm</type> <loader>/usr/lib/xen/boot/hvmloader</loader> <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/lib64/xen/bin/qemu-dm</emulator> <disk type='file' device='disk'> <driver name='file'/> <source file='/opt/awcloud/ubuntu/ubuntu.img'/> <target dev='hda' bus='ide'/> </disk> <disk type='file' device='disk'> <driver name='file'/> <source file='/opt/awcloud/ubuntu/sdb.img'/> <target dev='hdb' bus='ide'/> </disk> <disk type='file' device='cdrom'> <driver name='file'/> <source file='/opt/awcloud/forest/ubuntu-10.04.3-desktop-i386.iso'/> <target dev='hdc' bus='ide'/> <readonly/> </disk> <serial type='pty'> <target port='0'/> </serial> <console type='pty'> <target port='0'/> </console> <interface type='bridge'> <mac address='00:16:36:1e:1d:04'/> <source bridge='virbr0'/> </interface> <graphics type='vnc' autoport='yes' keymap='en-us'/> </devices> </domain> 注: 生成一个4G大小的空文件:dd if=/dev/zero of=./disk bs=1024 count=`expr 4 \* 1024 \* 1024` 修改虚拟机的启动设备:<boot dev='hd'/>从硬盘启动;<boot dev='cdrom'/>从CD启动 网络参数: 如ubuntu.xml配置文件,kvm虚拟机和xen虚拟机都只需要按照下面的模板进行配置,MAC地址是必须的,bridage的名字可能在不同的主机上是不一样,可能是virbr0,也可能是br0,但类型一定要是桥接模式就可以了 <interface type='bridge'> <mac address='00:16:36:1e:1d:04'/> <source bridge='virbr0'/> </interface> KVM虚拟机迁移: 迁移命令:virsh migrate –live <id or name> qemu+ssh://<dstip>/system tcp://<dstip>:49152 迁移完之后,本地机器可能仍是定义状态,要执行virsh undefine <name>清除 |