虚拟机个数与物理主机的硬件

做openstack可能都会有个疑问,一台物理服务器能创建多少个云主机?运行多少个云主机最合适?我也找了好多资料,总结一下。

创建云主机时,对物理机硬件的使用不限于1:1,因为不同硬件会支持kvm虚拟化的,这个就引入了 overcommit(超配)概念。

举个例子,宿主机有两个物理 CPU,上面起了两个虚机 VM1 和 VM2。 VM1 有两个 vCPU,VM2 有 4 个 vCPU,现在情况是虚机的 vCPU 总数可以超过物理 CPU 数量,这个叫 CPU overcommit(超配)。

1. 内存

内存基本上是一个硬限制。物理服务器的内存肯定是有限的。例如,一台服务器有8 core,8G内存,通常hypervisor会占用512M内存,大概还剩下7.5G内存,假设每个虚拟机的配置是1 core cpu,1G内存,那么在此机器上最多可以运行7个这样的虚拟机。 再创建新的虚拟机时,就会报错说内存不够。在此情况下,每个虚拟机在满负载情况下最多可以拥有1个cpu core的运算能力,1G的内存空间。

当然,现在的hypervisor基本上都支持over-commit的功能,也就是说,如果你的内存只有8G,但是设定一定比例的overcommit,例如50%,那么你可以最多分出去12G内存。还是上面那个例子,如果设定overcommit为50%,那么最多可以创建11个虚拟机(1core,1Gmem)。 在服务器虚拟化方面,建议overcommit设置的不要太高,一般20%。在桌面虚拟化方面,可以将overcommit设置到50%.

2. 网卡

如果服务器只有一个网卡,所有虚拟机的网络流量都是通过一块网卡出去,虚拟机越多,每个虚拟机可以使用的带宽就会越少,这个是需要综合考虑。例如使用多个网卡等。

3. CPU

在openstack控制节点下,有个/etc/nova/nova.conf文件

虚拟机个数与物理主机的硬件_第1张图片

这段话翻译就是虚拟CPU的物理CPU的分配比的影响所有的CPU过滤器。此配置指定一个全局分配率,如果没有额外设置就会按照这个默认值(CPU分配率= 16)来处理。

这样的话虚拟主机cpu总数 = 物理CPU数 * 16

你可能感兴趣的:(openstack)