GNU/Linux >> Linux の 問題 >  >> Cent OS

「btrfs Scrub」コマンドを使用して Btrfs ファイル システムのスクラブを管理する方法

ファイル システム スクラブ ジョブをトリガーすることで、ファイル システム全体のチェックを開始できます。スクラブ ジョブはデフォルトでバックグラウンドで実行され、ファイル システム全体の整合性をスキャンします。途中で見つかった不良ブロックを自動的に報告して修復しようとします。スクラブ ジョブは、ディスク ドライブ全体を処理する代わりに、実際に割り当てられたデータのみを処理します。割り当てられたディスク容量にもよりますが、これはディスクの表面全体のスキャンを実行するよりもはるかに高速です。

スクラビングには、すべてのディスクからすべてのデータを読み取り、チェックサムを検証することが含まれます。いずれかの値が正しくない場合は、別のドライブからブロックの適切なコピーを読み取ることにより、データを修正できます。スクラビング コードも読み取り時に自動的にスキャンします。使用頻度の高いファイル システムは週に 1 回、その他のファイル システムは月に 1 回スクラブすることをお勧めします。

以下は、利用可能な btrfs のスクラブ コマンドのリストです:

# btrfs scrub
usage: btrfs scrub [command] [options] [path]|[device]

    btrfs scrub start [-BdqrRf] [-c ioprio_class -n ioprio_classdata] [path]|[device]
        Start a new scrub. If a scrub is already running, the new one fails.
    btrfs scrub cancel [path]|[device]
        Cancel a running scrub
    btrfs scrub resume [-BdqrR] [-c ioprio_class -n ioprio_classdata] [path]|[device]
        Resume previously canceled or interrupted scrub
    btrfs scrub status [-dR] [path]|[device]
        Show status of running or finished scrub

verify checksums of data and metadata

btrfs Scrub ユーティリティ:例

ファイル システムのすべてのデバイスまたは 1 つのデバイスでスクラブを開始するには、btrfs Scrub Start コマンドを使用します。構文は次のとおりです。

# btrfs scrub start [-BdqrR] [-c ioprio_class ...

オプションの説明:

オプション 説明
-B バックグラウンドで実行せず、終了時に統計を出力します。
-d ファイル システムのデバイスごとに個別の統計情報を出力します。このオプションは、-B オプションと組み合わせて使用​​されます。
-q Quiet モードで実行し、エラー メッセージと統計情報を省略します。
-r 読み取り専用モードで実行し、エラーを修正しません。
-R Raw 印刷モード。要約の代わりに完全なデータを印刷します。
-c ioprio_class IO 優先度クラスを設定します (ionice のマニュアル ページを参照)。
-n ioprio_classdata IO 優先順位クラスデータを設定します (ionice のマニュアル ページを参照してください)。

btrfs スクラブを開始しています

次の例では、/btrfs にマウントされている Btrfs ファイル システムでスクラブを開始します。

# btrfs scrub start /btrfs
scrub started on /btrfs, fsid ba60ac96-1628-4656-b68b-c7327ff49179 (pid=11164)

スクラブ ジョブのステータスを取得するには、btrfs Scrub Status コマンドを使用します。 1 つのオプションが利用可能です:

  • -d – ファイル システムのデバイスごとに個別の統計情報を出力します。

以下は、健全なファイルシステムでの btrfs スクラブ ステータス コマンドの例です。ファイルシステムが破損している場合は、修正されたエラーが出力に表示されます。

# btrfs scrub status /btrfs
scrub status for ba60ac96-1628-4656-b68b-c7327ff49179
	scrub started at Fri Mar 30 14:29:47 2018 and finished after 00:00:02
	total bytes scrubbed: 325.29MiB with 0 errors

上記のコマンドで「-d」オプションを使用すると、以下の例に示すように、デバイスごとのレベルのステータスを取得できます。

# btrfs scrub status /btrfs -d
scrub status for ba60ac96-1628-4656-b68b-c7327ff49179
scrub device /dev/sda (id 1) history
	scrub started at Fri Mar 30 14:29:47 2018 and finished after 00:00:02
	total bytes scrubbed: 325.29MiB with 0 errors

btrfs スクラブ ジョブのキャンセル/再開

実行中のスクラブ ジョブをキャンセルすることもできます。進行状況はスクラブ進行状況ファイルに保存され、後でスクラブを再開できます。スクラブをキャンセルするには:

# btrfs scrub cancel /btrfs

キャンセルまたは中断されたスクラブ ジョブを再開するには:

# btrfs scrub resume /btrfs

スクラブ再開コマンドには、スクラブ開始コマンドと同じオプションがあります。 Btrfs は、ルート ID 生成の最後の 2 分間を 30 秒間隔で保存します。ファイル システムに変更がなくても、Btrfs はこれらの世代をローリングし続けます。

スクラブでエラーが修正されない場合は、次のマウント オプションを使用して既知の適切な B ツリーにロールバックできます。これは、ツリーの残りの部分がコピー オン ライトのために利用可能であることを前提としています。

# mount –o recovery /dev/sda /btrfs


Cent OS
  1. Linuxでaptコマンドを使用してパッケージを管理する方法

  2. Linux で tar コマンドを使用する方法

  3. ファイルの行をコマンドの引数として使用するにはどうすればよいですか?

  1. LinuxでTarコマンドを使用する方法

  2. Logrotateを使用してログファイルを管理する方法

  3. Ext ファイル システムを Btrfs に変換する方法

  1. Linuxでmd5sumコマンドを使用する方法

  2. Linuxでtouchコマンドを使用する方法

  3. Btrfs ファイル システムを作成および管理するための「btrfs」コマンドの例