# cat /etc/exports
/content/ 172.25.254.0/24(ro) 本地文件是为classroom提供共享服务的
# vim /etc/ssh/sshd_config
AllowUsers [email protected]/24 仅允许ip172.40.50.0/24 进行访问
# systemctl restart sshd
实验前准备:新建一台虚拟机 名称叫 rhel7.2
磁盘 10G足够 网络类型选择 "private1" (独立网络)
语言 选择 "中文" 安装软件包 选择 "带GUI的服务器"
Kdump程序 "关闭"(把勾去掉) 分区选择 "自动分区"
root 密码 "123456" 创建普通用户 "lisi" 密码 "123456"
###############################################################################
真机与虚拟机的通信
在虚拟机上操作:
将虚拟机网络类型选择为 private1
配置虚拟机网络IP地址:192.168.4.100/24
在真机上操作:
ifconfig private1
ping 192.168.4.100
在虚拟机上操作:
# vim /etc/sysconfig/selinux
SELINUX=permissive
# firewall-cmd --set-default-zone=trusted
###############################################################################
KVM构建及管理
搭建KVM服务器
KVM,Kernel Virtualization Machine
虚拟化概述(Virtualization资源管理)
x个物理资源---->y个逻辑资源
实现程度:完全、部分、硬件辅助(CPU)
判断真机是否支持硬件辅助虚拟化(CPU是否支持虚拟指令集):cat /proc/cpuinfo | grep vmx
虚拟化的出现淘汰了双系统
虚拟化主要厂商及产品
系列 |
PC/服务器版代表 |
VMware |
VMware Workstation、vSphere |
Microsoft |
VirtualPC、Hyper-V |
Redhat |
KVM、RHEV |
Citrix |
Xen |
Oracle |
Oracle VM VirtualBox |
yum软件组管理
Ø 快速配置RHEL7光盘源:为虚拟机连接RHEL7光盘镜像,并挂载到固定位置
添加到file://mnt/dvd的本地YUM源配置
准备一台 RHEL7.2 服务器,将其搭建为KVM平台
真机(本地)搭建yum仓库
服务端:虚拟机example
1、通过图形将光盘ISO镜像放入光驱设备
2、挂载ISO光盘镜像文件
#mkdir /mnt/rhel7 //创建挂载点
# mount /dev/cdrom /mnt/rhel7
2、确认/mnt/rhel7访问点 # ls /mnt/rhel7/Packages/*.rpm //确认软件包位置
3、修改配置文件/etc/fstab
# vim /etc/fstab //添加开机挂载配置
/ISO/rhel-server-7.2-x86_64-dvd.iso /mnt/dvd iso9660 defaults 0 0
4、验证:# mount -a //根据fstab配置挂载光盘
客户端:虚拟机example
1、删除其它的客户端文件# rm -rf /etc/yum.repos.d/* //保证实验不受其他文件的影响
2、将本地目录/mnt/dvd配置为本机的yum源
# vim /etc/yum.repos.d/mnt_dvd.repo
[mnt_dvd]
name=added from: file:///mnt/dvd
baseurl=file:///mnt/dvd
enabled=1
gpgcheck=0 //禁止GPG检查签名认证
(或 利用命令生成客户端文件# yum-config-manager --add file:///mnt/dvd //添加源
修改自动生成的配置文件,在最后添加 gpgcheck=0
# yum clean all #清空缓存
# yum repolist #列出仓库信息
###############################################################################
虚拟机搭建yum仓库
1、挂载ISO光盘镜像文件
#mkdir /mnt/dvd //创建挂载点
# mount /ISO/rhel-server-7.2-x86_64-dvd.iso /mnt/dvd
2、确认/mnt/dvd访问点 # ls /mnt/dvd/Packages/*.rpm //确认软件包位置
3、修改配置文件/etc/fstab
# vim /etc/fstab //添加开机挂载配置
/dev/cdrom /mnt/rhel7 defaults|ro 0 0
5、验证:# mount -a //根据fstab配置挂载光盘
客户端:虚拟机
1、删除其它的客户端文件
# rm -rf /etc/yum.repos.d/* //保证实验不受其他文件的影响
2、将本地目录/mnt/rhel7配置为本机的yum源
# vim /etc/yum.repos.d/mnt_rhel7.repo
[mnt_rhel7]
name=added from: file:///mnt/rhel7
baseurl=file:///mnt/rhel7
enabled=1
gpgcheck=0 //禁止GPG检查签名认证
(或 利用命令生成客户端文件# yum-config-manager --add file:///mnt/dvd //添加源
修改自动生成的配置文件,在最后添加 gpgcheck=0
# yum clean all #清空缓存
# yum repolist #列出仓库信息
###############################################################################
安装部署虚拟化平台
Ø 使用RHEL7软件仓库的预设分组:
yum groups list [hidden] [组名]…… #hidden,列出所有的包组
yum groups info [组名]……
yum groups install [组名]……
yum groups remove [组名]……
安装虚拟化服务器平台
Ø 主要软件组: 虚拟化平台----”Virtualization Platform”
虚拟化主机----”Virtualization Host”
虚拟化客户端---- ”Virtualization Client”
其他两个组会由于依赖关系自动被关联。
yum -y groups install 虚拟化主机 虚拟化平台 虚拟化客户端
Ø 启动libvirtd服务端:为管理虚拟机提供服务接口(虚拟化服务)
调用dnsmasq提供DNS,DHCP等功能
建立virbr0虚拟网络
###############################################################################
安装部署虚拟化平台 确认RHEL7中的虚拟化软件组
1)安装兼容组信息# yum groups mark convert
2)查看全部软件组,过滤出与虚拟化相关的软件组
# yum groups list hidden| grep -i virt
安装KVM虚拟化主要软件组
# yum -y groups install Virtualization\ Client Virtualization\ Platform Virtualization\ Hypervisor Virtualization\ Tools (使用TAB键)
3)确保libvirtd服务可用
[root@kvmsvr ~]# systemctl restart libvirtd //启动虚拟化服务
[root@kvmsvr ~]# systemctl enable libvirtd
###############################################################################
管理KVM平台
连接本地/远程KVM
使用virt-manager客户端工具打开虚拟系统管理器:
应用程序-->系统工具-->虚拟系统管理器
管理虚拟网络:添加新的虚拟网络private1,编辑-->连接详情-->虚拟网络
虚拟机的基本控制:虚拟机的运行/关机/克隆/删除/打开操作
配置虚拟机硬件
存放图形程序的图标目录: /usr/share/applications/
右击"虚拟系统管理工具" ------->"复制到"--------->桌面(/root/桌面)
确保 "虚拟化服务" 的开启:libvirtd
###################################################
在真机上: 建立新的虚拟机网络
虚拟系统管理器---->编辑---->连接详情---->虚拟网络---->点击加号
了解内容,虚拟网络配置文件: ls /etc/libvirt/qemu/networks/*.xml
###############################################################################
virsh控制工具
操作虚拟机
Virsh命令工具:提供管理各虚拟机的命令接口
支持交互模式,查看/创建/停止/关闭……
格式:virsh 控制指令 [虚拟机名称] [参数]
查看虚拟化信息
Ø 列出正在运行的虚拟机:virsh list
Ø 列出所有虚拟机(包括未启动的):virsh list --all
Ø 列出虚拟网络:virsh net-list [--all]
Ø 查看kvm节点(服务器)信息:virsh nodeinfo
Ø 查看指定虚拟机的信息:virsh dominfo 虚拟机名称
查看虚拟机的运行状态:# virsh dominfo 虚拟机名称 | grep running
开关机操作:
Ø 运行|重启|关闭指定的虚拟机:virsh start|reboot|shutdown 虚拟机名称
Ø 强制关闭指定的虚拟机:virsh destroy 虚拟机名称 (shutdown无效时适用)
Ø 将指定的虚拟机设为开机自动运行:virsh autostart 虚拟机名称
Ø 将指定的虚拟机设为禁止开机自动运行:virsh autostart --disable 虚拟机名称
其他KVM管理命令:
virsh dumpxml
define、undefine、edit、net-edit
virt-viewer 虚拟机名
virt-clone -o 旧虚拟机名 -n 新虚拟机名 -f 新磁盘的路径
virt-install --name 虚拟机名 --vcpus CPU核心数 --ram 内存大小
--disk path=磁盘路径,format=磁盘类型 --network network=虚拟网络名 --pxe
###############################################################################
虚拟机组成:xml文件(机架),qcow2磁盘文件(硬盘)
Ø xml配置文件(又称虚拟机描述文件):定义虚拟机的名称、UUID、CPU、内存、虚拟磁盘、网卡等各种参数设置 默认存放位置:/etc/libvirt/qemu/虚拟机名.xml
Ø 磁盘镜像文件:保存虚拟机的操作系统及文档数据,镜像路径取决于xml配置文件中的定义
默认存放位置:/var/lib/libvirt/images/虚拟机名.img
请思考:
1. 如何查看一个KVM虚拟机使用的虚拟磁盘是哪个?
virsh dumpxml 虚拟机名 | grep '<source file='
2. 如何查看一个虚拟磁盘是哪个虚拟机在使用?
grep '虚拟磁盘的路径' /etc/libvirt/qemu/*.xml
xml配置文件:虚拟机的描述文件
Ø 定义一个虚拟机的名词、UUID、CPU、内存、虚拟磁盘、网卡等各种参数设置
Ø 默认放在/etc/libvirt/qemu/虚拟机名.xml
Ø xml配置文件记录的关键信息 ——
name:虚拟机名称
uuid:虚拟机的唯一编号【uuidgen】
disk:虚拟机的磁盘文件路径
mac:虚拟机的网卡的MAC地址
导出xml配置文件
Ø 查看xml文件:virsh dumpxml 虚拟机名 #输出虚拟机的描述信息
Ø 备份xml文件:virsh dumpxml 虚拟机名 > 虚拟机名.xml
编辑虚拟机设置:修改虚拟机配置的基本思路:
Ø 编辑:virsh edit 虚拟机名 #三合一命令,导出、修改、导入
Ø 若修改name,uuid,disk,mac可自动保存为新虚拟机配置
导入虚拟机:
Ø 根据修改后的独立xml文件定义新虚拟机:virsh define xml描述文件
删除虚拟机:必要时可去除多余的xml配置,比如虚拟机改名的情况,避免出现多个虚拟机的磁盘或MAC地址冲突:
virsh undefine 虚拟机名称 #删除虚拟机,不会删除磁盘文件
###############################################################################
虚拟机快建技术基本思路:
1)准备一台模板虚拟机(镜像磁盘+xml配置文件)
2)基于磁盘复用技术快建新虚拟机的磁盘
3)调整模板机的配置快建虚拟机的xml配置文件
4)导入新虚拟机
###############################################################################
在KVM服务器上通过使用xml文件创建虚拟机过程
注意:模板虚拟机删除 Channel设备,会影响快速重建虚拟机操作(有唯一标示的作用)
操作:虚拟机关机;通过图形进行删除channel设备
1、创建新的虚拟磁盘文件
# cd /var/lib/libvirt/images/
# cp example.qcow2 test01.qcow2
2、创建新的虚拟机描述文件
# cd /etc/libvirt/qemu/
# cp example.xml test01.xml
3、修改虚拟机描述文件
1)生成新UUID,并复制备用 # uuidgen
2)修改导出的xml配置文件,调整name、uuid、disk路径、mac地址值:
# vim test01.xml 或 # virsh edit rhel-207
<name>rhel-7</name> //新名称
<uuid>90908905-bde4-4c4a-90b0-8a8f5bba1e25</uuid> //新UUID值
<source file='/var/lib/libvirt/images/rhel-7.qcow2'/> //新磁盘路径
<mac address='52:54:00:91:50:07'/> //新MAC地址
3)确认已自动导入的新配置# virsh list --all //确认结果
4、导入新虚拟机信息 # virsh define /etc/libvirt/qemu/test01.xml
###############################################################################