Posts tagged ‘backup services comparison’

ようやく、オンラインバックアップの構成が落ち着いた感じだ。自分でも予想していなかったのだが(でも、いつものことだw)、いろいろな問題が起こって二転三転して、想定外の結論になった。予想外に時間が掛かったし、今後も何かあるかも知れないので、早目に着手して良かった。それにしても、いつものことながら、予想外に疲れた。

結局、僕にはDuplicacyというオンラインストレージ対応のバックアップソフトとBackblazeのオンラインストレージB2 Cloud Storageを組み合わせるのが費用対効果で最適となった。バックアップするデータ量を減らして350GB程度(ストレージでのデータ量)にしたので※、少し余裕を見ても、月額US$2(年間2600円)程度になる見込みだ。(去年終了した)CrashPlanの個人プランは(いくらだったか忘れたが、調べたら)月額US$5だったので、従来の半分以下に(年間4千円程度も)減らせそうだし、後継のビジネスプランは月額US$10なので、来年継続するよりも大幅に安い。

※減らしたのは音楽データである。そのほとんどはCDを取り込んだもので、基本的には、データがなくなっても再度取り込めばいい。ところが、実際問題として、全部なくなった時に再度数百枚のCDを取り込む気にはなれない。が、今はSpotifyがあるから、そこにあるものはそれで聴けばいいだろうと考えた。

すると、バックアップが必要なのは、(ほんのわずかにある)自分の演奏や昔のカセット・LPなどからの曲やダウンロード購入したものや、手持ちやレンタルしたCDのうちSpotifyにないものだけとなるので、そういう曲を選別した。選別は、スクリプトを作って自動判別しようと思ったが、作るのが面倒だったので、手でアーティストごとに検索した。つもりだったが、実際には手持ちのCDについては調べてなかった。それは大変だ。。。やっぱり、お金に任せて全部バックアップするのがいいのかも知れない。

良く考えると、オンラインバックアップからしかリストアできない場合というのは、災害などでPC本体はおろか外付けHDDもなくなってしまった状態だろうから、そんな時はCDだってないだろうから、取り込み直すことはできない。また、Spotifyのレパートリーかどうかで分類すると、別のサービスに乗り換えたら再度分類する必要が出て煩雑だ(これはベンダーロックインのようなものだ)。そうすると、全部バックアップするか、全然しないか、特別なもの(例: 再入手不可能なもの)だけするかになる。全部はいかにも無駄なので、特別なものだけバックアップするのが良さそうだ。そういうものは果たして何枚あるだろうか? (調べるのはおもしろそうだ) → 結構な数になった。めぼしいもの112アルバム(約19GB)を追加バックアップしたら、B2の総データ量は410GBになった。 (8/12 4:14記)

なお、ストレージでのデータ量は圧縮されているため、元のデータ量はもっと多い。今の構成にする時に計算し直さなかったのだが、500GB程度はあるはずで、それが350GB程度までに減ったのはどうも信じられない。Duplicacyの性能がいいのかも知れないが、バックアップ対象設定の誤りで抜けがないか心配なので、追って確認したい。 → バックアップされたファイル一覧で確認したら、問題なかった。今回の構成にする時に更にデータ量を減らしていた。 (8/12 4:14記)

仮に従来と同じデータ量(1TB程度)をバックアップすることにした場合でも、月額US$5.1(年間6800円)程度となり、今までのCrashPlan(個人プラン)と同等になるから、しばらくは実際に掛かった料金を見ながら検討したい。

なお、Duplicacyはファイル変更の履歴を保存できるため、データ量が想定以上に増えないかやAPI実行回数が異常に増えないかの監視が必要だ(どちらも料金が増える原因のため)。

それにしても、バックアップソフトにDuplicacy, Duplicati, Duplicityと、似たような名前のものがいくつもあって、大変紛らわしい。"De-duplication"(重複排除)から来ているのだろうが、最初はどれだったのか気になる。どうでもいいことだが。

それはともかく、試したほとんどのソフトが(機能・性能・安定性の点で)まともに使えなかったのは全く嘆かわしい。Linuxで使うのにシンボリックリンクに対応していないもの、変更のスキャンや転送やリストアや変更履歴の整理(prune)が遅過ぎるもの、スリープ(からの復帰)に対応していないもの、処理を中断すると管理データが壊れるなど堅牢性や安定性に欠けるものなどがあった。僕の環境や使い方が特殊だとは思えないので、細かいことをちゃんと考えて作っていないのだろうか。バックアップソフトでそれは困るのだが・・・

そういう点で、Duplicacyは信じられないほど期待通りの機能・性能(「まとも」)なので感心している。転送速度が安定して高速(おそらくCrashPlanの10倍以上)なのはいいし、初回のバックアップは別として、その後のスキャンもpruneも高速かつ負荷が低い(おそらくCrashPlanの1/5以下)ので、定期実行するにはとても良い。いつものことだが、しつこく探してダメ元で試して良かったw そして、コマンドライン版が無料なのは大変ありがたい。コマンドの使い方が独特なので、GUIの方が楽だったとは思うが、設定が確定した後はGUIの価値はないので、毎年お金を払うよりはいいと思う。

運用の話を書くと、バックアップは6時間ごとに自動で行わせている。バックアップ間隔を短くする価値があるのか良く分からない(今は趣味だけなので、おそらくない?)ので、しばらく状況をみて調整したい。変更履歴は、1週間までは毎日1個、1か月(30日)までは1週間に1個、1年(360日)までは30日に1個残すことにした。これも、どういう設定がいいのか良く分からない。ただ、今まで、履歴を使ったことや欲しかったことがほとんどない(そもそも、オンラインからリストアしたことがほとんどない)ので、多くを保存する必要はない気はする。変更履歴の整理(prune)間隔は1日に1回とした。

バックアップの履歴の必要性について個人的な考えを書くと、おそらく、履歴は要らない。プログラムなどの開発の時に使う、gitなどのバージョン管理システムの方がずっといい。というのは、定期バックアップはいつ実行されるか不明なので、残っているものが必ずしも有用なもの(「欲しかったもの」)とは限らないからだ。手動で実施するにしても、忘れたり間隔が長くなり過ぎる可能性がある。それなら、キリのいい時に自分で(gitなどに)コミット(保存)した方がずっといい。コミット時にコメントも付けられるから、それがどういうものかも分かる。そして、そのリポジトリをバックアップしておけば、安心だろう。

あと、プログラムじゃないもの(例: システムの設定ファイル)については、「あ、やっちゃった!」と思ったら、そのファイル内にコメントとして残しておいたオリジナルに戻すか、記憶で戻すか、あらかじめ保存しておいたファイル(例: *.orig)に戻すか、すぐにバックアップ(もしあれば)から戻すか、再度作り直すかするかwするので、やっぱり履歴は要らない気がする。この場合は、バックアップ自体が役に立たないことが結構ある。

まあ、履歴に慣れ親しんだ人だと効果的に使えるのだろうけど、履歴に頼り過ぎてしまうと、過酷な環境では生きて行けなくなってしまうからw、余り良くないと思う。 (8/12 17:04)

少し話が逸れるが、運用に関連しているので書くと、このブログサーバのバックアップも、最終的にはB2にするようにした。今までは、週一回、PCの外付けHDDにバックアップするだけだったが、今回から、週一回のバックアップをPCの内蔵HDDに行い、そこを外付けHDDとDuplicacyのバックアップ対象にしておき、その後の定期バックアップでB2に送るようにした。実は、サーバにもDuplicacyを入れれば直接B2にバックアップすることが可能だが、サーバにB2のアカウント情報を入れるのは不安なので、このように間接的なことをしている。

実装の話になるが、バックアップなどを定期的に実行するのにはcrontabを使っている。crontabを使う際の問題として、スリープからの復帰後に、スリープ中に行われるべきだったスケジュールが実行されないために※、スリープ中にスケジュールがあると、最長6時間、バックアップが遅れる。そのため、バックアップコマンド(スクリプト)を2時間ごとに起動して、最長(6時間でなく)2時間の遅れで、スリープ中に行われるべきだったバックアップが行えるようにした。そして、そのコマンドの中で、前回からのバックアップやpruneからの経過時間が最小間隔(例: 6時間、1日)より短い場合には何もしないようにして、バックアップ間隔を維持するようにした。なお、コマンド起動間隔の2時間は1時間でも30分でもいいが、そこまで厳密でなくていいので、長目にした。

※実際の動作を見たら、スリープ中に行われるべきだったスケジュールは必ずしも実行されない訳ではなく、スリープからの復帰後に実行される場合がある(例: スリープ中だった14:04のスケジュールが復帰後の15:08に実行された)。ただ、実行されない場合もあったので、その違いが良く分からない。スリープが長時間で、複数回のスケジュールが飛んだ場合は実行を諦めるのだろうか。あるいは、復帰した時刻と実行すべきだった時刻の差で判断しているのか。あるいは、僕の思い違いで、最後に飛ばされた1回は必ず実行されるのか。マニュアルに書いてあるのかも知れないが、無精なので調べていない。 (8/12 16:10)

それから、仮にバックアップ処理が6時間以上に長引いた場合や間違って実行した時に複数のバックアップ処理が同時に実行されるのは良くないので、既に実行中の場合に後から実行したものは何もしないで終わるようにした。こういうのはGUIだと何も考えずに対処されるのだろうが、Linux版がないので仕方ない・・・

余談だが、光回線が予想以上に優秀で、上下同時に使ってもどちらも80Mbps以上出たので感心した。あと、今は基本的に転送データ量での速度制限はしない(以前、「混雑した時に制限するポリシーに変更した」という連絡があった)ようで、数日間、断続的に80Mbps前後でアップロードし続けていても大丈夫だった(いつ警告が来るか心配ではあったがw)。

光回線を上下同時に使っても80Mbps以上出た(左の「金 06」の上の上下に大きく振れているところ)。

(8/12 16:36 若干、加筆・修正; 2023/8/3 6:40 関連ページにアクセスが増えているので、期限切れで非公開にならないようにした。)

  •  0
  •  0
Keys: , , , , , ,

[8/11 1:59 ResticとWasabiの評価で問題が見つかったため結論を変更し、その件を記載した。 → まとめ]
[8/4 12:24 8/2の更新後のDuplicatiの試用中に新たな情報が得られたので、再度、結論などを変更した。結局、最初の結論に戻った。]
[8/2 15:45 投稿後に新たな情報が得られたので、結論などを変更した。見難くならない限り、前回の記述を取り消し線で残した。]

現在使っているオンライン(クラウド)バックアップサービスCrashPlanは、Linux対応で定額制(使用量・転送量が無制限)で良かったのだが、去年、個人向けサービスを終了してしまって、Linuxで使う場合はビジネス用プランに移行せざるを得なくなって、かなりの値上げ(確か、年間5千円程度増)になった。来年の1月までは大幅な割り引き(75%引き)になっているので、ムカつきながらも(それで止めた人は多そうだ)とりあえず使っているが、今年中に移行先を見つける必要がある。本音を言うと、Windowsの時に使っていたBackblazeがLinuxでも使えれば、それで全く問題ないのだが、サポートされていないので他を探すしかない。

検討作業は9月頃から始める予定だったのだが、近頃時間ができたのでいろいろ試してみたら、今まで知らなかった新しいことが分かった。ここでは、そういうことも紹介したい。

結論を先に書くと、Backblazeや個人向けCrashPlanほど適当なものはなく、いくつかのものを組み合わせて実現するしかない。今は、以下のようにオンラインストレージ対応のバックアッププログラムを使って、オンラインストレージにデータをバックアップする構成が(費用対効果が)最も良さそうだと考えている。

別々の構成は、面倒だったり費用がかさむ気がするが、光回線とプロバイダのような感じで、それぞれが選べる点がいいのかも知れない。料金が変わったなどの場合に、気軽に片方(主にストレージか)を換えることも可能だ。それから、バックアッププログラムとストレージが別だと、仮にストレージに侵入された場合でも、記録データのフォーマットや暗号化の情報がなければ、データが流出しにくいことが期待できる。

実際には、フォーマットは公開されていたり、そうでなくても解析すれば分かるだろうし、暗号化だってしょぼかったら解読されてしまうが、データの暗号化と記録が一体化したバックアップサービスの場合よりは強固そうだ。強力なのは、ブロックチェーンのように、データを分割して世界中のサーバに分散して記録することではないだろうか。

試しているうちに、いくつかの必須条件や注意点が見つかったので、列挙する。

  1. クライアント(PC)側から鍵(パスワード)を指定してデータの暗号化ができること。更に、その鍵はサーバには保存しないこと。
  2. シンボリックリンクをサポートしていること。
  3. スリープからの復帰後にバックアップが自動で再開すること。
  4. 転送速度が高速なこと。
  5. 可能なら、ストレージ側でファイル・ディレクトリ名が見えないこと。
  6. サーバは、なるべく2要素認証であること。

1は、サーバ(ストレージ)側でデータがどのように扱われるか分からない(例: サーバのHDDが壊れた時、どう破棄されるか)し、サーバのアカウントが破られる可能性があるので、こちらからデータを送る時に暗号化する必要がある。「サーバ側で***方式で暗号化して保存する、強固なセキュリティ」などと書かれていてもそれを信じてはいけないと思う。あと、「SSL/TLSで(通信経路を)暗号化」とか書いてあるのは当たり前過ぎて笑えるが、それだけしかなかったら、全く駄目なサービスだ。

2は、Linux(UNIX)で使うなら必須だ。シンボリックリンクはWindowsのショートカット(キーでない方)やエイリアスに相当するもので、データ量としては取るに足らないが、情報としては重要なこともある。あるものが欠けたらシステムが動かなくなることもある。最初は、バックアップするのはテキストや写真など、通常のデータが主だから、なくてもいいか(我慢する)とも思ったが、復旧時に、記憶を頼りに手作業で直すのは現実的でないと思うし、何も考えずに保存できなかったら、それはバックアップとは言えないと思う。試したうちで、「Linux対応」とと書いてあったりLinux用のアプリなのに、さらっとシンボリックリンクをサポートしないもの(iDrive, Rclone)があったので、注意が必要だ。そういえば、今使っているCrashPlanが大丈夫か、心配になって来たw

3は、バックアップを定期的に自動で行う場合に、デスクトップPCなので、常時稼働させている訳ではないから、バックアップ中にスリープできなかったり、スリープからの復帰後に手動での再開処理が要るのでは「使えない」ということだ。スリープさせたら、復帰後に何もしなくてもバックアップが再開されて欲しい。

5も1と同様で、ファイル・ディレクトリ名が見えない方が、セキュリティの点で望ましいだろう。

6は今では当たり前のことだが、まだ少なくて、従来のパスワード方式が多い。そのため、1のデータ暗号化をする価値があると思う。

今回試したか検討したものと評価を以下に書く。

バックアップサービス (アプリ+ストレージ)

  • ×× iDrive
    • GUI
    • シンボリックリンク: NG (無視する)
    • スリープ後の復帰: NG (回復しない)
    • 高速: 約10MB/s
    • サポートがひどい。
    • 安い: CrashPlanからの移行ユーザには大幅な割り引き(最初の年は9割引き!)があるが、シンボリックリンクをサポートしていない時点で論外(安さにつられて、気付かずに加入してしまった)。「安かろう悪かろう」の典型。
    • 暗号化鍵をサーバに保存しているフシがある。
    • (8/21 19:17追記) 入ってすぐに止めたら、頼んでいないのに返金してくれていた。その点は意外にまともだった。なお、為替変動のため、数円損したw
  • × pCloud
    • GUI
    • 高い (2TB: $96/年)
    • クライアント側でのデータの暗号化ができない(別料金)。

バックアップアプリ (ストレージ別)

  • × CloudBerry
    • GUI
    • 動作がおかしい・不安定 (起動しないことがある、ファイル数・データ量の表示がおかしいことがある)
    • シンボリックリンク: OK
    • スリープ後の復帰: OK
    • ストレージでファイル名が見えてしまう。
    • 中速: 約3.3MB/s
    • Wasabiが使えない(設定してもエラーになる)。
  • × qBackup
    • GUI
    • シンボリックリンク: OK
    • スリープ後の復帰: OK
    • ブロック化しているため、ファイル・ディレクトリ名は見えない。
    • 高速: 約7.7MB/s
    • ファイルのサイズと更新日時だけで更新を判定している(他のソフトがどうしているかは未確認)。
    • データをブロック化しているため、バックアップの一部でも壊れた場合に修復できない。直すには全体を作り直すしかない。→ 大規模・長期間使用で破綻するリスクが高い。
  • × GoodSync
    • コマンドラインのみで、これがGUIのバックエンドそのものという感じで、オプションの数が多過ぎるうえに資料も少なくて、どうしていいか分からない(考えたくない気分になった)
    • 設計が古くて、いかにもWindows的(例: Linux版なのに、オプションの先頭の文字が"-"でなくて"/"、ヘルプは"/?"。すごくおぞましいし、パスのセパレータがどうなるのか分からなかったので、止めた)。
  • × Duplicacy
    • コマンドライン。GUIもあるらしいが、見つからなかった。← Linux用GUIは開発遅延中。
    • GUIは有料で毎年お金が掛かる: $20+$5/年、コマンドラインは個人使用は無料。
    • シンボリックリンク: OK
    • データをブロック化しているため、ファイル・ディレクトリ名は見えない。
    • (ブロック化しているので、)破損に関しての信頼性は不明だが、正当性のチェック機能があるので、異常の検出は可能。
    • 高速: 7MB/s前後 (ただし、処理スレッド数を増やさないと遅い)
    • リストアも高速
    • ファイルのスキャンも高速
    • prune(不要な過去バックアップの削除)も遅くない。
    • スリープ後の復帰: OK (10-15分程度)
    • Wasabiが使える。
    • バックアップ除外指定に正規表現が使える。
    • 負荷は高くない。(Load ave.は最大1.5前後)
    • サーバ(ストレージ)に暗号化鍵を保存しない。
    • リポジトリのロックを行わない。
  • ×× Duplicati
    • Web UI (コマンドラインも可)
    • シンボリックリンク: OK
    • データをブロック化しているため、ファイル・ディレクトリ名は見えない。
    • (ブロック化しているので、)破損に関しての信頼性は不明だが、正当性のチェック機能があるので、異常の検出は可能。
    • バックアップデータ(リポジトリ)の堅牢性に欠ける。
      • バックアップを中断したらリポジトリが破損し、確かに異常検出はされたが、修復処理をしても回復できなかった。
    • ブロックのファイルが単一ディレクトリに格納されるので、数が増え過ぎた時に問題が起こらないか不安 (センスが悪い)
    • 処理が遅い。 高速: 8MB/s前後
    • リストアも高速だが、通信速度以上の速度になるので、動作が疑わしい。
    • ファイルのスキャンが遅い。resticの1/3程度。
    • スリープ後の復帰: NG (回復しない) OK (復帰まで15分くらい掛かる)
    • Wasabiが使えない(設定してもエラーになる)使える。
    • バックアップ除外指定に正規表現が使える。
    • CPU温度が高目(resticより5℃くらい高い= 負荷が高い?)。
    • Windows版の移植(Monoというもので動かしている)。機能的には問題ないが、負荷が高いことや動作がおかしいことがあるのはここに起因している?
  • × restic
    • コマンドラインのみ。
    • シンボリックリンク: OK
    • スリープ後の復帰: NG (回復しない場合がある)
    • データをブロック化しているため、ファイル・ディレクトリ名は見えない。
    • (ブロック化しているので、)破損に関しての信頼性は不明だが、正当性のチェック機能があり、異常の検出と修復が可能。
    • ファイルのスキャンが遅いことがある。
    • 高速: 約9.6MB/s (遅い場合もある)
    • リストアが遅い。: 約1MB/s
    • prune(不要な過去バックアップの削除)がすごく遅い。
    • バックアップ先のストレージをLinuxにマウントしてアクセスできるのは便利。
    • Wasabiが使える。
    • サーバ(ストレージ)に暗号化した暗号化鍵を保存する。
    • バックアップ除外指定に正規表現が使えない(シェルのパターンのような簡易なもの)。
    • 正常に終了してもロックが解除されず、次回エラーになる。
    • B2でrcloneと一緒に使う場合、通信エラーが頻発することがある。
  • × Rclone
    • コマンドラインのみ。
    • シンボリックリンク: NG (実体をコピーするか無視を指定)
    • スリープ後の復帰: OK
    • ストレージでファイル名が見えてしまう。
    • ストレージに対してls(ファイル一覧)などのコマンドが実行できるのは便利。
    • 高速
    • Wasabiが使える。

オンラインストレージ

  • × Amazon AWS
    • 一番安いもの(Glacier)を選んでも、やっぱり高い。
    • 転送量なども効いてくるので、費用の見積もりが難しい(面倒)。
  • × Oracle
    • ストレージは安そうなのだが、単体で使えるのか謎だった(相変わらず売る気がない?)。
  • Backblaze B2 Cloud Storage
    • 安い: $0.005/GB/月 → 1TBの場合、$5.1/月
    • 最低利用料金がない。
    • 転送量とAPI実行回数に課金あり。
    • 10GBまで無料で使えるが、ダウンロード制限がキツくて、満足に試せない(リストアの確認ができなかった)。
    • Webは2要素認証
    • Webの使い勝手はいい。使っていて気持ちいい。
  • Wasabi
    • 最安: $0.0049/GB/月 → 1TBの場合、$5/月
    • 最低利用料金($4.9/月= 1TB分)がある。
    • 転送量とAPI実行回数に課金なし。
    • 30日間、1TBまで無料で使える(クレジットカードの登録不要)。B2のような制限がないので、かなり充分に試せる。
    • 新しいサービスなので、信頼性などには疑問あり。なぜか、対応しているはずなのに使えないアプリや、謎のエラーが出たりする。
      • 謎のエラーは解決した(8/1の追記を参照のこと)。 (8/1 11:21)
    • 格納データ量が1日に1回しか計算(更新)されない。
    • Webの使い勝手はいい。

その他 (今回気付いた現状の問題)

  • CrashPlan
    • 今回試したものに比べて、かなり遅い(更新のスキャンも転送も)ことが分かった。
    • いつも転送ばかりしている感じ。
    • アプリが簡素過ぎて(改悪されてしまった)、見ても状態がほとんど分からず、本当にバックアップされているのか不安になる。

[以下の灰色部の記述は古いが、履歴として残す。 8/4 14:29]

最初は駄目だと思っていた、Duplicatiが一番良さそうである。単一のアプリですべての条件を満足するし、Web UIがあるのでバックアップ用のスクリプトを作る必要がなく、状態監視・操作・設定が楽でいい。基本動作の確認後、Wasabiの試用期限まで、実運用の状態でバックアップしてみて、問題の有無や使い勝手などを確認しようと思う。

Duplicatiのweb画面 (バケット名は隠した)

(8/3 8:57追記) それにしても、resticが暗号化鍵をサーバに保存するという仕様は全く不可解だ。昨日、見つけた比較サイトで知って唖然とした。もちろん、暗号化鍵は更に暗号化して保存しているようだが、なぜそんな危険を冒すのだろうか。多少便利になるのだろうか? 理解できない。

それで、resticのサイトを確認したところ、ユーザの設定したパスワード自体はサーバに保存していないが、それから導かれた、暗号化や認証に使う鍵はサーバに保存している。更に資料を読むと、そうする理由が書いてあって、パスワードの変更を容易にできるようにするためとのことだ。つまり、パスワードと暗号化鍵を同じものにすると、(漏洩対策などのために)パスワードを変更するには、全データを再暗号化する必要が生じる。一方、resticの方式ではその必要はない。確かにそうだが、現実問題として、どちらがいいのだろうか。resticの方式が破られる可能性はないのだろうか?

いずれにしても、resticはリストアが遅すぎて実用的でないから、現時点では使うことはできない。

(8/4 12:24, 13:51追記) Duplicatiを実際の条件で試用していたら、どうも動作が不安定な感じがした。例えば、スキャン速度やデータ送信速度が実行のたびに大きく異なる(すごく遅い場合がある)ことである。更に、リストアが速過ぎる(通信速度を大幅に超えていた)ので、どうも信頼できない印象を受けた。

それで、バックアップを中断してresticを試したのだが、使い勝手の点で劣るため、気が変わって再度Duplicatiでのバックアップを再開したら、リポジトリが破損しているエラーが出た。それで修復処理を実行したのだが、どうしても直らなかった。

どうやら、Duplicatiはリポジトリの構造が脆弱(壊れやすく復旧できない)なようだ。壊れるだけならいいが、バックアップの中断程度で回復できなかったら、実使用には全く耐えられないから、不採用とし、resticでの評価を再開している。

ちなみに、resticも、再開しようとしたら、リポジトリのチェックが要るというエラーにはなったが、ちゃんと修復できてバックアップが再開できた。なお、ストレージに保存済みのデータをチェックしているのか、データ送信が再開するまでには結構時間が掛かった。それでも、中断まで書き込んでいた時間よりは短かった(6時間書き込んでいて、チェック(?)は1時間程度だった)。

resticの問題は、リストアがすごく遅いことと暗号化鍵がストレージに保存されることと使い勝手が劣ることだ。リストアの遅さは我慢するしかないが、大規模なリストアでなければ、ストレージをマウントして、ファイル一覧を見ながら1個ずつリストアできるというメリットはある。暗号化鍵の点は、リポジトリのパスワードが破られなければ安全なので、強度はDuplicatiと同等なのかも知れない。ただ、resticの仕組みが破られたりやバグが突かれたら駄目だろうから、そこは信用するしかない。使い勝手については、スクリプトを作るなどして自分で解決したり、我慢する必要がある。

 

[8/4 12:24 結論が変わったので、再度有効にした。][以下の灰色部の記述は古いが、履歴として残す。 8/2 15:45]

残念ながら、現状では単一のバックアップアプリ・サービスで最適なものはなかった。アプリの機能ではresticが一番良かったのだが、スリープ非対応なので、最初はそこをうまく対処して(バックアップ中にスリープしたら、復帰後にアプリを再起動させる)使おうと思っていた。

そのためのスクリプトも作ったのだが、resticとRcloneが組み合わせられれば(「いいとこ取り」ができれば)最強だと思って更に調べたら、本当に組み合わせて使えることが分かり、今はその形態で、実使用に近い大容量(500GB-1TB)・長時間のバックアップを試している。

なぜ2つを組み合わせるといいかというと、resticが駄目なのは、スリープからの復帰後に失敗した通信をリトライしないからなので、バックアップデータの処理はシンボリックリンクをサポートするresticにやらせ、オンラインストレージへの記録は、通信の失敗時にリトライするRcloneに任せればいいのである。以下のような構成である。

バックアップデータ → restic → Rclone →(ネット)→ オンラインストレージ

なお、resticとRcloneを組み合わせた場合には、restic単体に比べて若干転送速度が低下する(約8.8MB/s)。組み合わせたせいで遅くなるのか、なぜかRcloneではWasabiのリージョンがUS東海岸しか選べないせいなのかは不明である。それでも、CrashPlanよりは充分に速い(確か10倍以上)ので問題はない。

(8/1 2:50 加筆・修正)

(8/1 11:26追記) Rcloneで、WasabiのUS西海岸リージョン(us-west-1)へのアクセスがエラーになる問題は解決した。専用のホスト名(s3.us-west-1.wasabisys.com)を指定する必要があった。(→ 参照) 今の評価が終わったら、速度を比較したい。

(8/2 2:16追記) 西海岸リージョンを試したが、劇的に速い訳ではなく、東海岸より12%程度速いだけだった。Rcloneを入れると速度が低下するようだ。それでも、経路が近い方が問題の起こるリスクは下がるので、こちらを使うことにする。

次に、リストアを試したら、リストア自体は問題なくできたのだが、速度が約720KB/sと、かなり遅かった。B2でも遅かったので、サーバが遅い訳ではなく、リストア処理が重いのだろうと思う。Rcloneを通さないで試したら、1.5倍くらい速くなることが分かった。リストアは定期的に行うものではないし、リストア中にスリープするような危険は冒したくないので、restic実行用スクリプトを修正して、リストア時はRcloneを通さないようにした。

この条件で再度テストを行った後、試用期間いっぱいまで、実運用の状態でバックアップしてみて、問題の有無や使い勝手などを確認しようと思う。

resticを使ってみたら、さまざまな問題が出て来て、かなり不完全でとても実用には耐えないと思った。例えば、resticはバックアップなどの処理の際にリポジトリ(バックアップデータ)をロックした後、正常に処理を終えてもロックを解除しないので、自分で解除処理をしないと次回にエラーになってしまう。これだけでも出来を疑ってしまう。

それから、画像のように圧縮できない小さいファイルが多い場合や、大きなファイルの転送が遅く、バックアップ対象変更時の再スキャンも遅く、prune処理(過去の不要なバックアップ履歴の削除)がかなり遅い(数時間掛かる)。更に、prune処理中にスリープしたらハングした。また、Rcloneと組み合わせてB2で使うと、エラーが多発した(resticではなく、RcloneとB2の相性だと思う。大きなファイルの転送時に起こると思われる)。また、プログラムの出力をファイルにするとメッセージが少なくなってしまって、処理状態が分からないなど、使い勝手の問題もあった。

Wasabiは、よく調べたら1TB分の最低利用料金が掛かることが分かり、データ量が少ない場合には最安ではないことと使い勝手に不満があったので、却下した。

それで再検討・評価したところ、当初は毎年更新料が必要と思っていたために(実際にはそうでなかった)却下していたDuplicacy(コマンドライン版)とBackblaze B2の組み合わせが最適という結論になった。この組み合わせは最初に挙げた必須条件をすべて満たすうえに、すべての処理(ファイルのスキャン、転送、リストア、prune)が高速なのが素晴らしい。

DuplicacyとB2の基本的な動作を評価して大きな問題がなかったので、現在は実運用の状態で継続的にバックアップを行い、問題の有無や使い勝手などの確認を行っている。その後、しばらくCrashPlanと並行して使うか、CrashPlanを止めるかする予定である。 (8/11 1:59)

 

PS. 通信速度の高速化には目を見張るものがあり、昔はオンラインでのバックアップに1か月以上掛かっていたが、今なら数日間で終わりそうだ。太平洋の回線がかなり太くなったような気がする。もちろん、サーバ側のリソースにも依り、CrashPlanは悲惨なものだ。

PS2. まともなアプリはほとんどコマンドラインというのは嘆かわしい。しょうもないGUIよりはましだし、自分の希望どおり細かく設定できるのはいいのだが、正直なところ、バックアップなんて、いい加減(お手軽)に設定してもそこそこちゃんと動いて欲しいものだ(いや、その「そこそこちゃんと」が難しいのだがw)。。。

PS3. Duplicatiは、resticのリストアがすごく遅いので、解決策を検索していたら、他のアプリ(Borg)が紹介されていて、それとresticを比較しているページを読んでBorgは使えないことが分かったのだが、更に検索したら、何かのフォーラムにDuplicatiがいいという投稿があったので再度試してみたら、機能も性能も良かった。最初に試した時は慌てていて、いろいろ間違っていたのかも知れない。 (8/2 15:58)

(8/3 17:14 Duplicatiのファイルスキャンが遅い件を追記; 8/11 1:00 再々更新; 2023/8/3 アクセスが増えているので、期限切れで非公開にしたのを解除する。)

  •  1
  •  0
Keys: , , , , , , ,