zoukankan      html  css  js  c++  java
  • virsh命令行管理工具

    virsh命令行管理工具

    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> //该虚拟机的cpu数

    <os>

    <type>hvm</type>  //hvm表示全虚拟化

    <loader>/usr/lib/xen/boot/hvmloader</loader>  //全虚拟化的守护进程所在的位置

    <boot dev='hd'/> //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'>  //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'>  //console用来代表交互性的控制台

    <target port='0'/>

    </console>

    <interface type='bridge'>    //桥接设备

    <mac address='00:16:36:1e:1d:04'/> //MAC地址

    <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>清除。

    注意:/dev/zero是一个输入设备,用来初始化文件。

          /dev/null是个无底洞,可以向它输出任何数据,它通吃并且不会撑着。

    原文地址:http://blog.csdn.net/chdhust/article/details/7697471

  • 相关阅读:
    oracle计算记录条数
    oracle 尽量多使用COMMIT
    oracle 用TRUNCATE替代DELETE
    oracle 删除重复记录
    oracle整合简单,无关联的数据库访问
    oracle使用DECODE函数来减少处理时间
    oralce 减少访问数据库的次数
    古城钟楼微博地支报时程序铛,100行代码实现,价值一天20万粉丝
    C#中HttpWebRequest与HttpWebResponse的使用方法
    C#中用HttpWebRequest中发送GET/HTTP/HTTPS请求
  • 原文地址:https://www.cnblogs.com/davygeek/p/6404674.html
Copyright © 2011-2022 走看看