当前位置 主页 > 网站技术 > 代码类 >

    Centos7之KVM虚拟化基础管理详解

    栏目:代码类 时间:2019-11-01 06:05

    一、安装kvm虚拟化

    [root@localhost media]# yum -y groupinstall "GNOME Desktop"     #安装GNOME桌面环境
    [root@localhost media]# yum -y install qemu-kvm        #KVM模块
    [root@localhost media]# yum -y install qemu-kvm-tools       #KVM调试工具,可不安装
    [root@localhost media]# yum -y install virt-install           #构建虚拟机的命令行工具
    [root@localhost media]# yum -y install qemu-img     #qemu组件,创建磁盘、启动虚拟机等
    [root@localhost media]# yum -y install bridge-utils        #网络支持工具
    [root@localhost media]# yum -y install libvirt        #虚拟机管理工具
    [root@localhost media]# yum -y install virt-manager       #图形界面管理虚拟机
    [root@localhost media]# yum -y install libguestfs-tools       #用来管理虚拟机磁盘格式
    [root@localhost ~]# ls -sf /lib/systemd/system/graphical.target /etc/systemd/system/default.target
    #将系统默认运行的target更改为graphical.target,若不执行该命令,重启时可能会报错。

    2、安装完毕后,需重启系统,执行下面命令对系统进行检查:

    [root@localhost ~]# cat /proc/cpuinfo | grep vmx        
    #查看Intel的CPU是否支持虚拟化,若是AMD的CPU,需 “cat /proc/cpuinfo | grep smv”
    [root@localhost ~]# lsmod | grep kvm          #检查KVM模块是否安装
    kvm_intel       170181 0 
    kvm          554609 1 kvm_intel
    irqbypass       13503 1 kvm
    [root@localhost ~]# systemctl start libvirtd      #启动libvirtd服务
    [root@localhost ~]# systemctl enable libvirtd    #设置该服务为开机自启

    3、在命令行模式中创建虚拟机

    [root@kvm kk]# mkdir -p /kvm/{iso,disk} #创建相应的目录,一边存放镜像及虚拟机磁盘
    #创建的/kvm目录最好挂载在LVS卷上,以便可以动态扩展卷空间
    [root@kvm iso]# cp /media/CentOS-7.iso /kvm/iso/  #准备要安装的虚拟机操作系统文件
    [root@kvm ~]# qemu-img create -f raw /kvm/disk/web01.raw 10G #创建虚拟机磁盘
    [root@kvm ~]# virt-install --os-type=linxu --os-variant centos7.0 --name web01 --ram 1024 --vcpus 1 --disk /kvm/disk/web01.raw,format=raw,size=10 --location /kvm/iso/CentOS-7.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole    #创建虚拟机web01
    开始安装......
    搜索文件 .treeinfo......             | 354 B 00:00   
    搜索文件 vmlinuz......              | 5.9 MB 00:00   
    搜索文件 initrd.img......            | 50 MB 00:00   
    域安装仍在进行。您可以重新连接
    到控制台以便完成安装进程。
    #根据上面的提示打开图形化控制台
    [root@kvm ~]# virt-manager   #打开控制台

    输入打开控制台的命令后,便会弹出以下窗口:

    单击“打开”后,会出现以下界面,和我们自己安装系统一样了(自行操作即可):

    至此,命令行创建虚拟机就完成了,接下来使用手动更改配置文件的方式,克隆web01,生成新的虚拟机web02(在我博文前面的那个博文链接中有专用于克隆的命令工具的使用方法,这里只是为了来了解虚拟机的配置文件)

    二、手动更改配置文件的方式,克隆web01,生成新的虚拟机web02

    [root@kvm iso]# virsh list --all   #确保要克隆的虚拟机在关闭状态下
     Id  名称             状态
    ----------------------------------------------------
     -   test01             关闭
     -   test02             关闭
     -   web01             关闭   #就是要克隆这台
    [root@kvm ~]# cd /kvm/disk/   #切换至虚拟机的虚拟磁盘存放目录
    [root@kvm disk]# cp web01.raw web02.raw   #将要克隆的虚拟机磁盘复制一份,并更改名称
    [root@kvm disk]# cd /etc/libvirt/qemu/   #切换至KVM虚拟机配置文件的目录
    [root@kvm qemu]# ls   #查看当前目录下的文件
    networks test01.xml test02.xml web01.xml
    [root@kvm qemu]# virsh dumpxml web01 > ./web02.xml 
    #将web01的配置文件使用dumpxml工具进行备份为当前目录下的web02.xml
    [root@kvm qemu]# ls     #确认备份成功
    networks test01.xml test02.xml web01.xml web02.xml
    [root@kvm qemu]# vim web02.xml   #编辑备份出的文件
    
    <domain type='kvm'>
     <name>web02</name>   #将这里的名字改为web02
     <uuid>2d6f2a7c-9937-4afb-b8d6-8ef01ca61434</uuid>  #删除UUID这行配置,防止冲突
     <memory unit='KiB'>1048576</memory>
          .............#省略部分内容
     <devices>     #定位到该行标签
      <emulator>/usr/libexec/qemu-kvm</emulator>
      <disk type='file' device='disk'>
       <driver name='qemu' type='raw'/>
       <source file='/kvm/disk/web02.raw'/>    #将这里的路径更改为刚才使用cp命令复制的web02.raw文件
    #更改完成后,保存退出
    [root@kvm qemu]# virsh define web02.xml   #定义此配置文
    #(可以理解为载入该虚拟机,此时,需要注意当前的工作路径)
    定义域 web02(从 web02.xml)
    
    [root@kvm qemu]# virsh list --all   #查看是否克隆成功
     Id  名称             状态
    ----------------------------------------------------
     -   test01             关闭
     -   test02             关闭
     -   web01             关闭
     -   web02             关闭
    #OK!查看到了,可以自行运行web02,测试是否运行正常。
    [root@kvm qemu]# virsh start web02   #启动web02
    域 web02 已开始
    
    [root@kvm qemu]# virsh list --all   #OK,正在运行!
     Id  名称             状态
    ----------------------------------------------------
     3   web02             running
         .............#省略部分内容