LinkStation LS-QLのハードディスクが調子悪いため、新しいハードディスクを用意して、大量ファイルを移動しようとしています。
ファイルの移動に欠かせないのがコピーツールですが、有名なのはTeraCopyです。
ところがLinkStationの復旧ではLinuxやUbuntuを使うシーンが多いため、rsyncというLinux版のTeraCopyと言えるコピーツールも使いこなせると便利です。
私の場合はTeraCopyとrsyncという2つのコピーツールを状況に応じて使い分けて、大量ファイルの移動を行いました。
本記事では、TeraCopyとrsync、2つのコピーツールの機能比較/速度比較と、rsyncについては使い方も紹介します。
ハードディスクのコピーツール「dd」
TeraCopyとrsyncの比較に入る前に、ハードディスクをもっとシンプルに高速にコピーできるコピーツールがあるので、触れておきます。
それはLinuxのコマンド「dd」です。
もちろんLinkStationの内部OSやUbuntuでも使えます。
ddはハードディスクのパーティション単位でコピーできるので、同じサイズのパーティションが用意出来れば、非常に高速で便利です。
ところが、今回はコピーしたい元がRAID5で3TBあり、コピーしたい先が1TBの新品HDDということでサイズが合わず、ddを使うことを断念しました。
ddが使える方向けに、使い方をご紹介しておきます。
dd if=コピー元パーティション of=コピー先パーティション
これで大丈夫です。パーティションは「/dev/sdb1」のようにフルパスで書いて下さい。
本日紹介するTeraCopyとrsyncはパーティション単位ではなく「ファイル単位」でコピーするコピーツールです。
Windows上の大量ファイルコピーツール「TeraCopy」
TeraCopyは人気No.1の大量ファイルコピーツールなんですが、その特徴は以下の通りです。
- Windowsで使えるので馴染みやすい
- Verify機能/test機能があるためコピー時のデータ破損を回避できる
- 時間のかかるコピーは一時停止も出来る
- ドラッグアンドドロップなど感覚的に使える
今回は壊れたハードディスクからデータを救うことが目的なので、ちゃんとコピーできたかを確認するVerify機能(test機能)が必須です。
Verify機能のあるコピーツールは少ないのですが、今回取りあげた TeraCopy と rsync はそのVerify機能の備わっている優れものです。
Windowsなら ⇒ TeraCopy
Linuxなら ⇒ rsync
といった具合で使い分けます。
TeraCopy は画像↓のようなモード設定で使います。
・詳細表示画面にします
・チェックマークを黄緑色に(転送が完了したらテストを実行する) ← これがverifyです
・×マークは白色に(転送が完了したらウインドウを閉じる⇒オフに)
TeraCopy は SendTo にショートカットを追加して、右クリックメニューで使うことをお勧めします。
フォルダ丸ごとコピー出来ます。
コピーとverifyが終わると「削除」というボタンが押せるようになるので、押すとコピーした元のファイルを消してくれます。
必ず高速削除を選んで下さい。
ごみ箱には絶対に入りきりません。
そもそもLinkStationで作った共用フォルダは、削除しても trash ディレクトリに残りますので、すぐには無くなりません。
Ubuntuで使える大量ファイルコピーツール「rsync」
続いて rsync です。
rsyncは、Linux/Ubuntu/LinkStationの内部OSなどで使える大量ファイルコピーツールです。
したがってWindowsパソコンからは使えません。
rsyncはその名の通り、2つのフォルダを差分調査して同期する(syncする)為に使うツールです。
今回はこれをLinux用のコピーツールとして使います。
LinkStationにtelnetでログインしてフォルダ単位のコピー作業をするなら rsync が便利です!
rsync のオプションは非常に沢山ありますが、今回の目的から考えると以下のオプションで十分です。
# rsync -a [コピーしたい元のフォルダの名前] [複製を作りたい先のフォルダ名=/mnt/disk1など]
追記:
# rsync -a -B 4096 --stats -8 --progress [コピー元] [コピー先フォルダ]
がベストでした。経過も表示されるし精神衛生上もGood。ブロックサイズは4096を指定すると何故か爆速に!
上記オプションではverifyまではしません。
rsyncのverifyは癖があるので、明示的にONにしない方が安定して速いです。
(元々rsyncは比較しながらコピーするツールなのでverifyしない方が良いと理解しています)
その代わり、コピーが完了したら、以下の通り、diffコマンドで差異が無いことを確認します。
(diffコマンドはテキストの比較ツールですが、バイナリファイルの比較にも使えるんです)
# 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の機能を駆使して完全復旧させた私の体験の一部始終を読みたい方は、以下の記事から進んで下さい。
コメント