【IPoE/V6プラス/DS-Lite/rclone】3TBぐらいある外付けHDDをクラウド(Dropbox/Google Drive)に転送した件

一昔前のデータバックアップと言えば、外付けHDDに保存してRAIDとかで管理するのが一般的だったのではないでしょうか。そろそろ外付けHDD内のデータもクラウドに移せるんじゃないかな?と試行錯誤したお話。想像以上に大変で一ヶ月はバタバタしました…。

[はじめに] NTFSフォーマットのHDDにLinuxから書き込んだらデータが死んだ

私は当時Windowsで作業していたため、NTFSフォーマットの4TBあるHDDに、大体3TBぐらいのデータを保存してありました。今はMacBookProでの作業がメインとなっており、外付けを使わず本体のSSDに保存していましたが、さすがに容量が限界です。

そこで一部データをそのHDDに移動させようと思ったのですが、NTFSフォーマットされたHDDはMacから書き込みができません。一応 Mounty というMacからNTFSのHDDに書き込めるソフトがあったのですが、書き込めたりエラーになったり不安定です。

USB Type-Cとの相性なのでしょうかね。ということで、NTFSにも書き込みができるLinuxのPCを経由して書き込んだら、なんと破損!(笑)。LinuxとNTFSって相性悪いんですね…。幸い古いHDDにバックアップが残っていたのでクラウドに移そうと思いました。

[コスト計算] Dropbox/Google Driveは一度アップしたものは消えない

Windows時代の3TBデータは稀に確認する程度で使用頻度はほとんどありません。でも消えたら困るものばかり(笑)。今の時代は1万円で3TBのHDDを購入できるので、定期的に買い足していくのもありでしょう。2年に一度ぐらいで買うなら年5000円程度ですね。

ちなみにGoogle Driveはクラウドで業界最安値クラスですが、年間3〜4万円ぐらいです。Googleが管理してくれるのでデータ破損のリスクはほとんど無いと思いますが高い。

しかし、Google Drive の FAQ をよーく見てみると

保存容量をすべて使い切った場合、既存のファイルはすべて安全に保護されますが、新しいファイルは保存できなくなります。たとえば、次のようになります。

Google ドライブ: 新しいファイルの同期やアップロードを行うことができなくなり、パソコン上の Google ドライブ フォルダと [マイドライブ] の同期が停止します。Google ドキュメントは保存容量を使用しないため、引き続き作成できます。
https://support.google.com/drive/answer/6374270?hl=ja

つまり、「アップロード済のデータは削除はしないよ」ということですね!規約変わったりする可能性もありますが、4000円もあれば3TBのデータ容量を一ヶ月は使えるのです。ちなみに Amazon Drive や OneDrive は容量オーバーした数ヶ月後には削除されます。

これで Google Drive 一択かなと思ったのですが、仕様が特殊(後述します)だったので、Dropbox も併用しました。1アカウントあたり1TBまでですが、3つ作って3TBに。

Dropbox フォルダがいっぱいで無料ストレージ容量が不足していると、ファイルの同期が停止します。同期が停止してもファイルが削除されることはなく、アカウントのストレージ容量を制限内に戻すと同期が再開します。
https://www.dropbox.com/ja/help/space/over-storage-limit

どちらかの規約が急に変わってデータが削除されることになった場合にも対応できます。

[帯域制限] 制限なしのIPoE(V6プラス/DS-Lite)でアップロードしたいが市販ルーター全てイマイチ

「んじゃ早速クラウドにバックアップしよう!」というわけにもいきません。3TBなんて大容量のデータをどうアップロードするかです。普通のプロバイダは一日あたり30GBぐらいが目安でしょうから、規約に従って普通にやると数ヶ月以上かかります(笑)。

個人所有のでっかいストレージのバックアップについて」というエントリーも非常に参考になりましたがNURO未対応の地域です。そこで色々調べていると、どうやら最近話題のIPoE(V6プラス/DS-Lite)というものを使えば、なんと帯域制限が無いかも!

しかし、これが想像以上に鬼門だったので別の記事にしましたが、「IPoEに対応している家庭用ルーターのほぼ全てに、現在不具合が発生している」という事実です。

ウチは「ひかりTV」「Chromecast」などの特殊な機器も多く、かなり複雑な状況なのですが、V6プラス/DS-Lite対応機で人気のあるアイ・オー・データの「WN-AX1167GR」を使うと「ひかりTV」が見れなかったり、複数Wi-Fiに繋げるとルーターが死にます。

多分、ローカルIPの自動振り分け(DHCPサーバ/自動割当)機能が不安定なのかなと思って固定にしようと思ったのですが、アイ・オー・データのルーターは10台までしか設定できません。DHCPを手動(ローカルIP固定)設定するならバッファロー製品一択です。

そこで候補に上がるのが、「WXR-1750DHP2/WXR-1751DHP2」か「WXR-1900DHP3/WXR-1901DHP3」ですが調べると不具合報告ありまくり。結局、ひかり電話レンタルで届くホームゲートウェイが一番無難という選択になるようですが…。

最終的には、WXR-1900DHP3 をチューニングして安定動作しています。

[rclone] 「バックアップと同期」経由もブラウザ経由も遅いので rclone でアップロード

やっとクラウドにアップロードする時が来ました。しかしここでも問題が。試しに Google Drive に500GBあるディレクトリを同期しようと思ったら、「スキャン中です」という表示のまま、10時間以上経過しても開始されませんでした。ブラウザ経由も一緒です。

結局、rclone を使うことで対応しました。

rclone copy --log-file=/[ログファイルの保存用パス] --transfers 6 -v [ローカルパス] [Google Drive パス]

–log-file と -v をセットしてログを保存しておくと速度のチェックができます。

バックアップ用途であれば、syncではなくcopyを使ったほうが確実です。Google Drive に sync でローカルパスのみ変更して同期すると、リモートで「同じディレクトリに同じ名前のファイルが存在」した上で、古い方が rclone で見つからないエラーが発生。

おそらく、Google Drive では同一ファイルパスが複数存在しうるという特殊な仕様のせいかと思います。リネームしても重複除去用の dedupe コマンドもダメでした。

また、Google Drive の場合は1秒間に2ファイル以上アップロードできないという制約もあります。単純にバックアップのみで利用するなら Dropbox の方が安定するでしょう。ただ、Dropbox も大文字小文字を区別しないなどの細かい制約はあるようです。

でも Google Drive はファイル内検索が無料なんですよね…。用途によると思います。

  • Google Drive – rcloneとの相性?や制限など不安定だがファイル内検索できる。
  • Dropbox – 大文字小文字の区別不可、一部ファイルはアップ不可だけど安定中。

ちなみに私は5プロセスぐらいで並列処理し、そこそこの速度で対応できています。ただ長い間回していると速度が遅くなるので、1〜2日に1回は起動しなすと良いでしょう。差分チェックは相当高速に処理されるようなので、起動しっぱなしよりは断然速いです。

[gdrive] Google Drive でゴミ箱を完全に空にする

Google Drive に中途半端にアップロードしてしまったファイル郡を削除しようとブラウザから削除したのですが、どうも削除するだけで時間がかかる模様です。そこで rclone の cleanup コマンドを使って、そこそこ一気に消せました。

ただ、先ほど書いたようにファイルによっては rclone が見つけることができないようで、かなりの数が削除できないままでした。この消せないファイルというのは、ゴミ箱一覧にも表示されず、ワイルドカードで検索したときだけ出てくる感じです(汗

一応の対策として、gdrive を使えば表示と削除ができるっぽいのでコレを使い、

while : ; do i=$((i+1)) ; gdrive list --no-header --order 'quotaBytesUsed desc' -q 'trashed = true' | cut  -d ' ' -f 1 | xargs -I{} gdrive delete {} -r ; sleep 1 ; done

のようにファイルサイズが大きい順に無限ループで削除しまくっています。

まとめ

大きいファイルのデータ転送、現実的になってきましたがまだまだ難易度は高いです。あと Google Drive は思った以上にデータのバックアップに向いていないようなので、実用性が高いのものだけ利用したほうが良いかもしれませんね。