美文网首页诗翔的Linux学习之路
Learning KVM - part4 创建虚拟机VM

Learning KVM - part4 创建虚拟机VM

作者: drfung | 来源:发表于2017-06-09 22:26 被阅读193次

使用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”的界面,这时就可以在图形界面上按照传统的方式安装您的操作系统了;

    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来监控虚拟机的性能状态;


    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配置文件分为几个重要的部分,我们来看整体结构;

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

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

      <os>
      <type arch='x86_64' machine='pc-i440fx-rhel7.0.0'>hvm</type>
      <boot dev='hd'/>
      </os>
      
    3. 硬件资源特性
      主要包括两个方面:电源管理及内存扩展

       <features>
       <acpi/>
       <apic/>
       </features>
       <cpu mode='custom' match='exact'>
         <model fallback='allow'>Broadwell-noTSX</model>
       </cpu>
       <clock offset='utc'>
         <timer name='rtc' tickpolicy='catchup'/>
         <timer name='pit' tickpolicy='delay'/>
         <timer name='hpet' present='no'/>
       </clock>
      
    4. 突发事件处理
      针对三种突发事件定义了不同的处理方式,用户也可以根据自己需要定制操作

      <on_poweroff>destroy</on_poweroff>
      <on_reboot>restart</on_reboot>
      <on_crash>restart</on_crash>
      <pm>
          <suspend-to-mem enabled='no'/>
          <suspend-to-disk enabled='no'/>
      </pm>
      
    5. 虚拟磁盘
      所有的虚拟外设都保存在<device></device>中的<disk></disk>

      <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/var/lib/libvirt/images/test.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
      </disk>
      
      • 第2行指定了驱动为qume,image格式为qcow2
      • 第3行指定了image的存放位置
      • 第4行指定了image做为vm的第几块磁盘,bus代表了所使用的的驱动类型,这里使用
        了virtio。这是一种高效的image数据传输方式
      • 第5行指定了image所使用的PCI地址,该行可以省略。如果要添加的话注意slot的编
        号不要与其他设备相同
    6. 虚拟网络
      虚拟网路有很多种,不同的Hypervisor提供了不同的虚拟网络类型,我们这里采用的是
      静态网桥的方式。

      <interface type='bridge'>
      <mac address='52:54:00:61:21:c8'/>
      <source bridge='br0'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
      </interface>
      
    7. vnc配置
      一般生成的vnc配置都会导致外部无法访问,因为没有配置监听地址,我们可以按照如下
      配置;

      <graphics type='vnc' port='-1' autoport='yes' passwd='123456' listen='0.0.0.0'>
          <listen type='address' address='0.0.0.0'/>
      </graphics>
      

相关文章

  • Learning KVM - part4 创建虚拟机VM

    使用virt-install命令来创建vm(guests)显然是一种最为直接的,“virt-install”支持交...

  • Escape

    一、铺垫工作 1、先说KVM:QEMU启动过程 虚拟机的启动过程基本上可以这么总结:创建kvm句柄->创建vm->...

  • KVM入门

    第1章 KVM介绍 第2章 创建一个KVM虚拟机 1.VM虚拟机开启CPU虚拟化功能 设置-处理器-虚拟化 2.安...

  • KVM中虚拟机迁移

    环境 系统:CentOS 7.9 背景 从宿主机kvm1中迁移虚拟机vm1到宿主机kvm2中 VM关机迁移 在宿主...

  • OpenStack Ubuntu镜像制作

    制作之前 在主机创建一个kvm虚拟机VM(本文使用Ubuntu 12.04LTS),使用默认的分区方式 你可以在V...

  • kvm笔记

    1.kvm架构 2.搭建kvm 3.创建vm命令 4.安装linux界面和vnc 5.创建br0

  • kvm批量创建虚拟机并自动设定ip和服务器名

    1. 说明 kvm比起vmware来说最没有的功能就是用模板部署虚拟机的时候可以自定义ip地址,这对于大量创建vm...

  • 云计算day2

    4.7:kvm虚拟机克隆 4.7.1:完整克隆 4.8:kvm虚拟机的桥接网络 4.8.1:创建桥接网卡 4.8....

  • Centos7系统下KVM虚拟化Migration(08)--企

    1、KVM下VM虚拟机迁移到VMWare ESXi平台(冷迁移) 主机名IP规划配置所需软件网络虚拟化备注KVM0...

  • Kvm之三:vm基本管理

    Centos7 Kvm 虚拟机基本管理 1、vm开关机 2、vm的挂起与恢复 3、vm的删除(分为两部分,一部分是...

网友评论

    本文标题:Learning KVM - part4 创建虚拟机VM

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