プールのデコミッション
Console または rc で RustFS のストレージプールをデコミッションし、データが移動したことを確認します。
概要
要件
- このガイドで
rcの手順を使う前に、管理用ホストにrcをインストールします。 - デコミッションを管理する権限を持つ認証情報を設定します。
プールのデコミッションは、選択したプールのオブジェクトを残りの稼働中プールへ移動し、対象プールをデプロイから外せるようにします。データを排出してプールを停止する操作であり、ハードウェアを退役するとき、プールを置き換えるとき、または容量を集約するときに使います。
デコミッションは リバランス とは別の操作です。リバランスはすべてのプールを稼働したままにします。デコミッションは、選択したプールのデータを排出して停止します。この 2 つの操作は同時には実行できません。
開始前の条件と作業は、次のとおりです。
- 操作後も、稼働中のプールを 1 つ以上残す必要があります。
- 残りのプールに十分な空き容量があることを確認します。RustFS では、排出する使用バイト数に 30% のオーバーヘッドを加えた容量を、残りのプールの空き領域でまかなう必要があります。
- すべてのノードとディスクが正常であり、リバランスが実行中でないことを確認します。
- 重要なデータをバックアップし、トラフィックの少ない時間帯に操作を予定します。
- 対象を選ぶ前に、正確なプール ID とボリューム式を記録します。
デコミッションを取り消しても、完了した移動は元に戻りません。すでに移動したオブジェクトは、移動先のプールに残ります。
操作
Console でデコミッションを開始する
-
デコミッションを管理する権限を持つアカウントで、RustFS Console にサインインします。
-
Pool Decommission(プールのデコミッション)を開きます。
-
停止するプールを特定し、ID、ボリューム式、使用容量、ステータスを確認します。

-
そのプールの Start Decommission(デコミッションを開始)を選択します。
-
確認ダイアログをよく読み、Start Decommission を選択します。

-
操作が完了するまで、Sync(同期)でプールの状態と移動カウンターを更新します。

完了後、残っているすべてのノードの RUSTFS_VOLUMES から、排出済みプールの式を削除し、同じ順序のトポロジーで RustFS を再起動します。Helm では、pools.list からエントリを外す前に、そのプールをデコミッションします。稼働中のプールエントリを削除したり、順序を変えたりしてはいけません。

rc でデコミッションを開始する
必要に応じてクラスターのエイリアスを設定し、プールを一覧表示します。
rc alias set rustfs http://<server-ip>:9000 <your-access-key> <your-secret-key>
rc admin pool list rustfs0 始まりの ID を指定して、プール 0 のデコミッションを開始します。
rc admin decommission start rustfs 0 --by-id--by-id を付けず、プールのボリューム式そのものを渡すこともできます。
rc admin decommission start rustfs 'http://rustfs-node1:9000/data/rustfs{1...4}/mnmd'すべてのプール、または対象プールだけを監視します。
rc admin decommission status rustfs
rc admin decommission status rustfs 0 --by-id実行中の操作を取り消すには、次を実行します。
rc admin decommission cancel rustfs 0 --by-idデコミッションが失敗した、または取り消された場合は、再試行の前にメタデータを消去します。
rc admin decommission clear rustfs 0 --by-id対象が complete を報告したら、残っているすべてのノードの RUSTFS_VOLUMES からその式を削除し、縮小したトポロジーで RustFS を再起動します。
検証
Console でデコミッションを検証する
対象プールが Completed を報告し、失敗したオブジェクト数と失敗したバイト数が 0 であることを確認します。起動時のトポロジーからプールを外して RustFS を再起動したあと、次を確認します。

- 停止したプールが、稼働中のプールとして表示されていないこと。
- 残っているすべてのノードとディスクがオンラインであること。
- 残りのプールに移動したデータが表示され、空き容量が十分であること。
- 既存のオブジェクトを、引き続き一覧表示、読み取り、ダウンロードできること。
rc でデコミッションを検証する
トポロジーからプールを外す前に、次を実行します。
rc admin decommission status rustfs 0 --by-idステータスが complete であり、失敗したオブジェクトとバイトのカウンターが 0 であることを確認します。RUSTFS_VOLUMES を更新して RustFS を再起動したあと、次を実行します。
rc admin pool list rustfs意図した稼働中のプールだけが残っていることを確認します。以前は停止したプールに置かれていたオブジェクトを読み取り、S3 エンドポイント経由で新しいテストオブジェクトを書き込みます。