ファイル同期をP2Pで実行

そもそも「P2P」とは「Peer to Peer(ピアツーピア)」の略称で、サーバーとクライアントのような関係ではなく、対等なもの同士がデータの送受信を行う通信方式や通信技術を指す単語である。世間的にP2Pは、違法ファイル共有や情報漏えいといった悪い印象を持たれているが、あくまでもP2Pネットワーク上に流れるマルウェアの流通に起因する問題であり、P2Pというテクノロジーの問題ではない。

例えばMicrosoftが買収し、自社サービスとして提供している「Skype」もP2Pネットワークを利用したインターネット電話サービスであり、「Microsoft Office 2007(the 2007 Microsoft Office system)」に含まれる「Microsoft Office Groove」もP2Pネットワークを利用したコラボレーションツールだ。さらにWindows Vista以降はP2PネットワークがOSに組み込まれ、現行OSであるWindows 8でもサービスから確認可能。このようにP2Pは注目・研究に値するネットワーク技術なのだ(図01)。

図01 Windows 8にもP2Pネットワークを実現するサービスが組み込まれている

このP2Pを利用したサービスを提供している企業は少なくないが、ファイル交換に用いられる「BitTorrent」を開発したBram Cohen(ブラム・コーエン)氏が中心になって起業した米国のBitTorrent Incは、現在でも同ソフトウェアの開発や、P2Pテクノロジーを利用したコンテンツ配信サービスを運営している。その同社が新たに始めたのが「BitTorrent Sync」だ。P2Pネットワークを利用したファイル同期ツールであり、今年1月頃からプレアルファ版を公開し、注目を集めていた。先頃そのBitTorrent Syncがアルファ版に達したので、その概要や機能、応用性などを鑑みつつ、本誌読者に紹介したい。

一般的なファイル同期ツールは、オンラインストレージを介して、クライアントコンピューターとオンラインストレージサーバー間でファイル同期を行っている。ここに異なるクライアントコンピューターを加える場合は、同じユーザーアカウントやデバイス認証を行い、ファイル同期の輪に加えるのが通常だ。一方でBitTorrent Syncは、オンラインストレージというサーバーは存在しない。あくまでも接続は各デバイス同士が行い、BitTorrentプロトコルでダイレクトにファイル同期を行うという仕組みだ(図02)。

図02 公式サイトに掲載されている概念図。各クライアントコンピューター上のフォルダーを互いに同期するイメージを表しているのだろう

ソフトウェアはWindows OSやMac OS X向けだけでなく、各種Linux版も用意されている。BitTorrentでは、NAS(Network-Attached Storage)を同期フォルダーの対象としてLinux版も用意しているようだ。今回はWindows OS版を試したが、セットアップ時に自身のショートカットファイルをスタートアップフォルダーに登録する設定と、Windowsファイアウォールの例外許可を自動で行う設定項目が選択可能だった(図03)。

図03 BitTorrent SyncはWindows/Mac OS X版だけでなく各種デバイスを想定したLinux版も用意されている

各コンピューターをつなぐのは「シークレットキー」と呼ばれる32桁の英数字。一方のコンピューターでセットアップを行うときは、このシークレットキーが自動生成され、もう一方のコンピューターでBitTorrent Syncをセットアップする際に入力することで閉じたBitTorrentネットワークに参加する仕組みだ(図04~05)。

図04 Windows 8にBitTorrent Syncをインストールする際に、シークレットキーが自動生成される

図05 もう一方のコンピューターとなるWindows 7にBitTorrent Syncをインストールする際は、生成されたシークレットキーを入力する

後はセットアップ時に指定した共有対象フォルダーの内容が、一方のコンピューターの特定フォルダーに共有される。BitTorrent Syncは<Devices><Shared Folders><Transfers><History><Preferences>と5つのタブを用意。<Devices>タブは同期対象として登録しているコンピューターを列挙し、デバイス(コンピューター)名や同期フォルダー、最終更新日が示される。<Shared Folders>タブは登録済み同期フォルダーの使用状況や、同期フォルダーの追加や削除が可能(図06~07)。

図06 BitTorrentネットワークでつながったデバイス(コンピューター)を列挙する<Devies>タブ

図07 同期フォルダーの追加や削除は<Shared Folders>タブから実行する

<Transfers>タブは現在のアップロード/ダウンロードタスクを確認する箇所だが、多くの場合は空白のままとなる。登録した同期フォルダーにファイルが加わると、BitTorrent Transfersが変更を検知し、ファイル転送タスクが示されるようだ。過去の同期履歴は<History>タブで確認する。もっともここに示されるのは最小限の情報となり、詳細なログを確認するには、「%AppData%\BitTorrent Sync\sync.log」を開いた方が早い(図08~10)。

図08 現在の転送タスクや転送レートを示す<Transfers>タブ

図09 同期結果を確認できる<History>タブ

図10 詳細なログは「%AppData%\BitTorrent Sync\sync.log」で確認可能

そして最後の<Preferences>タブには、BitTorrent Syncの動作設定を行うための項目が並ぶ。デバイス名や同期完了時の通知メッセージの有無、自動アップデートや自動スタートアップ、使用ポートやNATのUPnP(Universal Plug and Play)使用の有無、ネットワーク帯域の使用制限などを選択・変更できる。

また<Advanced>ボタンからは、BitTorrent Syncに関するいくつかの設定変更が可能だ。「disk_low_priority」はディスク空き容量のチェックの有無、「lan_encrypt_data」はLAN上でのデータ暗号化の有無を制御する。いずれも初期状態で有効だった。「lan_use_tcp」はLAN上でUDPではなくTCPによるデータ転送を行い、「rate_limit_local_peers」はネットワーク帯域の使用制限をLANにも適用するという項目。こちらはいずれも無効が初期状態となる(図11~12)。

図11 BitTorrent Syncの各種設定を行う<Preferences>タブ

図12 <Advanced>ボタンから開く詳細設定ダイアログ。通常は初期状態のままでよい