瓦礫のドライブにはかなりの関心があります。これらはデータトラックを非常に接近させているため、次のトラックを壊さずに1つのトラックに書き込むことはできません。これにより、容量が20%程度増加する可能性がありますが、ライトアンプリフィケーションの問題が発生します。 Shingledドライブ用に最適化されたファイルシステムで進行中の作業があります。たとえば、次を参照してください。 https://lwn.net/Articles/591782/
Seagate 8TBアーカイブなどの一部のシングルディスクには、ランダムな書き込み用のキャッシュ領域があり、汎用ファイルシステムで適切なパフォーマンスを実現します。一部の一般的なワークロードでは、ディスクは非常に高速で、最大で約200MB /秒の書き込みが可能です。ただし、ランダム書き込みキャッシュがオーバーフローすると、パフォーマンスが低下する可能性があります。おそらく、一部のファイルシステムは、一般的にランダム書き込みを回避するか、そのようなドライブで見つかった書き込みキャッシュをオーバーフローする可能性が高いランダム書き込みのパターンを回避する方が優れています。
Linuxカーネルの主流のファイルシステムは、ext4よりもシングルディスクのパフォーマンスの低下を回避するのに優れていますか?
直感的にコピーオンライトとログ構造のファイルシステムは、ランダム書き込みの削減を減らすことにより、シングルディスクでより良いパフォーマンスを提供するかもしれません。ベンチマークはこれをある程度サポートしていますが、これらのパフォーマンスの違いは、シングルディスクに固有のものではありません。これらは、コントロールとして使用される単一のディスクでも発生します。したがって、シングルディスクへの切り替えは、選択したファイルシステムとあまり関係がない場合があります。
Nilfs2ファイルシステムは、SMRディスクで非常に優れたパフォーマンスを発揮しました。ただし、これは8 TBのパーティション全体を割り当てたためであり、ベンチマークは〜0.5 TBしか書き込まなかったため、nilfsクリーナーを実行する必要はありませんでした。パーティションを200GBに制限したとき、nilfsベンチマークは正常に完了しませんでした。 Nilfs2は、すべてのデータとスナップショットを永久にディスクに書き込んだアーカイブディスクとして「アーカイブ」ディスクを実際に使用する場合、パフォーマンス面での良い選択である場合があります。これにより、nilfsクリーナーを実行する必要がなくなります。
8TBのシーゲイトST8000AS0002-1NA17Z
テストに使用したドライブには 〜20GB キャッシュ領域があります。デフォルトのファイルベンチファイルサーバー設定を変更して、ベンチマークセットが最大125GBになり、シェルリングされていないキャッシュ領域よりも大きくなるようにしました。
set $meanfilesize=1310720
set $nfiles=100000
run 36000
次に、実際のデータについて説明します。 opsの数は「全体的な」ファイルサーバーのパフォーマンスを測定し、ms/opはランダムな追加のレイテンシーを測定し、ランダムな書き込みのパフォーマンスの大まかなガイドとして使用できます。
$ grep Rand *0.out | sed s/.0.out:/\ / |sed 's/ - /-/g' | column -t
SMR8TB.nilfs appendfilerand1 292176ops 8ops/s 0.1mb/s 1575.7ms/op 95884us/op-cpu [0ms - 7169ms]
SMR.btrfs appendfilerand1 214418ops 6ops/s 0.0mb/s 1780.7ms/op 47361us/op-cpu [0ms-20242ms]
SMR.ext4 appendfilerand1 172668ops 5ops/s 0.0mb/s 1328.6ms/op 25836us/op-cpu [0ms-31373ms]
SMR.xfs appendfilerand1 149254ops 4ops/s 0.0mb/s 669.9ms/op 19367us/op-cpu [0ms-19994ms]
Toshiba.btrfs appendfilerand1 634755ops 18ops/s 0.1mb/s 652.5ms/op 62758us/op-cpu [0ms-5219ms]
Toshiba.ext4 appendfilerand1 466044ops 13ops/s 0.1mb/s 270.6ms/op 23689us/op-cpu [0ms-4239ms]
Toshiba.xfs appendfilerand1 368670ops 10ops/s 0.1mb/s 195.6ms/op 19084us/op-cpu [0ms-2994ms]
シーゲイトは5980RPMであるため、東芝が20%高速になると素朴に予想するかもしれません。これらのベンチマークは、約3倍(200%)高速であることを示しているため、これらのベンチマークは、単一のパフォーマンスペナルティに達しています。シングル(SMR)ディスクは、シングル(PMR)ディスクのパフォーマンスext4とまだ一致しないことがわかります。最高のパフォーマンスは、8TBパーティションのnilfs2を使用した場合でした(したがって、クリーナーを実行する必要はありませんでした)が、それでも、ext4を使用した東芝よりも大幅に低速でした。
上記のベンチマークをより明確にするために、各ディスクのext4のパフォーマンスに関連してベンチマークを正規化すると役立つ場合があります。
ops randappend
SMR.btrfs: 1.24 0.74
SMR.ext4: 1 1
SMR.xfs: 0.86 1.98
Toshiba.btrfs: 1.36 0.41
Toshiba.ext4: 1 1
Toshiba.xfs: 0.79 1.38
SMRディスクでは、btrfsがext4での全体的な操作に対してほとんどの利点を持っていることがわかりますが、ランダムな追加のペナルティは比率ほど劇的ではありません。これにより、SMRディスク上のbtrfsに移動する可能性があります。一方、低レイテンシのランダム追加が必要な場合、このベンチマークは、特にSMRでxfsが必要であることを示唆しています。 SMR/PMRはファイルシステムの選択に影響を与える可能性がありますが、最適化対象のワークロードを検討することがより重要であるように見えます。
屋根裏部屋ベースのベンチマークも実行しました。屋根裏部屋の実行時間(8TB SMRフルディスクパーティション上)は次のとおりです。
ext4: 1 days 1 hours 19 minutes 54.69 seconds
btrfs: 1 days 40 minutes 8.93 seconds
nilfs: 22 hours 12 minutes 26.89 seconds
どちらの場合も、屋根裏リポジトリには次の統計があります。
Original size Compressed size Deduplicated size
This archive: 1.00 TB 639.69 GB 515.84 GB
All archives: 901.92 GB 639.69 GB 515.84 GB
同じ1の2番目のコピーを追加するTBディスクをatticに追加するには、これらの3つのファイルシステムのそれぞれで4.5時間かかりました。ベンチマークとsmartctl
情報の生のダンプは、次の場所にあります- http://Pastebin.com/tYK2Uj76https://github.com/gmatht/joshell/tree/master/benchmarks/SMR
rsync
from SMRドライブの場合は、ファイルシステムがread-only
またはnoatime
オプションでマウントされていることを確認してください。
そうしないと、SMRドライブはrsyncが読み取るファイルごとにタイムスタンプを書き込む必要があり、パフォーマンスが大幅に低下し(ここでは、約80 mb/sから3〜5 mb/sに)、ヘッドウェア/クリックノイズが発生します。
パフォーマンスの低いrsyncジョブをすでに実行している場合は、停止する必要はありません。ソースファイルシステムを再マウントできます。
Sudo mount -o remount,ro /path/to/source/fs
効果はすぐには見られません。ドライブがバッファに残っているすべてのデータの書き込みを完了するまで、しばらくお待ちください。10〜20分待ちます。このアドバイスは試され、テストされています。
これは、rsync
ing to SMRドライブの場合、つまりファイルが完全にディスクに書き込まれた後にファイルシステムがタイムスタンプを更新しようとした場合にも当てはまる可能性があります。これにより、シーケンシャルワークロードがジッターし、膨大なデータバンドが継続的に書き換えられ、ドライブの摩耗につながります。次のmayヘルプ:
Sudo mount -t fs_type -o rw,noatime device /path/to/dest/fs
これは、rsyncを実行する前に実行する必要があります。他の要因により、このオプションは重要ではなくなる可能性があります。つまり、バッファなしのFAT/MFT更新、ファイルシステムが主にSSD用に最適化されている場合の並列書き込みなどです。
とにかくファイルシステム全体をバックアップする場合は、dd bs=32M
を使用してSMRターゲットのファイルシステムのサイズを変更します(この場合、ファイルシステムをマウントしてrsyncを実行し、すべてのファイルを転送する必要はありません)。
使用されている実際のハードウェアは、Seagateドライブ管理のSMR 8tbコンシューマードライブでした。マイレージは他のハードウェアによって異なる場合があります。