虚拟化技术
虚拟化是一种技术,将硬件资源抽象化形成资源池,然后再统一分配资源进行使用(将物理设备抽象成设备池)
可以在一个主机上运行多个独立的操作系统和软件,我们将每个独立的系统和它对应的软件组成的个体称为虚拟机。
虚拟化特点:分区、隔离、封装(虚拟机的本质是一个文件)、相对独立
计算模块:
CPU的组成:
1、运算器(算术逻辑单元)
2、控制器()
3、存储器(命令和需要运算的数据)
1、高速缓存(cache)(一级缓存、二级缓存、三级缓存)
2、主存:内存(RAM随机存储器)(运行中的数据)
3、磁盘(ROM只读存储器)(持久化存放数据)
CPU运行:
1、取指令阶段
程序计数器+地址寄存器将指令的地址高速数据寄存器
数据寄存器去获取指令
数据寄存器将指令交给指令寄存器
2、指令译码
控制器参与指令译码后将指令交给ALU
3、执行
ALU通过指令执行,向数据寄存器申请数据
4、访存取数
数据寄存器获取数据交给ALU
5、结果写回
通过数据寄存器将结果写回磁盘
CPU虚拟化:将一台硬件上的CPU可以虚拟出多个CPU给多个虚拟设备使用
CPU保护环机制:Ring0 CPU
Ring1 操作系统
Ring2
Ring3 用户空间
VM虚拟机,虚拟操作系统处于Ring0和Ring1之间
虚拟化后:如果让虚拟机操作系统下发敏感指令时可以继续工作
半虚拟化:修改虚拟机操作系统内核-只针对特定系统
全虚拟化:拦截敏感指令-需要一直消耗资源
硬件辅助虚拟化:修改CPU,使得CPU在非Ring0级层也可以解析敏感指令
内存虚拟化:
内存复用技术:实际业务工作中,一般不开启内存复用(超分内存,提供虚拟机开机密度)
内存共享:多个虚拟机共享数据相同(数据完全相同的内存页或者零页(空白内存页))的内存页,对于共享部分多个虚拟机只有读权限,如果其中一个虚拟机需要写入数据,则重新开辟新的内存空间给该虚拟机用作写。
内存置换:将虚拟机长时间不访问的内存数据置换到内存交换空间(swap分区),通过LRU算法进行热点计算定义哪些数据会置换到内存交换分区。
内存气泡:通过压缩虚拟机内存给其他重要的的虚拟机(气泡进程)max:150%-200%
存储虚拟机:
1、裸设备+逻辑卷
2、主机文件系统
虚拟机的磁盘是一个(.vmdk、.qcow2)文件(qemu硬件模拟器)
3、存储设备虚拟化
存储设备:SAN存储、NAS存储nfs/cifs
网络虚拟化:
仅主机模式:虚拟机无法上外网,虚拟机与实体机连接到同一个Ovs(开源虚拟交换机),虚拟机之间/虚拟机与实体机都可以通信
NAT模式:虚拟机可以上外网,访问的资源都使用实体机的身份去访问,分为SNAT进和DNAT出
桥接模式:虚拟机和实体机共用同一张网卡。可以获取到当前实体机所在局域网同网段的IP地址,且可以被实体机所在局域网访问
裸金属型虚拟化(企业级)
层级:
虚拟机操作系统
虚拟机
虚拟化软件
硬件
宿主型虚拟化(桌面级)
层级:
虚拟机操作系统
虚拟机
虚拟化软件
物理机操作系统
硬件
容器架构:
容器(APP+少量的运行环境)
容器引擎(运行容器的软件)
物理机操作系统
硬件