####情景模拟####
公司部分 Linux 服务器利用率不高, 为充分利用这些 Linux 服务器, 可以部署 KVM, 在
物理机上运行多个业务系统。 例如, 在运行 Nginx 的服务器上部署 KVM, 然后在虚拟机上运
行 Tomcat。
KVM 自 Linux 2.6.20 版本后就直接整合到 Linux 内核, 它依托 CPU 虚拟化指令集(如
Intel-VT、 AMD-V) 实现高性能的虚拟化支持。 由于与 Linux 内核高度整合, 因此在性能、
安全性、 兼容性、 稳定性上都有很好的表现。
1、KVM原理简介
广义的 KVM 实际上包含两部分, 一部分是基于 LINUX 内核支持的 KVM 内核模块, 另一部
分就是经过简化和修改的 Qemu。
KVM 内核模块模拟处理器和内存以支持虚拟机的运行,Qemu 主要处理 I/O 以及为用户提
供一个用户空间工具来进行虚拟机的管理。 两者相互结合, 相辅相成, 构成了一个完整的虚
拟化平台。
请注意: Qemu 本身并不是 KVM 的一部分, Qemu 是一套完整的虚拟化解决方案, 是纯软
件实现虚拟化, 包括处理器虚拟化、 内存虚拟化以及各种虚拟设备的模拟, 但因为是纯软件
模拟出来的, 所以 Qemu 的性能比较低。
2、KVM 运行时的三种模式(这里我不是很懂,有无懂哥解释一下)
客户模式: 可以简单理解成客户机在操作系统运行中的模式, 客户模式又分为内核模式
和用户模式。
用户模式: 为用户提供虚拟机管理的用户空间工具以及代表用户执行 I/O, Qemu 运行在
这个模式之下。
内核模式: 模拟 CPU 以及内存, 实现客户模式的切换, 处理从客户模式的退出。 KVM 内
核模块运行在这个模式下
3、KVM工作原理
用户模式的 Qemu 利用接口 libkvm 通过 ioctl 系统调用进入内核模式。 KVMDriver 为虚
拟机创建虚拟 CPU 和虚拟内存, 然后执行 VMLAU·NCH 指令进入客户模式, 装载 Guest OS 并运
行。 Guest OS 运行过程中如果发生中断或者影子缺页等异常, 将暂停 Guest OS 的运行并保
存当前上下文退出到内核模式来处理这些异常。 内核模式处理这些异常时如果不需要 I/O
则处理完成后重新进入客户模式。 如果需要 I/O 则进入到用户模式, 由 Qemu 来处理 I/O,
处理完成后进入内核模式, 再进入客户模式,
####实验步骤####
1、安装系统
2、准备KVM环境
3、安装KVM
4、设置KVM网络
5、创建KVM存储池并安装虚拟机
######实验步骤#####
1、安装系统
创建一个虚拟机 处理器数量2 每个处理器内核数2 处理器内核总数4 虚拟化Intel VT-X 选项√下
内存大小为8G 网络桥接到VM1 声卡和打印机移除 挂Centos 7.6 光盘
安装点GNOME桌面 点开发工具 分区自动分配 网络主机名 192.168.100.46/24 安装操作系统
2、准备KVM环境
安装完成后关闭防火墙 关闭核心防护 配置yum 本地源
3、安装KVM
yum groupinstall -y "GNOME Desktop" ####安装 GNOME 桌面环境 如果装了图形界面不需要装了
yum -y install qemu-kvm ####KVM 模块
yum -y install qemu-kvm-tools ####KVM 调试工具,可不安装
yum -y install virt-install ####构建虚拟机的命令行工具
yum -y install qemu-img ####qemu 组件,创建磁盘、 启动虚拟机等
yum -y install bridge-utils ####网络支持工具
yum -y install libvirt ####虚拟机管理工具
yum -y install virt-manager ####图形界面管理虚拟机
init 6 ###重启
[root@localhost ~]# cat /proc/cpuinfo | grep vmx ###查看CPU是否支持虚拟化,有vmx表示支持。
[root@localhost ~]# lsmod | grep kvm ####查看KVM模块是否安装
kvm_intel 183621 0
kvm 586948 1 kvm_intel
irqbypass 13503 1 kvm
注意: 在使用 yum 安装完桌面后执行 ln -sf /lib/systemd/system/graphical.target,如果装了图形界面不需要了
[root@localhost ~]# systemctl start libvirtd ####开启libvirtd服务
[root@localhost ~]# systemctl enable libvirtd ####开机启动libvirtd服务
4、设置KVM网络
宿主服务器安装完成 KVM, 首先要设定网络, 在 libvirt 中运行 KVM 网络有两种方法:
NAT 和 Bridge, 默认是 NAT。
关于两种模式的说明:
●用户模式, 即 NAT 方式, 这种方式是默认网络, 数据包由 NAT 方式通过主机的接口进行
传送, 可以访问外网, 但是无法从外部访问虚拟机网络。
●桥接模式, 这种模式允许虚拟机像一台独立的主机一样拥有网络, 外部的机器可以直接
访问到虚拟机内部, 但需要网卡支持, 一般有线网卡都支持。
这里以 Bridge(桥接) 为例。
[root@localhost ~]# hostnamectl set-hostname bdqn
[root@localhost ~]# exit
[root@bdqn ~]# virt-manager ###图形界面敲
[root@bdqn ~]# mkdir -p /data_kvm/iso ####上传镜像centos 7.9的镜像
[root@bdqn ~]# mkdir -p /data_kvm/store ####虚拟机存储
####上述命令敲完后,会在图形界面中弹出--虚拟系统管理器###
下面安装步骤可参考
1、存储池、
2、存储卷
3、创建虚拟机
4、安装虚拟机
(如果内存不够就直接最小安装,不用调图形界面)