美文网首页
kvm备忘(2)

kvm备忘(2)

作者: 钟大發 | 来源:发表于2017-02-23 17:10 被阅读0次

    kvm 管理工具

    对于管理kvm 其实已经有了很多比较成熟的工具,常用的比如以下这种:
    libvirt:操作和管理KVM虚机的虚拟化 API,使用 C 语言编写,可以由 Python,Ruby, Perl, PHP, Java 等语言调用。可以操作包括 KVM,vmware,XEN,Hyper-v, LXC 等 Hypervisor。
    Virsh:基于 libvirt 的 命令行工具 (CLI)
    virt-v2v:虚机格式迁移工具 #vsphere 出的一个工具,对于开源的linux来说不太友好。
    virt-* 工具:包括 Virt-install (创建KVM虚机的命令行工具), Virt-viewer (连接到虚机屏幕的工具),Virt-clone(虚机克隆工具),virt-top 等

    目前用的比较多的是libvirt 下的virsh 的工具,管理虚拟机经常会遇到以下情况,比如磁盘扩容,新挂载磁盘,迁移等等。

    磁盘扩容

    一般的kvm 磁盘扩容会有两种情况:
    1.新挂载磁盘

    virsh attch-disk instance_name ./vdisk #通过virsh 进行挂载,但是虚拟机重启后会失效。而且经常挂不上
    

    比较好的办法是通过修改配置文件的方式进行挂载,将虚拟机的xml 配置文件加上以下信息:

         <disk type="file" device="disk">
              <driver name="qemu" type="qcow2" cache="none" /> <!--cache中的none表示直接从硬盘写到disk镜像文件,性能差但是不会丢数据,write-back 模式正好相反-->
              <source file="/var/lib/libvirt/images/test.qcow2" />        <!--目的镜像路径-->
              <target dev="hda" bus="virtio" />
          </disk>
    

    然后重新define 和start 就可以了
    2.直接扩容vdisk
    之前说过raw经常用于kvm 扩容的中间格式使用,比如vmdk 这种扩容就需要转成raw 后,将新的空白的raw 虚拟硬盘>> 进去,再转会vmdk,比较麻烦,而且需要关机进行:

     dd if=/dev/zero bs=1024MB count=10 >> vdisk #增加10G
    

    但是qcow2 可以直接增加硬盘大小,且可以在线扩容:

    root@10.1.99.60:~# qemu-img resize 2.img +3G
    Image resized.
    root@10.1.99.60:~# qemu-img info 2.img 
    image: 2.img
    file format: qcow2
    virtual size: 8.0G (8589934592 bytes)
    disk size: 200K
    cluster_size: 65536
    Format specific information:
        compat: 1.1
        lazy refcounts: false
    

    kvm 迁移

    1.kvm 静态迁移
    静态迁移没什么好说的,关机,拷贝,修改配置文件,开机即可,最好保持2个节点之间qemu的版本一致。
    2.kvm 动态迁移
    virsh 自带了migrate 参数。-live 表示动态迁移,但是有个很大的限制条件就是需要2个节点之间共享存储。由此可见,所谓的动态迁移迁移的并非数据,只是kvm 在节点上的配置信息,以及内存数据而且,所以迁移速度很快,且不会宕机:

    virsh migrate --live --verbose instance_01  qemu+ssh://10.1.1.2/opt tcp://192.168.159.160
    

    其他

    附上从其他人那找来的virsh 命令清单以及注释:

    virsh
        help            打印帮助
        attach-device   从一个XML文件附加装置
        attach-disk     附加磁盘设备
        attach-interface 获得网络界面
        autostart       自动开始一个域
        capabilities    性能
        cd              change the current directory
        connect         连接(重新连接)到 hypervisor
        console         连接到客户会话
        cpu-baseline    compute baseline CPU
        cpu-compare     compare host CPU with a CPU described by an XML file
        create          从一个 XML 文件创建一个域
        start           开始一个(以前定义的)非活跃的域
        destroy         删除一个域
        detach-device   从一个 XML 文件分离设备
        detach-disk     分离磁盘设备
        detach-interface 分离网络界面
        define          从一个 XML 文件定义(但不开始)一个域
        domid           把一个域名或 UUID 转换为域 id
        domuuid         把一个域名或 id 转换为域 UUID
        dominfo         域信息
        domjobinfo      domain job information
        domjobabort     abort active domain job
        domname         将域 id 或 UUID 转换为域名
        domstate        域状态
        domblkstat      获得域设备块状态
        domifstat       获得域网络接口状态
        dommemstat      get memory statistics for a domain
        domblkinfo      domain block device size information
        domxml-from-native Convert native config to domain XML
        domxml-to-native Convert domain XML to native config
        dumpxml         XML 中的域信息
        edit            编辑某个域的 XML 配置
        find-storage-pool-sources 发现潜在存储池源
        find-storage-pool-sources-as 找到潜在存储池源
        freecell        NUMA可用内存
        hostname        打印管理程序主机名
        list            列出域
        migrate         将域迁移到另一个主机中
        migrate-setmaxdowntime set maximum tolerable downtime
        net-autostart   自动开始网络
        net-create      从一个 XML 文件创建一个网络
        net-define      从一个 XML 文件定义(但不开始)一个网络
        net-destroy     删除一个网络
        net-dumpxml     XML 中的网络信息
        net-edit        为网络编辑 XML 配置
        net-list        列出网络
        net-name        把一个网络UUID 转换为网络名
        net-start       开始一个(以前定义的)不活跃的网络
        net-undefine    取消定义一个非活跃的网络
        net-uuid        把一个网络名转换为网络UUID
        iface-list      list physical host interfaces
        iface-name      convert an interface MAC address to interface name
        iface-mac       convert an interface name to interface MAC address
        iface-dumpxml   interface information in XML
        iface-define    define (but don't start) a physical host interface from an XML file
        iface-undefine  undefine a physical host interface (remove it from configuration)
        iface-edit      edit XML configuration for a physical host interface
        iface-start     start a physical host interface (enable it / "if-up")
        iface-destroy   destroy a physical host interface (disable it / "if-down")
        managedsave     managed save of a domain state
        nodeinfo        节点信息
        nodedev-list    这台主机中中的枚举设备
        nodedev-dumpxml XML 中的节点设备详情
        nodedev-dettach dettach node device from its device driver
        nodedev-reattach reattach node device to its device driver
        nodedev-reset   重置节点设备
        nodedev-create  create a device defined by an XML file on the node
        nodedev-destroy destroy a device on the node
        nwfilter-define define or update a network filter from an XML file
        nwfilter-undefine undefine a network filter
        nwfilter-dumpxml network filter information in XML
        nwfilter-list   list network filters
        nwfilter-edit   edit XML configuration for a network filter
        pool-autostart  自动启动某个池
        pool-build      建立池
        pool-create     从一个 XML 文件中创建一个池
        pool-create-as  从一组变量中创建一个池
        pool-define     在一个 XML 文件中定义(但不启动)一个池
        pool-define-as  在一组变量中定义池
        pool-destroy    销毁池
        pool-delete     删除池
        pool-dumpxml    XML 中的池信息
        pool-edit       为存储池编辑 XML 配置
        pool-info       存储池信息
        pool-list       列出池
        pool-name       将池 UUID 转换为池名称
        pool-refresh    刷新池
        pool-start      启动一个(以前定义的)非活跃的池
        pool-undefine   取消定义一个不活跃的池
        pool-uuid       把一个池名称转换为池 UUID
        secret-define   define or modify a secret from an XML file
        secret-dumpxml  secret attributes in XML
        secret-set-value set a secret value
        secret-get-value Output a secret value
        secret-undefine undefine a secret
        secret-list     list secrets
        pwd             print the current directory
        quit            退出这个非交互式终端
        exit            退出这个非交互式终端
        reboot          重新启动一个域
        restore         从一个存在一个文件中的状态恢复一个域
        resume          重新恢复一个域
        save            把一个域的状态保存到一个文件
        schedinfo       显示/设置日程安排变量
        dump            把一个域的内核 dump 到一个文件中以方便分析
        shutdown        关闭一个域
        setmem          改变内存的分配
        setmaxmem       改变最大内存限制值
        setvcpus        改变虚拟 CPU 的号
        suspend         挂起一个域
        ttyconsole      tty 控制台
        undefine        取消定义一个非活跃的域
        update-device   update device from an XML file
        uri             打印管理程序典型的URI
        vol-create      从一个 XML 文件创建一个卷
        vol-create-from create a vol, using another volume as input
        vol-create-as   从一组变量中创建卷
        vol-clone       clone a volume.
        vol-delete      删除卷
        vol-wipe        wipe a vol
        vol-dumpxml     XML 中的卷信息
        vol-info        存储卷信息
        vol-list        列出卷
        vol-pool        returns the storage pool for a given volume key or path
        vol-path        returns the volume path for a given volume name or key
        vol-name        returns the volume name for a given volume key or path
        vol-key         returns the volume key for a given volume name or path
        vcpuinfo        域 vcpu 的信息
        vcpupin         控制域 vcpu affinity
        version         显示版本
        vncdisplay      vnc 显示
        snapshot-create Create a snapshot
        snapshot-current Get the current snapshot
        snapshot-delete Delete a domain snapshot
        snapshot-dumpxml Dump XML for a domain snapshot
        snapshot-list   List snapshots for a domain
        snapshot-revert Revert a domain to a snapshot
    
    

    相关文章

      网友评论

          本文标题:kvm备忘(2)

          本文链接:https://www.haomeiwen.com/subject/jzybwttx.html