虚拟化的分类:
1、完全虚拟化: 最流行的虚拟化方法使用名为 hypervisor 的一种软件, 在虚拟服务器和底层硬件之间建立一个抽象层。完全虚拟化技术几乎能让任何一款操作系统不用改动就能 安装到虚拟服务器上,而它们不知道自己运行在虚拟化环境下。主要缺点是, hypervisor 给处理器带来开销。
2、准虚拟化: 完全虚拟化是处理器密集型技术,因为它要求 hypervisor 管理各个虚拟服务器,并让它们彼此独立。减轻这种负担的一种方法就是,改 动客户端操作系统,让它以为自己运行在虚拟环境下,能够与hypervisor 协 同工作。这种方法就叫准虚拟化 (para-virtualization)。准虚拟化技术的优 点是性能高。经过准虚拟化处理的服务器可与hypervisor 协同工作,其响应 能力几乎不亚于未经过虚拟化处理的服务器。
3、系统虚拟化: 就操作系统层的虚拟化而言,没有独立的hypervisor 层。 相反,主机操作系统本身就负责在多个虚拟服务器之间分配硬件资源,并且让 这些服务器彼此独立。一个明显的区别是,如果使用操作系统层虚拟化,所有 虚拟服务器必须运行同一操作系统 ( 不过每个实例有各自的应用程序和用户 账户 ) 。虽然操作系统层虚拟化的灵活性比较差,但本机速度性能比较高。此 外,由于架构在所有虚拟服务器上使用单一、标准的操作系统,管理起来比异 构环境要容易。
4、桌面虚拟化: 服务器虚拟化主要针对服务器而言,而虚拟化最接近用 户的还是要算的上桌面虚拟化了,桌面虚拟化主要功能是将分散的桌面环境集 中保存并管理起来,包括桌面环境的集中下发,集中更新,集中管理。桌面虚 拟化使得桌面管理变得简单,不用每台终端单独进行维护,每台终端进行更新。 终端数据可以集中存储在中心机房里,安全性相对传统桌面应用要高很多。桌 面虚拟化可以使得一个人拥有多个桌面环境,也可以把一个桌面环境供多人使 用。
KVM --- 全称是基于内核的虚拟机(Kernel-based Virtual Machine) 是一个开源软件,基于内核的虚拟化技术,实际是嵌入系统的一个虚拟化模块, 通过优化内核来使用虚拟技术,该内核模块使得 Linux 变成了一个 Hypervisor,虚拟机使用 Linux 自身的调度器进行管理。KVM 是基于虚拟化扩展(Intel VT 或者 AMD-V)的 X86 硬件的开源的 Linux 原生的全虚拟化解决方案。KVM 中,虚拟机被实现为常规的 Linux 进 程,由标准 Linux 调度程序进行调度;虚机的每个虚拟 CPU 被实现为一个常 规的 Linux 进程。这使得 KMV 能够使用 Linux 内核的已有功能。但是,KVM 本身不执行任何硬件模拟,需要客户空间程序通过 /dev/kvm 接 口设置一个客户机虚拟服务器的地址空间,向它提供模拟的 I/O,并将它的视 频显示映射回宿主的显示屏。目前这个应用程序是 QEMU。
KVM有一个内核模块叫 kvm.ko,只用于管理虚拟 CPU 和内存。IO 的虚拟化, 就交给 Linux 内核和qemu来实现
Libvirt: 是 KVM 的管理工具。Libvirt 除了能管理 KVM 这种 Hypervisor,还能管理 Xen,VirtualBox 等。OpenStack 底层也使用 Libvirt。Libvirt 包含 3 个东西:后台 daemon 程序 libvirtd、API 库和命令行工具 virsh (1)libvirtd是服务程序,接收和处理 API 请求; (2)API 库使得其他人可以开发基于 Libvirt 的高级工具,比如 virtmanager,这是个图形化的 KVM 管理工具,后面我们也会介绍; (3)virsh 是我们经常要用的 KVM 命令行工具,后面会有使用的示例。
虚拟化VT开启确认:1. 确定处理器有 VT 命令行:grep vmx /proc/cpuinfo (INTEL 芯片 ); grep svm /proc/cpuinfo (AMD 芯片 ); cat /proc/cpuinfo | grep -e vmx -e nx -e svm
KVM虚拟化安装:
安装要求:(1)64bitCPU( 支持虚拟化 VT-x or AMD-V) (2)2G 以上空闲内存,确认内存大小 grep -e MemTotal /proc/meminfo free -m (3)6GB 空闲存储空间
安装kvm并检测:
1、YUM 安装 KVM :yum install kvm virt-manager libvirt libvirt-python python-virtinst libvirt-client qemu-kvm qemu-img或者简单版:yum install kvm virt-manager libvirt*;注意:安装KVM用本地源进行安装,如果用网络源进行安装可能会出现不兼容情况,导致后面的systemctl start libvirtd 启动不起来;
2、建立本地源文件:
[kvms]
name=Red Hat
baseurl=file:///mnt/cdrom/
enabled=1
gpgcheck=0
kvm虚拟化所需要的组件介绍
kvm: 核心套件 ;virt-manager: 图形化 KVM 管理软件 ;libvirt: 提供虚拟机与宿主相互通信的机制 ;libvirt-python: 允许使用 libvirt API ;python-virtinst:CLI 下创建 KVM 的工具 ;libvirt-client: 提供 client 访问 kvm 服务器的机制 ,并包含 virsh 命令进行 管理和控制 VMs ;qemu-kvm: 提供用户级 KVM 环境 qemu-img:VMs 磁盘管理
3、启动KVM
(1)modprobe kvm 加载 kvm 模块 (2)lsmod | grep kvm 查看加载成功 (3)systemctl start libvirtd (4)systemctl status libvirtd
4. 启动并检测 KVM
virsh list --all 如出现:Id Name State,则安装成功
5、给宿主机(虚拟机)安装一层虚拟机
1.给宿主机上传一个系统镜像文件到/var/lib/libvirt/images/目录里面
2.打开系统界面的应用程序--系统工具--虚拟系统管理器后进入一个界面
3.点击文件--新建虚拟机
4.选择第一个选项:本地安装介质,点击前进,添加镜像,选择设置内存大小,点击前进;
5.设置磁盘大小,点击前进,给“在安装前自定义配置”打勾,点击完成
6.进入配置选项,选择IDECDROM1,选择添加镜像文件,配置完成后选择应用
7.在选择引导选项,给“VirtIO磁盘1和IDECDROM1"前面打勾,配置完成后点击应用
8.配置完成后点击开始安装