目前的OpenStack的部署工具已经很完备了,尤其是Kolla,至少可以满足目前的各种需求。在部署安装的问题解决后,我们对日后如何用好OpenStack就需要做一下研究。这里整理一下目前所关注和思考的问题,也是OpenStack交付给用户时我们要回答的问题。
CPU和内存超分比例
经常有人问我,一台机器可以虚拟出多少台虚拟机。对于这个问题,我的答案永远都是:It depends。完全取决于你,从1个到100,都是可能的。
OpenStack默认的CPU超分比例是16:0,内存是1.5:0。那么在生产环境如何配置呢?这个需要认真考虑,不同的OpenStack使用场景确实区别很大。
对于开发环境,16倍的超分比例,很可能也跑的很好。内存也可以超分。而目前看到的生产环境中,稳妥的做法是4:0超分比例,内存不超分,这样的做法比较普遍。
这里面要简单介绍一下KVM计算CPU超分的计算方式。一颗物理CPU,是12Core,超线程,那么就是24Core,如果我们不做任何的超分,1.0,那么就是24个Core,创建4core的虚拟机,可以创建6个。如果我在参数里设置的CPU超分比例是4.0,那么就有24*4=96core,对于4core的虚拟机,我就可以创建出24个。
CPU和内存预留
对于计算节点的CPU和内存,需要保留多少,尤其现在超融合架构下,保留多少比较合适,都是比较争议的问题,不同的软件版本,不同的硬件条件,结果都会不同。
对于超融合架构,采用SSD,以前是需要专门做CPU的预留和绑定,不过现在好像很少人谈及这个问题。不过一般习惯,大家都是内存保留4G,现在内存比较便宜,4G内存跑计算节点各种服务,问题不大。
CPU的预留多少给主机使用,这个参数很多环境下都不设置,不做任何的保留。
Flavor
一般开始的时候,很少考虑Flavor该如何设置,不过真正使用起来,Flavor问题其实很多,因为一旦Flavor有虚拟机使用,你就无法删除和修改,这样如果你对flavor做任何操作,都会导致虚拟机产生各种问题。因此OpenStack默认初始化的Flavor,在实际中应该做调整。
目前OpenStack支持StartFragment 专门租户设置特别flavor,所以我们建议生产环境设置2个flavor
1. 4Core+8G内存
2. 8Core+16G内存
3. 1Core+2G内存
第三个flavor,主要目的是测试使用。日常用户使用2个flavor应该就足够了。
这个其实也需要考虑主机的内存到底多少是最合适。如果机器是512G内存,16G内存的虚拟机可以创建32个,减掉系统保留内存,30个虚拟机是没啥问题的。
对于core来说,我们就需要240个Core。如果一个CPU是15个Core,超分比例是4,那么就基本够用。从成本角度,15个Core的CPU很贵,通常12Core的CPU比较合算。
镜像
这个很重要,不过过去私有云的镜像制作都很不正规,导致很多问题。一个Linux的OpenStack镜像,其实是需要做很多工作,用户用起来才会感觉好用。
1. 上传镜像,必须指定内存和硬盘的最小要求,这样可以避免很多用户出错
2. 上传qcow2,转换成raw格式
3. 只提供最小化安装的linux镜像(centos 7.2,centos 7.3,Ubuntu 16.04)
4. 集成qemu agent
5. 关闭selinux
6. 不设置wap分区
7. 加快ssh速度,设置ssh不用dns
8. 指定源,加快速度
9. 可以设置密码
对于OpenStack特殊服务,例如ironic,sahara,trove,其实还需要特殊的定制的镜像。
镜像上传,只能让管理员上传。
租户和计费
很多情况下,为了方便,创建用户时都分配管理员权限,导致很多管理问题。还是应该要求一个租户一个用户对应。这样好管理,不能那么随意。
对于租户,要启用计费系统才能了解到资源是如何消耗掉的。