linuxisperfect 2019-12-20
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。
工作流程:首先启动一个虚拟化管理软件,开始启动一个虚拟机,通过ioctl等系统调用向内核中申请指定的资源,搭建好虚拟环境,启动虚拟机内的系统,虚拟机内的系统向内核反馈相关资源申请处理,如果是io请求,则提交给用户模式下的qemu处理,非io请求则将处理结果反馈给客户模式。
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虚拟机即可开始安装。。。。