一 、部署KVM虚拟化平台
hyper-v是windows中的虚拟化
1、KVM模块直接整合在Linux内核中,kvm是内核模块,虚拟机与kvm模块之间为管理工具
2、KVM组成
1.KVM Driver
---虚拟机创建
---虚拟机内存分配
---虚拟CPU寄存器读写
---虚拟CPU运行
2.QEMU (经过简化与修改)
---模拟PC硬件的用户控件组件
---提供I/O设备模型及访问外设的途径
二、虚拟化的三种模式
**1、客户模式:典型的虚拟机环境(虚拟网卡、内存、硬盘);
2、用户模式:工具层,下面是内核(驱动进行的资源分配);
3、kvm driver:内核态,人为不可控制(kvm驱动接收用户态操作指令,控制虚拟机在内核态的资源分配)。
4、虚拟机就是一个独立的进程,虚拟机内的用户各个硬件叫做线程
5、全虚和半虚的区别
全虚拟化一般对硬件虚拟化功能进行了特别优化,性能上比半虚拟化要高;
半虚拟化因为基于普通的操作系统,会比较灵活,比如支持虚拟机嵌套。嵌套意味着可以在KVM虚拟机中再运行KVM。
三、KVM工作原理
工作流程:首先启动一个虚拟化管理软件,开始启动一个虚拟机,通过ioctl等系统调用向内核中申请指定的资源,搭建好虚拟环境,启动虚拟机内的系统,虚拟机内的系统向内核反馈相关资源申请处理,如果是io请求,则提交给用户模式下的qemu处理,非io请求则将处理结果反馈给客户模式。
四、KVM实操演练
1、安装流程
2、kvm网络模式:用户(NAT)和桥接模式,本次实操采用桥接模式
3、kvm图形化管理
4、添加新硬盘,并开启虚拟化功能
5、分区、格式化并挂载硬盘(以下为脚本)
#! /bin/bash
echo "the disks exist list:"
fdisk -l |grep '磁盘 /dev/sd[a-z]'
echo "=================================================="
PS3="chose which disk you want to create:"
select VAR in `ls /dev/sd*|grep -o 'sd[b-z]'|uniq` quit
do
case $VAR in
sda)
fdisk -l /dev/sda
break ;;
sd[b-z])
#create partitions
echo "n
p
w" | fdisk /dev/$VAR
#make filesystem
mkfs.xfs -i size=512 /dev/${VAR}"1" &> /dev/null
#mount the system
mkdir -p /data/${VAR}"1" &> /dev/null
echo -e "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0\n" >> /etc/fstab
mount -a &> /dev/null
break ;;
quit)
break;;
*)
echo "wrong disk,please check again";;
esac
done
6、安装KVM一系列工具、环境包
#安装桌面环境组件包
yum groupinstall "GNOME Desktop" -y
#安装KVM模块
yum install qemu-kvm -y
#安装KVM调试工具
yum install qemu-kvm-tools -y
#安装构建虚拟机的命令行工具
yum install virt-install -y
#安装qemu组件,创建磁盘,启动虚拟机
yum install qemu-img -y
#安装网络支持工具
yum install bridge-utils -y
#安装虚拟机管理工具
yum install libvirt -y
#安装图像化管理虚拟机
yum install virt-manager -y
#查看CPU是否支持虚拟化
egrep '(vmx|svm)' /proc/cpuinfo
#查看kvm模块是否安装
lsmod | grep kvm
#开启libvirtd服务
systemctl start libvirtd
#查看libvirtd服务状态
systemctl status libvirtd
#开机自启动libvirtd服务
systemctl enable libvirtd
7、部署虚拟化
#切换至挂载点
cd /data
#创建备份目录
mkdir vdisk viso
#后台复制镜像到备份目录
cp -r /mnt/CentOS-7-x86_64-DVD-1708.iso /data/viso/ &
#切换网卡配置目录
cd /etc/sysconfig/network-scripts/
#复制ens33 网卡配置文件作为桥接网卡的模板
cp -p ifcfg-ens33 ifcfg-br0
#编辑ens33 网卡配置文件
vim ifcfg-ens33
#尾行追加桥接模块
BRIDGE=br0
#编辑桥接 网卡配置文件
vim ifcfg-br0
#替换类型为bridge桥接模式
TYPE=bridge
#修改为静态模式
BOOTPROTO=static
#改名
NAME=br0
#改驱动名称
DEVICE=br0
#追加IP地址,掩码和网关
IPADDR=192.168.142.153
NETMASK=255.255.255.0
GATEWAY=192.168.142.1
#重启网络服务
service network restart
8、图形化管理
virt-manager
##开启图形化管理
添加存储池disk
添加disk存储卷
添加存储卷
添加存储池iso
关闭创建,即可配置生成虚拟机
选择主机引导时启动虚拟机,开始安装,linux中的kvm虚拟机即可开始安装。。。。