[ English | Deutsch | 日本語 | Indonesia ]

ストレージノードの故障とメンテナンス

オブジェクトストレージの高い冗長性のため、オブジェクトストレージのノードに関する問題を処理することは、コンピュートノードに関する問題を処理するよりも簡単です。

ストレージノードの再起動

ストレージノードを再起動する必要がある場合、単に再起動します。そのノードに配置されているデータへのリクエストは、そのサーバーが再起動している間、別のコピーにリダイレクトされます。

ストレージノードのシャットダウン

ストレージノードを少し長い間 ( 1 日以上) シャットダウンする必要があれば、ノードをストレージリングから削除することを検討します。例:

# swift-ring-builder account.builder remove <ip address of storage node>
# swift-ring-builder container.builder remove <ip address of storage node>
# swift-ring-builder object.builder remove <ip address of storage node>
# swift-ring-builder account.builder rebalance
# swift-ring-builder container.builder rebalance
# swift-ring-builder object.builder rebalance

次に、ring ファイルを他のノードに再配布します。

# for i in s01.example.com s02.example.com s03.example.com
> do
> scp *.ring.gz $i:/etc/swift
> done

これらの操作はストレージノードをストレージクラスターから効率的に外せます。

ノードがクラスターに参加できるようになったら、ただリングに再度追加するだけです。 swift-ring-builder を使用して swift クラスターにノードを追加するための構文は、元々クラスターを作成したときに使用した元々のオプションに強く依存します。作成時に使用したコマンドをもう一度見てください。

Swift ディスクの交換

Object Storage ノードのハードディスクが故障した場合、その交換は比較的簡単です。Object Storage 環境が正しく設定され、故障したディスクに保存されているデータが Object Storage 環境内の他のディスクにも複製されていることを前提にしています。

この例では、 /dev/sdb が故障したと仮定します。

まず、ディスクをアンマウントします。

# umount /dev/sdb

次に、ディスクを物理的にサーバーから取り外し、正常なディスクと入れ替えます。

オペレーティングシステムが新しいディスクを認識していることを確認します。

# dmesg | tail

/dev/sdb に関するメッセージを確認したほうがいいです。

Swift ディスクではパーティションを使用しないことが推奨されるので、単にディスク全体をフォーマットします。

# mkfs.xfs /dev/sdb

最後に、ディスクをマウントします。

# mount -a

Swift は新しいディスクを認識します。また、データが存在しないことを認識します。そうすると、他の既存の複製からディスクにデータを複製しはじめます。