虚拟化:
虚拟化有半虚拟化与全虚拟化
演化过程:
软件模拟, 通过软件完全模拟磁盘,网卡等
虚拟化层翻译 , 加入虚拟化层进行模拟
容器虚拟化, 原理是基于cgorup, namespace等技术将进程隔离
x86平台指令集分为4个特权模式: Ring 0, Ring 1, Ring 2, Ring 3
操作系统一般使用 Ring 0, 应用程序使用 Ring 3, 而驱动程序使用 Ring 1, Ring 2
虚拟化需要将虚拟机的越级指令进程隔离, 为此引入虚拟化层VMM, 通过虚拟化引擎捕获虚拟机的指令, 并进行处理,因为指令被捕获并经过转换,因此虚拟机不能对硬件进行直接操作。
- 捕获指令进行转换为一种思路,但是效率相对较低
- Xen 提出将虚拟机操作系统内核进行改造, 使得虚拟机自己进行识别并转换指令,效率高,但需要修改内核,配置较麻烦, 成为半虚拟化
- VT-x对CPU指令进行改造, 基于硬件, 效率高,全虚拟化。 IO通信虚拟化VT-d
virt-Manager是一个图形化的虚拟机管理工具, 可以使用它进行虚拟机安装管理
kvm虚拟机cou调优主要使用numa技术
nested特性,可以修改虚拟机的嵌套层数
内存调优主要使用ksm(相同内存页合并)
多CPU 工作的3中架构: 1. SMP, 2.MPP, 3.NUMA架构
smp: 多个cpu通过总线访问存储器, smp有时候也被称为一致内存访问(UMA)结构体系
扩展性有限, 受到总线限制
mpp:
numa
每个cpu一个内存储器, 然后通过总线连接, 可以访问其他处理器的存储器
NUMA架构中, 每个处理器都可以访问自己的