陈沙克

Sep 252017
 

9月份,是OpenStack的Pike版本发布的时间。对于Kolla这次发布来说,也已经发布了pike的版本,整体肯定都是可用的,不过不少小问题,慢慢修复。

如果大家想测试和学习kolla,我还是建议用Ocata版本,这个版本,在过去半年里,已经修复了大量的bug。除非你真的想玩特别新的功能和能折腾。

目前社区已经进入Queens版本开发,对于Kolla来说,未来有什么可以期待和关注呢?

对于kolla-ansible来说,已经步入一个基本的稳定阶段。不过还是有很多细节可以完善。

kolla-ansible容器化

这个其实大家很少关注,不过当你去升级OpenStack的时候,还是会有点不方便。如果我们把kolla ansible也容器化,其实就真的很爽。

对于Ocata版本的kolla ansible,和Pike版本的kolla ansible,他们的requirement是不一样的。还是可能导致一点问题。解决的办法,就是把kolla ansible也容器化。

跨版本升级

kolla需要对跨版本的升级,做更多的测试,尤其是Ocata版本,直接升级到Queens版本。这样可以很好解决用户面临频繁升级的问题。

我相信对于kolla来说,实现的代价应该不大。需要做的就是大家参与去测试。

 

Masakari

这个项目推出已经有至少2年,实现一个用户非常关注的功能,VMHA。就是一个计算节点出现故障后,上面的虚拟机进行疏散到别的节点上。

这个功能最难的地方,就是如何判断节点出现故障,误判,很容易导致vm的脑裂,出现更加严重的故障。

目前大家都是通过zabbix的监控来实现。不过OpenStack社区是通过Masakari项目来实现,目前该项目在申请加入Big tent,那么放到kolla里,也是呼声很高。

替代Devstack

在OpenStack开发过程中,是否能用kolla来替换Devstack。这个真的是一个非常好的想法。其实当年OpenStack ansible,也是有同样的想法,只是没真正实现。

目前kolla社区已经逐步把项目提供dev模式,让开发者可以用kolla来搭建开发环境,在上面进行开发。

性能优化

和Mirantis的Fuel相比,至少有两个地方的性能还是有差距的。

  1. fernet token
  2. Run RabbitMQ with HiPE

参考资料 https://www.mirantis.com/blog/best-practices-rabbitmq-openstack/

需要把这两个功能都启用起来。在大规模部署上,会有很大改善。

https://review.openstack.org/#/c/367262/

Fernet,是需要我们好好测试,这个功能,主要还是因为容器化后,需要好好处理一下才行。

解决遗憾

其实在8月份的月报里,我也已经提到了Pike版本的遗憾,那么这些遗憾,其实应该都是可用在Queens版本,进行很好的补救。

Pike版本遗憾

Big Tent项目,我们就继续努力,实现全家桶。对于Queens版本,我期望各个项目能真正的跑起来。

Aug 272017
 

kolla的7月份月报没写,其实也不是偷懒,主要还是因为社区的开发工作,都在进行中,没太多的更新。8月份,可以说是Kolla的Pike版本交付的重要时候。正式版本应该会在9月15号前发布。

这个月的月报,其实也可以作为Kolla的Pike版本的Release Note。

下面我就把Kolla和Kolla-ansible在Pike版本完成的工作,做一个总结。

Continue reading »

Aug 172017
 

从2016年开始,OpenStack项目的PTL从以前的1年选举一次,改成半年选举一次。也就是项目的当前版本开发周期RC1发布前后,就要开始下一个版本的PTL的选举。

根据 https://releases.openstack.org/pike/schedule.html Queens版本的PTL选举将要在8月初举行,首先是提名,如果一个项目提名人只有一人,那么就自动当选。如果超过2人,就要进行投票,在过去1年里,参与过该项目提交过commiter都是有资格进行投票。如果该项目没人竞选,那么这个项目将会很可能移除Big Tent。

目前所有Big Tent管理的项目 https://governance.openstack.org/tc/reference/projects/index.html

OpenStack专门一个一个地方管理项目候选人的竞选 https://github.com/openstack/election/tree/master/candidates

查看ptl是归属那家公司 https://git.openstack.org/cgit/openstack/governance/tree/reference/projects.yaml 根据邮箱就基本差不多。

如果需要进一步,那么可以 http://stackalytics.com 

下面的更新,不见得很准确,不过我应该都是查询过的。有问题大家纠正。说一下我的感受

  1. 红帽投入在加大,应该是PTL数量最多的公司
  2. 华为在进攻,上半年就挖了好几个PTL,目前含金量最高的Nova PTL在华为 ,keystone也是在华为。 Cinder的Pike的PTL,也是在华为。实力已经可以和红帽PK一下。
  3. 中兴拿下两个项目的PTL,可喜可贺。
  4. IBM,Rackspace,HPE,Mirantis正在退出
  5. Chef,Congress,EC2 api,rpm,puppet,RefStack,solum,magnum 都面临前景的问题。
  6. 这次有两个项目没人竞选PTL,Storlets,Deb,另外Fuel,因为公司原因,移掉了3个项目,增加了一个项目shade。 Storlets后面TC选一个当选。
  7. 表扬一下Lenovo ,Cinder项目的PTL
  8. Telemetry项目还是很艰难,PTL竞选邮件都是维持状态。
  9. 会说中文的PTL在增加。中国公司的PTL也在增加中
  Queens (Pike) Queens (pike)
项目 PTL 公司
Barbican Dave McCowan Cisco
Chef OpenStack Samuel Cassiba (Jan Klare) Cloudbau
Cinder Jay Bryant  (Sean McGinnis) Lenovo (Dell)
Cloudkitty Christophe Sauthier Objectif Libre
Community App Catalog Matthew Wagoner IBM
Congress Eric K 个人
Designate Graham Hayes (Tim Simmons) Suse (Rackspace)
Documentation Petr Kovar (Alexandra Settle) Redhat
Dragonflow Omer Anson Huawei
Ec2 Api Andrey Pavlov (Alexandre Levine) 个人(Cloudscaling)
Freezer Saad Zaher  (Saad Zaher) HPE
Fuel Vladimir Kuklin Mirantis
Glance Brian Rosmaita Verizon
Heat Rico Lin EasyStack (inwinSTACK)
Horizon Ying Zuo (Rob Cresswell) Cisco
I18n Frank Kloeker (Ian Y. Choi) Deutsche Telekom (个人)
Infrastructure Clark Boylan (Jeremy Stanley) OpenStack Foundation
Ironic Dmitry Tantsur Redhat
Karbor Chenying Chenying  (Yuval Brik) Huawei
Keystone Lance Bragstad 华为(Rackspace)
Kolla Michal Jastrzebski   Intel
Kuryr Antoni Segura Puimedon Redhat
Magnum Spyros Trigazis  (Adrian Otto) CERN (Rackspace)
Manila Ben Swartzlander NetApp
Mistral Renat Akhmerov Nokia
Monasca Witold Bedyk  (Roland Hochmuth) Fujitsu (HPE)
Murano Zhurong Zhurong (Felipe Monteiro ) 中兴 (AT&T)
Neutron Kevin Benton Mirantis
Nova Matt Riedemann 华为(IBM)
Octavia Michael Johnson Rackspace
OpenStackAnsible Jean-Philippe Evrard  (Andy McCrae) Rackspace
OpenStackClient Dean Troyer intel
OpenStack Charms James Page  Canonical
Oslo ChangBo Guo EasyStack
Packaging Deb Thomas Goirand Mirantis
Packaging Rpm Thomas Bechtold   (Igor Yozhikov) Suse (Mirantis)
Puppet OpenStack Mohammed Naser  (Alex Schultz ) VexxHost(Redhat)
Quality Assurance Andrea Frittoli IBM
Rally  Andrey Kurilin Godaddy (Mirantis)
RefStack Chris Hoge   (Catherine Diep) 个人(IBM)
Release Management Sean McGinnis (Thierry Carrez ) 华为(OpenStack Foundation)
Requirements Matthew Thode (Tony Breeds) 个人(Rackspace)
Sahara Telles Mota Vidal Nóbrega Redhat
Searchlight Steve McLellan HPE
Security Luke Hinds (Robert Clark)  Redhat (IBM)
Senlin RUIJIE YUAN  (Qiming Teng )   数梦工场(IBM)
Shade Monty Taylor    Redhat
Solum Zhurong Zhurong (Devdatta-kulkarni) 中兴 (Rackspace)
Stable Branch Maintenance Tony Breeds Rackspace
Storlets Kota Tsuyuzaki  (Eran Rom) NTT (IBM)
Swift John Dickinson  SwiftStack
Tacker Gongysh Gongysh 99Cloud
Telemetry Gordon Chung (Julien Danjou) 华为 (Redhat)
Tricircle Zhiyuan Cai (Chaoyi Huang) Huawei
Tripleo Alex Schultz  (Emilien Macchi ) Redhat
Trove Amrith Kumar (Amrith Amrith) Verizon Wireless (Tesora)
Vitrage Ifat Afek Nokia
Watcher Alexander Chadin Servionica
Winstackers Claudiu Belu ClouBase
Zaqar  Fei Long Wang Catalyst IT
Zun Hongbin Lu Huawei
Jul 282017
 

其实大家都知道,我4月份发布了一个kolla的Ocata的ISO,经过了快3个月的完善,基本现在已经是一个最终的版本。

链接: https://pan.baidu.com/s/1F_kI8ZjQDJRgn45_Lw1RPw 密码: gba2

还是放在网盘里,大家下载就可以。

下面我就整理一下,这个ISO,我所做的改进工作。

经常有朋友问这个iso是用什么工具制作,这里就统一回复:Fedora的工具pungi,来制作的。该工具真的很强悍,非常方便。

另外这个iso,你用U盘启动的时候,可能会遇到兼容性的问题。所以建议把这个ISO,在linux下用DD的命令到U盘,这样的兼容性是最好的。这个兼容性和机器有密切关系。

sudo dd if=/hd/iso/ocata.iso of=/dev/sdb bs=1M

安全更新

我们采用的操作系统是CentOS 7.3,不过最近安全更新很多,尤其内核级别的,那么我们这次把所有的软件全部都update的最新,打上所有的内核补丁,这也是我们为啥iso的命名也是采用日期的原因。

这次更新,经过了绿盟的漏洞扫描测试,效果还是非常好的。

由于Kolla是采用Docker来部署OpenStack,对于所有的节点,我们其实只需要最小化安装,装上Docker就可以。但是最近部署,还是遇到内核的漏洞,经过升级才解决。

国内很多OpenStack厂商,自己搞的OpenStack版本,自己维护一个repo,用户根本无法进行安全维护,这其实也是一个很大的问题。

Chrony服务

默认最小化安装,也会把Chrony服务装上,由于Kolla已经把Chrony服务的容器,需要把Chrony服务删除掉。这样避免维护时候,产生误操作。

对于一个群集来说,时间同步是一个非常重要的事情。Ceph要求所有节点时间差异不能超过50毫秒。所以对于kolla的部署来说,你必须把Kolla里的Chrony服务启用。这是一个非常关键的地方。

安装包调整

以前管理容器的服务,都是要进入容器里,再运行相关命令。为了方便,我们在节点上也装上相关的包,例如ovs等,这样在操作系统上,直接运行ovs相关命令就可以。

这样的方便,其实也带来一定潜在风险。那么如何在易用和安全上平衡。那么同事提出了一个好办法,不需要在操作系统装相关软件。通过系统的alias来实现。

这个功能,其实就后续交给ansible来完成。对于OpenStack节点来说,我们就仅仅最小化安装,加上Docker和一些网络的测试工具。

对于部署节点,我们装了一下日常需要使用到的包,例如ansible访问windows节点需要的,我们把测试工具Shaker工具,通过rpm包的方式,直接装在部署节点上,这样可以方便测试。

 

Kolla

这里其实包括kolla和kolla-ansible。我们已经把版本更新到当前最新的版本。你使用iso安装完以后,会在根目录下看到一个 文件夹 kolla-ansible-4.0.3.dev36。dev36,很多用户误解成是开发版本,其实不是,表示4.03发布后的36个commit。

目前Kolla社区对Ocata版本进行精心的维护,把所有当前Master的bug都会回馈到Ocata版本里。

这次发布,我们修复了一个非常严重的bug

https://bugs.launchpad.net/kolla/+bug/1703078

大家可以好好看看。这算是kolla真正生产部署的最后一个难点,我们搞定了。

大家会发现把Kolla-ansible放到root的目录下,大家可以直接进入该目录运行命令就可以。相关的python依赖已经装上。

这次其实还修复了Sahara的一个bug。这个版本的ISO,Sahara是可用的。

 

All in One

注意事项
 
机器至少需要两块网卡
机器系统盘至少需要200G
 
allinone部署步骤
 
1、使用iso引导,选择 install centos7.3 and kolla 
 
可以使用tab键,修改ip地址和主机名,默认ip地址为10.99.0.2,主机名为control01
 
2、安装系统后,登录系统(root密码为99cloud),开始部署openstack,如下
 
/root/kolla-ansible-4.0.3.dev36/tools/kolla-ansible deploy
 
dashboard访问地址 http://10.99.0.2/
    username admin
    password 99cloud

iso里有一个说明 all in one的安装。

装完后,你是需要对OpenStack的环境进行初始化。我以前的文档,其实介绍过,我这里就不重复。

http://www.chenshake.com/kolla-installation/#i-3

这个iso,其实单节点仅仅是一个演示,也是可以安装多节点的。我给客户生产部署,也是使用这个ISO,不需要有任何疑问。

多节点的安装,其实很简单。大家如果搞过rdo的多节点,其实都是差不多。

Jul 272017
 

目前OpenStack项目里,目前我看到的最成功的项目,在最近2年里,应该就是kolla。我有幸在过去的1年半里参加了整个社区的开发过程。

Docker是一个革命性的东西。kolla作为一个用Dcoker来部署OpenStack的工具,其实也把其他的部署工具的命给革了。

 

Kolla介绍

Kolla,就是把OpenStack放到Docker里,部署OpenStack的一个工具。这其实也是目前为止,唯一一个没有厂商背景的部署工具

  1. 红帽的Tripleo,RDO,使用puppet,部署在CentOS 红帽系列
  2. Ubuntu的Juju,使用自己的配置管理工具,Juju,go语言开发,部署Ubuntu系统,
  3. Suse的Crowbar,使用Chef来部署,Suse企业版本
  4. Rackspace的OpenStack-ansible,通过LXC或者部署到物理机器上,利用ansible来管理,目前支持Ubuntu和CentOS
  5. Mirantis的Fuel,利用puppet,部署到Ubuntu操作系统上
  6. HPE的helion,使用ansible,部署在Debian 8
  7. TCPCloud搞的Salt,部署OpenStack。我没玩过,我的理解应该是在Ubuntu的系统上。

上面七个工具,基本可以囊括所有的OpenStack部署项目,每个都要他的好处,也是有他的不足的。他们的一个共同特点,基本都是单一厂商主导。

2017年,算是Kolla发展最猛的一年,一个没有厂商主导的部署工具,目前已经具备投入到生产使用。Kolla目前支持的操作系统

  1. CentOS和红帽系列
  2. Ubuntu16.04
  3. Oracle linux

我们自己也给客户做过很变态的测试,在Suse的企业版本上,跑一个CentOS的Docker镜像的OpenStack,完全没任何压力,并且还是多节点。

Kolla解决了一个困惑OpenStack长期的问题,升级,upgrade。通过Docker,可以很优雅的解决到OpenStack的升级的问题,现在已经可以实现业务跑着,进行升级。

这次OpenStack China Day,用kolla演示升级和集群掉电后,自动修复。把OpenStack做到可以让用户自己升级,这背后的故事,其实真的不少。

很多朋友对Docker不熟悉,以为把OpenStack放到Docker里,虚拟机也是跑在Docker里。其实这是误解。Kolla仅仅是吧OpenStack各个服务的进程,放到Docker里而已。以前的vm怎么运行,现在还是怎么运行,没做任何的改变。

Steven Dake

2014年,大概是下半年的时候,OpenStack基金会,已经意识到Docker对OpenStack可能造成的威胁,那么这个时候,就组成了一个小team,研究OpenStack和Docker如何并存,其实也都很容易想到,在2105年温哥华峰会上,推出3个项目

  1. Kolla,把OpenStack放到容器里,部署OpenStack
  2. Magnum,在OpenStack上面部署容器,后来改成COE(k8s,swarm,等)
  3. Solum,利用Docker来实现CI CD

这就当初基金会的设想,经过了2年的发展,大家其实已经发现,目前就kolla项目是最靠谱的。Magnum修改了自己的方向,并且带来的价值不大,仅仅是部署K8s。Solum,已经快要死掉。

Steven Dake,是以前的Heat的PTL,前红帽的工程师,评论技术多高已经没啥意义,这位哥们最厉害的地方,就是情商特高,能带动一堆人一起干活,我底下的弟兄,对他的也是赞口不绝,跟他干活,是一种享受,不拼命干好,对不起他的培养。

当时Steven Dake面临一个选择,是搞Kolla还是Magnum,那么他最终选择的Kolla,全力以赴搞好这个项目。

Kolla项目的活跃度,可以说在过去两年里,OpenStack各个项目排名,应该是在前五名以内。也是目前我看到,在过去两年里,唯一一个算是活跃的新项目。

目前Steven Dake还是基金会独立董事。https://sdake.io/  他的blog

把OpenStack放到容器里,其实当时面临的技术挑战是很多的,没有我在外面吹的那么轻松。现在Docker的很多分享,还在讨论数据库是否放在容器里,容器的日志如何收集。对于Kolla来说,要做到100%容器化,他要付出的代价就更大,Qemu,Libvirt容器化,OVS容器化,这些都是没人玩过的。

Ansible

把OpenStack放到Docker里,那么用什么进行编排呢?这个决策,其实是PTL决定。k8s是否可行呢?

One thing we tried early on with Kolla was deploying OpenStack on top of Kubernetes 0.9.7;

Steven Dake在blog里提到,其实在k8s 0.9.7 的版本,就开始验证是否可行。如果当初kolla选择k8s作为编排引擎,作为重点开发,那么其实今天能做到什么程度,是非常不好预测。

为啥选择Ansible,当时其实红帽也没收购Ansible。那么一个八卦新闻就是:Steven Dake的太太是Ansible公司的。

从我看来如果不是选择ansible作为默认的编排引擎进行开发,kolla-ansible是不可能在短短1年内投入生产环境,Kolla真正可用放到生产的环境,是Mitaka版本。

经过了1年的完善,目前的Ocata版本,已经基本到了一个很完善的地步的。

Sam Yaple

Sam是Rackspace的员工,2015年,当时OpenStack各家公司社区贡献的环境,还是很宽松的时候,Sam参与的Kolla的开发,他一个人出活量,基本相当于其他人的总和。而且都是技术难点的活。

Neutron容器化,OVS容器化,libvirt,qemu容器化。都是他一个人完成的。而且是在一个周期L版本完成的。

而且Sam写的代码,你基本也发现不了bug。Sam已经在Mitaka版本发布后,退出kolla的社区。不过到现在为止,他的代码提交量,还是第一。

https://github.com/openstack/kolla-ansible/graphs/contributors

kolla今天能做到这个地步,Sam应该算是第二功臣。

Jeffrey Zhang

对于kolla来说,

  1. Steven Dake,规划了Kolla的技术方向
  2. Sam Yaple 解决了关键的技术难题
  3. Jeffrey Zhang,就是把Kolla推到生产中。

由于kolla是没有厂商主导的部署工具,那么他部署出来的环境,是否能满足生产需求,这是很多用户问的问题。这个问题靠拍胸口是没啥意义,还是要靠验证。

全球第一个Kolla的生产部署案例,出自Jeffrey Zhang, 53个节点,超过500个OSD的环境。Mitaka版本的Kolla,遇到的bug,都是Jeffrey Zhang一个一个去修复。

经过了1年的验证,Ocata版本的一个生产环境,在每个节点超过20个vm,压力负载很重的情况下,运行良好。期间我们已经把各种的问题,bug都修复。

http://stackalytics.com/?module=kolla-group&release=all&metric=resolved-bugs

不少于10个非常严重的bug,严重影响到生产运行的问题,都是Jeffrey Zhang同学修复的。

运气

kolla的运气,有时候好的令人难以置信。

  1. Steven Dake,选择了Kolla,选择了ansible.
  2. 2015年11月份,我选择了kolla,找到了Jeffrey Zhang一起玩
  3. 2016年2月,Docker发布了1.10版本,支持 mount propagation。解决了Kolla投入生产的关键技术问题。Neutron的各个服务,可以在单独的容器里。
  4. 2016年4月份,全球的第一个Kolla生产环境的客户,小白鼠产生,验证的Kolla的稳定性和可靠性。
  5. 2016年8月份,Intel给了130台机器进行kolla的规模测试。
  6. Ocata版本发布时间更改,从以前的4月份,改成2月份,就让kolla很多在Newton版本没完成的工作,可以在Ocata版本完成.
  7. Ocata版本,九州云加大Kolla的投入,根据公司产品的需求,不断完善Kolla。最后在OpenStack的5月份峰会前推出kolla的产品。
  8. 2017年五月份,一个OpenStack的深度使用用户,部署了kolla的Ocata版本,对Kolla的各种功能进行的检验。
  9. OpenStack China Day大会,演示Kolla的用户无感知升级,和群集掉电重启的功能。吸引了大量的眼球。这是在1年前还是无法实现的。

我的Team

这是一个最强的Kolla team。经常有朋友问我团队多少人。其实不多。

Snap1

必须强调,我是一行代码都不会写的。都是弟兄的努力。

Jul 072017
 

一直以来都希望解决一个问题,就是开机的情况下,对新增加的硬盘进行raid的设置。现在Ceph已经很流行,对于SATA磁盘来说,一般都是需要通过Raid卡设置成Raid0,这样可以利用Raid卡的Cache,性能更好。那么其实这个时候就带来一个问题,如果磁盘坏了,更换磁盘,那么就必须重启机器。

Continue reading »