OpenStack 在生产环境中的又一步进展

今天 Mark Interrante,Rackspace 的产品负责人,宣布下一代 Rackspace 云服务器,由 OpenStack Compute (Nova) 提供支持,已从 Alpha 阶段进入 Beta 阶段供客户使用。  这是 OpenStack 不断成熟并准备好今天部署的重要认可。  以下是本次发布的一些亮点

  1. Rackspace 的运行非常接近主干,云服务器 Beta 的部署与 OpenStack.org 上可用的版本之间基本相差两周。  这意味着任何人都可以访问 Rackspace 今天使用的相同技术。
  2. Rackspace 正在暴露社区在过去一年中开发的 OpenStack Compute API v2。
  3. 这项服务在性能方面迈出了重要一步。  Mark 强调了快速启动实例的能力以及 API 的更好性能。  Beta 版本的早期演示确实令人印象深刻。
  4. Rackspace 继续在生产环境中运行 OpenStack 对象存储 (Swift),其 云文件 服务,并积极致力于由 OpenStack 社区的其他项目提供支持的服务。  未来还有更多。
  5. Rackspace 正在继续增加其对推动 OpenStack 社区发展的投资。  我们不断增加开发人员以推动代码库的发展,并将我们的专业知识添加到其他社区工作中,包括测试和文档。

此服务尚未达到生产就绪状态,但正在变得越来越接近。  需要完成的大部分工作特定于 Rackspace 的服务提供商规模。  同时,部署需求较小的公司正在将 OpenStack 投入全面生产。  我们预计这一步伐将继续加快。

祝贺 Mark 和整个 Rackspace 团队!

Jim Curry
@jimcurry

Essex OpenStack 全球 Hack-In

Essex 是一个专注于改进 OpenStack 完整性的发布版本,因此我们的 第一次全球黑客马拉松正是在 发布候选周期开始时举行,也就是 2012 年 **三月初**。本次活动将聚集每天或夜间致力于改进 OpenStack 的开发者。

https://wiki.openstack.org/OpenStackUsersGroup/EssexGlobalHackIn

本次活动重点是测试和熟悉该版本,并探索您专业领域之外的领域。参与者将致力于解决高优先级错误,并探索、审查和测试 OpenStack Essex。

感谢 DreamHost、Gold Coast Techspace、Piston Cloud、MercadoLibre、Yahoo、Mirantis、Citrix、Ubuntu 和 Rackspace 赞助这些活动。特别感谢我的同伙 Tristan Goode 来自 Aptira 和 OzStackers,他们在澳大利亚代表了 3 个本地活动!

现在举办黑客马拉松还来得及,只需将信息添加到 wiki。即使您和朋友打开门迎接其他 stackers,这也是建立本地社区的好方法。

OpenStack Sydney 聚会特别活动,詹姆斯·威廉姆斯出席

Tristan Goode from Aptira, James Williams from NASA, and Phil Rogers from Aptira

上周五,2 月 24 日,在悉尼 Harbour View Hotel,澳大利亚 OpenStack 用户组与 NASA AMES 研究中心 的首席信息官 James Williams 举行了特别的见面会。对于那些不了解的人来说,James 和 AMES 在 Nebula 和 OpenStack 的建立中发挥了关键作用。

上周我们听说 James 为了参加一个会议来到这个国家,并且路过悉尼,因此用户组向他发出了会面的邀请,James 在短时间内欣然接受。 James 对 OpenStack 的热情洋溢的宣传非常鼓舞人心,每个人都设法进行了一次交流。代表 澳大利亚 OpenStack 用户组 和当晚赞助商 Aptira,感谢 James 在他繁忙的日程中抽出时间与我们见面。

更多图片可在 TechWorld 上找到。

前往我们的澳大利亚聚会小组参与其中,或者加入AU Google群组

 

标签:

OpenStack 治理选举 2012 年春季:投票时间!

更新:PPB 选举更新:我们需要重启投票流程。请接受我们的道歉。更多信息请参见 http://ow.ly/9lNGf

OpenStack 社区正在选举项目技术负责人和项目政策委员会的两个席位。提名流程现已正式结束,投票可以开始:所有有权投票的人都将于 2 月 28 日通过电子邮件收到个人消息,并有时间至 3 月 3 日太平洋标准时间 11:59 投票。电子邮件消息将发送到 Authors 文件中包含的电子邮件地址以及在 PPB 投票注册期间提供的电子邮件地址。

官方提名人名单(随机顺序)如下

NOVA 项目技术负责人 (1个职位)

KEYSTONE 项目技术负责人(1个席位)

HORIZON 项目技术负责人(1个席位)

SWIFT 项目技术负责人 (1个职位)

GLANCE 项目技术负责人 (1个职位)

项目政策委员会(PPB)(2个席位)

投票流程

与之前的 OpenStack 治理选举一样,我们将使用康奈尔大学的 Condorcet Internet Voting Service,http://www.cs.cornell.edu/andru/civs.html。  该工具使用 Condorcet 方法进行投票,该方法涉及对提名人进行排名,而不仅仅是选择一个选项。有关此方法的更多信息,请参见 http://www.cs.cornell.edu/w8/~andru/civs/rp.html。所有注册选民都将收到一封包含唯一链接的电子邮件,允许他们私下投票。

请注意,投票系统使用私有投票,并限制访问以确保选民的真实性;但是,所有结果将在选举结束后公之于众。保证选民的匿名性。  结果排名将使用 Schulze(也称为 Beatpath 或 CSSD)完成规则进行评估。如果个人同时当选为 PTL 和 PPB 的普通成员,则他们将仅担任 PTL 职位,而最近一次选举中获得最高票的普通成员席位将授予下一位。

选举委员会由Stefano Maffulli、Lloyd Dewolf和Dave Nielsen组成。

标签:

社区周报 (2 月 17 日 - 24 日)

OpenStack 社区新闻通讯 – 2012 年 2 月 24 日

重点新闻

活动

其他新闻

社区统计

  •  OpenStack 仓库主分支上的活动,2012 年第 7 周(从 2012 年 2 月 13 日 UTC 00:00:00 到 2012 年 2 月 20 日 UTC 00:00:00)期间每位开发人员添加和删除的代码行数

本周新闻简报是社区了解每周发生的各种活动的方式。如果您想向每周更新添加内容或对本新闻简报有任何想法,请留下评论。

标签:

OpenStack 治理选举 2012 年春季:所有候选人的行动项目

OpenStack 社区正在选举其项目技术负责人和项目政策委员会的两个成员。详情请参见 https://openstack.org/blog/2012/02/openstack-governance-elections-spring-2012/。2 月 26 日提名将结束,投票流程将于 2 月 28 日开始,3 月 3 日结束。

提名人名单位于 http://etherpad.openstack.org/Spring2012-Nominees。它仍然开放。您必须在 http://ppbelectionsregistration.openstack.org/ 上注册才能投票选举 PPB。

在投票流程开始之前,选举委员会要求所有提名人创建一个 OpenStack wiki 页面并回答三个简单的问题

1a. [对于 PPB] 自上次选举以来,您专注于哪些领域,为了改进 OpenStack 整体做出了哪些贡献?

1b. [对于 PTL] 自上次选举以来,您专注于哪些领域,为了改进您的项目做出了哪些贡献?

2a. [对于 PPB] OpenStack 整体面临的最紧迫/重要的问题是什么?

2b. [对于 PTL] 您的项目面临的最紧迫/重要的问题是什么?

3. 您与 OpenStack 的关系是什么?为什么它的成功对您或您的公司很重要?

如果您是候选人,请使用模板 https://wiki.openstack.org/Governance/ElectionsSpring2012/[Firstname_Lastname] 创建一个 wiki 页面并回答这些问题。您也可以添加更多内容。这些页面将包含在发送给所有选民的链接中。

选举委员会由Stefano Maffulli、Lloyd Dewolf和Dave Nielsen组成。

标签:

社区周报 (2 月 10 日 - 17 日)

OpenStack 社区新闻通讯 – 2012 年 2 月 17 日

重点新闻

活动

其他新闻

社区统计

  •  OpenStack 仓库主分支上的活动,2012 年第 6 周(从 2012 年 2 月 6 日 UTC 00:00:00 到 2012 年 2 月 13 日 UTC 00:00:00)期间每位开发人员添加和删除的代码行数

本周新闻简报是社区了解每周发生的各种活动的方式。如果您想向每周更新添加内容或对本新闻简报有任何想法,请留下评论。

标签:

TryStack.org – OpenStack 的沙盒!

今天,一个酝酿已久的计划终于要实现。去年夏天,我在 Rackspace 工作时,Nati Ueno 来自 NTT PF Labs 提出了建立一个“自由云”的想法——一个运行 OpenStack 的站点,使用 OpenStack API 的开发者可以在这里测试他们的软件。

多家公司的参与——DellNTT PF LabsRackspaceCiscoEquinixHP Cloud Services——最终促使“自由云”的想法从概念变为现实。尽管经历了许多延误,但我很高兴地宣布,这个新的 OpenStack 测试沙箱现已启动。

这个曾经被称为“自由云”的项目的新名称现在是 TryStack。http://trystack.org 的首页现在包含一些关于该项目的信息和一些常见问题解答。如果您有兴趣尝试 OpenStack,TryStack.org 非常适合您,我们鼓励您注册。注册说明在首页上。

使用 TryStack

完成 TryStack 注册流程后,您将收到用户名和密码,用于登录 TryStack Dashboard 和 Nova API。登录后,您将看到 TryStack 的用户仪表板。该仪表板基本上是标准的上游 OpenStack Dashboard——仅轻微修改,添加了 Nati 编写的几个扩展,用于显示 Stack Dollars 的消耗和 TryStack 的徽标。

Stack Dollars 是 TryStack 的“货币单位”。当您在 TryStack 中执行某些操作时——启动实例、创建卷等——您将消耗 Stack Dollars。同样,只要实例在运行,就会消耗 Stack Dollars。当您的 Stack Dollars 用完时,在 Stack Dollars 补充之前,您将无法使用 TryStack 服务。Stack Dollars 将定期补充(尚未确定具体间隔……)

为了防止人们钻空子或将 TryStack 用作邪恶的工具,实例将保持活跃最多 24 小时,或直到您的 Stack Dollar 余额耗尽。此外,请始终记住,TryStack 仅应用于测试。在任何情况下,您都不应将其用于任何生产用途。TryStack 没有服务级别协议。

一个自动化和管理沙箱!

除了对使用 OpenStack API 的开发者以及其他有兴趣了解 OpenStack 的人来说是一个有用的沙箱之外,TryStack.org 也是 OpenStack 社区正在进行的工作的一个非常有用的测试平台,用于自动化 OpenStack 环境的部署和管理。

TryStack 使用上游仓库中的 Chef Cookbooks 部署,并且所需的更改将立即推送到上游以供整个社区使用。我们为初始 TryStack 可用性区域设置了有限的 HA 设置,并且从这些 HA 设置的部署中吸取的经验教训正在整合到在线 TryStack 管理员指南中,该指南也将作为上游文档团队的输入。

TryStack 的路线图

在接下来的三到六个月里,我们计划上线至少一个额外的可用性区域。下一个可用性区域将运行 HP 硬件,并位于拉斯维加斯的数据中心。该新区域可能会使用 OpenStack 组件的 Essex 版本部署,使用户能够同时针对基于 Diablo 的 OpenStack 安装和基于 Essex 的安装进行测试。

第一个可用性区域不包含 Swift 的安装。当然,我们想改变它,因此 Swift 的安装肯定在下一个可用性区域或作为独立服务的路线图上。请注意,就像在 TryStack 中启动的实例一样,存储在 TryStack Swift 集群中的对象也是临时的。毕竟,TryStack 是用于试用 OpenStack 服务,而不是提供免费 CDN 或存储系统!🙂

我们最终也会转向不同的注册流程,以适应非 Facebook 用户。如果您有兴趣帮助这项工作,请务必告诉我们。

最后,我们将添加诸如每个区域的自动 Twitter 状态提要、从运行 TryStack 中收集的大量文档,以及希望添加许多显示 TryStack 用法以及常见管理任务的视频——所有这些目标都是为了为不断发展壮大的 OpenStack 社区提供更多更好的信息。我们预计在最初几个月的运营中会出现无数的故障和阵痛,但我们承诺将任何痛点转化为经验教训并记录下来,以供 OpenStack 社区受益。

请查看 trystack.org 服务。我们期待您的反馈。您可以在 Freenode.net #trystack 上找到我们。Nati 和我将于 2 月 23 日举办一个 网络研讨会,如果您有兴趣了解更多或参与其中,我们将在 3 月 6 日在旧金山举办一个 聚会

更新:我完全搞砸了,把 Cisco 从捐赠组织列表中遗漏了。向 Mark Voelker 和 Cisco 的优秀团队道歉,他们提供了两个 4948-10GE 交换机,这些交换机正在 TryStack 云中使用。我还把 HP Cloud 的链接搞错了……考虑到我为 HP 工作,这很糟糕。🙁 已经更正了。

Swift 内部原理:Ring

这是总结我们对 Swift 架构分析的系列文章的第一篇。我们试图突出官方文档中不够清晰的一些要点。我们的主要基础是对源代码的深入研究。

以下材料适用于 Swift 1.4.6 版本。

The Ring 是 Swift 架构中至关重要的部分。这个一半数据库、一半配置文件的结构跟踪集群中所有数据的位置。对于集群中任何存储实体到特定设备的任何可能路径,The Ring 都指向特定节点上的特定设备。

Swift 识别三种类型的实体:帐户、容器和对象。每种类型都有自己的 ring,但所有三个 ring 都是以相同的方式构建的。Swift 服务使用相同的源代码来创建和查询所有三个 ring。Swift 的两个类负责这些任务RingBuilderRing分别。

Ring 数据结构

Swift 中的所有三个 Ring 都是由 3 个元素组成的结构

  • 集群中的设备列表,也称为设备Ring类中;
  • 指示分区到数据分配的设备 ID 列表的列表,存储在名为_replica2part2dev_id;
  • 的变量中。一个整数,用于对哈希路径(帐户/容器/对象)进行 MD5 哈希运算,以计算哈希的分区索引(分区偏移值,part_shift).
设备列表

设备列表包含环已知的所有存储设备(磁盘)。此列表的每个元素都是以下结构的字典

类型
id 整数 设备列表的索引
zone 整数 设备所在的区域
weight 浮点数 设备相对于环中其他设备的相对权重
ip 字符串 包含设备的服务器的 IP 地址
port 整数 服务器用于为设备提供请求的 TCP 端口
device 字符串 主机系统中设备的磁盘名称,例如sda1。它用于标识主机系统下的磁盘挂载点/srv/node
meta 字符串 用于存储有关设备的任意信息的通用字段。服务器不直接使用

可以使用列表中的值执行一些设备管理。首先,对于已删除的设备,'id'值设置为'None'。设备 ID 通常不会被重用。其次,将'weight'设置为 0.0 会暂时禁用该设备,因为不会将任何分区分配给该设备。

分区分配列表

此数据结构是 N 个元素的列表,其中 N 是集群的副本数。默认副本数为 3。分区分配列表的每个元素都是一个array('H'),或 Python 紧凑高效的无符号短整数数组。这些值实际上是对设备列表的索引(参见上一节)。因此,每个array('H')在分区分配列表中表示将分区映射到设备 ID。

环从路径的 MD5 哈希中获取可配置数量的位,并将其转换为长整数。该数字用作array('H')的索引。该索引指向指定映射到该设备的分配的分区的数组元素。从哈希保留的位数称为分区幂,而 2 的分区幂指示分区数。

对于给定的分区号,每个副本的设备将不会与任何其他副本的设备位于同一区域。可以使用区域根据物理位置、电源隔离、网络隔离或任何其他可能导致多个副本同时不可用的属性对设备进行分组。

分区偏移值

这是从 MD5 哈希中获取的位数'/account/[container/[object]]'路径,用于计算路径的分区索引。分区索引是通过将哈希的二进制部分转换为整数来计算的。

环操作

上述结构存储为腌制(参见 Python pickle)和 gzip 压缩(参见 Python gzip.GzipFile)文件。有三个文件,每个环一个,通常它们的名称是

account.ring.gzcontainer.ring.gzobject.ring.gz

这些文件必须存在于/etc/swiftSwift 集群中的每个节点(代理和存储)上的目录中,因为这些节点上的服务使用它来定位集群中的实体。此外,集群中所有节点上的环文件必须具有相同的内容,以便集群可以正常运行。

Swift 中没有内部机制可以保证环的一致性,即 gzip 文件未损坏且可读取。Swift 服务无法确定所有节点是否具有相同版本的环。维护环文件是管理员的责任。当然,这些任务可以通过 Swift 外部的手段自动化。

环允许任何 Swift 服务识别查询特定存储实体应该查询哪个存储节点。使用方法 Ring.get_nodes(account, container=None, obj=None) 用于识别给定路径(/account[/container[/object]])的目标存储节点。它返回分区和节点字典的元组。分区用于构造对象文件或帐户/容器数据库的本地路径。节点字典元素与设备列表中的设备具有相同的结构(参见上方)。

环管理

Swift 服务无法更改环。环由 swift-ring-builder 脚本管理。创建新环时,管理员应首先指定生成器文件和环的主要参数:分区幂(或分区偏移值)、集群中每个分区的副本数以及特定分区可以在连续时间内移动之前的小时数

swift-ring-builder <builder_file> create <part_power> <replicas> <min_part_hours>

创建临时生成器文件结构后,管理员应将设备添加到环中。对于每个设备,所需值是区域编号、存储节点的 IP 地址、服务器侦听的端口、设备名称(例如sdb1)、可选的设备元数据(例如,型号名称、安装日期或任何其他内容)和设备权重

swift-ring-builder <builder_file> add z<zone>-<ip>:<port>/<device_name>_<meta> <weight>

设备权重用于在设备之间分配分区。设备权重越高,分配给该设备的的分区就越多。建议的初始方法是在整个集群中使用相同大小的设备,并将权重设置为每个设备 100.0。对于以后添加的设备,权重应与容量成比例。此时,应将所有最初将在集群中使用的设备添加到环中。在创建实际环文件之前,可以验证生成器文件的一致性

swift-ring-builder <builder_file>

如果验证成功,下一步是在设备之间分配分区并创建实际环文件。这称为“重新平衡”环。此过程旨在尽可能地移动较少的分区,以最大限度地减少节点之间的数据交换,因此在重新平衡之前进行所有必要的环更改非常重要

swift-ring-builder <builder_file> rebalance

必须对所有三个环(帐户、容器和对象)重复整个过程。生成的.ring.gz文件应推送到集群中的所有节点。生成器文件也需要用于将来更改环,因此应备份并保存在安全的地方。一种方法是将它们作为普通对象放入 Swift 存储中。

物理磁盘使用情况

分区本质上是集群中存储的数据块。但是,这并不意味着所有分区的磁盘使用量都是恒定的。对象在分区之间的分布基于对象路径哈希,而不是对象大小或其他参数。对象不被分区,这意味着对象作为存储节点文件系统中的单个文件存储(除了大于 5Gb 的非常大的对象,这些对象可以分段上传 – 参见 Swift 文档)。

映射到存储设备的分配实际上是结构中的一个目录/srv/node/<dev_name>。此目录使用的磁盘空间可能因放置在该分区中的对象的大小而异,方法是根据对象路径的哈希映射到环。

总而言之,Swift 环是一个美丽的结构,但它缺乏一定程度的自动化和节点之间的同步。我将在后续帖子中介绍如何解决这些问题。

更多信息

有关 Swift 环的更多信息可以在以下来源找到
官方 Swift 文档 – 描述数据结构的基准来源
Swift 环 Github 源代码RingRingBuilderSwift 类的代码库。
Chmouel Boudjnah 的博客 – 包含有用的 Swift 提示

标签:

OpenStack 治理选举 2012 年春季

我们再次迎来 OpenStack 治理 选举。OpenStack 社区被要求选举项目技术负责人和 项目政策委员会 的两个席位。选举委员会由 Stefano Maffulli、Lloyd Dewolf 和 Dave Nielsen 组成。

  • 2 月 16 日 – 2 月 26 日 11:59 PST:提名开放。
  • 2 月 28 日 – 3 月 3 日 11:59 PST:在线投票开放。
  • 3 月 3 日 11:59 PST:投票结束。

最终结果将在选举结束后立即公布。

哪些席位可供选举

  • NOVA 项目团队负责人 (1 个席位)
  • SWIFT 项目团队负责人 (1 个席位)
  • GLANCE 项目团队负责人 (1 个席位)
  • HORIZON 项目团队负责人(1 个席位)
  • KEYSTONE 项目团队负责人(1 个席位)
  • 项目政策委员会 (2 个空缺)

如何提名自己或他人作为项目技术负责人

只有在各自 OpenStack 子项目中拥有代码的 OpenStack 社区成员才有资格被选为该子项目的项目团队负责人。请在 http://etherpad.openstack.org/Spring2012-Nominees提名人标题下提名开发社区中的某人或您自己。请提供被提名人的姓名和电子邮件地址。选举委员会将与被提名人确认他们是否愿意竞选该职位。候选人名单将在在线投票开放时(2 月 28 日)通过新的博客文章在 openstack.org/blog 上公布。

如何提名自己或他人作为项目政策委员会成员

任何注册的 OpenStack Launchpad 组的成员都有资格竞选或被提名为项目政策委员会的席位。如果您想投票和/或竞选席位,您需要在 https://launchpad.net/~openstack 上注册 Launchpad 并将自己添加到公共 OpenStack 组。请在 http://etherpad.openstack.org/Spring2012-Nominees提名人标题下提名社区中的某人或您自己。请提供被提名人的姓名和电子邮件地址。选举委员会将与被提名人确认他们是否愿意竞选该职位。候选人名单将在选举开始前通过新的博客文章在 openstack.org/blog 上公布。

如何注册投票给 PTL

只有在各自 OpenStack 子项目中拥有代码的 OpenStack 社区成员才有资格投票选出该子项目的项目团队负责人。权威的合格选民和提名人名单是每个存储库中的 Authors 文件。例如,Nova 的作者列表是 https://github.com/openstack/nova/blob/master/Authors
确保您的姓名和正确的电子邮件地址在那里,否则您将无法投票。

如何注册投票给项目政策委员会

任何注册的 OpenStack Launchpad 组的成员都有资格投票给项目政策委员会。如果您想投票,您需要在 https://launchpad.net/~openstack 上注册 Launchpad 并将自己添加到公共 OpenStack 组,然后再使用 http://ppbelectionsregistration.openstack.org/ 上的表格注册为选民。公司隶属关系仅作为有趣的数据统计信息收集;它不会影响选举结果。

投票流程

与之前的 OpenStack 治理选举一样,我们将使用康奈尔大学的 Condorcet Internet Voting Service, http://www.cs.cornell.edu/andru/civs.html。此工具使用 Condorcet 投票方法,该方法涉及对提名人进行排名,而不仅仅是选择一个选项。有关此方法的更多信息,请参见 http://www.cs.cornell.edu/w8/~andru/civs/rp.html

所有注册选民都将收到一封带有唯一链接的电子邮件,允许他们私下投票。

请注意,投票系统使用私有投票,并限制访问以确保选民的真实性;但是,所有结果将在选举结束后公开发布。保证选民的匿名性。结果排名将使用 Schulze(也称为 Beatpath 或 CSSD)完成规则进行评估。

感谢您参与这个重要的过程。请提醒您的朋友和同事参与其中,注册并投票!

标签: