速读摘要-KVM虚拟化技术实战与原理解析

工作中曾实际部署过基于Xen的虚拟化数据中心,但对虚拟化的基本原理仍一知半解。此番学习KVM的原理,正是对虚拟化原理的进一步深探,也为继续学习Openstack做准备。

虚拟化的分类

1.软件虚拟化:以OS为基础,用软件模拟出虚拟机操作系统
细分两类:
1.1 纯软件虚拟化(如VMware Workstation、QEMU);
1.2 准虚拟化(也称半虚拟化,如XenServer、VMware vSphere)
二者的根本区别是对虚拟机运行指令的执行过程,后者使用经过修改的Linux OS作为Hypervisor,执行速度更快。
2.硬件虚拟化(也成全虚拟化)
CPU、内存、外设的硬件虚拟化和虚拟化软件模块相结合来实现,虚拟机是OS中的一个独立进程,可以直接调用硬件资源,Hypervisor就是OS本身(如 KVM)

KVM常识

  1. KVM是一个Linux模块,提供VM运行时的硬件加速,该模块与QEMU相结合,才构成了KVM的虚拟化结构,其中,QEMU提供VM的创建、配置、迁移等管控功能。
  2. 运行KVM的前提是硬件支持CPU虚拟化技术(Intel VT或AMD-V)
  3. 每个VM是Linux的一个普通进程,每个vCPU是该进程下的一个线程
  4. VM迁移的应用场景有:负载均衡、节能、解除VM硬件依赖(例如为宿主机更新硬件)、跨数据中心移动VM
  5. 嵌套虚拟化是有支持的,如Xen on Xen,KVM on Xen,但暂不支持Xen on KVM
  6. libvirt是虚拟化常用管理工具,不仅支持KVM、Xen的管理,还支持容器虚拟化的管理(Docker)。

Linux和KVM安全

  1. SMEP(Supervision Mode Execution Protection)
    管理模式执行保护,是指处于管理模式的程序不能获取用户模式的地址空间上的指令,是Intel推出的硬件保护措施,用于防止恶意进程进入管理模式后为所欲为。
  2. cgroups
    Linux内核安全特性,用于限制、记录和隔离进程组对物理资源的使用。
  3. SELinux
    Linux内核安全特性,是指通过访问控制策略来限制任务对文件的访问。一般的Linux采用DAC(Discretionary Access Controls,自由访问策略),即,设定用户组对每个文件的读写改权限,SELinux将文件的访问权限划分维度细化到任务级别。
  4. sVirt
    将SELinux和虚拟化集成,用于保证虚拟机之间的绝对隔离。

作业
用libvirt创建、删除、修改、迁移虚拟机


疑问

  1. QCOW2是什么格式?
  2. 了解glusterfs、Ceph
  3. Openvswitch如何与KVM相结合
  4. DevStack适合部署Openstack的开发环境,不适合生产环境,why

你可能感兴趣的:(速读摘要-KVM虚拟化技术实战与原理解析)