enospc エラーが原因で btrfs のバランシングに失敗しました。

enospc エラーが原因で btrfs のバランシングに失敗しました。

[この場所は間違っているようで、stackoverflowから取得しました。]

現在、ZFSを実行しているNASに代わる方法でbtrfsをテストしています。それぞれ20GBの4つのデバイスを作成し、balance -dconvert=raid5このオプションを使用してbtrfsファイルシステムを作成しました。その後、FSを5GBファイル(現在は9個)で埋め始めました。ddfromを使用してこれらのファイルを作成した後、しばらくしてエラーが発生しdev/zeroました。システムログに次のエラーが表示されます。balance btrfs balance starterror during balancing '.' - No space left on devicebtrfs: 4 enospc errors during balance

天びんを再度実行すると、期待-dusage=0どおりに正常に完了しますが、フィルタなしでは機能しませんbalance -dusage=90balance私はなぜこれにそんなに興味があるのですか?データの破損が発生しないことを確認するために、raid5 btrfsボリュームからハードドライブを取り外すと、何が起こるかをテストしました。ハードドライブを取り外した後、別のハードドライブを追加し、故障したハードドライブを取り外したいと思います。 enospcエラーのため、プロセスも失敗しました。

追加情報は次のとおりです。

(FSのマウントポイントは/mnt/raid/

linux:/mnt/raid # btrfs filesystem show
Label: 'test_raid5'  uuid: 8b137115-974e-4f91-a243-ec6239c34761
    Total devices 4 FS bytes used 45.06GiB
    devid    4 size 20.00GiB used 16.03GiB path /dev/sde
    devid    3 size 20.00GiB used 17.00GiB path /dev/sdd
    devid    2 size 20.00GiB used 17.00GiB path /dev/sdc
    devid    1 size 20.00GiB used 16.04GiB path /dev/sdb

Label: none  uuid: 69c33622-1c80-4dc3-9c01-24c27def730c
    Total devices 1 FS bytes used 1.04GiB
    devid    1 size 18.92GiB used 3.04GiB path /dev/sda2

linux:/mnt/raid # btrfs filesystem df /mnt/raid/
Data, RAID5: total=48.00GiB, used=45.01GiB
System, RAID1: total=32.00MiB, used=12.00KiB
System: total=4.00MiB, used=0.00
Metadata, RAID1: total=1.00GiB, used=53.69MiB


linux:/mnt/raid # btrfs version
Btrfs v0.20-rc1+20130701


linux:/mnt/raid # uname -a
Linux linux 3.11.6-4-default #1 SMP Wed Oct 30 18:04:56 UTC 2013 (e6d4a27) x86_64 x86_64 x86_64 GNU/Linux


linux:/mnt/raid # cat /etc/os-release
NAME=openSUSE
VERSION="13.1 (Bottle)"
VERSION_ID="13.1"
PRETTY_NAME="openSUSE 13.1 (Bottle) (x86_64)"
ID=opensuse
ANSI_COLOR="0;32"
CPE_NAME="cpe:/o:opensuse:opensuse:13.1"
BUG_REPORT_URL="https://bugs.opensuse.org"
HOME_URL="https://opensuse.org/"
ID_LIKE="suse"

btrfsボリュームのバランスを再調整するために、ここにさらにスペースを追加する必要があるとは信じられません。これについて考えていますか?

答え1

私は"NAS"のためのzfsの代わりにbtrfsパスを選択することにしました。私は以前に両方をテストしたことがあり、ZFSに関するドキュメントがはるかに優れていることを知り、コマンドラインインターフェイスに本当に魅力を感じました。だから私にとって、ZFSは「より良い」選択でした。

しかし、衝撃的な問題があります。 RAID-5に3つのZFS用の2TB HDDがあり、これを4x TB HDDに増やすことは容易ではありません。 ZFSプールを3HDDに設定して新しいHDDを追加するには、3つのHDDを追加する必要があります(合計6×2 TB)。 6つのHDDがあり、FSを増やすには6つを追加する必要があります。私が持っている問題は、私のNASケースが4つ以上のディスクを収容できず、4つのHDDを余裕がないということです。これに関して、Btrfsはより柔軟です。

しかし、いつも始めてみると、RAID-5/6のサポートが本当に不便ですね。私もあなたのようにいくつかのテストをしましたが、最終的にファイルシステムが破損しています。 RAID-1で同じテストを行いましたが、問題ありません!そのため、RAID-1でBtrfsを使用することにしました。Ubuntu LTSを使用する代わりに、常に最新のUbuntuバージョンを使用して最新のカーネルとbtrfs-toolsパッケージを入手します(Ubuntu 15.04を使用しており、15.10に切り替える準備ができています) )。 Ubuntu 16.04がリリースされると(テスト後)、最終的にRAID-5に移動して引き続き使用できます。最近、カーネル変更ログでRAID-5/6のコードベースがより成熟したことが確認されました。

だからあなたの質問です。特にRAID-5や6でBtrfsを使ってみたいなら、最新のLinuxディストリビューションを使用してください。(例:Arch Linux、最新のUbuntu、Fedoraなど)他のディストリビューションの安定性が不足している可能性がありますが、Btrfsの場合ははるかに安定している可能性があります。

「ユースケース」に関する注意:Btrfsファイルシステムは、ここに置いたファイルサイズと比較してかなり小さいです。実際のシナリオをうまく反映できない場合があります。大きなファイル(ビデオ)と小さなファイル(写真、文書)を作成し、ファイルシステムを80%まで埋める必要があります。これをテストする良い方法は、ファイルシステムに多くのファイルを配置し、ベンチマーク自体ではなく、ベンチマークによって引き起こされるストレスに対してファイルシステムのベンチマークを実行することです。あなたはそれを使用することができますポロニクステストスイートそのために(例えばphoronix-test-suite benchmark pts/disk)。

関連情報