Jan 032017
 

在我看来,目前的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支持 专门租户设置特别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,其实还需要特殊的定制的镜像。

镜像上传,只能让管理员上传。

租户和计费

很多情况下,为了方便,创建用户,都分配管理员权限,导致很多管理问题。还是要求一个租户,一个用户对应。这样好管理。不能那么随意。

对于租户,计费系统要启用,这样才能了解到资源是如何消耗掉的。

Jan 022017
 

这是酷威第四次保养,估计是经济形势的原因,亦庄的港龙店已经关门,所以也就只能尝试别的店进行维修保养。这次选择来广营店(汇杰伟业)来进行保养。

以前北京有6家克莱斯勒的4s店,买车是在亚运村的安源店,保养是在亦庄港龙,海淀中进百旺,这次是来广营的汇杰伟业。最近由于港龙退出北京市场,新增加一家店冀东通,不过环境很差,我到那边就感觉不好就去汇杰伟业。

这家店还是很大,不过就是好像暖气不足。不然其实是很不错的。应该比我去的其他几家店都要大,包括停车场。

这次保养的公里数是3万六,离上次保养,开了一万公里。主要是春节期间打算回趟广州,估计要跑6千公里,稳妥起见,还是保养一次,就当检查一遍,再出门。

维修费用

  1. 机油滤清器     83元元
  2. 合成机油5w-20 1L   83*5=415元
  3. 酷威空气滤清器      236元
  4. 空调滤芯               124元

合计858元。相比我以前的几次保养,其实配件价格都要低一些。

不过这里工时费就有点贵。

换空滤,空调滤芯,工时费2工时,220,加上保养工时费2.2工时,220,工时费是:440。

总费用:1298元。

比上次保养大概贵了100 多一点。在中进百旺那边,换滤芯工时费是22元。不可能什么都是最便宜,整体来说,都是还是可以接受。

作为一个汽车维修专业毕业的人士,很多事情,都是可以理解和接受,还很明白啊。

Dec 292016
 

一眨眼孩子已经上小学,马上第一个学期就完毕了。所以在年底来临前,记录一下。

每次写这个都会看看半年前写的文章,真的是需要记录。

 

基本情况

  • 身高:126
  • 体重:50斤

感觉真的长大了。

小学生

在北京上小学,孩子的接送,肯定都是一个大问题。这次老婆不上班,回家专门接送孩子,中午孩子去小学周围的小饭桌,也算是解决了上学的问题。

小孩对于上小学,还是比较期望,适应很快。比较享受在学校的过程。这倒是非常不错。

因为孩子嗓门大,所以体育老师让他当体育班长(我们以前叫体育委员),儿子积极性很高,体育课是周1到周4都有,所以每天都要整队。

作业肯定是家长最关心的事情。作业多少一般和学校传统有关,也和班主任有关。后南仓的传统就是作业很少,这次儿子还幸运,还碰上一位作业上的班主任。每天的作业,基本就1个小时就差不多。

现在的英语作业,倒是很幸福,有专门的app,对着英语教材,教小孩读,作业也是通过app来布置。真的是一个很大的变化。老师也是通过app来布置作业。

如果家长没有手机,孩子都无法完成作业。时代真的是变化了。

其实一直都希望孩子上学,可以真的做到,好好享受小学生这个过程,无忧无虑,快乐。

培训班

儿子在幼儿园的时候,就一直坚持没有上过培训班,仅仅参加幼儿园的下课后搞的培训,这样只是晚去一个小时接小孩。

其实上小学,我也没打算让孩子上什么补习班。本来有一个剑桥英语培训班,在学校里开班,让小孩放学,在他们教室上课,倒是很方便,不过后来过2个月,就取消。所以孩子也没有继续上所谓的英语培训课程。

也是巧合,今年通州有篮球的培训班,专门针对小孩,刚好在家门口。孩子刚好也感兴趣,也就给他报名,每周去练习打篮球。对于体育班长来说,打好篮球是必须的,也希望孩子可以一直打下去,1年,培训费用8k,不便宜啊。有专业的教练教,其实还是不错的,姿势练的很标准啊。

滑冰,北京冬奥会,通州也搞了几个冰场,有专门教练,教大家滑冰。还和学校联合,培养冰球队员。对我来说,让小孩玩玩冰球,也是好事情。现在小孩基本可以做到,每周去冰场滑冰,找教练教,现在已经用球刀来滑冰,不知道什么时候,可以穿上冰球服,来打几下。

让孩子多运动一下,多点爱好,以后可以玩的东西多一点,这是我的想法,肯定没有任何念头让他搞所谓的体育。

孩子现在还特别爱画画,每周二的美术课,都要带上一堆装备去画画。

生病

孩子班里,基本每天都有小孩请假,生病。估计也和北京的雾霾有关。还好,儿子也就咳嗽了一段时间后,也就基本没啥事情。1个学期下来,也就请了一天所谓病假,在家休息一下。

身体好,比啥都重要。

Dec 232016
 

还没有到月底,不过由于圣诞节的原因,社区的开发,在未来的1周内,基本会处于停止状态,所以这个时候做总结,时间也就比较合适。

Sam Yaple强势回归

大家如果看过我以前写的文章 Kolla的江湖 应该知道Sam是一个多么强悍的人物。这次Sam代表Rackspace,重新回归社区,真的是让整个Kolla开发社区都感到很兴奋。

这次Rackspace还派出文档的社区人员专门帮助完善Kolla的文档。

未来2个月内,大家应该就可以感受到很大的变化。

Sam这次回归,要力推Kolla-salt,这个应该会发生在下一个版本。在Ocata版本,Sam还是全力完善Kolla 和Kolla-ansible,帮助ansible变得更加强壮。

目前Sam在做Monasca项目,在Ocata版本merge,基本不会有任何悬念。目前Docker file已经Merge. Roles 正在进行中。Monasca,让大家对OpenStack监控多了一个选择。

Kolla掉电测试

这次Sam回来,给我们分享很多好的消息。以前OpenStack群集,遇到机房,机柜掉电,其实不是小概率的事情。一旦碰上,其实要把群集恢复正常,是需要很长时间和麻烦。

对于Kolla部署的OpenStack,如果整个群集掉电后,如何恢复呢。有啥启动顺序呢?其实我也一直想问这个问题

答案是,你不需要做任何东西,把机器开机,所有服务会自动修复,不需要做任何的操作。这就是传说中的所谓自愈功能。

我是听青云的Richard讲通过机器人,如何实现系统自愈故事长大的,这次在kolla看到如此强悍的功能,真的比较激动。

Fluentd替换Heka

由于heka项目已经不维护,所以Kolla社区要替换,经过讨论,决定使用Fluentd 来替换Heka.

Kolla的Heka,其实是在Mitaka版本,由Mirantis推动实现的,不过后续由于公司原因,也就基本不完善,也导致目前Kolla的日志(Kibana,Elasticsearch, Heka) 有很多需要改进和完善。

这次Fluentd替换Heka,Kolla社区定的目标就是实现用户无感知的替换。九州云的朱冰兵同学把这个任务承接下来,同时得到国内的日志厂商Loginsight 杨志斌同学大力支持,专业的事情,真的要专业人士帮忙。你真的会发现,我们眼里的难点,他们感觉so easy。

目前替换工作的验证,已经基本完成,基本做到无缝升级。后续会邮件里讨论什么时候实现Merge,后续还是有不少体力活需要去完成。

后续还有2项工作,我希望可以完成

  1. 完成Kibana和Elasticsearch 5.x的升级
  2. Kibana图制作

这次得到国内日志专业厂商Loginsight朋友帮忙,应该是可以进展更快。

Kolla是希望做到OpenStack开箱即用,这个目标其实已经基本实现,同时也希望可以做到周边的运维工具,也是可以开箱即用,这个真的需要努力去实现。

Ceph的Swift API

现在OpenStack很多项目,涉及备份的,都会依赖Swift,那么其实是swift api,例如Karbor,Freezer,Trove等项目。用了Ceph,还需要折腾一套swift存储,是很麻烦的事情。

这次九州云的江军波同学,把Ceph的Swift API功能加上,让世界变得更加美好。其实如果能把S3接口也加上,那就更好。

Horizon插件

OpenStack项目的UI,基本都是Horizon的插件形式添加,目前Kolla社区已经决定把所有的插件UI都merge到Horizon的Docker里,这个工作基本已经完成。日后大家装各个项目,UI就会自动加载到Horizon里,比较方便。

 

Big Tent项目

我做了一个统计,目前Big Tent底下,有60个项目,Kolla需要去实现部署的36个。目前已经merge 27,动工的8个。

上个月进行的Kolla项目拆分,导致DNS项目Designate遗留,需要重新提交。不过也是好事,在重新提交过程中,由于Sam的回归,其实发现了Designate以前其实存在很多问题,目前在根据Sam的意见进行整改。

目前在Master中,已经Merge的项目

  1. Tacker (NFV项目)
  2. Octavia (Neutron的负载均衡实现)

Tacker(NFV)和负载均衡,都是用户关注度很高的功能,这次总算实现了。

正在开发的项目有

  1. Designate
  2. Freezer
  3. Karbor
  4. Monasca
  5. Zaqar
  6. Zun

以上6个项目,都在积极推进中,在Ocata版本Merge,基本问题不大。

计划动工的项目

  1. Dragonflow
  2. Vitrage

难度最大的肯定是Dragonflow项目,目前已经得到海云捷迅的马力同学大力支持,和九州云的曹威同学一起联合完成,努力在Ocata版本实现Merge

Vitrage,目前让九州云陈星同学负责,同时也希望中兴参与Vitrage开发的朋友多多支持。

目前就剩下一个项目 Tricircle (Networking automation across Neutron service) 华为的级联OpenStack项目,还没有进行中。

Dec 082016
 

怎么让OpenStac镜像k更加好用,这是我一直都想去解决的问题。我想整理一下我的需求,后续让同事跟进,把这些问题都彻底解决。

于CentOS和Ubuntu,其实都有有官方镜像,默认的官方镜像,其实还是非常不错,也比较流行,那么这些官方镜像,我们直接拿来使用,其实还是有不少问题,在一些特别环境下。

很多用户都是拿上传的镜像修改完,转成镜像,其实我一向不喜欢这种方式,这样做,应该会有不少隐患。所以我希望在镜像上传前,可以做更多的定制。

也是在私有云领域里,用户对镜像的需求。

镜像磁盘大小

这个CentOS官方镜像默认是8G,Ubuntu默认是3G,通过镜像带的磁盘扩大的软件,其实是可以在创建,resize的时候,调整硬盘的大小。

现在公有云默认的linux磁盘大小是20G,40G,系统盘是不能调整大小的。这其实也是有利用提高性能,在创建的过程中,不需要调整硬盘大小,加快创建速度。

windows的镜像大小是60G。

所以在实际中,公司内部私有云,我希望所有的镜像默认的磁盘大小都是60G,这样其实也好管理,同时在大部分情况下,都是不需要增加磁盘,就可以满足需求。

另外还是要有工具,在镜像上传前,调整系统盘大小。

需要强调的是,在OpenStack上传镜像的时候,一定要填写上对硬盘和内存的最小要求,这样可以避免用户创建虚拟机的出错。

操作系统版本

由于我们经常遇到不少软件是需要指定版本,才能跑起来,所以我们镜像要写上os的版本号。建议

  1. centos 6.5
  2. CentOS 6.8
  3. Ubuntu 12.04.x
  4. Ubuntu 14.04.X
  5. Ubuntu 16.04.x

centos 6.5的镜像,就只能自己单独制作。其他镜像,可以下载官方镜像,进行定制修改。

操作系统的源

要对操作系统的源进行定制。指向国内的源,阿里,中科大等目前速度非常不错的源。同时如果有必要,也是可以指向内网的源。让运维人员可以修改镜像里的源。

调整磁盘大小

在公有云的场景下,其实系统盘,是不允许调整大小。不过这个需求,在企业私有云里其实是很旺盛。默认OpenStack也是支持磁盘扩大。

所以我们需要在确保镜像是支持磁盘大小的调整。对于不同的linux,装的包是有点不一样。

http://xcodest.me/centos-root-partition-auto-grow.html 

启动速度

优化虚拟机的启动速度,其实还是很有意义的。这里面最需要处理的就是cloud init。

http://xcodest.me/cloud-init-cause-vm-boot-slow.html

尤其在没有联网的环境下,会导致虚拟机启动速度很慢。

镜像的密码

作为服务商,肯定会建议用户采用秘钥登录,但是现实中,用户都是把虚拟机设置root的密码,做快照,生成新的镜像。

centos和ubuntu,默认的登录的用户名也是不一样。

我倾向是都改成root账号

如果我采用密钥登录,会出现一个尴尬的情况,就是控制台无法登录。

我考虑是,给镜像的root设置一个密码。同时也是可以在上传镜像前,把root的密码修改成自己需要的。

同时ssh的设置,也需要做些调整。默认是不允许root登录,密码登录。

如果虚拟机创建的时候,设置了root密码,那么就覆盖了默认的密码。这时候,是允许root的远程登录的。

vnc设置

vnc其实是比较消耗资源,如何在vnc不使用的情况下,自动退出,这个其实是需要考虑的。在私有云使用里,因为vnc没有关闭,导致最终资源消耗过大,是一个场景的问题。

解决这个问题,可以从镜像入手。

SSH优化

默认ssh访问,是需要请求dns,所以需要在ssh的配置文件里,设置

UseDNS no

定制包安装

在实际中,用户经常会提出要安装linux的桌面,开发环境的镜像,这样方便,这些需求太多,所以有一种办法,让工程师,可以直接操作镜像,把需要的组件安装好,再上传镜像。

事实上,OpenStack后续很多项目,sahara,murano,trove,都涉及镜像的定制。都是使用disk-image-builder 工具,可以好好深入研究一下。

https://github.com/openstack/diskimage-builder

Nov 302016
 

我一直都在评估,我自己是否能坚持写下去,当确认没有问题,那就可以正式开始写Kolla的月报

11月份,其实算是Ocata版本正式开发的一个月,成绩还是非常喜人的。

项目拆分完成

kolla的项目要拆分成Kolla和kolla-ansible,这个已经计划了很久,为了保证Newton版本的稳定性,推迟到现在才开始拆分。日后

  • Kolla,就负责build docker image
  • kolla-ansible负责编排,部署。和Kolla-k8s是平行的。

负责这个工作的就2位,Steven Dake 负责repo的拆分,九州云张雷同学负责Kolla的CI的修复。比想象中顺利,不到一周的时间,一切都恢复正常,现在跑一个测试,时间已经缩短到半小时内,效率大大提升。

如果想做Kolla的二次开发,维护自己的分支,那么建立自己内部的CI是必须的。

Big Tent项目

项目拆分的一周时间,开发工作基本都停止。不过在项目的Merge上,进展还是非常顺利。

  1. Searchlight (麒麟的李英俊)
  2. Solum(九州云曹威同学)
  3. Trove(九州云朱冰兵同学)
  4. Designate(九州云朱冰兵同学)

这4个项目,已经成功Merge。希望可以做到尽早把各个项目Merge,后续有足够的时间进行测试。

目前Master里,

  1. Tacker
  2. Freezer
  3. Karbor

这3个项目已经在积极review中,有望在12月份实现merge。

目前Big Tent底下就剩下6个项目,我整理了一下

  1. Dragonflow
  2. Monasca (Monitoring)
  3. Tricircle (Networking automation across Neutron service) 华为的级联OpenStack项目
  4. Vitrage (RCA (Root Cause Analysis) service)
  5. Zaqar (Message service)
  6. Zun (Containers service)

Horizon UI插件

现在Horizon各个项目的UI,都是用插件的形式放到Horizon里的。那么对于Kolla项目来说,如何把各个项目的Dashboard放到Horizon里呢?

最开始的设想,就是提供方法,让用户在build 镜像的时候,把需要的UI放到Docker file里,不过这个其实也就导致很多用户很迷惑。经过社区讨论,最后决定,把所有的UI都放到Horizon的Docker file里,这样大家使用起来就更加方便,不需要为了使用某个项目,自己去build一遍镜像。

项目很多,差不多有20个项目的UI要放到Horizon里,估计12月份,开发者都需要忙着处理这块。这样Ocata版本发布后,就会更加方便,易用。

Heka替换

Kolla计划在Ocata版本,把Kibana,Elasticsearch升级到5.x版本。不过如何替换Heka,就大家有不同的看法。选择其实不多。目前Fluentd呼声最高。

无论什么结果,替换的工作量还是不小。希望早日定下来,赶紧开工。

北京OpenStack聚会

11月26日,张雷同学参加北京组织的OpenStack聚会,介绍一下巴塞罗那的峰会的见闻。这次聚会讨论的内容其实是比较特别,Heat,Senlin,Searchlight,Karbor,Heat估计大家可能还听说过,剩下几个项目,其实就算是OpenStack社区开发人员,都很难说出他们的具体用途,更别提如何安装,部署。所以作为项目的开发者,不仅仅是开发代码,还需要参与项目的推广,让用户把你做的项目用起来,你的价值才能得到提升。

那么如何推广起来呢?这个就是一个很有挑战的事情,首先要让发行版支持你,有rpm包,deb包,否则你是寸步难行。不过这种情况已经发生改变,Kolla出现,已经可以实现通过源码进行OpenStack项目的安装,如果你想了解Senlin,Searchlight,Karbor,那么最佳的途径,就是通过Kolla,一键安装,生产ready。

张雷同学做了一个演讲主题《容器化OpenStack的机遇和挑战》,一个很有趣的观点,Kolla的运气还是非常不错的。

Snap4

Docker 1.10在2016年2月份发布,解决了所有的OpenStack容器化遇到的所有难题。否则是不可能在4月份的Mitaka版本正式投入商用的。

突然发现我的运气,也是非常好。