Centos
Linux CentOS 中 LTO6 磁帶的讀取速度非常低
尊敬的技術專家,
幾個星期以來,我一直在嘗試從 LTO6 磁帶中提取數據,但在速度部門沒有取得太大的成功。
我正在使用“dd”將磁帶內容轉儲到一個大的二進製文件中,因為我不知道磁帶是以什麼格式寫入的(絕對不是 TAR)。基本上我使用這個命令:
dd if=/dev/nst0 of=tape.dump bs=512k
當我這樣做時,我總是得到大約 4.7MB/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 外部磁帶驅動器。
任何幫助或開始研究的方向將不勝感激!
謝謝
好吧,我終於設法以不錯的速度傾倒磁帶。我現在使用的過程基本上依賴於對磁帶的不同部分使用不同的塊大小。目前,我以 64KB 的塊大小讀取磁帶的前 2KB,然後切換到 65KB(我知道很奇怪)幾個塊(用 400 進行測試)。之後切換回 64KB,直到該命令自動以
dd: error reading '/dev/nst0': Cannot allocate memory
. 在這個 pont 讀取磁帶的前 4GB。對於磁帶的其餘部分,我可以切換回 65KB 的塊大小,然後速度就不錯了(~100MB/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