Linux CentOSでのLTO6テープの読み取り速度が非常に遅い

Linux CentOSでのLTO6テープの読み取り速度が非常に遅い

技術専門家の皆さん、

私はスピードの面で大きな成功を収めていないまま、数週間LTO6テープからデータを抽出しようとしてきました。

テープの内容を大きなバイナリファイルにダンプするために「dd」を使用しています。なぜなら、テープがどの形式で記録されたのかわからないからです(確かにTARではありません)。デフォルトでは、次のコマンドを使用します。

dd if=/dev/nst0 of=tape.dump bs=512k

これを行うときの速度は常に約4.7 MB / sです。また、ブロックサイズを変更するときにこの速度を超えることはできないようです。常に最大4.7MB / sに達します。

より多くの洞察を得るために読書操作中にTapestatを実行しましたが、私が見ることができる唯一のことは、読書作業が完了するのを100%(および99%)待っていたということでした。

st0         4       0        3.4M        0.0k   6%   0%   6%       0       0

Tape:     r/s     w/s   kB_read/s   kB_wrtn/s  %Rd  %Wr  %Oa    Rs/s    Ot/s
st0        72       0       36.0M        0.0k  98%   0%  98%       0       0

Tape:     r/s     w/s   kB_read/s   kB_wrtn/s  %Rd  %Wr  %Oa    Rs/s    Ot/s
st0        73       0       36.5M        0.0k 100%   0% 100%       0       0

Tape:     r/s     w/s   kB_read/s   kB_wrtn/s  %Rd  %Wr  %Oa    Rs/s    Ot/s
st0        72       0       36.0M        0.0k  98%   0%  98%       0       0

Tape:     r/s     w/s   kB_read/s   kB_wrtn/s  %Rd  %Wr  %Oa    Rs/s    Ot/s
st0        73       0       36.5M        0.0k 100%   0% 100%       0       0

Tape:     r/s     w/s   kB_read/s   kB_wrtn/s  %Rd  %Wr  %Oa    Rs/s    Ot/s
st0        72       0       36.0M        0.0k  98%   0%  98%       0       0

また、出力ファイル/ dev / nullを使用して読み取り操作を実行すると、速度は変わりません。したがって、デフォルトのディスク速度は「靴磨き」効果を引き起こすようには見えません。

私が使用したハードウェアは、SASを介してCentOS8を実行しているHPE DL385G7サーバーに接続されたHPE Ultrium 6外部テープドライブでした。

研究を始める場所の助けや案内をいただきありがとうございます!

ありがとう

答え1

まあ、私はついに適切な速度でテープを捨てることができました。現在私が使用しているプロセスは、基本的にテープの各部分に異なるブロックサイズを使用することに依存します。現在のブロックサイズが64 KBのテープの最初の2 KBを読み取り、数ブロック(テストに400を使用)に対して65 KB(異常であることがわかっています)に切り替えます。その後、コマンドが自動的に一致するまで64 KBに戻りますdd: error reading '/dev/nst0': Cannot allocate memory。この時点で、テープの最初の4GBが読み取られます。

テープの残りの部分は65 KBのブロックサイズに戻すことができ、速度は適切です(〜100 MB / s)。テープのデータを分析すると、各64KBブロックに1KBの「パディング」があるように見えるため、65KBブロックサイズを使用することは驚くべきことではありません。

[root@tapepoc TapeBlobExtractor]# dd if=/dev/nst0 of=/tape_dump/tape_1.dump bs=64k
dd: error reading '/dev/nst0': Cannot allocate memory
0+2 records in
0+2 records out
2048 bytes (2.0 kB, 2.0 KiB) copied, 3.28837 s, 0.6 kB/s
[root@tapepoc TapeBlobExtractor]# dd if=/dev/nst0 of=/tape_dump/tape_2.dump bs=65k count=400
dd: warning: partial read (7168 bytes); suggest iflag=fullblock
11+389 records in
11+389 records out
26167296 bytes (26 MB, 25 MiB) copied, 5.26119 s, 5.0 MB/s
[root@tapepoc TapeBlobExtractor]# dd if=/dev/nst0 of=/tape_dump/tape_3.dump bs=64k
dd: error reading '/dev/nst0': Cannot allocate memory
60413+4 records in
60413+4 records out
3959387136 bytes (4.0 GB, 3.7 GiB) copied, 17.4649 s, 227 MB/s
[root@tapepoc TapeBlobExtractor]# dd if=/dev/nst0 of=/tape_dump/tape_4.dump bs=65k
^C1024568+19746 records in
1024568+19746 records out
68377951232 bytes (68 GB, 64 GiB) copied, 641.83 s, 107 MB/s

答え2

対処する前に、いくつかの診断テストを実行して問題を特定することをお勧めします。

ヘッドの摩耗、ガイドローラーの問題、モーターの問題など、ドライブ関連の問題によりテープドライブの速度が遅くなります。その理由は、エラー率が高いとドライブが読み取りプロセスを再試行するためです。テープドライブは、欠陥、エッジの損傷、表面の残骸など、メディア関連の問題によって速度が遅くなる可能性があります。ディスク、PCIe、HBA、ケーブルなど、システム周辺のボトルネックも原因である可能性があります。したがって、正しい処置を取るには問題を分離する必要があります。

国際ビジネス機械工事ITDT適切な診断テストを実行できます。特に、このような状況では「システムテスト」が役に立ちます。システムテストは簡単な診断テストであり、ハードウェア圧縮の有無にかかわらず、さまざまなブロックサイズと転送速度の結果を示しています。このテストではデータが消去されるため、新しいメディアを使用する必要があります。

圧縮されていない転送速度が仕様(= 160 MB /秒)を超えると、新しいテープを使用しているため、ドライブの問題が原因です。さらに、圧縮された転送速度は、システム、ケーブル、またはHBAによる帯域幅制限を表します。

このテストには非常に短い長さのテープが含まれています。メディア全体をテストしたい場合は、「すべて書き込み」テストと呼ばれる別のテストがあります。フルボリューム書き込みには数時間かかります。テストが完了すると、書き込み容量と転送速度が表示されます。それぞれ2.5 TBと160 MB /秒を満たさない場合、根本的な原因はドライブ固有の問題です。

関連情報