虚拟化概述
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] ~]# mkdir /dvd
[[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 -y 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 #提供uuid
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