OS・ミドルウェア

Linuxで「btrfs」ファイルシステムのリバランス処理を実行するには

多くの「Linux」ディストリビューションで使用されている「btrfs」ファイルシステム。同ファイルシステムのリバランス処理を実行する方法を解説する。

 「btrfs」ファイルシステムが急速に普及している。このファイルシステムは、多くの「Linux」ディストリビューションで使用されており、スナップショットや負荷分散、オンラインデフラグ、プーリング、エラー検出など、データセンター環境で効果を発揮する機能を多数提供する。

 btrfsファイルシステムを最大限に活用したければ、いくつかの高度な機能の使い方を学ぶ必要がある。そうした機能の1つに、バランス(またはリバランス)処理と呼ばれるものがある。

なぜバランス処理が必要なのか

 btrfsファイルシステムは2段階のアロケーターを使用する。最初の段階では、特定のタイプのデータ(データ、メタデータ、システム)に大きなチャンクを割り当てる。第2段階では、ファイルシステムなどの小さなブロックを割り当てる。

 しかし、ファイルシステムがデータやメタデータ用のスペースを使い果たしてしまい、新しいチャンクを割り当てられなくなることがある。

テストを実行する方法

 システムで新しいチャンクの作成に必要なスペースが不足すると、すぐに問題が発生する。そうなった場合は、コマンドラインを使用する。空き容量が不足しているシステムがないかチェックするには、以下のコマンドを実行する。

btrfs filesystem df MOUNT

 MOUNTは、btrfsファイルシステムが接続されているマウントポイントだ。btrfsファイルシステムが/dataにマウントされている場合は、以下のコマンドを実行する。

btrfs filesystem df /data

 以下のような出力が表示されるはずだ。

Data, single: total=50.00GiB, used=45GiB

 つまり、50GB-45GB=5GBが空き容量であり、使用量は90%だ。この例では、リバランスによってファイルシステムの容量を解放できる。

btrfsをリバランスする方法

 btrfsをバランスすると、btrfsはアロケーターを通してすべてを送り返し、チャンクを圧縮する。使用率が45%のメタデータチャンクが2つある場合、バランス処理を実行すると、使用率が90%の1つのメタデータチャンクだけになる。次に、バランス処理は新たに空になったチャンクを削除して、新しいチャンクを割り当てるためのスペースを解放する。

 これは重要なタスクであり、悩ましい問題の多くを解決することができる。バランス処理は、どうすれば実行できるのだろうか。ここでも、/dataの例を使用する。データパーティションのメタデータチャンクがいっぱいで、バランス処理を実行する必要があることが分かったとしよう。これを行うには、以下のコマンドを実行する。

sudo btrfs balance /data

 注意事項もある。パーティションにあるデータの量とチャンクの使用率によっては、バランス処理にかなりの時間がかかる場合があり、操作が中断される可能性もある。そのため、中断しても問題がない時間帯に、バランス処理を実行した方がいいだろう。

 バランス処理が完了すると、以下のようなメッセージが表示される。

Done, had to relocate 12 out of 12 chunks

 そのようなメッセージが表示されると、btrfsファイルシステムはバランスのとれた状態に戻っている。少なくともチャンクの割り当てに関しては、問題は起きないはずだ。以下のコマンドを再び実行する。

btrfs filesystem df /data

 今回は、合計容量と使用率のバランスがもっと許容できるものになっているはずだ。

 usageフィルターを使用してもバランス処理を実行できる。このフィルターを使用すると、使用率を増やしたり、減らしたりして、指定した数字よりも使用率が低いブロックグループだけをバランス処理の対象にすることが可能だ。例えば、使用率が85%未満のブロックだけにバランス処理を実行したいとしよう。これを行うには、以下のようなbalanceコマンドを実行する。

sudo btrfs balance start -dusage=85 /data

 もちろん、実際にはそれよりもはるかに複雑だ。手動でリバランスを実行すべきではないとの意見もあるが、btrfsでチャンクを割り当てるためのスペースが足りない状況に直面した場合、ほかに選択肢がない可能性もある。

 少なくとも、本記事で紹介した手法を実行すれば、データセンターにあるbtrfs導入済みのLinuxシステムで、厄介なダウンタイムを防ぐことができる。

 ほかのすべてのことと同様、btrfsのバランス処理についても、本番用ではないシステムで試す必要がある。このツールの仕組みを理解し、実際にうまく使うことに成功した後で、本番用システムに移行しよう。

提供:Jack Wallen
提供:Jack Wallen

この記事は海外Red Ventures発の記事を朝日インタラクティブが日本向けに編集したものです。

「OS・ミドルウェア」で読まれている記事

TechRepublic Japanで人気の記事

編集部オススメ

トレンドまるわかり![PR]

財務・経理
人事・労務
マーケ・営業
購買・調達
生産・製造
データ分析
コミュニケーション
通信・通話
文書・コンテンツ
PC・モバイル
新興技術
ITインフラ
クラウドサービス
OS・ミドルウェア
OS
ミドルウェア
アプリケーションサーバー
開発
データベース
運用
セキュリティ

ホワイトペーパーランキング

  1. 5分でわかる、レポート作成の心得!成果至上主義のせっかちな上司も納得のレポートとは
  2. ノートPCは従来ながらの選び方ではダメ!新しい働き方にも対応する失敗しない選び方を徹底解説
  3. 問題だらけの現場指導を効率化!「人によって教え方が違う」を解消するためのマニュアル整備
  4. 緊急事態宣言解除後の利用率は低下 調査結果に見る「テレワーク」定着を阻む課題とその対応策
  5. たしか、あのデータは、こっちのアプリにあったはず…--業務改善のためのアプリ導入がストレスの原因に?

Follow TechRepublic Japan

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]