これまでのところ、これでcat /sys/block/<devicename>/queue/rotational
ドライブが SSD か HDD かがわかると思います。SMR (Shingled Magnetic Recording) を使用しているかどうかを確認する同様の方法はありますか?
答え1
確実にする唯一の方法は、十分なランダム書き込みアクセスでドライブをベンチマークすることです。「ドライブ管理」SMR はホスト コンピュータに対して完全に透過的であるはずであり、メーカーが SMR について言及しないこともあります。ただし、「透過的」とは論理的な動作のみに関するもので、パフォーマンス (またはレイテンシ) に関するものではありません。
次のように実行することをお勧めしますfio
(次のようにすると、現在の作業ディレクトリにベンチマーク テスト ファイルが作成されるため、まずcd
ディスク上のテストするディレクトリに移動します)。
fio --name TEST --eta-newline=5s --filename=fio-tempfile.dat --rw=randwrite --size=500g --io_size=1500g --blocksize=10m --ioengine=libaio --iodepth=1 --direct=1 --numjobs=1 --runtime=3600 --group_reporting
この例では、疑似ランダム データで満たされた 500 GB のファイルを作成し、その中のランダムな場所を選択して、10 MB の疑似ランダム データをファイルに書き込みます。その後、ランダムな場所の選択と書き込みを最大 1 時間または 1.5 TB が書き込まれるまで繰り返します。次のような ETA 行に注目してください。
Jobs: 1 (f=1): [w(1)] [20.0% done] [0KB/40960KB/0KB /s] [0/4/0 iops] [eta 00m:28s]
上記のコマンドは、5 秒ごとに新しい ETA 行を発行します。上記のスラッシュ (40960KB
と4
) の間の現在のスループットと IOPS を確認します。SMR ドライブの場合、最初は良好な値 (100MB+/s および 10+ IOPS) が得られるはずですが、テストが進み、SMR ドライブの内部キャッシュがいっぱいになると (通常は約 20 GB)、パフォーマンスは不安定になります。開始速度に近くなる場合もあれば、0 MB/s および 0-1 IOPS 付近が長時間続く場合もあります。ただし、エラーが発生することはありません。
SMR ドライブは、使用時またはベンチマーク時に速度が低下することに注意してください。一部のドライブは TRIM コマンドをサポートしており、fstrim
ドライブ速度を元の状態に戻すのに役立つ場合があります。
TRIM がなくても、十分に機能している「ドライブ管理」SMR は、アイドル状態で十分な時間電源を入れたままにしておくと、元の速度に戻ります。内部キャッシュが SMR 領域に完全にフラッシュされる前にディスクがスリープ状態になる場合は、ディスクの回転速度を下げる (電源管理) を無効にする必要があるかもしれません。代わりに、時々少しずつ書き込むように設定することもできます。次のような 1 行のコードでもかまいません。
while true; do date >> timestamps.txt; sleep 5m; done
テストするデバイスに保存されているディレクトリに実行すれば十分で、完了したら Ctrl+C で終了するだけです。私が使用した Seagate SMR ドライブの場合、キャッシュの完全なフラッシュには約 30 分かかるようです。この間、コンピューターによってドライブに何も書き込まれていなくても、ドライブはデータを書き込んでいるように聞こえます。残念ながら、ドライブからフラッシュの状態を照会する方法はわかりません。ドライブの音を聞くか、十分に待つかのどちらかです。
例: Seagate SMR ドライブは、SMR フラッシュの途中でスリープ状態になり (おそらく、ユーザーに対して完全に透過的であるように見せかけるため)、将来再びウェイクアップするとフラッシュを続行するようです。これは、電源が切断されてもデータ破損が発生しないという意味で透過的です。ただし、ときどき大量の書き込みを行い、その後すぐにドライブをスリープ状態にすると (たとえば、バックアップが論理的に完了したらすぐにアンマウントされ、切断されるバックアップ ドライブとしてこのようなドライブを使用する場合)、パフォーマンスが非常に低下します。次に別のバックアップを実行すると、新しいバックアップが以前のバックアップの SMR フラッシュと競合するため、パフォーマンスが非常に低くなります。このようなドライブに常に電源を入れ、一度に最大 10 GB だけを書き込むと、通常の PMR HDD ドライブと同等かそれ以上の速度になります。
答え2
現代版のsg3_utilssg_rep_zones コマンドがあり、ドライブを調べて SMR 構成を確認します。ディストリビューションに最新バージョンがない場合は、これを手動でビルドする必要があるかもしれません。
ドライブがはSMR。
しかし、コマンドが を報告したとしてもReport zones command not supported
、ドライブがないSMR。一部の SMR ドライブは「ドライブ管理」SMR を使用します。つまり、ドライブがすべてを魔法のように処理するため、心配する必要はありません。この場合、レポート ゾーン コマンドが必ずしもサポートされるわけではありません。
他に試すべきことは、ドライブが「unmap」または「trim」コマンド (sg_unmap、これも sg3_utils の一部) をサポートしているかどうか確認することです。非 SMR ドライブでは、そのコマンドをサポートしていない可能性があります (ただし、すべての SMR ドライブがサポートするわけではありません)。