博文大纲:
1、磁盘与快照管理
2、虚拟机克隆技术
3、虚拟机的网络配置web
这个段落主要介绍磁盘与快照的管理!vim
在KVM虚拟机中有两种磁盘格式,分别是:服务器
举例说明:网络
[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磁盘的详细信息 //以上操做建议在一个建立的测试目录中
如下操做将本地磁盘格式转换为qcow2tcp
[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 //确认虚拟机能够开启,证实磁盘文件更改没有错误
[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虚拟机的磁盘信息就先简单介绍这么多,有机会还会继续更新!ide
在KVM虚拟化平台中,克隆主要分为如下三种:工具
- 手动克隆;
- 连接克隆;
- 完整自动克隆;
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 //开启虚拟机,自行进行测试
连接克隆就是把其本来磁盘文件作一个连接而已!操做以下:测试
[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 //进行开机测试,自行进行测试
针对以上两种克隆方式,这种克隆方式就显得过于简单了!有一个硬性的要求就是须要关闭KVM虚拟机。ui
[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虚拟机的两个模式:
适用范围:不容许互联网进行访问;
原理: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的虚拟机;
实现方式:
[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 //使用edit工具编辑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虚拟机网络就介绍这么多!
———————— 本文至此结束,感谢阅读 ————————