2013-10-14 48 views
2

我正在將essax升級爲灰熊。 我注意到這個注意事項https://lists.launchpad.net/openstack/msg16188.html其中說1.60 swift後會使用新的環形格式,但是這個注意並沒有指定如何升級環形文件。它只是說 「一旦你的整個集羣升級了,只有升級版本號 構建您的響鈴文件的盒子上(例如,您運行的環境爲 swift-ring-builder)。升級此部分將更改生成的響鈴文件的盤上 格式。將新響鈴文件部署到 迅速集羣「。 但升級後我沒有看到環文件發生任何事情,環文件的最後修改日期仍然相同。如何升級ring文件swift?

那麼如何以安全的方式升級環形文件? 有沒有辦法來驗證環文件是否升級?

+0

我還讀了一篇文章,說使用write_ring升級ring.swift-ring-builder account.builder write_ring swift-ring-builder container.builder write_ring swift-ring-builder object.builder write_ring但我不確定如果它能正常工作.. – shadowlin

回答

4

您可以更清楚地找到管理員指南中的文本。

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命令重新生成(重新平衡)環形文件。你會得到升級的鈴聲文件。

+0

我嘗試重新平衡它,並且得到了這個root @ VM-Node-01:/ etc/swift#swift-ring-builder account.builder rebalance 沒有分區可以重新分配。 任何一個都不需要或者不能由於min_part_hours [1]。 – shadowlin

+0

我還讀過一篇文章,說使用write_ring升級ring.swift-ring-builder account.builder write_ring swift-ring-builder container.builder write_ring swift-ring-builder object.builder write_ring – shadowlin

+0

有沒有辦法驗證戒指的版本? – shadowlin