云主机迁移对于宿主机的调度选择策略其实和创建的时候是一致的,都会经历过滤和筛选最佳这两个阶段,对于筛选阶段比较直接,节点剩余内存越大,调度到该节点几率越大,而过滤是要去掉不满足要求的节点,最重要的应该就是资源容量计算了,原因是这里的容量不是简简单单的物理机的物理资源,还存在一个超售比例的概念
对于超售比例,说通俗一点,以VCPU为例,比如节点机有48个物理核,除去系统默认保留自用的比如10个核,剩下38个核虚拟出VCPU供创建云主机使用,假如是1:1的关系,虚拟出的VCPU数量也为38,那么在其它资源都不超过配额的前提下,这个节点最多可以创建flavor为1VCPU的云主机38台,但是如果这38台云主机全部都是空负载,就会导致很大的资源浪费,CPU都没得到充分利用,这种前提下,配置合适的超售比例,38个核虚拟出76个,152个甚至更多VCPU来提供使用,具体应该如何配置应该根据实际的负载情况来设置,目的就是为了资源利用的最大化
因此,在云主机调度过程中,容量计算都是根据超售之后的容量来计算,判断剩余容量,上面物理机一共48个核,超售比设为2.0,就算创建了50台VCPU为1的云主机,也还有26个VCPU容量可用
目前超售比做到了按节点进行配置,nova默认配置里大概长成这样
ram_allocation_ratio = 1.0 cpu_allocation_ratio = 4.0
想手动测试按容量计算创建云主机,可以参考:
http://flyaway.me/2016/02/27/openstack超售比例之vcpu/
有了超售的概念,还是抵挡不住云主机庞大的使用量,在使用过程中,最容易出现的问题就是创建云主机失败,原因应该如何定位呢,请看下一篇