华为云计算02—虚拟化之计算虚拟化

虚拟化之计算虚拟化

计算虚拟化包含了:

  1. CPU虚拟化
  2. 内存虚拟化
  3. IO虚拟化

VCPU的计算方式:CPU个数×CPU的核数×CPU的线程数。
CPU的QOS:

  1. 上限:分配给VM的VCPU上限。
  2. 份额:如果发生了抢占,则根据份额分配资源。
  3. 预留:给核心VM预留资源,保证其业务稳定。

例子:一个服务器有24个线程,24GHz。分给3台VM。因为有24个线程,所以可以虚拟出来24VCPU,这里的VCPU指的是单台VM的VCPU上限。假如3台VM的都是4VCPU,没有发生抢占,那么每个VM的都是4GHz,假如资源发生了抢占,VM1—VM3都分配了24VCPU,那么则根据份额来分配资源。
份额有:低,中,高。

华为云计算02—虚拟化之计算虚拟化_第1张图片
上面虽然都是24VCPU可是,它们使用的Hz确是不同的。
如果其中的VM有预留,则代表它的最低资源,即使它不使用,别人也不能抢占。(目前资料说法不一致)
华为云计算02—虚拟化之计算虚拟化_第2张图片
如果VM1预留8G资源,但是按照份额来分它只能有4G资源,剩下的4G资源要从VM2,VM3中去抢占,根据份额,VM2要分配给VM1:2/5×4=1.6GHz,VM3:3/5×4=2.4GHz,则VM2使用了8-1.6=6.4GHz,VM3使用了:12-2.4=9.6GHz。

内存虚拟化:
华为云计算02—虚拟化之计算虚拟化_第3张图片
因为OS每次读写的时候,总是从0号地址开始,但是真正的物理地址0号只有一个,因此,由VMM虚拟出来0号地址,给每个VM来使用。VM保存着由VM映射到VMM的地址(VA—PA),而VMM保存着由VMM映射到真实的内存地址(PA—MA)。

主机内存超分配技术:

华为云计算02—虚拟化之计算虚拟化_第4张图片
虚拟机1-3,都申请了2G内存,但是都只用到了1G, 内存超分配技术就是VM使用了多少内存就分配给多少内存。VM1-3共享剩下的未写零页的1G内存。
内存超分配可以达到50%。

内存复用技术:

  1. 内存共享+写时复制:VM之间共享同一物理内存空间,VM对此空间只有读的操作,当VM需要对内存进行写操作时,则开辟另一内存空间,并建立映射。
  2. 内存置换:虚拟机长时间未访问的内存内容,被置换到存储中,并建立映射,当虚拟机再次访问该内容时再置换到内存中。(通过热点因子计算冷热数据)
  3. 内存气泡:Hypervisor通过内存气泡,将内存使用率较低的VM内存,释放给内存使用率较高的VM来使用,提升内存的利用率。

内存的QOS:

  1. 内存的上限:内存在创建的时候就形成了上限。
  2. 内存的份额:在内存发生抢占的时候根据份额来分配资源。
  3. 内存的预留:预留指的是,即使VM使用的最低内存,即使自己不使用,也不会分配给其他VM使用。

华为云计算02—虚拟化之计算虚拟化_第5张图片
如上图,当VM1-3都要使用10G内存时,则发生了抢占,因为物理内存才24G,则根据份额进行内存的分配,即:VM1有4G,VM2有8G,VM3有12G。
内存上限,VM创建时就已经确定。上图VM3根据份额分配了12G的内存,但是如果在创建VM时确定了它的内存为8G,则即使分配给它12G,它仍然只能使用8G。

numa技术:针对的是物理硬件的划分,比如2U128G的物理硬件,在主板上,一个CPU会使用与其相近的内存。当开启了numa之后,在此服务器上的内存复用,CPU复用等技术都会失效。在分配资源的时候,比如分配给一个虚拟机2VCPU,那么这两个VCPU只会从node01或node02上去取资源。
华为云计算02—虚拟化之计算虚拟化_第6张图片

总结:

计算虚拟化:

  1. CPU虚拟化:1.特权解除—陷入模拟;2.X86架构的:全虚,半虚,硬件辅助虚拟化。
  2. 内存虚拟化:1.内存超分配技术;2.内存复用:内存共享+写时复制,内存置换,内存气泡。

你可能感兴趣的:(华为云计算02—虚拟化之计算虚拟化)