zoukankan      html  css  js  c++  java
  • KVM虚拟化

    KVM虚拟化

    虚拟化配置

    • 首先开启虚拟化的支持 并且增加一个50g的硬盘

    image-20210318080747269

    • free查看内存 image-20210318081031204

    • grep -Ei 'vmx|svm' /proc/cpuinfo查看虚拟机是支持虚拟化

    image-20210317084204026

    • lsblk 查看是否增加了一块新的磁盘 这里我们看到新增了一块50g的内存

    image-20210317084245190

    • 接下来我们格式化硬盘格式化为ext4格式 mkfs.ext4 /dev/sdb
    • blkid /dev/sdb查看磁盘信息

    image-20210317084320436

    • 创建挂载目录 mkdir /kvm_data
    • mount /dev/sdb /kvm_data 挂载到/kvm_data
    • 为使/kvm_data开机自动挂载 需要修改‘/etc/fstab’
      • 添加 /dev/sdb /kvm_data ext4 defaults 0 0
    • 关闭防火墙 和 seLinux

    安装KVM

    • yum install -y virt-* libvirt bridge-utils qemu-img

    启动KVM

    • 配置网卡 首先复制原先的网卡 image-20210318082206762

    • 接下来修改ifcfg-bro

      • 修改ifcfg-ens33
      • systemctl restart network 重启网卡

    image-20210317085553750

    启动libvirtd服务

    首先检查KVM模块是否加载,命令如下(lsmod命令用于显示已载入系统的模块):

    • lsmod|grep kvm

      • image-20210317085616209
    • systemctl start libvirtd开启libvirtd

    image-20210317085654011

    • brctl show 查看有两个网卡

      • image-20210317085731624
    • 上传Centos7到/tmp/目录下

    •  输入上面的命令开始安装虚拟机
    • 命令解释:

      开机后进入设置界面 对时区 root密码等进行设置

    虚拟机管理

    • virsh list 查看虚拟机列表 只能看见已经开启的虚拟机

    image-20210317101516415

    • virsh list --all查看所有的虚拟机
    • virsh console test进入指定的虚拟机

    vrish常用命令,命令如下:

     克隆虚拟机
    • 克隆虚拟机之前必须要关闭虚拟机

    • virt-clone --original test --name test02 --file

    image-20210317102111130

     
       
       
       
    • 查看虚拟机是否增加 test02 ls /etc/libvirt/qemu/

    image-20210317102254381

    快照

    ​ 快照是在我们使用Vmware的时候,很常用的一个功能。它可以回到之前的某一状态。在KVM中RAW格式的虚拟磁盘不支持做快照,qcow2支持。

    • 创建快照 virsh snapshot-create test

    • qemu-img info /kvm_data/test.img  查看test.img信息 并且同时查看 快照列表

      • image-20210317102412346
    • virsh snapshot-list test 列出所有快照

      • image-20210317102445073
    • virsh snapshot-current test 查看当前快照详细信息

    • ls /var/lib/libvirt/qemu/snapshot/test/查看所有快照配置文件

    • 恢复指定快照 virsh snapshot-revert test 1588485687

    • 删除指定快照 virsh snapshot-delete test 1588485687

    磁盘格式

    • qemu-img info /kvm_data/test.img 查看磁盘格式信息

      • image-20210317102757799
    • 创建2 GB的RAW格式磁盘 qemu-img create -f raw /kvm_data/test_1.img 2G

      • -f 指定磁盘类型 后面跟3个参数 磁盘类型、磁盘文件、大小
    • qemu-img convert -O qcow2 /kvm_data/test_1.img /kvm_data/test_1.qcow2 将磁盘转换为qcow2格式

      • convert -O 进行格式转换
    • ls -lh /kvm_data/test_1.img

    image-20210317103717474

    可以看到qcow2文件比较小,raw文件大小和我们指定空间大小一样是2G raw格式的磁盘性能比qcow2要好,但是raw格式的磁盘无法做快照

    • qemu-img convert -O raw /kvm_data/test02.img /kvm_data/test02_2.img 将test02转换为raw格式

      • image-20210317103943312
    • 更改磁盘格式和文件路径,然后启动test02虚拟机,命令如下: virsh edit test02

      • /找到上面这部分将qcow修改为raw,/kvm_data/test02.img改为

    image-20210318085418170

    磁盘扩容

    • 首先扩容RAW格式,命令如下: qemu-img resize /kvm_data/test02_2.img +2G

    image-20210317105727178

    • qemu-img info /kvm_data/test02_2.img  查看磁盘信息 大小增加了2g

    image-20210317105820954

    • 进入虚拟机 virsh console test02 使用 fdisk -l  查看磁盘列表

    image-20210317110132772

    • 发现这时虚拟机的磁盘大小还是10g 所以我们需要重新启动虚拟机后 再进行测试

    image-20210317110147004

    • 这样我们看到已经变为12g了 接下来对该磁盘进行分区 fdisk /dev/vda

    • 分区完成后 使用p查看磁盘列表:

    image-20210317110608577

    • 除了对已有磁盘扩容外,还可以额外增加磁盘,命令如下:
      • qemu-img create -f raw /kvm_data/test02_3.raw 5G 创建一块新的5g的磁盘
    • virsh edit test02 编辑虚拟机test02
    • 主要修改source file名称为/kvm_data/test02_3.raw,target dev改为vdb,slot改为0x09,不与0x06冲突即可。

    image-20210317111328412

    • 关闭虚拟机进行测试:

    image-20210317111522073

    接下来,我们扩容qcow2格式的磁盘,命令如下:

    • qemu-img resize /kvm_data/test.img +2G 若提示qemu-img: Can't resize an image which has snapshots,需要删除快照

    • 使用命令 qemu-img info test.img 查看虚拟机信息

    image-20210317111750108

    • 重启虚拟机 进行查看 fdisk -l 

    image-20210317112528721

    调整CPU内存、网卡

    • 查看虚拟机配置信息 virsh dominfo test
    • 修改配置文件 virsh edit test

    image-20210317141143424

    • 再次查看配置信息 virsh dominfo test

    image-20210317141031960

    • 还可以动态修改 内存和cpu信息 动态修改重启后失效
      • virsh setmem test 800m 修改动态内存
      • virsh setvcpus test 2 修改cpu数 只能增加不能减少
    • 再次查看虚拟机配置信息

    image-20210317141412875

    • virsh dumpxml test > /etc/libvirt/qemu/test.xml把配置写到配置文件中

    配置网卡

    • virsh domiflist test 列出网卡列表

    image-20210317141550289

    • 增加一块新的网卡,并设置为NAT网络模式(virbr0类似VMware的VMnet8),这里如果写--source br0,则网络模式为桥接,命令如下:
      • virsh attach-interface test --type bridge --source virbr0
      • virsh domiflist test

    image-20210317141807147

    • virsh dumpxml test > /etc/libvirt/qemu/test.xml把配置文件进行备份

    • 进入虚拟机查看网卡信息 ip a

    image-20210317150816752

    • 此方法在重启虚拟机后 网卡自动消失 如果想要网卡永久存在 需要将网卡添加到配置文件中
      • image-20210318091356364

    迁移虚拟机

    • 迁移虚拟机必须要先关闭
      • virsh domblklist test 查看虚拟磁盘所在目录
    • virsh dumpxml test > /etc/libvirt/qemu/test03.xml 如果是远程虚拟机需要把该文件拷贝到远程上去
    • rsync -av /kvm_data/test.img /kvm_data/test03.img 如果是迁移到远程,则需要把该磁盘文件拷贝到远程机器上

    image-20210317151623330

    • 因为是迁移到本机,配置文件用的是test子机的配置,不改会有冲突,所以需要修改该文件。如果是远程机器不用修改,命令如下:

      • vi /etc/libvirt/qemu/test03.xml
      • image-20210318091754643
    • virsh define /etc/libvirt/qemu/test03.xml 定义新的虚拟机

    • virsh list --all查看所有的虚拟机

    image-20210317151910428

     
    蓦然回首,那人却在,灯火阑珊处。
  • 相关阅读:
    cocos2dx 2.0 学习笔记简单动画
    几种插入数据的方法
    c#中如何获取本机用户名、MAC地址、IP地址、硬盘ID、CPU序列号、系统名称、物理内存
    C#高效编程改进C#代码的50个行之有效的办法摘抄笔记
    获取两个日期之间的每一天
    取SQL中某个字段的后两位
    该行已经属于另一个表 的解决办法
    一个实体对象不能由多个 IEntityChangeTracker 实例引用
    MVC返回JSON,IE下无法接收JSON,IE下JSON提示另存为
    entity framework DbContext Attach判断
  • 原文地址:https://www.cnblogs.com/linux-186/p/14564721.html
Copyright © 2011-2022 走看看