【问题标题】:How to upgrade the ring file swift?如何快速升级环文件?
【发布时间】:2013-10-14 03:48:51
【问题描述】:

我正在将 essax 升级为 grizzly。 我注意到这个注释https://lists.launchpad.net/openstack/msg16188.html 说在 1.60 之后 swift 将使用新格式的环,但是这个注释没有指定如何升级环文件。它只是说 " 升级整个集群后,才升级版本 在构建你的环文件的盒子上的 swift (即你运行的地方 快速环制造商)。升级这块会改变磁盘 生成的环文件的格式。将新的环文件部署到 快速集群。” 但是我没有看到升级后的环文件有任何变化,环文件的最后修改日期还是一样。

那么如何安全地升级环文件呢? 有没有办法验证环文件是否升级?

【问题讨论】:

  • 我还看了一篇文章说使用 write_ring 来升级 ring.swift-ring-builder account.builder write_ring swift-ring-builder container.builder write_ring swift-ring-builder object.builder write_ring但我不确定它是否有效..

标签: upgrade openstack openstack-swift


【解决方案1】:

您可以在管理员指南 - Managing the rings 中找到更清楚的文本。

Swift 1.6.0 是最后一个使用 Python pickle 格式的版本。后续版本使用不同的序列化格式。 Swift 1.6.0 及更早版本生成的环可以被任何版本读取,但 1.6.0 之后生成的环只能被 1.6.0 以上的 Swift 版本读取。因此,当从 1.6.0 或更早版本升级到高于 1.6.0 的版本时,要么在所有 Swift 节点都成功升级后最后在你的环构建服务器上升级 Swift,要么在所有 Swift 节点都成功升级之前不要生成环.

较新版本可以读取旧格式,所以首先将所有节点升级到较新的 swift 版本。然后使用新的swift-ring-builder 命令重新生成(重新平衡)环形文件。您将获得升级后的环文件。

【讨论】:

  • 我确实尝试过重新平衡它,我得到了这个 root@VM-Node-01:/etc/swift# swift-ring-builder account.builder rebalance No partitions could be reassigned。由于 min_part_hours [1],要么不需要,要么没有。
  • 我还看了一篇文章说使用 write_ring 来升级 ring.swift-ring-builder account.builder write_ring swift-ring-builder container.builder write_ring swift-ring-builder object.builder write_ring
  • 有没有办法验证戒指的版本?
猜你喜欢
  • 2019-12-18
  • 2023-04-03
  • 1970-01-01
  • 2017-07-28
  • 2015-03-28
  • 1970-01-01
  • 1970-01-01
  • 2021-10-16
  • 2015-05-06
相关资源
最近更新 更多