zoukankan      html  css  js  c++  java
  • CentOS 7部署KVM之三基本管理

    ----本文修改整理自网络,非本人原创。

    查看虚拟机信息

    查看正在运行的虚拟机

    # virsh list
     Id    Name                           State
    ----------------------------------------------------
     2     Centos                         running
    (可使用--all参数查看所有虚机状态)

    查看虚拟机基本信息

    # virsh dominfo Centos
    Id:             2
    Name:           Centos
    UUID:           b7b54aa3-138d-4975-81e6-263bfbf1b929
    OS Type:        hvm
    State:          running
    CPU(s):         1
    CPU time:       73.3s
    Max memory:     1048576 KiB
    Used memory:    1048576 KiB
    Persistent:     yes
    Autostart:      disable
    Managed save:   no
    Security model: none
    Security DOI:   0

    查看所有虚拟机运行状态

    # virt-top
    virt-top 03:37:19 - x86_64 2/2CPU 3292MHz 2047MB 0.7%
    1 domains, 1 active, 1 running, 0 sleeping, 0 paused, 0 inactive D:0 O:0 X:0
    CPU: 0.7%  Mem: 1024 MB (1024 MB by guests)
    
    ID S RDRQ WRRQ RXBY TXBY %CPU %MEM    TIME   NAME                                                                                                                                              
     2 R    0    0    0    0  0.7 50.0   1:15.43 Centos
    (virt-top可从宿主机查看所有VM运行状态。工具安装yum install virt-top)

    查看虚拟机文件系统状态

    # virt-df -h Centos
    Filesystem                                Size       Used  Available  Use%
    Centos:/dev/sda1                          497M        94M       402M   19%
    Centos:/dev/centos/root                   3.1G       1.2G       1.9G   39%

    (virt-df可从宿主机查看VM的文件系统状态。安装命令yum install libguestfs-tools)

    启动和关闭虚拟机

    # virsh shutdown Centos
    Domain Centos is being shutdown  
    (关闭虚拟机)
      
    # virsh start Centos
    Domain Centos started  
    (启动虚拟机)  
      
    # virsh autostart Centos
    Domain Centos marked as autostarted  
    (激活虚机自动启动) 
      
    # virsh autostart --disable Centos
    Domain Centos unmarked as autostarted  
    (取消虚机自动启动)

    克隆虚拟机

    # virsh suspend Centos
    Domain Centos suspended
    (挂起克隆源虚拟机。主要是为了完全关闭数据和网络I/O,保证数据的静态)
    
    # virt-clone --original Centos --name Centos01 --file /kvmdir/Centos01
    
    参数解释:
    --original  克隆的源主机
    --name    克隆的目标主机
    --file        克隆目标主机的文件路径
    
    # virsh resume Centos
    Domain Centos resumed
    (恢复克隆源虚拟机)
    
    # virsh start Centos01 
    Domain Centos01 started
    (启动克隆目标主机)
    
    # virsh list
     Id    Name                           State
    ----------------------------------------------------
     4     Centos                         running
     5     Centos01                       running
    (克隆成功,需要注意的是得登录到Centos01主机里面修改主机名和IP后才能远程访问)

    CentOS7会有点问题,需要修改
    xxx.xml文件,然后重新定义虚拟机


    可以直接根据xml文件创建虚拟机
    cd /etc/libvirt/qemu
    复制一个现有的xml文件,修改内容,
    virsh create xxx.xml #启动虚拟机
    需要给新的虚拟机复制img文件,把源img文件复制一份即可
    virsh define xxx.xml #定义虚拟机

    删除虚拟机

    # virsh destroy Centos01
    Domain Centos01 destroyed
    (摧毁虚拟机)
    
    # virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     4     Centos                         running
     -     Centos01                       shut off
    
    # virsh undefine Centos01
    Domain Centos01 has been undefined
    (取消虚拟机的定义)
    
    # virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     4     Centos                         running
    
    # rm -f /kvmdir/Centos01
    (删除虚拟机在KVM宿主机的文件)

    虚拟机资源管理

    MEM资源修改

    在设置Used Memory的最终数值小于Max Memory的情况下,可以使用setmem在线进行内存配置的修改。

    # virsh dominfo Centos |grep memory
    Max memory:     1048576 KiB
    Used memory:    1048576 KiB
    (查看当前内存配置)
    
    #virsh setmem Centos 512428
    (需要注意的是内存数值的单位为KB)
    
    # virsh dominfo Centos |grep memory
    Max memory:     1048576 KiB
    Used memory:    512428 KiB
    (内存修改成功)

    在设置Used Memory的最终数值大于Max Memory的情况下,需要关闭虚拟机并修改虚拟机定义文件。

    # virsh shutdown Centos
    Domain Centos is being shutdown
    (关闭虚拟机)
    
    # virsh edit Centos
    Domain docker01 XML configuration edited.
    (编辑虚拟机的XML文件)
    文件变更内容:
    <memory unit='KiB'>1048576</memory>                    ###虚拟机支持使用的最大内存
    <currentMemory unit='KiB'>1048576</currentMemory>      ###虚拟机当前可使用的内存
    
    # virsh create /etc/libvirt/qemu/Centos.xml
    Domain Centos created from /etc/libvirt/qemu/Centos.xml
    (使用新的XML文件启动虚拟机)
    
    # virsh dominfo Centos |grep memory
    Max memory:     2097152 KiB
    Used memory:    1048576 KiB
    (内存修改成功)

    CPU资源修改

    # virsh dominfo Centos |grep -i cpu
    CPU(s):         1
    CPU time:       40.1s
    (查看当前CPU配置)
    
    # virsh shutdown Centos
    Domain Centos is being shutdown
    (关闭虚拟机)
    # virsh edit Centos Domain Centos XML configuration edited.
    <vcpu placement='static'>2</vcpu> (将vCPU的数量设置为需要的数值) # virsh create /etc/libvirt/qemu/Centos.xml Domain Centos created from /etc/libvirt/qemu/Centos.xml # virsh dominfo Centos |grep -i cpu CPU(s): 2 CPU time: 4.1s (CPU修改成功)

    DISK资源修改

    DISK资源的配置只能在停止续集的情况下修改

    # virsh shutdown Centos
    Domain Centos is being shutdown
    (关闭虚拟机)
    
    # dd if=/dev/zero of=/kvmdir/test-add01.qcow2 bs=1M count=4096
    4096+0 records in
    4096+0 records out
    4294967296 bytes (4.3 GB) copied, 58.2544 s, 73.7 MB/s
    (在KVM宿主机创建一块裸设备)
    
    # qemu-img convert -f raw test-add01.qcow2 -O qcow2 test-add01.qcow2
    (将raw设备转换成KVM虚拟机识别的qcow2设备)
    
    # virsh edit Centos
    Domain Centos XML configuration edited.
    
    文件变更内容:
     <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2'/>
          <source file='/kvmdir/test.img'/>
          <target dev='vda' bus='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
        </disk>
        <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2'/>
          <source file='/kvmdir/test-add01.qcow2'/>
          <target dev='vdb' bus='virtio'/>
          <address type='pci' domain='0x0000' bus='0x00' slot='0x08' function='0x0'/>
        </disk>
    (虚机本身就有一块vda的盘,按照同样的格式添加新增的vdb就行。这里需要注意的是,需要把dev参数改为vdX。另外slot参数需要检索整个XML文件,选择一个不重复的数值配置。)

    # virsh create /etc/libvirt/qemu/Centos.xml
    Domain Centos created from /etc/libvirt/qemu/Centos.xml

    (使用新的XML启动虚拟机)

    
    

    # fdisk -l /dev/vdb

    Disk /dev/vdb: 4294 MB, 4294967296 bytes, 8388608 sectors
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    (登录到虚机查看磁盘已经添加成功)
     

     Kvm虚拟机创建快照

    raw磁盘格式不支持快照功能,需要先转换磁盘格式

    # qemu-img info centos7-node8.img   查看磁盘格式
    image: centos7-node8.img
    file format: raw
    virtual size: 29G (31458328576 bytes)
    disk size: 29G
    
    # qemu-img convert -f raw -O qcow2 centos7-node8.img centos7-node8.img #修改磁盘格式
    # qemu-img info centos7-node8.img
    image: centos7-node8.img
    file format: qcow2
    virtual size: 29G (31458328576 bytes)
    disk size: 960K
    cluster_size: 65536
    Format specific information:
        compat: 1.1
        lazy refcounts: false
    

     编辑xml文件,将磁盘类型修改为qcow2格式。

    # vim centos7-node8.xml 
     <disk type='file' device='disk'>
          <driver name='qemu' type='qcow2'/>  #此处修改
          <source file='/data/kvm-img/centos7-node8.img'/>  #文件名字没有变化不修改,否则需要修改
    
    # virsh define centos7-node8.xml   #修改配置文件后需要重新定义域
    定义域 centos7-node8(从 centos7-node8.xml)
    
    # virsh snapshot-create centos7-node8  #创建快照
    已生成域快照 1513603416
    
    # # virsh snapshot-list centos7-node8  #查看快照
     名称               生成时间              状态
    ------------------------------------------------------------
     1513603416           2017-12-18 21:23:36 +0800 shutoff
    
    # ll /var/lib/libvirt/qemu/snapshot/  #快照文件存在此目录下
    总用量 0
    drwxr-xr-x 2 root root 27 12月 18 21:23 centos7-node8
    
    回复虚拟机快照之前首先要把虚拟机关闭
    
    # virsh shutdown  xxxx
    
    # virsh snapshot-rever  xxxx  #回复快照  xxx为版本
    

      

     

  • 相关阅读:
    [转载]写作经验谈--如何写一本书?
    决定写一本书
    c中自定义函数通过sizeof来输出数组的长度为何不正确?【原创】
    [转]关于PHP的漏洞以及如何防止PHP漏洞?
    [转]PHP安全之防止你的源代码或重要配置信息暴露在外
    PHPUnit 单元测试框架(鸡肋)
    [转]避免PHP-FPM内存泄漏导致内存耗尽
    [转]PHP ffmpeg截取视频指定帧为图片,获取rotation信息并旋转
    ThinkPHP 缓存 以及Zend OPCache提升PHP性能
    简单测漏 语句
  • 原文地址:https://www.cnblogs.com/ebay/p/6543980.html
Copyright © 2011-2022 走看看