Learning KVM - part4 创建虚拟机VM

使用virt-install命令来创建vm(guests)显然是一种最为直接的,“virt-install”支持交互式和非交互式两种模式。另外使用“virt-manger”图形界面创建vm也是一个不错的选择。
下面我们通过实验来了解virt-install的使用;

使用virt-install创建VM

  1. 使用xshell登录到KVM的宿主机并且连接会话已经配置好X11转发(参考part1);

  2. 使用下列命令创建一个vm(guests);

    # 下载一个CentOS7的iso镜像
    wget https://mirrors.aliyun.com/centos/7.3.1611/isos/x86_64/CentOS-7-x86_64-Minimal-1611.iso
    # 执行命令创建kvm
    virt-install --connect qemu:///system --virt-type kvm \
    --network bridge:br0 \
    --name test --description "first vm" \
    --os-variant rhel7 \
    --ram=1024 \
    --vcpus=1 \
    --disk size=4 \
    --os-type=linux \
    --graphics vnc,password=123456 \
    --cdrom /var/lib/libvirt/images/CentOS-7-x86_64-Minimal-1611.iso
    
  3. 如果您的回话已经配置好X11转发,将会自动弹出“virt-viewer”的界面,这时就可以在图形界面上按照传统的方式安装您的操作系统了;

    Learning KVM - part4 创建虚拟机VM_第1张图片
    image.png
  4. 下面我我们来详细分析下virt-install命令参数;

参数 描述
--connect 指定连接的hosts,如果是本机该选项可以省略
--virt-type 指定虚拟化类型,kvm or Xen
--network 指定网络连接的网桥
--description VM的描述备注
os-variant OS的系统版本,指定后KVM会按照指定的系统版本对性能进行优化
--ram 指定虚拟机的内存大小(mb)
--vcpus 指定虚拟机cpu数量
--disk 指定虚拟机的硬盘大小
--os-type 指定虚拟机的系统类型
--graphics 指定虚拟机的图形显示
--cdrom 设定系统的引导镜像
  1. 当系统安装完成之后,我们可以使用virsh list命令来列出活动的虚拟机;

    [root@kvm-node1 images]# virsh list
     Id    Name                           State
    ----------------------------------------------------
     13    generic                        running
     14    cirros                         running
     16    test                           runnin
    
  2. 使用命令`virt-top来监控虚拟机的性能状态;


    Learning KVM - part4 创建虚拟机VM_第2张图片
    image.png
  1. 使用virsh destroy命令来终止VM虚拟机,这时可以通过命令virsh list --all来列
    出已经关闭的VM;

    [root@kvm-node1 /]# virsh list
     Id    Name                           State
    ----------------------------------------------------
     13    generic                        running
     14    cirros                         running
     16    test                           running
    
    [root@kvm-node1 /]# virsh destroy test
    Domain test destroyed
    
    [root@kvm-node1 /]# virsh list
     Id    Name                           State
    ----------------------------------------------------
     13    generic                        running
     14    cirros                         running
    
    [root@kvm-node1 /]# virsh list --all
     Id    Name                           State
    ----------------------------------------------------
     13    generic                        running
     14    cirros                         running
     -     test                           shut off
    
  2. 使用virsh start命令来启动终止的VM;

    [root@kvm-node1 /]# virsh start test
    Domain test started
    
    [root@kvm-node1 /]# virsh list
     Id    Name                           State
    ----------------------------------------------------
     13    generic                        running
     14    cirros                         running
     17    test                           running
    

深入探讨VM配置文件

  1. 首先我们来了解一下KVM的VM(guests)的配置文件保存来自哪里;

    [root@kvm-node1 /]# ls /etc/libvirt/qemu/
    cirros.xml  generic.xml  networks  test.xml
    
  2. KVM的xml配置文件分为几个重要的部分,我们来看整体结构;

    
    虚拟机整体信息
    系统信息
    硬件资源特性
    突发事件处理
    虚拟磁盘(单个或者多个)
    虚拟光驱(可选)
    虚拟网络(单个或者多个)
    vnc/spice 配置
    
    
    1. 虚拟机整体信息:
      从整体上描述虚拟机所需资源

      test
      d4f875b0-7706-4047-87cb-3b58324bf323
      first vm
      1048576
      1048576
      1
      
      • uuid是虚拟机的唯一标示,用户可以自行定义,也可以使用命令uuidgen自动生成
      • 内存配置一般以KB为单位
      • cpu数量支持超配,即允许虚拟机的cpu数量总和大于宿主机的cpu总数
    2. 系统信息
      接下来是对OS的描述,主要是定义类型和启动信息

      
      hvm
      
      
      
    3. 硬件资源特性
      主要包括两个方面:电源管理及内存扩展

       
       
       
       
       
         Broadwell-noTSX
       
       
         
         
         
       
      
    4. 突发事件处理
      针对三种突发事件定义了不同的处理方式,用户也可以根据自己需要定制操作

      destroy
      restart
      restart
      
          
          
      
      
    5. 虚拟磁盘
      所有的虚拟外设都保存在中的

      
      
      
      
      
      • 第2行指定了驱动为qume,image格式为qcow2
      • 第3行指定了image的存放位置
      • 第4行指定了image做为vm的第几块磁盘,bus代表了所使用的的驱动类型,这里使用
        了virtio。这是一种高效的image数据传输方式
      • 第5行指定了image所使用的PCI地址,该行可以省略。如果要添加的话注意slot的编
        号不要与其他设备相同
    6. 虚拟网络
      虚拟网路有很多种,不同的Hypervisor提供了不同的虚拟网络类型,我们这里采用的是
      静态网桥的方式。

      
      
      
      
      
    7. vnc配置
      一般生成的vnc配置都会导致外部无法访问,因为没有配置监听地址,我们可以按照如下
      配置;

      
          
      
      

你可能感兴趣的:(Learning KVM - part4 创建虚拟机VM)