虚拟化概述
? Virtualization 资源管理
– x个物理资源 --> y个逻辑资源
– 实现程度:完全、部分、硬件辅助(CPU)
手动新建一台虚拟机: ?
? ? ? ? ? ? ? ? 虚拟机名字:example
? ? ? ? ? ? ? ? 网络类型选择:private1
? 使用 virt-manager 客户端工具
在真机上操作:
? 查看KVM节点(服务器)信息
? – virsh nodeinfo
? 列出虚拟机
? – virsh list [--all]
? 查看指定虚拟机的信息
? – virsh dominfo 虚拟机名称
? 将指定的虚拟机设为开机自动运行
? – virsh autostart [--disable] 虚拟机名称
? 运行|重启|关闭指定的虚拟机
? – virsh start|reboot|shutdown 虚拟机名称
? 强制关闭指定的虚拟机
? – virsh destroy 虚拟机名称
#######################################################
在虚拟机example中搭建本地Yum
1.挂载光盘
[[email protected] ~]# mount /dev/cdrom /dvd
2.客户端文件
[[email protected] ~]# cat /etc/yum.repos.d/dvd.repo?
[dvd]
name=dvd
baseurl=file:///dvd
enabled=1
gpgcheck=0
#####################################################
? 使用RHEL7软件仓库的预设分组
– yum groups list [hidden] [组名]...
– yum groups info [组名]...
– yum groups install [组名]...
– yum groups remove [组名]...
[[email protected] ~]# yum groups install?
?Virtualization\ Client ? ?
?Virtualization\ Hypervisor ?
?Virtualization\ Platform ??
?Virtualization\ Tools?
########################################################
? 桌面图标
/usr/share/applications/
? ?右击-----图标--------->复制到---------->home------->桌面
######################################################
启动libvirtd服务端
? ?? libvirtd 为管理虚拟机提供服务接口
######################################################
?在Linux中KVM虚拟机,组成: ??
?– xml配置文件(虚拟机描述文件):定义虚拟机的名称、UUID、CPU、内
存、虚拟磁盘、网卡等各种参数设置
? ? ? /etc/libvirt/qemu/*.xml
?– 磁盘镜像文件:保存虚拟机的操作系统及文档数据,
镜像路径取决于xml配置文件中的定义
? ? ? /var/lib/libvirt/images/
[[email protected] 桌面]# ls /etc/libvirt/qemu/
[[email protected] 桌面]# ls /var/lib/libvirt/images/
[[email protected] 桌面]# du -sh /var/lib/libvirt/images/
?
? 细节: ?模版虚拟机example,注意删除 Channel 设备
#######################################################
通过example虚拟机,生成新的虚拟机
1.关闭example虚拟机
[[email protected] 桌面]# virsh destroy example
2.通过example虚拟机,磁盘文件复制一份
[[email protected] 桌面]# cd /var/lib/libvirt/images/
[[email protected] images]# qemu-img info example.qcow2?
[[email protected] images]# cp example.qcow2 test01.qcow2?
3.通过example虚拟机,复制虚拟机描述文件
[[email protected] images]# cd /etc/libvirt/qemu/
[[email protected] qemu]# ls
[[email protected] qemu]# cp example.xml test01.xml
[[email protected] qemu]# vim test01.xml ?
? ?虚拟机名称、UUID、虚拟机磁盘文件、网卡MAC
[[email protected] qemu]# uuidgen
4. 导入新虚拟机信息
# virsh define /etc/libvirt/qemu/test01.xml ? ? #导入虚拟机信息
# virsh list --all
##########################################################
导出xml配置文件
? – 查看:virsh dumpxml 虚拟机名
? – 备份:virsh dumpxml 虚拟机名 > 虚拟机名.xml
对虚拟机的配置进行调整
? ?– 编辑: virsh ? edit ? 虚拟机名
#########################################################
? COW写时复制,快速重建虚拟机
1.虚拟机的磁盘文件,快速生成
? Copy On Write,写时复制
? – 直接映射原始盘的数据内容
? – 当原始盘的旧数据有修改时,在修改之前自动将旧数据存
入前端盘
? – 对前端盘的修改不回写到原始盘
2.qemu-img 通过 -b 选项复用指定原始盘
– qemu-img create -f qcow2 -b ? 原始盘 ? ? ?前端盘
1.关闭虚拟机
[[email protected] /]# virsh destroy example
2.生成前端盘
# qemu-img create -f qcow2 -b /var/lib/libvirt/images/example.qcow2 ? /var/lib/libvirt/images/test02.qcow2
3.生成新的虚拟机描述文件
[[email protected] /]# cd /etc/libvirt/qemu/?
[[email protected] qemu]# cp example.xml test02.xml
[[email protected] qemu]# vim test02.xml?
? ?虚拟机名称、UUID、虚拟机磁盘文件、网卡MAC
[[email protected] qemu]# uuidgen
4. 导入新虚拟机信息
# virsh define /etc/libvirt/qemu/test02.xml ? ? #导入虚拟机信息
# virsh list --all
###########################################################
? 离线访问虚拟机
? 使用 guestmount 工具
– 支持离线挂载 raw、qcow2 格式虚拟机磁盘
– 可以在虚拟机关机的情况下,直接修改磁盘中的文档
– 方便对虚拟机定制、修复、脚本维护
# guestmount -a /var/lib/libvirt/images/example.qcow2 -i /mnt/
###################################################
1)生产环境可以标记 /.unconfigured ,方便新虚拟机
的配置(相当于出厂设置,提示用户初始化)
#######################################################
搭建新的教学环境
1.在真机生成两台虚拟机
[[email protected] 桌面]# clone-vm7?
Enter VM number: 8
[[email protected] 桌面]# clone-vm7?
Enter VM number: 9
2.修改虚拟机名称,一个A ?另一个B
? 虚拟机A:
? ? 主机名:svr7.tedu.cn
? IP地址:192.168.4.7/24
? 虚拟机B:
? ? 主机名:pc207.tedu.cn
? IP地址:192.168.4.207/24
3.Yum仓库的搭建
? ?
? ? ?真机 ?Yum服务端,Web共享光盘所有内容
[[email protected] 桌面]# mkdir ?/var/www/html/rhel7
[[email protected] 桌面]# ls ?/var/www/html/rhel7
[[email protected] 桌面]# mount ?/ISO/rhel-server-7.2-x86_64-dvd.iso ? ?/var/www/html/rhel7
[[email protected] 桌面]# ls ?/var/www/html/rhel7
[[email protected] 桌面]# firefox ? 127.0.0.1/rhel7
[[email protected] 桌面]# vim /etc/fstab?
/ISO/rhel-server-7.2-x86_64-dvd.iso ? /var/www/html/rhel7 ?iso9660 ?defaults ?0 ?0
[[email protected] 桌面]# umount /var/www/html/rhel7/
[[email protected] 桌面]# ls /var/www/html/rhel7/
[[email protected] 桌面]# mount -a
[[email protected] 桌面]# ls /var/www/html/rhel7/
? ? ?客户端:虚拟机A与虚拟机B
?虚拟机A
?[[email protected] ~]# vim /etc/yum.repos.d/dvd.repo
?[dvd]
?name=dvd
?baseurl=http://192.168.4.254/rhel7
?enabled=1
?gpgcheck=0
?[[email protected] ~]# yum repolist
? 用与远程拷贝数据,网络的不同主机之间
? scp ?本地的路径 ? ?用户名@对方的IP地址:对方的路径
? scp ?/etc/yum.repos.d/dvd.repo [email protected]:/etc/yum.repos.d
##########################################################
?虚拟机A
?虚拟机B