プールの拡張

RustFS クラスターにストレージプールを追加し、Console または rc で拡張後のトポロジーを確認します。

概要

要件

  • このガイドで rc の手順を使う前に、管理用ホストに rc をインストールします。
  • RustFS のクラスター状態とプール状態を読み取る権限を持つ認証情報を設定します。

RustFS は、クラスターのトポロジーへ サーバープール を追加して容量を拡張します。各プールは、RUSTFS_VOLUMES 内でスペース区切りになったボリューム式の 1 つです。拡張したトポロジーを適用すると、新しい書き込みは追加された容量を使えます。既存のオブジェクトは、リバランス を実行するまで、現在のプールに残ります。

このガイドでは、次の 2 つのプールを例にします。

/etc/default/rustfs
RUSTFS_VOLUMES="http://rustfs-node1:9000/data/rustfs{1...4}/mnmd http://rustfs-node2:9000/data/rustfs{1...4}/mnmd"

拡張の前に、次を行います。

  • 重要なデータをバックアップし、メンテナンス時間帯に手順を実行します。
  • すべてのノードで、同じ RustFS のバージョン、同じ認証情報、完全な RUSTFS_VOLUMES の値を使います。
  • 既存のノードと新しいノードのすべてについて、名前解決、時刻同期、ポート 9000 の疎通を確認します。
  • 新しいプールは、意図したディスク数とストレージ仕様で準備します。

プールは追加し、トポロジーは置き換えない

すべてのノードは、順序を保った完全なプール一覧で起動する必要があります。既存のプールを省いたり、1 つのノードで別の式を使ったりすると、トポロジーが不整合になります。

操作

Console を補助にして拡張する

Console はストレージプールを表示します。サーバー起動時のトポロジーへプールを追加する機能はありません。次の手順では、Console を補助に使います。

  1. Rebalance(リバランス)または Pool Decommission(プールのデコミッション)で、既存のプールと使用量を記録します。
  2. 新しいプールのノードへ、同じ RustFS のバージョンとサービス設定をインストールします。
  3. 既存ノードと新規ノードのすべての RUSTFS_VOLUMES へ、新しいプールの式を追加します。既存の式は変えず、順序も維持します。
  4. すべてのノードで RustFS を再起動し、各プロセスが同じ拡張後のトポロジーで起動するようにします。
  5. すべてのノードが準備完了になるまで待ち、Console のプール一覧を更新します。

元のストレージプールと、新しく追加されたストレージプールを示す RustFS Console

Helm のデプロイでは、pools.list に新しいエントリを追加し、helm upgrade を適用します。既存のエントリは削除せず、順序も変えません。

rc で拡張結果を確認する

クラスターとプールの状態を読み取れる認証情報で、エイリアスを設定します。

rc alias set rustfs http://<server-ip>:9000 <your-access-key> <your-secret-key>

現在のトポロジーを記録します。

rc admin pool list rustfs

新しいノードを準備し、すべてのノードで完全な RUSTFS_VOLUMES の値に新しいプールの式を追加して、クラスター全体の RustFS を再起動します。rc は、サーバー起動時のトポロジーを変更しません。

クラスターが戻ったあと、プールを再度一覧表示します。

rc admin pool list rustfs

0 始まりのプール ID で、新しいプールの詳細を確認します。

rc admin pool status rustfs 1 --by-id

リバランスのエイリアス

rc admin expand start、status、stop は、拡張後のリバランス手順のエイリアスです。既存のデータを再配置します。RUSTFS_VOLUMES へプールを追加する操作ではありません。

検証

Console で拡張を検証する

次を確認します。

  • プール一覧に、元のプールと新しいプールが表示されること。
  • 想定するすべてのノードとディスクがオンラインであること。
  • 新しいプールが、想定どおりの合計容量と空き容量を報告すること。
  • 通常のトラフィックを再開する前に、クラスターが縮退したノードを報告していないこと。

rc で拡張を検証する

次を実行します。

rc admin pool list rustfs
rc admin pool status rustfs 1 --by-id

新しいプールが、想定したコマンドラインの式を持ち、稼働状態であることを確認します。リバランスを開始する前に、通常の S3 エンドポイント経由でテストオブジェクトを書き込み、読み取ります。

On this page