OpenStack 社区周报:用 CoreOS 做 OpenStack 控制器,RackSpace 私有云的 HA 实现

  • 叶璐

2013 年 10 月 15 日

话题:DevOpsGit

以下是本周 OpenStack 社区周报的推荐内容。本周报内容素材由 UnitedStack 的 Lu Ye 推荐,正文内容由 InfoQ 撰写整理。

为啥 CoreOS 很适合作为 OpenStack 控制器的 OS:作者要实现的目的是将每一个 OpenStack API 进程隔离到一个 container 里面,然后通过 CoreOS 节点将其对外暴露。作者选择了 Docker 作为 container 实现,最后的结果是一个 OpenStack 服务对应一个 docker container。这样做的好处是可以对一切进行版本控制。

OpenStack 对象存储子项目的贡献情况:目前,OpenStack 对象存储的总贡献人数达到了136 人,其中有 16 人从 2013 年 7 月开始每周都在提交代码,64 人在 Havana 版本周期中提交了代码,30 人是 Swift 项目的新贡献者。按贡献补丁个数排名的前六个公司分别是 SwiftStack、红帽、RackSpace、UnitedStack、IBM、eNovance。

OpenStack-installer项目的 Github 地址)的功能类似于puppet-openstack,不过它是面向数据的。本文介绍如何基于vagrant虚拟机运行一些基本的测试

有关 HA OpenStack 的两篇文章,一篇介绍如何在 RackSpace 私有云上实现 HA,另一篇介绍如何在自己的笔记本上用 Vagrant 和 VMware Workstation、VMware Fusion 或 VirtualBox 测试部署一个 HA OpenStack 云环境。HA 的关键在于 1)将数据丢失最小化;2)将系统宕机时间最小化。实现主要还是通过 Keepalived,HAProxy 和 VRRP。SlideShare 上有一个关于 RackSpace 私有云 HA 的幻灯片,是在 2013 年 9 月的 vBrownbag 会议上由 RackSpace 开放云架构师 Kenneth Hui 带来的分享,感兴趣的同学也可以加以研读。

有关 git notes 的更多用法,以及 Gerrit 的隐藏秘籍:上次的周报中介绍了如何用 git notes 实现选择性的分支合并。其实 git notes 的好处还不止这个。比如:palaver。然后作者发现,原来 Gerrit 里面用来查看每次提交的代码差异的功能也是用 git notes 来做的。Gerrit 2.6 版之后,这个功能是一个单独的 reviewnotes 插件。

OpenStack Havana 版本进展情况:目前只有 Keystone、Nova、Heat、文档这几个子项目完成了新版的发布注记。本文简单的覆盖了 H 版各子项目的一些新特性,包括 Cells 的能力大幅提升,默认配额可以按照用户为单位进行修改,附在一个实例上的 Cinder 卷可以被透明的交换出去(swapped out)而不会造成数据丢失,同时 Cinder 卷的后端也可以被交换出去,Keystone 可以把 token 之类的信息储存在独立的后端,另外部署人员现在可以创建定制化的 Keystone provider 界面。

有关 Shell 重定向那些你不知道的故事:在 shell 编程里,说起重定向大家恐怕都用过 2>&1 或者 > log 这样的操作。在执行这些操作的时候,你是否偶尔也想过,/2/ 和 1 代表什么?/3/ 和 4 又能做什么的?是否可能困惑过,为什么 >/dev/null 2>&1= 和 =>2>&1 /dev/null 的行为是完全不同的?

Neutron Performance Test:这是个英文的 PDF 文档。测试内容:Linux bridge、OVS bridge with Linux bridge connected via veth、OVS bridge with Linux bridge connected via OVS internal port、OVS bridge、Linux bridge with OVS bridge connected by OVS internal port、Devstack test、Devstack test with OVS internal port 下的宿主机到 VM、VM1 到 VM2 之间的网络。结论简单来说就是,Linux bridge 跟 OVS bridge 速度差不多,通过 veth 可以显著的加速(快一个数量级),OVS internal port 则有没有差不多。

DevOpsGit