サルベージに使える大量データコピーツール【TeraCopy/rsync】比較

2021年2月14日

Windows10からアクセスしているうちに、壊れてしまったLinkStation。

前回はlost+foundに行ってしまったファイルの拡張子を復活させる方法について書きました。

今回はRAID5で大量に溜めてしまったデータの移動方法について解説します。

結果的にはTeraCopyとrsyncという2つのツールを状況に応じて使い分けました。

本記事では、このTeraCopyとrsyncについて比較も含め、使い方のコツを紹介します。

RAID5の領域をddでcopyすることは出来ない

RAID5の領域にあるデータは3TBもあります。

最近では3TBのハードディスクも当たり前にありますが、RAID5で構築するArray領域は、購入したHDDの何倍もの容量があります。
(そのためのRAID5でもあります)

Linuxのddコマンドというのは非常に高速なので、データコピーならddで丸ごとコピーしてしまいたくなりますが、今回サルベージのために用意したのは1TBのハードディスク2本です。
大きいところから小さいところへddは出来ませんので、諦めましょう。

RAID5はもうこりごりなので、古いハードディスクは全てlow level formatにかけた上で、今後は「RAIDなし」と「RAID1」の混在にしたいと考えています。
そうなると、一旦、RAID5領域(3TB)を空っぽにして、ファイルシステムの再構成をする必要があります。

3TBのデータコピー・・いったい何時間かかるのだろう?
あとは、コピーが失敗してデータがbit単位でロストするのも困ります。verify機能は必須と思います。

Verify機能のあるコピーツール:TeraCopy

Verify機能のあるコピーツールを探して検討した結果、私が選定したツールが、表題の TeraCopyrsync です。

Windowsなら ⇒ TeraCopy
Linuxなら ⇒ rsync

といった具合で使い分けます。

TeraCopy は画像↓のようなモード設定で使います。

TeraCopy

・詳細表示画面にします
・チェックマークを黄緑色に(転送が完了したらテストを実行する) ← これがverifyです
・×マークは白色に(転送が完了したらウインドウを閉じる⇒オフに)

TeraCopy は SendTo にショートカットを追加して、右クリックメニューで使うことをお勧めします。
フォルダ丸ごとコピー出来ます。

コピーとverifyが終わると「削除」というボタンが押せるようになるので、押すとコピーした元のファイルを消してくれます。
必ず高速削除を選んで下さい。
ごみ箱には絶対に入りきりません。
そもそもLinkStationで作った共用フォルダは、削除しても trash ディレクトリに残りますので、すぐには無くなりません。

差分コピーが出来る:rsync

続いて rsync の使い方です。

rsyncはその名の通り、2つのフォルダを差分調査して同期する為に使うツールです。
今回はこれをLinux用のコピーツールとして使います。

LinkStationにtelnetでログインしてフォルダ単位のコピー作業をするなら rsync が便利です!

rsync のオプションは非常に沢山ありますが、今回の目的から考えると以下のオプションで十分です。

# rsync -a [コピーしたい元のフォルダの名前] [複製を作りたい先のフォルダ名=/mnt/disk1など]

追記:

# rsync -a -B 4096 --stats -8 --progress [コピー元] [コピー先フォルダ]

がベストでした。経過も表示されるし精神衛生上もGood。ブロックサイズは4096を指定すると何故か爆速に!

上記オプションではverifyまではしないそうです。
そこでコピーが完了したら、以下のコマンドで差異が無いことを確認します。

# diff -r [コピー元フォルダ名] [コピー先(の新しい)フォルダ名=/mnt/disk1/hogeなど]

何も表示されずに終了すれば成功です。

TeraCopyとrsyncの速度比較

TeraCopy も rsync もハードディスクの性能に依存しているとは思いますが、500GB程度のデータのコピーに2日間程度はかかるようです。

また、rsyncは「LinkStationの中だけでコピーが完結する」ので絶対に速いだろう・・と思っていたのですが、今回の環境では違いました。

不思議な事に、ネットワーク越しにコピーすることになる TeraCopy の方が、3割増しくらい高速にコピーが完了しました。

理由は速度を計算してみると分かります。

たとえば、500GBを2日間で割ると、23Mbpsしか出てないことになり、LANの速度よりずっと遅いです。

つまり、ネックになっているのはハードディスク単体の読み書き性能であり、コピーするときのアルゴリズムが肝なのです。

TeraCopyは大量データコピーの時のブロックサイズを最適化しているので、rsyncよりも効率的なのでしょう。

あと、これらのコピー作業は2つ同時に走らせては行けません

同じハードディスクへの大量読み書き処理を2つ同時に走らせると、処理が詰まってしまって何倍も遅くなってしまいます。

私が見たケースでは、一方の処理速度が 0.2Mbps まで落ちていましたので、100分の1です。これでは止まっているのと同じですね(汗)。

という訳で私はTeraCopyを中心にコピー作業を行っていきました。

Windows10にアップグレードしたら、LinkStationのHDDが壊れて立ち上がらなくなり、パソコンからLinuxの機能を駆使して完全復旧させた私の体験の一部始終を読みたい方は、以下の記事から進んで下さい。

故障したLinkStationから自力でデータ復旧した方法