既存のHDDベースのBTRFSファイルシステムにSSDを追加する

既存のHDDベースのBTRFSファイルシステムにSSDを追加する

さまざまなサイズのHDDを含むBTRFSファイルシステムがあります。 SSDを追加すると、BTRFSはそれをキャッシュ層または他の高速ドライブとして使用できると思います。これに関する文書は少し不足しています。https://btrfs.wiki.kernel.org/index.php/FAQ#Is_Btrfs_optimized_for_SSD.3F)。ただし、btrfs fi show /dataを実行すると、SSDは使用されていないとマークされます。

Total devices 8 FS bytes used 4.29TiB

// SSD moved to the top of the list for easier reading
devid    9 size 223.57GiB used 0.00B path /dev/sda
devid    1 size 2.73TiB used 1.28TiB path /dev/sdb1
devid    5 size 0.00B used 356.00GiB path /dev/sdi1
devid    6 size 1.82TiB used 379.00GiB path /dev/sde1
devid    7 size 4.55TiB used 3.09TiB path /dev/sdh
devid    8 size 3.64TiB used 2.19TiB path /dev/sdc
devid   10 size 2.73TiB used 1.28TiB path /dev/sdf
devid   11 size 1.82TiB used 24.00GiB path /dev/sdg

また、btrfs device use /data を実行すると、SSD が使用されていないことが報告されます。

/dev/sda, ID: 9
Device size:           223.57GiB
Unallocated:           223.57GiB

だから私はfstabマウントオプションをチェックする必要があると思いました。

# Mount BTRFS array
UUID=587d228b-5dc3-44e6-b9d9-83df5682d50d       /data   btrfs   defaults,noatime,space_cache,discard    0       0

私が知る限り、これはかなり標準的なものです。

これは普通ですか? BTRFSが実際にドライブを使用しているかどうかはどうすればわかりますか? (私が完全に間違っている可能性があり、BTRFSがこのユースケースをまったくサポートしていない可能性があります)

答え1

BTRFS プールにデバイスを追加するだけでは、データは自動的に移動されません。プールに新しいデータを書き込む必要があり、バランサはデータを配置するデバイスを決定します。
次のブロックは割り当て率が0%であるため、新しく追加されたデバイスで作成される可能性が高くなります(バランサはすべてのデバイスを均等に埋めようとします)。

すでに書き込まれたデータをバランサーに戻すには、次のものを使用する必要があります。btrfs balance注文する

SSDのすべてのデータはHDDのデータよりも高速ですが、適切な速度認識バランスがないため、どのデータが高速で遅いかはほとんどランダムで手動で制御できません。

関連情報