在FC中,提供给虚拟机的资源是vCPU;提供内存的资源是映射表。
传统PC痛点:数据安全隐患、维护量大,维护成本高、设备更新换代成本高
虚拟化前后对比:
虚拟化前:IT资源独立、操作系统和硬件紧耦合、APP:OS:PHY=1:1:1
虚拟化后:形成抽象资源共享池、上层OS与硬件紧耦合、APP:OS:PHY=N:1:1
创建虚拟机:
创建新虚拟机(可以自定义CPU、内存、网卡和磁盘等进行创建)
使用模板部署虚拟机(轻松创建可以立即使用虚拟机,必须具有一个虚拟机模板,除了网卡、操作系统、磁盘不可修改,其余均可修改)
虚拟机克隆为虚拟机(使用现有虚拟机进行克隆虚拟机,可以调整虚拟机参数)
导入虚拟机(从本地或网络上的虚拟机模板文件来创建一台完整的虚拟机)
模板转为虚拟机(从一个虚拟机模板转换为虚拟机,转换完成后模板讲不存在;创建完成的虚拟机所有属性和模板相同,用于需要对模板进行修改时使用,之后再进行转换)
虚拟机在虚拟化平台中至少有两个文件组成,一个是虚拟机文件.xml,一个是虚拟机磁盘文件.img。
DRS**动态资源调度:高压力的虚拟机会自动迁移到压力小的Compute服务器,在一个集群内,对计算服务器和虚拟机运行状态进行监控的过程中,如果发现集群内各计算服务器的业务负载高低不同并超过设置的阈值时,根据管理员预先制定的负载均衡策略进行虚拟机迁移,使各计算服务器CPU、内存等资源利用率相对均衡。 前提是开启热迁移,智能迁移负荷高节点上虚拟机到资源充足的节点上;均衡各节点资源使用并保障业务有充足资源可用。
DPM分布式电源管理: 压力小的Compute服务器会把虚拟机迁移到其他Compute服务器,下电省电,实现绿色节能,动态节能调度和负载均衡配合使用,仅在负载均衡调度打开之后才能使用动态节能调度功能。在一个集群内,对计算服务器和虚拟机运行状态进行监控的过程中,如果发现集群内业务量减少,系统将业务集中到少数计算服务器上,并自动将剩余的计算服务器关机;如果发现集群内业务量增加,系统将自动唤醒计算服务器并分担业务。如果集群中资源利用率不足,则会将多余的主机下电节能,下电前会将虚拟机迁移至其他主机;如果集群资源过度利用,则会将离线的主机上电,以增加集群资源,减轻主机的负荷。
Gpu硬件虚拟化:Gpu会创建出多个vGpu,所有vGpu可以共享访问物理Gpu的图形引擎,并且各自拥有独立的显存。
HA 动态调度策略:当检测到某主机发生故障或负荷过高时,将虚拟机迁移到目的主机,保障业务连续性,使用Zookeeper技术。当一台虚拟机出现故障时,VRM寻找另一台主机拉活虚拟机。并且必须在共享存储上面,不可以有硬件绑定,预留HA资源空间。
内存复用:对于性能要求高的主机建议不要开,开启提高虚拟机开机密度,关闭提高虚拟机性能,实现主机内存超分配,核心业务不要使用。主机内存和虚拟机内存之间并不是一一对应,可以超额分配给VM,通过内存复用技术实现超分配功能。由100%变为150%内存复用,支持虚拟机总配置内存超过物理主机实际运行内存,通过虚拟机之间使用内存气泡、内存交换以及内存共享等技术实现物理内存超规格使用。
- 内存气泡:VMM主动回收虚拟机暂时不用的物理内存,分配给需要复用内存的虚拟机,从而提升内存复用率。内存的回收和分配都是动态的,虚拟机上的应用无感知。整个物理服务器上的所有虚拟机使用的分配内存总量不能超过该服务器的物理内存总量。
- 内存置换:将外部存储虚拟成内存给虚拟机使用,将虚拟机冷数据存放到存储(内存置换盘)上,建立映射关系,系统需要使用这些数据时,再与预留在内存上的数据进行交换。
- 内存共享:虚拟机之间共享同一物理内存空间,此时仅对虚拟机内存做只读操作,当虚拟机需要对内存进行写操作时,开辟另一内存空间,修改映射表。
- 限制条件:
硬件直通、NUMA一致性访问
NUMA:非一致性内存访问,是一种架构,做性能调优使用。CPU和内存相整合,提升访问效率,提升速度,cpu和内存放在一个zone里面 可有多个zone 如果zone之间内存不够时通过QPI使用其他zone的资源。
QoS(CPU、内存):QoS Quality of Service 服务质量,用来衡量一个传输系统的传输质量和服务有效性,评估服务商满足客户需求的能力,提高资源利用率。
- 预留:为虚拟机设置一个下限,一直预留资源,其他虚拟机可以使用
- 份额:使用平均分配的比例,竞争当中占比
- 限额:为虚拟机设置一个上限,防止虚拟机过度占用资源 0为无限
- 无竞争时,虚拟机可以多占资源,但不能超上限。
休眠/唤醒虚拟机(仅X86架构支持):
当业务处于低负载量运行时,可以只保留部分虚拟机满足业务需求,将其他空闲虚拟机休眠,以降低物理服务器的能耗;当需要业务高负载运行时,再将虚拟机唤醒,以满足高负载业务量正常运行需求。该功能满足业务系统对资源需求的灵活性,提高系统的资源利用率。
Tools管理:
Tools是虚拟机的一个驱动程序,提高虚拟机的I/O处理性能,实现对虚拟机硬件监控和其他高级特性功能。控和其他高级特性功能。无需操作即可实现以下信息。
- 为虚拟机提供高性能的磁盘 I/O 和网络 I/O 功能
- 为虚拟机提供虚拟硬件监控功能
- 获取虚拟机指定网卡 IP 信息
- 获取虚拟机内部各 CPU 利用率、内存利用率
- 获取虚拟机内各个磁盘/分区的空间使用信息
- 为虚拟机提供高级功能:
- 迁移虚拟机
- 安全关闭虚拟机、安全重启虚拟机、休眠虚拟机
- 在线调整虚拟机的 CPU 规格
- 创建虚拟机快照
- 虚拟机蓝屏检测
- 虚拟机与主机时钟同步
- 虚拟机网卡的高级功能,如 QoS、流量整形、ARP 广播抑制、DHCP 隔离、IP 与 MAC 绑定。
- 自动升级虚拟机的驱动程序,如 Tools 和智能网卡驱动
设置集群IMC策略:
目前IMC策略仅支持INTEL不同型号CPU的热迁移,其他厂商的CPU不能配置该功能。
IMC可以确保集群内的主机向虚拟机提供相同的CPU功能集,即使这些主机的实际CPU不同,也不会因CPU不兼容而导致迁移虚拟机失败。
- 集群下主机的CPU功能集必须等于或高于设置的目标基准功能集。
- 集群下运行或休眠状态的虚拟机CPU功能集必须等于或低于目标基准功能集。如果存在不满足条件的虚拟机,需要将该虚拟机关机或迁移出该集群后设置。
集群规则组:
每个集群最多添加20个规则组。规则组有如下类型:
- 聚集虚拟机:列出的虚拟机必须在同一主机上运行,一个虚拟机只能被加入一条聚集虚拟机规则中。
- 互斥虚拟机:列出的虚拟机必须在不同主机上运行,一个虚拟机只能被加入一条互斥虚拟机规则中。
- 虚拟机到主机:关联一个虚拟机组和主机组并设置关联规则,指定所选的虚拟机组的成员是否能够在特定主机组的成员上运行。
Windows虚拟机蓝屏处理策略:
设置之前必须安装tools,利用tools来充当心跳,vrm和虚拟机之间有心跳,一旦没有心跳,根据策略重启虚拟机,无心跳立即执行。
内存大页:
内存管理的基本单位,正常读写单位是4k,磁盘最小管理单元是块,目录存储为元,元数据区,描述数据的数据,相当于索引,目录。内存的元数据区叫做TLB,相当于页表。
大页:打开一个程序至少要使用一个内存页,一个内存页大小是4096byte字节,4kb。CPU里面有一个内存管理单元MMU,负责内存分配和映射,大页会占用实际物理内存空间。会记录内存分配映射表,程序关掉后不会删除映射表,用来记录cpu到物理内存的映射关系,是一个映射关系的缓存,减少CPU压力,牺牲内存性能提升CPU能力。把原有4kb内存大小提升至2m 减少访存时间,效率高,应用于对内存读写量需求大的场景,频繁使用相同程序的场景。例如数据库,不适用于内存的排序场合。提高TLB(后备缓冲器,内存页表,为CPU的一种缓存,由存储器管理单元用于改进虚拟地址到物理地址的转译速度。)命中率,减少访存时间,申请大内存区 效率更高,访问大内存去,减少页表项大小,快速访问更高的内存空间,提高cpu cache缓存效率,重启系统会刷新内容。
Linux中需要开启内核,Windows中打上对勾开启。
透明大页: 最主要的区别在于透明大页是可以在操作系统运行过程中动态设置的,而传统的大页是需要重启操作系统才能生效。对使用者完全透明,不必担心最小内存单位,更快更好的使用虚拟机,不依赖任何库,支持大小页混合。兼容ksm(把多台虚拟机的内存进行共享使用)swap(内存空间不够,把硬盘当内存用)兼容EPT/NPT(把物理内存和虚拟机虚拟内存做映射表),兼容影子页表。EPT属于intel NPT属于AMD
而通过影子页表,则可以实现客户机虚拟地址GVA到宿主机物理地址HPA的直接转换。
EVS亲和性:开启内存大页后,CPU、内存、甚至网卡都放在numa zone中
KSM:
内核相同页面合并,内核查找内存中完全相同的内存页然后将他们合并,并将合并后的内存页打上COW标记,多个虚拟机内存合并在一起,共享内存,扫描内存页面,相同内容页面只读共享,节省内存,提高虚拟机密度,需要安装KSM程序包。内存共享,写前拷贝。
影子页表:
Guest Page Table设为写保护,以保持虚机页表与影子页表的一致性,VMM中创建一个客户机页表的影子页表,能够一步完成从GVA客户机虚拟内存地址到HPA物理内存地址的转换主机。
EPT/NPT:
性能比影子页表好,将GPA转换为HPA,虚拟机内存地址转换成物理机的内存地址
CPU虚拟化:
RISC精简指令集(告诉如何做,一步一步去做。手机、省电)
CISC复杂指令集(直接下发任务,自己寻找。PC机、费电)
全虚拟化:所有指令都需要进行虚拟,由VMM完全模拟,VMM开销大
半虚拟化:兼容性差,只支持Linux,但是性能好,需要修改虚拟机OS内核,让虚机自己感知到自己就是虚拟机,敏感指令由VMM执行
硬件辅助虚拟化:借助硬件支持来实现高效的全虚拟化,CPU默认支持虚拟机使用敏感指令,成为未来的发展趋势。
内存虚拟化:
真实操作系统对内存的认识与管理达成以下两点认识:
内存都是从物理地址0开始
内存都是连续的
而虚拟内存自认为是连续的,对于物理内存来说是不连续的,按需分配
GVA虚拟机虚拟地址 → GPA虚拟机物理地址 → HPA主机物理地址
硬件辅助: Intel处理器提供了EPT,AMD的NPT,直接在硬件上支持转换,是因为在虚拟机内存映射成物理内存。
I/O虚拟化:
要么指磁盘,要么指网络。
全虚拟:兼容性好,性能差
Virtio半虚拟:需要装virtio驱动,兼容性差,最好选择linux,基本能达到物理内存以及物理网卡的百分之八九十。
PCI设备直接分配硬件辅助:把物理设备直接映射给虚拟机用,不需经过虚拟化层VMM,性能最高,和物理设备性能百分百,缺点是需要专用PCIE设备(目前网卡较多),设备和OS还需互相支持。在物理设备上面支持虚拟化。
NUMA:可以实现cpu和内存之间传输的最快特性,应用在多cpu场景,多核cpu用到,单核不需要,内存和核心的最快连接叫做numa,前提是需要软件支持。
设置集群IMC策略时,如果集群中有主机或虚拟机,则必须满足下面的条件:
集群下主机的CPU功能集必须等于或高于设置的目标基准功能集
集群下运行或休眠状态的虚拟机CPU功能集必须等于或低于目标基准功能集,如果存在不满足条件的虚拟机,需要将该虚拟机关机或者迁移出该集群后设置。
规则组:
设定规则组可以控制虚拟机与虚拟机、虚拟机与主机之间的位置关系,以满足不同应用场景的需求。
聚集虚拟机:列出的虚拟机必须在同一主机上运行
互斥虚拟机:列出的虚拟机必须在不同主机上运行
虚拟机到主机:虚拟机组的成员是否能在特定主机组的成员上运行
虚拟机热迁移:
可容忍短时间中断,但必须要快速恢复业务,比如轻量级数据库服务,桌面云业务,支持在不影响用户使用或终端服务的情况下在服务器之间实时迁移虚拟机,从而无需为进行计划内服务器维护而安排应用中断。
在线调整CPU和内存:
VRAM和VCPU支持在线添加,在虚拟机运行情况下调整CPU和内存规格,虚拟机不需要重启。
支持主流Linux系统虚拟机在线调整CPU和内存;支持主流Windows系统虚拟机在线调整内存,在线调整CPU后重启生效。
兼容行业特殊操作系统:
除了兼容主流的Windows、linux操作系统之外,还兼容国产中标操作系统,350+的OS。
灵活管理架构:
每个逻辑集群支持128物理机,适用于高性能、大规模业务群部署,降低冗余物理机比例
每逻辑集群支持8,000台虚拟机 ,适合桌面云等规模大、性能要求不高业务部署
虚拟机资源动态调整
- 离线/在线调整vCPU数目
无论虚拟机处于离线(关机)或在线状态,用户都可以根据需要增加虚拟机的vCPU数目。虚拟机处于离线状态时,用户可以根据需要减少虚拟机的vCPU数目。通过离线/在线调整虚拟机vCPU数目,可以满足虚拟机上业务负载发生变化时对计算能力灵活调整的需求。
- 离线/在线调整内存大小
无论虚拟机处于离线或在线状态,用户都可以根据需要增加虚拟机的内存容量。虚拟机处于离线状态时,用户可以根据需要减少虚拟机的内存容量。通过离线/在线调整内存大小,可以满足虚拟机上业务负载发生变化时对内存灵活调整的需求。
- 离线/在线添加/删除网卡
虚拟机在线/离线状态下,用户可以挂载或卸载虚拟网卡,以满足业务对网卡数量的需求。
- 离线/在线挂载虚拟磁盘
无论虚拟机处于离线或在线状态,用户都可以挂载虚拟磁盘,在不中断用户业务的情况下,增加虚拟机的存储容量,实现存储资源的灵活使用。
虚拟机热迁移
FusionCompute支持在同一共享存储的主机之间自由迁移虚拟机。在虚拟机迁移期间,用户业务不会有任何中断。该功能可避免因服务器维护造成的业务中断,降低数据中心的电能消耗,支持源主机和目的主机是异构CPU场景下的虚拟机热迁移。
步骤:
1、先迁移虚拟机的配置信息,之后在目标端创建配置虚拟机,虚拟机这时处于挂起状态
2、这时再进行内存迭代迁移,毫秒级停止业务,如不停会一直有新数据产生。最后进行快速迁移,进行同步
3、最后关闭源虚拟机,之后拉起目标虚拟机,重启业务
受限条件:
1、虚拟机在正常运行中
2、统一共享存储
3、源虚机和目的虚机保证CPU的一致性,保证同型号同代次
4、目的主机要有足够资源
5、保证网络畅通,二层保证业务不丢失,三层也可以迁移过去,业务不保证存在
6、安装tools
7、不可以与硬件绑定
应用场景:
1、源主机资源利用率高的情况下
2、DRS和DPM
3、做硬件维护