美文网首页
KVM虚拟化-01

KVM虚拟化-01

作者: 你好_请关照 | 来源:发表于2021-06-22 13:33 被阅读0次

KVM全称:Kernel-based Virtual machine

KVM内存压缩技术: 相同的内容只占用1份内存,所以KVM虚拟机可以超迈,尤其是在做虚拟机克隆的时候。

环境要求:Centos7、4G 内存、开启CPU虚拟化

管理工具安装:yum install libvirt virt-install qemu-kvm -y

libvirt作用:虚拟机的管理软件

libvirt可管理:kvm、xen、qumu、lxc...

virt virt-install virt-clone 作用:虚拟机的安装工具和克隆工具

qumu-kvm qumu-img(qcow2,raw)作用:管理虚拟机的虚拟磁盘

systemctl status libvirtd.service
systemctl enable libvirtd.service
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name c7 --memory 1024 --vcpus 1 --disk /opt/centos3.raw,format=raw,size=5 --cdrom /opt/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

1.常用命令:

virsh list 
virsh list --all 查看虚拟机
virsh reboot        重启虚拟机
virsh shutdown  关机
virsh destroy       拔电关机
virsh undefine  删除虚拟机
virsh define        导入虚拟机配置文件
virsh dumpxml       导出虚拟机的备份文件;举例:virsh dumpxml centos7 >c7.xml
virsh edit          修改虚拟机配置文件,此命令带语法检查功能
virsh domrename 重命名虚拟机
virsh suspend   挂起虚拟机
virsh resume    挂起后,重新恢复虚拟机
virsh vncdisplay 查看虚拟机短端口号
virsh autostart  设置虚拟机为开机自启,前提是systemctl status libvirtd.service 服务器是开机自启
virsh console    使用console 方式连接虚拟机
#开机自启,其实就是给虚拟机的配置文件设置软连接,当删除软连接后开机自启将失效,需要重新定义开机自启,存放软连接文件位置:/etc/libvirt/qemu/autostart
grubby --update-kernel=ALL --args="console=ttyS0,115200n8" #登录虚拟机,输入此修改内核参数的命令,重启虚拟机,使用virsh console 虚拟机名称   连接到虚拟机。

2.虚拟机磁盘格式:

raw:裸格式,占用空间比较大,不支持快照功能,不方便传输,性能较好,总50G,占用50G

qcow2:cow(copy on write )占用空间小,支持快照,性能比raw差一点,方便传输,总50G 占用2G

#qcow2格式创建虚拟机:
#区别于raw格式创建虚拟机:--disk /opt/wb02.qcow2,format=qcow2,这两个字段为qcow2,其他参数与raw格式创建虚拟机一样。
virt-install --virt-type kvm --os-type=linux --os-variant rhel7 --name wb02 --memory 1024 --vcpus 1 --disk /opt/wb02.qcow2,format=qcow2,size=5 --cdrom /opt/CentOS-7-x86_64-DVD-1810.iso --network network=default --graphics vnc,listen=0.0.0.0 --noautoconsole

3.磁盘工具常用命令:

#查看虚拟硬盘信息:qemu-img info 
qemu-img info cengos7.raw
#创建虚拟硬盘:qemu-img create 
创建qcow2格式磁盘(创建在当前路径下): qemu-img create -f qcow2 centos7.qcow2 1G
创建raw格式磁盘(创建在当前路径下): qemu-img create c7.raw 1G
#对虚拟硬盘扩容:qume-img resize 
#qcow2格式的虚拟磁盘只能扩容,不能缩容,raw格式的虚拟磁盘支持缩容,但是一般不建议缩容。
将centos7.qcow2磁盘文件扩容4G:qemu-img resize centos7.qcow2 +4G
将centos7.qcow2磁盘文件扩容到6G:qemu-img resize centos7.qcow2 6G
扩容raw格式的的磁盘文件: qemu-img resize c7.raw 5G
缩容rwa格式的虚拟磁盘(原有5G):qemu-img resize c7.raw 1G
#转换磁盘格式的命令 qemu-img convert
将raw格式的虚拟磁盘转换为qcow2格式:qemu-img convert -f raw -O qcow2 c7.raw c7.qcow2
#虚拟磁盘格式转换完成后,需要停机修改配置文件中的硬盘格式才能启用转换后的虚拟磁盘。
修改下面2行:
<disk type='file' device='disk'>
      <driver name='qemu' type='raw'/>

4.快照管理:

创建快照: virsh snapshot-create-as wb01 --name 基础优化_ok
查看快照:virsh snapshot-list wb01
还原快照:virsh snapshot-revert wb01 --snapshotname 基础优化_ok
删除快照:virsh snapshot-delete wb01 test_ces
#raw不支持做快照,qcow2支持做快照,并且快照保存在qcow2的磁盘文件中。

5.完整克隆:

自动克隆:virt-clone -o wb01 -n lb01 --auto-clone
手动克隆:
#克隆的虚拟机不要有快照,直接cp过去的虚拟机如果有快照的话,无法启动。
cp lb01.qcow2 lb01-clone.qcow2
virsh dumpxml lb01 >lb01-clone.xml
mv lb01-clone.xml /etc/libvirt/qemu
vim /etc/libvirt/qemu/lb01-clone.xml
        #修改虚拟机名字
    #删除虚拟机uuid
    #删除mac地址
    #修改磁盘路径
virsh define lb01-clone.xml
virsh start lb01-clone
  

6.链接克隆:

#生成虚拟机磁盘文件
qemu-img create -f qcow2 -b /opt/wb01.qcow2 /opt/wb02.qcow2

 cp /etc/libvirt/qemu/wb01.xml /etc/libvirt/qemu/wb02.xml
 vim /etc/libvirt/qemu/wb02.xml
        #修改虚拟机名字
    #删除虚拟机uuid
      #删除mac地址
    #修改磁盘路径
 virsh define wb02.xml
 virsh list --all
 virsh start wb02
 [root@node01 /etc/libvirt/qemu]# virsh dumpxml wb01 | grep "qcow2"
      <driver name='qemu' type='qcow2'/>
      <source file='/opt/wb01.qcow2'/>
[root@node01 /etc/libvirt/qemu]# virsh dumpxml wb02 | grep "qcow2"
      <driver name='qemu' type='qcow2'/>
      <source file='/opt/wb02.qcow2'/>
        <source file='/opt/wb01.qcow2'/> #基于wb01磁盘进行克隆。
[root@node01 /etc/libvirt/qemu]#

7.自动链接克隆脚本

#!/bin/bash
#new_kvm=$2
#old_kvm=$1
read -p "请输入被克隆的虚拟机名称:" old_kvm
read -p "请输入新的虚拟机名称:" new_kvm
old_kvm_disk=`virsh dumpxml wb01 | sed -r -n "s#(<source file=.)(.*)(./>)#\2#p" |tr -d  "  "`
old_kvm_disk_path=`dirname $old_kvm_disk`
qemu-img create -f qcow2 -b $old_kvm_disk $old_kvm_disk_path/${new_kvm}.qcow2
virsh dumpxml $old_kvm>/tmp/${new_kvm}.xml
#修改kv名称
sed -ri "s#(<name>)(.*)(</name>)#\1${new_kvm}\3#g" /tmp/${new_kvm}.xml
#删除虚拟机uuid
sed -i '/uuid/d' /tmp/${new_kvm}.xml
#删除mac地址
sed -ri '/mac address/d' /tmp/${new_kvm}.xml
#修改磁盘路径
sed -ri "s#(<source file=.)(.*)(./>)#\1/opt/${new_kvm}.qcow2\3#g" /tmp/${new_kvm}.xml

virsh define  /tmp/${new_kvm}.xml
virsh start  ${new_kvm}

相关文章

  • 20171207 虚拟化

    虚拟化技术概览KVM简介KVM的管理操作 一、虚拟化技术概览 (一)虚拟化技术类型: 主机虚拟化:xen, kvm...

  • 36-虚拟化

    本章内容 ◆ 虚拟化基础◆ 虚拟化技术之KVM◆ kvm实战案例 一:虚拟化基础 https://www.vmwa...

  • 2019-05-20 kvm虚拟化

    1:什么是虚拟化? 2:为什么要用虚拟化? 3:kvm虚拟化管理软件的安装 4:安装一台kvm虚拟机 5:kvm虚...

  • docker(一)

    1.什么是容器? 2.容器和虚拟化的区别 linux容器技术,容器虚拟化和kvm虚拟化的区别 kvm虚拟化: 需要...

  • KVM虚拟化-01

    KVM全称:Kernel-based Virtual machine KVM内存压缩技术: 相同的内容只占用1份内...

  • 虚拟化

    目录 一、了解虚拟化二、常见虚拟化软件三、虚拟化架构四、KVM介绍五、Centos7上安装KVM六、配置网卡七、创...

  • kvm虚拟化存储管理(4)

    一、KVM 存储虚拟化介绍 KVM 的存储虚拟化是通过存储池(Storage Pool)和卷(Volume)来管理...

  • kvm虚拟化

    KVM 虚拟化技术 CPU虚拟化技术 内存虚拟化技术 IO虚拟化技术 网络IO虚拟化技术 磁盘IO虚拟化技术 虚拟...

  • KVM常用知识点

    KVM常用知识点 如何查看支持虚拟化 如果有输出信息说明cpu支持虚拟化 KVM是那几部分组成的? KVM:内核虚...

  • KVM虚拟化

    kvm实验 环境准备,我这里使用虚拟机进行模拟,先设定好虚拟化 进入系统查看是否支持虚拟化 KVM:Kernel-...

网友评论

      本文标题:KVM虚拟化-01

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