NFVI特性之实时虚拟机()二
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了NFVI特性之实时虚拟机()二相关的知识,希望对你有一定的参考价值。
接前文,之前讲了openstack中实时虚拟机特性都作了那些特有的实现,这些代码大部分在M版本中已经合入。但是关于qemu本身消耗的CPU时间,并没有很好的处理。这块的设计和代码实现一直到P版本,也就是最近才合入到主干代码中。我们知道,openstack中nova根据虚拟机的flavor给虚拟机分配CPU以及确定CPU的放置策略。
由于qemu本身也要消耗很多CPU实现,用于qemu本身的event loop/异步IO/迁移虚拟机/spice等业务。之前nova默认将qemu和vCPUs运行在相同的pCPU上。
大多数情况下,实时性要求不那么高,这样也没有什么问题。但是对实时性要求比较高的场景下,由于qemu偷取了部分vCPUs的时间,会导致实时性不符合要求。
在M版的实现里,我们可以通过cpu_realtime_mask指定qemu和虚拟机的某几个vCPUs共用pCPUs,虚拟机的其他vCPUs使用实时调度策略。从而保证这几个vCPUs符合实时性要求。
由于虚拟机的vCPUs只有部分是实时性的,因此Linux系统可以使用,但是不能满足某些实时操作系统的要求。
P版本中增加了配置hw:cpu_emulator_threads=isolate/share,用于设置emulator使用的cpu的分配策略。如果选用isolate,会从host上固定一个pCPU供emulator使用。(目前不能配置,只能是1个)。如果选用了share,和之前的行为一致。
以上是关于NFVI特性之实时虚拟机()二的主要内容,如果未能解决你的问题,请参考以下文章