一、KVM 架构介绍
虚拟化(系统虚拟化):是指通过虚拟化技术将一台计算机虚拟为多台逻辑计算机。在一台计算机上同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率
名词:物理机或宿主机(Host,即真机)、虚拟机里面系统(Guest OS)
虚拟机不能直接与物理机资源访问,必须通过VMM(虚拟机管理程序,即VDSM或称Hypervisor)才能访问物理机资源
虚拟化类型
-
全虚拟化(本地虚拟化、硬件辅助全虚拟化):虚拟机中运行的软件与系统不需经过任何修改,就好比运行在真实硬件一样;但依然使用虚拟硬件设备,并且需要硬件支持,物理机需支持虚拟化功能(grep -E ‘vmx svm’ /proc/cpuinfo,查询intel与AMD是否支持)
- 半虚拟化:另一种类似于全虚拟化的热门技术,它使用Hypervisor(虚拟机管理程序)分享存取底层的硬件, 但是它的客户操作系统集成了虚拟化方面的代码,该方法无需重新编译或引起陷阱,因为操作系统自身能够与虚拟进程进行很好的协作;但半虚拟化需要客户操作系统做一些修改(配合VDSM),这是一个不足之处,但是半虚拟化提供了与原始系统相近的性能,与全虚拟化一样,半虚拟化可以同时能支持多个不同的操作系统
虚拟化架构
- 寄居架构:就是在操作系统之上安装和运行虚拟化程序,依赖于主机操作系统对设备的支持和物理资源的管理
- 裸金属架构(原生架构):就是直接在硬件上面安装虚拟化软件,再在其上安装操作系统和应用,依赖虚拟层内核和服务器控制台进行管理。
二、KVM简介
KVM是Kernel Virtual Machine的简写,使用半虚拟化技术创建虚拟机的模块,目前Red Hat只支持在64位的RHEL 5.4及以上的系统运行KVM(其余发行版也可使用),同时硬件需要支持VT技术;KVM的前身是QEMU,2008年被Red Hat公司收购并获得一项hypervisor技术,不过Red Hat的KVM被认为是将成为未来Linux hypervisor的主流,准确来说,KVM仅仅是Linux内核的一个模块,管理和创建完整的KVM虚拟机,需要更多的辅助工具
KVM自Linux 2.6.20版本后就直接整合到Linux内核,它依托CPU和虚拟化指令集(如Inter-VT、AMD-V)实现高性能的虚拟化支持;由于与Linux内核高度整合,因此在性能、安全性、兼容性、稳定性上都有很好的表现
图上简单描述了KVM虚拟化架构,在KVM环境中运行的每个虚拟化操作系统都将表现为单个独立的系统进程。因此它可以很方便地与Linux系统中的安全模块进行整合(SElinux),可以灵活地实现资源的管理及分配
三、KVM安装
安装前要查看 CPU 是否支持虚拟化
Intel CPU:cat /proc/cpuinfo |grep --color vmx
AMD CPU:cat /proc/cpuinfo |grep --color smv
关闭selinux与firewalld
-
systemctl stop firewalld
-
setenforce 0
若以上操作有输出,就说明 CPU 支持虚拟化
实验环境注意勾选”CPU虚拟化”
1.安装方式
- 新装系统
最简单的安装方法就是在安装系统的时候,选择桌面安装,然后选择虚拟化选项
- 已装系统
在已有系统基础上,只需安装KVM所需软件即可
配置本地yum源
[root@kvm ~]# yum -y groupin