BitTorrentバックアップの実際:BTSyncとSyncthingを徹底検証
バックアップは、家庭でも職場でも、現代のコンピューティングにおいて最も軽視されがちな要素の一つです。多くの場合、怠慢や運用負荷の問題に帰着し、どんな手法や技術を選んでも、いざというときに復元できる体制が整っていないのが実情です。最大の理由は、管理が煩雑であること、そして動作が遅いことにあるでしょう。
代替手段としては、ファイルをクラウドに預けて放置するという方法があります。しかし、それはリスクが高いと思いませんか? プライバシーは守られるのか? 同期が遅くなる問題はどうするのか? 第三の選択肢は存在するのでしょうか。実は、あるのです。それはP2Pネットワークを活用したデータバックアップです。
はじめに
筆者は昔から、分散型ピアツーピア(P2P)によるバックアップモデルの静かな支持者でした。データをクラウドなどの外部へ預ける際のセキュリティリスクには常に警戒心を抱いており、クラウドはまさに諸刃の剣だと考えています。とはいえ、実用的に活用できる可能性はあるのでしょうか。
BTsyncやSyncthingといったツールは、この期待に応えようとするものです。端的に言えば、両者は洗練されたGUIを備えたBitTorrentクライアントであり、公開鍵・秘密鍵の仕組みを軸としたセキュリティ機能が追加されています。ファイルを安全で非公開のトレントとしてシードし、複数のクライアント間で共有することでデータを分散させられるのです。Linuxディストリビューションのイメージを配布・ダウンロードするのと本質的には変わりませんが、扱う対象が自分自身の写真やドキュメントである点が異なります。さて、これらのツールが実際に何をしてくれるのか、見ていきましょう。
BTSync
このソフトウェアは、Windows、Linux、Mac、各種モバイルOSを含む幅広いプラットフォームで利用可能です。Linuxでのセットアップは非常に簡単で、アーカイブを任意の場所に展開してメインプログラムを起動するだけです。その後、ブラウザを開いてlocalhost:8888にアクセスすればWebコンソールに接続できます。以上で完了です。
GUI上では簡潔なウィザードが進行します。まず、他者があなたの同期インターフェースに勝手にアクセスできないよう、.htaccess形式のユーザー名とパスワードによるローカルアカウントを設定します。次にデバイスの登録へと進みます。
この時点で、BTSyncには無料版と有料版(Pro版)が存在し、興味があれば30日間のトライアルを試用できることも、ややしつこいほど提示されます。
次のステップはアイデンティティの作成と、最初のデバイスの設定です。後に、2台目以降のデバイスをプールへ追加する方法も解説します。想像がつくように、この技術はデバイスが1台だけでは価値を発揮せず、相互接続されるノードが増えるほど有用性が高まっていきます。
続いてフォルダを追加し、名前を付け、権限と有効期限を設定し、新規ピアがデータへアクセスする際に明示的な承認を要求するかどうかを決定します。操作はかなり直感的です。
フォルダを作成すると、メール経由・手動入力・QRコードスキャンのいずれかでリンクを共有できます。同様に、2台目のホスト(または他の任意のホスト)側でも、識別子となるハッシュを入力しなければ同期と共有を開始できません。
検証では、まずNetrunner 15でBTSyncをセットアップし、その後Kubuntu 15.04ベータのクライアントをネットワークに追加しました。クライアントを起動し、Webウィザードの「デバイスのリンク」ステップで、新規デバイスを設定する代わりに、すでにBTSyncが稼働しているデバイスへの接続を試みました。しかし、残念ながら2台のデバイスはペアリングに失敗。これ以上進めなかったため、2つ目のツールを試すことにしました。
あ、正確にはもう一つ試しています。うまくいくことを期待して、iPhoneへのBTSync導入です。App Storeはクレジットカード情報の登録を求め、無料版とトライアルが用意されているにもかかわらずアプリをインストールさせてくれませんでした。どうやらモバイル版はまったく別の設計思想で作られているようです。今回はパスです。
Syncthing
次に紹介するクライアントは完全に無料です。BTSyncと同様に複数プラットフォームに対応しており、ツールを入手してコマンドラインから起動します。その後、ブラウザでポート8080のWebインターフェースに接続します。
SyncthingのGUIはよりシンプルな反面、やや分かりにくい部分もあります。最初に行うのは共有用フォルダの追加です。オプションは多くありませんが、既存のファイル権限の扱い方の指定、同期チェック間隔の変更が可能で、さらには堅実なバージョン管理機能まで備えています。同期を単方向にするか双方向にするかも選択できます。
ここで注意点です。フォルダは直接追加する必要があり、シンボリックリンクは使用できません。書き込み権限のない場所を指定すると権限エラーが表示されますが、それがなぜ問題なのか、すぐには理解しづらい場合があります。
小さな変更のたびにクライアントの再起動が必要になるのは、短時間とはいえやや煩わしい点です。再起動は数秒で完了しますが、すべてのノードが識別されGUIに表示されるまでにはしばらく時間がかかります。
クラスタに新しいノードを追加するには、歯車アイコンをクリックします。各ノード上で、相手ノードの長いハッシュ(ID)を入力する必要があります。幸い、同一ネットワーク内に複数のデバイスがあれば、自動検出の仕組みもある程度機能し、デバイスの承認を行うだけで済みます。
フォルダ共有の設定が正常に完了すると緑色で表示されます。黄色や赤は問題の発生を意味します。その後、インターフェースからSyncthingを再起動するとネットワークスキャンが走り、既知の利用可能なホストを探します。このとき、リモートノードとのフォルダ共有を許可するよう促されることがあります。
検証では「media」というファイルを共有してみました。中身はゼロのみの2GBファイルですが、典型的な同期の様子を示すには十分です。このファイル名にはしばし感嘆してもらえるでしょう。
同期自体は正常に動作しましたが、決して速くはありませんでした。実際のところ、かなり遅かったのです。ここで当然浮かぶのが、自分のネットワークの実効速度や混雑状況の問題です。P2PやBitTorrentが魔法のような奇跡を起こすわけではありません。また、送信元ホストでは進捗のパーセンテージ表示がありませんでしたが、受信側では表示されました。
全般的な課題
冒頭で述べたように、P2Pの真価は「数」、すなわち分散化されたノード数にあります。保有デバイスが少数しかなければ、謳われた超高速バックアップの恩恵を受けることはできません。Rsyncや単純なコピーでも同等の結果が得られます。そもそも、平均的な世帯に何台のコンピューティングデバイスがあるでしょうか。1台? 5台? それ以上は多くないはずです。
さらに、各デバイスのストレージ容量は均一とは限りません。スマートフォンは15〜30GB程度のデータしか保持できない一方、デスクトップPCならTB級のデータも問題なく扱えます。つまり、どこへでも何でもバックアップできるわけではありません。加えて、トレント方式は複数HDD構成の概念を損ないます。内部にどれだけのストレージ階層と冗長性があっても、デバイスは単一の存在として扱われるからです。
3つ目の問題は帯域幅です。十分なアップロード速度を持つ回線がなければ、低速と輻輳に苦しみ、シーディング中にネットワークが詰まることになります。通信量制限(クォータ)を設けている環境では、頻繁なトレント更新によって容易に上限を超過してしまうでしょう。
数百台の同一構成サーバーと高速な10Gb内部ネットワークを擁する企業なら、このコンセプトは理想的に映ります。しかし一般家庭ユーザーにとって、これはクラウドと何が違うのでしょうか。焦点が完全にセキュリティと「データが複数箇所に保存される」事実に置かれる場合を除けば、優位点は見出しにくいものです。しかも、大手クラウドプロバイダーの稼働率や地理的分散は、個人の小さなスウォームでは到底及ばない水準にあります。
ファイアウォールも重要です。トレント用ポートを遮断していたり、uPnPを許可していなかったりすれば、トレントがネットワークを劇的に高速化することはありません。速度面ではTCPはUDPよりやや劣るものの、ホームユーザーにとっては従来型のHTTPリクエストとトレントの差は体感できないでしょう。特にシード数が極端に少ないケース、つまり大多数の人に当てはまる典型例では顕著です。
最後に、プライバシーの問題です。クラウドプロバイダーにデータを見られたくない気持ちは分かりますが、家族や友人はどうでしょうか。彼らのマシンとデータを共有するつもりですか。彼らが正しく運用し、覗き見をせず、さらに悪いことにホストが乗っ取られて見知らぬ第三者にあなたのファイルが露出しないと信頼できますか。個人情報を自分の手から離す時点で、「クラウドはこの用途に不適切」という前提自体が崩れてしまうのです。
関連記事
興味があれば、以下の記事も参考にしてください。
- Grsyncの概要とできること
- 複数のRsyncフロントエンドの比較レビュー
まとめ
半日に及ぶ試行錯誤と苛立ちの末、率直に言えば、このコンセプトにはまだ多くの改善が必要です。大規模で高速、低レイテンシ、制限のないネットワーク環境には理想的ですが、インターネット越しに多種多様なデバイス群を同期する用途には向いていません。その場合、分散型ストレージの恩恵を享受することは難しく、どうしてもというならクラウドの方が賢明な選択肢となります。プライバシーやセキュリティが第一 concern であれば、ローカルバックアップこそ最善です。より速く、より実用的です。
現実の厳しい制約はさておき、BTSyncにはまったく感銘を受けませんでした。Syncthingはより有望なソリューションですが、やや不器用な部分があり、クラスタ構築には時間がかかるかもしれません。とはいえ、ここには大きな可能性が秘められています。暗号化と公開共有を組み合わせれば、むしろ優れた選択肢になり得るかもしれません。「誰と共有するか」を気にする代わりに、データの断片を広く送り出す――他のトレントたちがそうやって機能しているのですから。ともあれ、この情報を勧めてくれたFlorisに感謝を。それでは、また。
-
VMware Workstation 14 徹底レビュー ― 高機能・拡張性は魅力的だが、価格がネック
数週間前、私たちはVMware Player 14をテストしました。シンプルで多用途、しかも堅牢な一方で、期待していたほど機能が豊富ではないという印象を受けました。そこで今回は、上位版にあたるWorkstationを試してみます。実のところ、無料のPlayerは、より強力で、その分価格も高くなるVMware Workstation Proの「技術デモ」的な位置づけの製品なのです。 実用的で万能型の仮想化ソフトをお探しなら、通常はOracle VirtualBoxとVMware Workstationという2つの主要製品が候補に挙がります。私は何年も前にWorkstationを何度か購入したこと
-
VMware ESXi活用ガイド:パフォーマンス最適化からSSH有効化までの実践テクニック
当ブログでは、これまでESXについてあまり深く取り上げてきませんでした。今回はその埋め合わせとして、ESXiに関する実用的なノウハウをたっぷりとご紹介します。ESXiで仮想マシンをクローンする方法に関するチュートリアルに続き、今度はVMwareの魅力をさらに掘り下げていきましょう。ESXiは無償で提供されているベアメタル型ハイパーバイザーであり、最も高価かつ高機能な仮想化ソリューション「ESX」へとつながる最初のステップです。念のため整理しておくと、VMwareにはホームユーザー向けの「VMware Player」や「Workstation」があります。また、ESXの機能を小規模でお手軽に体験