2

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

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

4

1 回答 1

4

您可以在管理员指南 -更清楚地管理环中找到文本。

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

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

于 2013-10-20T18:45:49.607 回答