KVM虚拟化平台——磁盘与快照管理、克隆虚拟机与网络管理

博文大纲:
一、磁盘与快照管理
二、虚拟机克隆技术
三、虚拟机的网络配置

一、磁盘与快照管理

这个段落主要介绍磁盘与快照的管理!

在KVM虚拟机中有两种磁盘格式,分别是:

  • RAW:裸格式。占用空间较大,性能比较好,但不支持快照功能;
  • qcow2:占用空间较小,性能相比较RAW稍差,,但它支持快照功能;

(1)虚拟磁盘管理

举例说明:

[root@localhost ~]# qemu-img create 1234.raw 5G            
//创建虚拟磁盘,名称为1234.raw,大小为5G,创建磁盘默认格式为raw
[root@localhost ~]# qemu-img create -f qcow2 123.qcow2 5G
//创建虚拟磁盘,名称为123.qcow2,大小为5G,创建时指定磁盘格式为qcow2
[root@localhost ~]# qemu-img info 1234.raw        //查看1234.raw磁盘的详细信息
[root@localhost ~]# qemu-img info 123.qcow2       //查看123.qcow2磁盘的详细信息
//以上操作建议在一个创建的测试目录中

以下操作将本地磁盘格式转换为qcow2

[root@localhost ~]# cd /kvm/disk/        //KVM虚拟磁盘存放路径
[root@localhost disk]# qemu-img info web01.raw    //查看磁盘详细信息  
image: web01.raw
file format: raw                                  //这里显示的格式是raw
virtual size: 10G (10737418240 bytes)
disk size: 1.4G
[root@localhost disk]# virsh list  --all          //查看虚拟机列表,确认虚拟机是关闭的状态
 Id    名称                         状态
----------------------------------------------------
 -     web01                          关闭
[root@localhost disk]# qemu-img convert -f raw -O qcow2 web01.raw web01.qcow2
//将原本的磁盘格式raw转换为qcow2,不过转换之前需要保证KVM虚拟机是关闭的状态
[root@localhost disk]# ls              
web01.qcow2  web01.raw
//注意转换之前的虚拟机磁盘依然存在
[root@localhost disk]# virsh edit web01 
//修改虚拟机的磁盘文件格式,定位到driver name,修改为以下内容:
      <driver name='qemu' type='qcow2'/>
      <source file='/kvm/disk/web01.qcow2'/>
//将原本的磁盘类型raw更改为qcow2,这两行都需修改
[root@localhost disk]# virsh start web01
//确认虚拟机可以开启,证明磁盘文件更改没有错误

(2)虚拟机快照管理

[root@localhost disk]# virsh snapshot-create web01        
//针对web01虚拟机创建快照
[root@localhost disk]# virsh snapshot-list web01
//查看虚拟机的快照信息
 名称               生成时间              状态
------------------------------------------------------------
 1575285097           2019-12-02 19:11:37 +0800 running
//名称这一列表示为时间戳,从1970年到现在的时间,默认是秒数
[root@localhost disk]# virsh snapshot-revert web01 1575285097
//针对虚拟机恢复指定快照信息
[root@localhost disk]# qemu-img info web01.qcow2    //查看虚拟机转换后的磁盘信息
image: web01.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 2.0G
cluster_size: 65536
Snapshot list:
ID        TAG                 VM SIZE                DATE       VM CLOCK
1         1575285097             254M 2019-12-02 19:11:37   00:01:54.499
//从这里可以看出快照其实是存储在虚拟机的磁盘中的,占用磁盘的空间
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@localhost disk]# virsh snapshot-delete web01 1575285097
//针对虚拟机删除指定快照

针对KVM虚拟机的磁盘信息就先简单介绍这么多,有机会还会继续更新!

二、虚拟机克隆技术

在KVM虚拟化平台中,克隆主要分为以下三种:

  • 手动克隆;
  • 链接克隆;
  • 完整自动克隆;

(1)手动克隆

KVM虚拟机有两个配置文件,通过克隆配置文件的方式来对虚拟机进行克隆,还有一个前提要求就是虚拟机必须处于关机的状态。
操作如下:

[root@localhost ~]# cd /etc/libvirt/qemu/
[root@localhost qemu]# cp web01.xml web02.xml         //使用最基础的命令进行复制
[root@localhost qemu]# virsh dumpxml web01 > web03.xml    //使用dumpxml工具进行生成
[root@localhost qemu]# ls
networks  web01.xml  web02.xml  web03.xml
//确认xml文件确实存在,以上两种方法都可以
[root@localhost qemu]# rm -rf web03.xml 
//实验环境所以就把这个文件删除
[root@localhost qemu]# cd /kvm/disk/
[root@localhost disk]# cp web01.raw web02.raw 
//进入指定目录对虚拟机磁盘文件进行复制
[root@localhost disk]# vim /etc/libvirt/qemu/web02.xml 
//修改虚拟机的xml文件
定义到第一个name字段更改内容如下:  
<name>web02</name>
定义到第一个uuid字段进行删除uuid整行!
定义到第一个mac address字段进行删除整行!
[root@localhost disk]# cd /etc/libvirt/qemu
[root@localhost qemu]# virsh define web02.xml 
//通过配置文件定义一个虚拟机(这个虚拟机还不是活动的)
注意:如果需要删除使用“virsh define web02.xml ”但是只会删除xml文件,并不会删除磁盘文件!
[root@localhost qemu]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     web01                          关闭
 -     web02                          关闭

[root@localhost qemu]# virsh start web02        //开启虚拟机,自行进行测试

(2)链接克隆

链接克隆就是把其原本磁盘文件做一个链接而已!操作如下:

[root@localhost disk]# qemu-img create -f qcow2 -b web01.raw web02.qcow2
//针对原本的web01.raw生成一个新的磁盘文件web02.qcow2,添加“-b”选项的意思,就是链接的意思
[root@localhost disk]# qemu-img info web02.qcow2    //查看新创建的磁盘详情
image: web03.qcow2
file format: qcow2
virtual size: 10G (10737418240 bytes)
disk size: 196K                  //注意大小
cluster_size: 65536
backing file: web01.raw             //表示最终使用的磁盘
Format specific information:
    compat: 1.1
    lazy refcounts: false
[root@localhost disk]# virsh edit web02
定义到driver name字段,
      <driver name='qemu' type='qcow2'/>  修改为qcow2
      <source file='/kvm/disk/web02.qcow2'/> 修改为web02.qcow2
[root@localhost disk]# virsh start web02  //进行开机测试,自行进行测试           

(3)完整自动克隆

针对以上两种克隆方式,这种克隆方式就显得过于简单了!有一个硬性的要求就是需要关闭KVM虚拟机。

[root@localhost ~]# virt-clone --auto-clone -o web01 -n web03 
//针对虚拟机web01自动生成web03虚拟机,如果不加-n指定名称,将生成web01-clone。
[root@localhost ~]# virsh list --all
 Id    名称                         状态
----------------------------------------------------
 -     web01                          关闭
 -     web02                          关闭
 -     web03                          关闭

[root@localhost ~]# virsh start web03            //开机自行进行测试

关于虚拟机的克隆就介绍这么多!

三、虚拟机的网络配置

我们之所以在KVM虚拟机中创建多个虚拟机,是为了能够给互联网的用户提供相应的服务。

那么首先我们介绍KVM虚拟机的两个模式:

(1)NAT模式

适用范围:不允许互联网进行访问;
原理:NAT方式是KVM安装完成之后的默认方式,它支持KVM宿主机和虚拟机之间的访问,同时也支持虚拟机访问互联网,但不支持互联网用户对其进行访问!

实现方式:

[root@localhost ~]# virt-clone --auto-clone -o web01 -n web02
//通过完整自动克隆的方式生成web02虚拟机
[root@localhost ~]# systemctl start firewalld
//保证防火墙是开启的状态
[root@localhost ~]# echo net.ipv4.ip_forward = 1 >> /etc/sysctl.conf
[root@localhost ~]# sysctl -p
net.ipv4.ip_forward = 1
//开启路由转发功能
[root@localhost ~]# firewall-cmd --add-port=5900/tcp --permanent
[root@localhost ~]# firewall-cmd --reload
//如果需要VNC对其进行操作,还需开启5900端口
[root@localhost ~]# virsh start web02     //开启web02虚拟机

进行验证:
KVM虚拟化平台——磁盘与快照管理、克隆虚拟机与网络管理
KVM虚拟化平台——磁盘与快照管理、克隆虚拟机与网络管理
访问互联网没有问题!

(2)bridge模式(桥接网络)

适用范围:服务器主机虚拟化;
原理:即虚拟网桥的网络连接方式,使互联网用户可以访问到KVM的虚拟机;

实现方式:

[root@localhost ~]# systemctl stop NetworkManager       //关闭网络管理工具
[root@localhost ~]# virsh iface-bridge ens33 br0       //通过ens33生成br0
使用附加设备 br0 生成桥接 ens33 失败            //提示失败没有关系
已启动桥接接口 br0
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cat ifcfg-ens33
DEVICE=ens33
ONBOOT=yes
BRIDGE="br0"                 
//可以查看到ens33的网卡几乎没有内容,就是桥接到br0而已
[root@localhost network-scripts]# cat ifcfg-br0 
DEVICE="br0"
ONBOOT="yes"
TYPE="Bridge"
BOOTPROTO="none"
IPADDR="192.168.1.7"
NETMASK="255.255.255.0"
GATEWAY="192.168.1.254"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
DHCPV6C="no"
STP="on"
DELAY="0"
//发现原本属于ens33的IP地址跑到了br0网卡上
[root@localhost ~]# brctl show     //使用br专用命令进行查看
bridge name bridge id       STP enabled interfaces
br0     8000.000c29855ef5   yes     ens33
virbr0      8000.52540028f9c1   yes     virbr0-nic
//可以看出ens33桥接到了br0网卡上
[root@localhost ~]#  virsh edit web01             //使用web01进行测试
定位到interface,修改一下内容:
    <interface type='bridge'>          修改为bridge
      <mac address='52:54:00:ef:a3:93'/>
      <source bridge='br0'/>     修改为 bridge='br0'
[root@localhost ~]# virsh start web01         //启动web01虚拟机

进行验证:
KVM虚拟化平台——磁盘与快照管理、克隆虚拟机与网络管理
KVM虚拟化平台——磁盘与快照管理、克隆虚拟机与网络管理
KVM虚拟化平台——磁盘与快照管理、克隆虚拟机与网络管理

关于KVM虚拟机网络就介绍这么多!

———————— 本文至此结束,感谢阅读 ————————

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: KVM虚拟化技术是目前比较流行并开源的虚拟化技术之一。它不仅简单易用,而且与Linux内核紧密集成,性能也非常出色。 KVM的实战应用非常广泛,包括虚拟化服务器、云平台、桌面虚拟化等。通过KVM,我们可以在一台物理机上虚拟出多台虚拟机,并通过网络进行管理和访问。这样,我们就可以更好地利用物理资源,提高服务器的利用率,从而降低成本。 在KVM的原理解析中,我们需要了解KVM是如何实现虚拟化的。首先,KVM利用了Linux内核对硬件的抽象和管理能力,通过向内核注册自己的虚拟设备,实现对硬件的虚拟化。其次,KVM使用了硬件辅助虚拟化技术,例如Intel的VT-x和AMD的AMD-V。这些技术可以使虚拟机在机器语言级别上直接访问物理硬件,并且在虚拟化过程中几乎不会产生性能损失。 最后,KVM还支持各种虚拟化技术的组合,例如普通虚拟机、全虚拟化、半虚拟化、硬件辅助虚拟化、PCI设备直通等。这种灵活的虚拟化技术组合方式可以为不同的应用场景提供更好的支持,保证了虚拟机的性能、稳定性和安全性。 综上,KVM虚拟化技术是一种可靠、灵活、高效的虚拟化技术,可以帮助企业更好地利用物理资源,提高服务器的利用率,降低成本。同时,通过KVM的学习,我们能够更好地理解虚拟化技术的原理,为我们今后的学习和工作都将带来更好的支持。 ### 回答2: KVM虚拟化技术是一种基于Linux内核的全虚拟化技术,它可以将一台物理机虚拟出多台互相隔离的虚拟机,每个虚拟机可以独立运行不同的操作系统。KVM虚拟化技术的优点是稳定、可靠、高效,最为重要的是开源免费。 《KVM虚拟化技术:实战与原理解析》这本书为读者讲解了KVM的原理、安装、配置、使用、优化和常见问题解决等内容,既有理论知识又有实践经验。通过对本书的学习,读者可以深入了解KVM虚拟化技术的工作原理及其优势,准确掌握KVM虚拟机的安装和配置方法,提高虚拟机的利用效率,时刻做好系统的优化和维护工作。 该书有助于IT从业人员的技能提升,增强他们应对虚拟化技术挑战的能力。学习本书不仅可以有效提高工作效率,更能加深对虚拟化技术的理解,为今后从事相关工作奠定坚实基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值