Libvirt有两种控制方式,命令行和图形界面

 

图形界面:

通过执行名virt-manager,启动libvirt的图形界面,在图形界面下可以一步一步的创建虚拟机,管理虚拟机,还可以直接控制虚拟机的桌面。

 

命令行:

virsh list                                                                                                #显示本地活动虚拟机

virsh list –all                                                                         #显示本地所有的虚拟机(活动的+不活动的)

virsh defineubuntu.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,与之交互,例如:connectxen+ssh://root@10.4.122.11。另外可以只执行一条远程libvirt命令:virsh –c xen+ssh://root@10.4.122.11 list --all

 

ubuntu.xml配置文件举例:

<domaintype='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'/>

      <sourcefile='/opt/awcloud/ubuntu/ubuntu.img'/>

      <target dev='hda' bus='ide'/>

    </disk>

    <disk type='file' device='disk'>

      <driver name='file'/>

      <sourcefile='/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=./diskbs=1024 count=`expr 4 \* 1024 \* 1024`

修改虚拟机的启动设备:<boot dev='hd'/>从硬盘启动;<bootdev='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 orname> qemu+ssh://<dstip>/system tcp://<dstip>:49152

迁移完之后,本地机器可能仍是定义状态,要执行virshundefine <name>清除


Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐