ハードドライブがSMRを使用しているかどうかを確認する方法

ハードドライブがSMRを使用しているかどうかを確認する方法

これまで私はこれがcat /sys/block/<devicename>/queue/rotational私のドライブがSSDかHDDかを教えてくれることを知っています。 SMR(Singled 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.5TBが記録されるまで記録します。以下のように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ドライブの内部キャッシュがいっぱいになると(通常約20GB)、パフォーマンスが低下します。時には開始速度に近い、時には長期間約0 MB / sと0-1 IOPSです。しかし、絶対エラーがあってはなりません。

SMRドライブを使用またはベンチマークすると、速度が遅くなります!一部のドライブは、fstrimドライブ速度を元の速度に復元するのに役立つTRIMコマンドをサポートしています。

TRIMがなくても、よく実行された「ドライブ管理」SMRは、電源を十分に長時間供給してから元の速度に戻ります。内部キャッシュがSMR領域に完全にフラッシュされる前にディスクがスリープ状態になると、ディスクスピンダウン(電源管理)を無効にする必要があるかもしれません。代わりに、時々少しずつ書き込むように設定することもできます。たった一行でも。

while true; do date >> timestamps.txt; sleep 5m; done

デバイスに保存されているディレクトリでテストし、完了したらCtrl + Cを押して終了します。私が使用しているSeagate SMRドライブの場合、キャッシュを完全に更新するのに約30分かかります。この間、コンピュータはドライブに何も書き込めませんが、ドライブからデータを書き込むように聞こえます。残念ながら、ドライブのリフレッシュ状態を照会する方法がわかりません。運転音を聞くか、十分に長く待ってください。

例:Seagate SMRドライブは、SMRリフレッシュ中にスリープ状態に戻り(おそらくユーザーに完全に透明なチャック)、後で再び目を覚ますとリフレッシュされ続けるようです。これは透明で、電源が切れてもデータの破損は発生しません。ただし、大量のデータを書き込んだ直後にドライブをスリープモードに切り替える場合(たとえば、そのドライブをバックアップドライブとして使用し、バックアップロジックが完了するとすぐにマウント解除と切断)など、この問題が発生することがあります。その結果、パフォーマンスが非常に低下します。次に別のバックアップを実行すると、新しいバックアップが以前のバックアップのSMRリフレッシュと競合するため、パフォーマンスが非常に低下します。これらのドライブに常に電力を供給し、一度に最大10 GBしか書き込んでいない場合は、通常のPMR HDDドライブと同じくらい高速または高速です。

答え2

現代バージョンsg3_utilsドライブを調べてSMR設定を要求するsg_rep_zonesコマンドがあります。ディストリビューションに最新バージョンがない場合は、手動でビルドする必要があります。

これにより、ドライブがあるかどうかを確実に知ることができます。はいSMR。

ただし、コマンドが報告されてもReport zones command not supportedドライブを確認できません。いいえSMR。一部のSMRドライブは「ドライブ管理」SMRを使用します。つまり、ドライブはすべてを魔法のように扱うので、心配する必要はありません。この場合、Reporting Areaコマンドは必ずしもサポートされていません。

もう一度試してみてください - ドライブが "unmap"または "trim"コマンド(sg3_utilsの一部であるsg_unmap)をサポートしていることを確認してください。非SMRドライブはこのコマンドをサポートしません(ただし、すべてのSMRドライブがそれをサポートしているわけではありません)。

関連情報