创建/还原/删除快照
快照的作用:在虚拟机磁盘镜像内记录不同时间点的状态数据备份
必要时可将虚拟机恢复到指定的快照
虚拟机必须关机下进行
路径/var/lib/libvirt/images
Ø qemu-img快照管理基本操作:
创建快照:qemu-img snapshot -c 快照名 qcow2磁盘
列出快照:qemu-img snapshot -l qcow2磁盘
恢复快照:qemu-img snapshot -a 快照名 qcow2磁盘
删除快照:qemu-img snapshot -d 快照名 qcow2磁盘
为虚拟机制作快照备份
步骤一:为虚拟机制作快照
1)确保虚拟机rhel-7已经关机# virsh list --all | grep rhel-7
2)为虚拟机rhel-7的磁盘制作快照# cd /var/lib/libvirt/images/
# qemu-img snapshot -c snap1 rhel-7.qcow2
# qemu-img snapshot -l rhel-7.qcow2
步骤二:正常使用/更新虚拟机
1)启动虚拟机rhel-7# virsh start rhel-7
2)正常登入虚拟机rhel-7,在桌面建立文件1.txt
步骤三:还原快照并检查恢复结果
1)关闭虚拟机rhel-7# virsh destroy rhel-7
2)将虚拟机rhel-7的磁盘还原到快照snap1
# qemu-img snapshot -a snap1 rhel-7.qcow2
3)重新开启虚拟机rhel-7 # virsh start rhel-7
4)正常登入虚拟机rhel-7,检查桌面的文件1.txt
因为此文件是在建快照之后才建立的,所以还原快照以后就没有了。
###############################################################################
离线访问虚拟机
• 使用 guestmount 工具 (可用于破密)
– 支持离线挂载 raw、qcow2 格式虚拟机磁盘
– 可以在虚拟机关机的情况下,直接修改磁盘中的文档
– 方便对虚拟机定制、修复、脚本维护
!!!需要注意SELinux机制的影响
• 挂载虚拟机磁盘的方式(raw、qcow2):guestmount -a 虚拟机磁盘路径 -i /挂载点
chroot 挂载点目录
# mkdir /opt/test01
# guestmount -a /var/lib/libvirt/images/nsd1706.qcow2 -i /mnt/abc/
# ls /mnt/abc/
# ls /mnt/abc/root/
# touch /mnt/abc/root/hahaxixitc.txt
# umount /mnt/abc/
查找一个程序由哪个软件包提供:
# yum provides "*bin/guestmount"
###############################################################################
SSH免密码登录
1.生成公钥(钥匙) 私钥(锁) # ssh-keygen #一路回车
2.查看公私钥 # ls /root/.ssh/ #默认存放路径
3.传递公钥到虚拟机A与虚拟机B
# ssh-copy-id root@192.168.4.7
# ssh-copy-id root@192.168.4.207
CentOS与RHEL无密码远程管理 # ssh-add #声明私钥
###############################################################################
快建新虚拟机
搭建新的教学环境
1.所有虚拟机强制关机
2.保留 classroom server desktop win2008,其他全部删除
# clone-vm7 虚拟机A,密码为123456
1.主机名 svr7.tedu.cn /etc/hsotname echo svr7.tedu.cn > /etc/hostname
2.配置eth0网卡IP地址为 192.168.4.7/24
3.与真机 192.168.4.254 进行通信
4.将防火墙默认区域修改为trusted
5.永久关闭SELinux /etc/selinux/config
# clone-vm7 虚拟机B,密码为123456
1.主机名 pc207.tedu.cn /etc/hsotname
2.配置eth0网卡IP地址为 192.168.4.207/24
3.与真机 192.168.4.254 进行通信
4.将防火墙默认区域修改为trusted
5.永久关闭SELinux /etc/selinux/config
##################################################################
步骤一:准备模板虚拟机
1)准备磁盘目录、模板虚拟机磁盘文件
# qemu-img info /data/images/rhel7_muban.qcow2
virtual size: 300G (322122547200 bytes) //虚拟机磁盘容量
disk size: 3.2G //在KVM服务器占用容量
2)准备模板虚拟机配置文件
# cat /data/images/rhel7_muban.xml
<domain type='kvm'>
<name>rhel7.2</name>
<uuid>a1992150-5cc7-e19d-20df-cd5cea7d8aa2</uuid>
<memory unit='KiB'>2097152</memory>
步骤二:快建虚拟机svr7
1)为虚拟机svr7快速建立前端盘(复用模板机的磁盘数据)
# qemu-img create -f qcow2 -b /data/images/rhel7_muban.qcow2 /data/images/svr7.qcow2
2)为虚拟机svr7准备xml配置
# cp /data/images/rhel7_muban.xml /tmp/svr7.xml //拷贝配置
# vim /tmp/svr7.xml //修改配置
<name>svr7</name> //新名称
<uuid>b20a1a1c-a2de-4b2f-bb03-91a3e36257c7</uuid> //新UUID值
<source mode='bind' path='/var/lib/libvirt/qemu/channel/t
arget/domain-rhel-7/org.qemu.guest_agent.0'/> //改套接字路径
<source file='/var/lib/libvirt/images/svr7.qcow2'/> //新磁盘路径
<mac address='52:54:00:11:00:07'/> //新MAC地址
3)定义新虚拟机svr7 # virsh define /tmp/svr7.xml 定义域 svr7(从 /tmp/svr7.xml)
4)为虚拟机svr7配置主机名、IP地址,开启虚拟机svr7,使用root用户登入系统。
# vim /etc/hostname //配置主机名svr7.tedu.cn
# nmcli connection modify eth0 ipv4.method manual ipv4.addresses 192.168.4.7/24 connection.autoconnect yes //配置IP地址
# nmcli connection up eth0 //激活连接
# ifconfig eth0 //确认配置结果
步骤三:快建虚拟机pc207,操作与步骤二类似,此处略。
步骤四:快建虚拟机的运行测试
1)启动两台虚拟机svr7、pc207,均可正常运行
2)从svr7可ping通pc207 # ping 192.168.4.207
3)从CentOS真机可ssh远程访问这两台虚拟机
##############################################################################
KVM:完全虚拟化的软件平台 —— 依赖于CPU支持
Xen:部分虚拟化软件平台
QEMU,模拟器
KVM+CPU支持 ===》 完全、高效的虚拟化解决方案
KVM+ QEMU模拟器==》一般的虚拟化解决方案,效率略低
虚拟化应用的两种角色 ——
Host:提供并且运行大量虚拟机的真实机
Guest:虚拟机
软件包组:虚拟化、虚拟化平台、虚拟化客户端、虚拟化工具
系统服务:libvirtd
管理工具:virsh、virt-manager(图形)
虚拟机构成:磁盘镜像、xml配置文件
镜像管理工具:qemu-img、guestmount
虚拟机快建应用:快建qcow2磁盘、配置调整、导入新虚拟机
网络连接:桥接、隔离
隔离网络访问真实网络类型:NAT、路由
虚拟网络(虚拟交换机)类型:
桥接模式:相当于把虚拟交换机连接到物理交换机
Guest可直接访问Host所在外部网络,相当于与Host连到同一个交换机,需要在物理接口和虚拟接口之间搭一个网桥
隔离模式:相当于KVM虚拟的一个内部的交换机,不能访问真实网络
Guest可访问同一个虚拟交换机上的其他Guest,但无法访问Host所在外部网络
隔离模式下的虚拟机如何访问真实网络的类型:
NAT模式(默认):KVM自动配置,担任网关,为虚拟机提供IP地址、DNS解析、上网策略(dnsmasq == virbr0)
Guest的网关指向Host的virbr0的IP地址,允许虚拟机共用真机的网络连接
路由模式:担任路由器,需要管理员手动配置路由记录,为虚拟机网络与外网之间提供数据包转发功能
由Host开启转发充当路由器,需要额外设置外网与Guest之间互访的路由