![syncthingクラウドbittorrentsync dropbox arudmin](https://habrastorage.org/getpro/habr/post_images/fa3/a08/bd8/fa3a08bd88dfb0af307d5df59185f099.png)
この記事では、クライアントサーバーモデルに従って動作し、参加者間(P2P)でファイルを同期するように設計された新しいオープンクロスプラットフォームアプリケーションであるSyncthingについて説明します。 アプリケーションはGoで記述されており、機能面ではBitTorrent Syncに似ています。
新しいサービスを確認した後、Raspberry Piにインストールしてラップトップと同期しようとします。
システム概要
P2Pネットワークのノード間でファイルを同期するために、シンプルで効率的で安全なBlock Exchange Protocol (BEP)が作成されました。 Syncthingプログラムはこのプロトコルの機能を実装していますが、どのソフトウェアでも使用できます。 開発は完全にオープンで、すべてのソースコードはGithubで公開されています。 プロトコルも公開されているため、バグをすぐに検出して修正できます。 このプログラムはMac OS X、Windows、Linux、FreeBSD、およびSolaris向けにリリースされており、便利なWebインターフェースを介して簡単に設定でき、ローカルネットワークまたはインターネット経由で動作します。
管理パネルのインターフェースは次のとおりです。
![](https://habrastorage.org/getpro/habr/post_images/bce/fc3/a67/bcefc3a67c923aadf55567b9ab17245a.jpg)
既製のアセンブリは、すべての主要プラットフォームのGithubで入手できます。サイトには、 ドキュメント(英語)およびクイックスタートガイド(英語)もあります。
プログラムの特徴:
- オープンソースアプリケーションとオープンプロトコル。
- ネットワーク内の各ノードは、強力な証明書によって識別されます。
- ブロックレベルの同期のサポート。 大きなファイルに小さな変更を加えると、変更された部分のみが同期されます。
- 人工チャネル制限の欠如
- 同期ディレクトリを使用できるノードを明示的に指定する機能。
- 最後の変更の日付によるディレクトリとファイルの同期(これまでのバージョン管理サポートなし)。
- 「マスタースレーブ」オプション。他のノードはこのディレクトリとのみ同期しますが、その内容を変更することはできません。
- 便利で適応可能なWebインターフェースによる管理。
- クロスプラットフォーム。 サポートされているオペレーティングシステムは、Windows、Linux、Mac OS X、FreeBSD、およびSolarisです。 Android用の非公式クライアントがあります。
- セキュリティとプライバシー。 データはクライアントマシンに保存され、サードパーティのサーバーとの対話は必要ありません。 TLSでサポートされています。
インストールとセットアップ
さて、簡単な概要の後、アプリケーションのインストールと設定に直接進みます。 Webインターフェイスを備えたメインホストとしてホームMacBookを使用し、クライアントをRaspberry PIモデルBにインストールします。
Macbookで
現在のリリースのダウンロードページにアクセスして、必要なアーカイブをダウンロードします。MacOSの場合は、 syncthing-darwin-amd64-v0.8.13.tar.gzをダウンロードする必要があります
現在サポートされているプラットフォームのリスト:
![](https://habrastorage.org/getpro/habr/post_images/8ed/5c8/406/8ed5c84060b5022984732f43420a7d8e.jpg)
ダウンロードしたアーカイブを解凍し、プログラムフォルダーでsyncthingファイルを実行します。
![](https://habrastorage.org/getpro/habr/post_images/467/2da/ecd/4672daecd90ff7f181a221b7459e54c6.jpg)
プログラムが終了するのを待ち、コンソールで次の形式の行を見つけます。
私のID:WFDJGOXZBKCC45BFO36JCTFM2EPIKSPXZACUZAUTXRYD2RJAELGS
これはシステム識別子です。覚えておいてください。少し後で役立つでしょう。 それでは、クライアントに対処しましょう。
Raspberry Piで
Raspberry Piコンソールを開き、このプラットフォーム用のパッケージをダウンロードします。
wget https://github.com/calmh/syncthing/releases/download/v0.8.13/syncthing-linux-armv5-v0.8.13.tar.gz
今すぐ開梱してサービスを開始します
tar xvzf synct* cd synct* ./syncthing
一意の識別子キーが生成されるまでしばらく待機し、それを記憶(書き込み)する必要があります。
その後、ラップトップで生成された最初のキーをconfig.xml構成ファイルに追加する必要があります。
nano /home/pi/.config/syncthing/config.xml
「ラップトップ」IDをリポジトリブランチと新しいノードに追加します。
<リポジトリID = "default"ディレクトリ= "/ home / pi / Sync" ro = "false">
<node id = "raspberry-pi-ID"> </ node>
<node id = "your-computer-id"> </ node>
</ repository>
<node id = "your-computer-id" name = "hostname"> <address>動的</ address>
</ node>
このようになった
<リポジトリID = "default"ディレクトリ= "/ home / pi / Sync" ro = "false" ignorePerms = "false">
<node id = "EGOE6LPEVKJQ3EVYJNZJ2QC6NHTQA7L5SPCOGCSZ33DTLTTCM22D"> </ node>
<node id = "WFDJGOXZBKCC45BFO36JCTFM2EPIKSPXZACUZAUTXRYD2RJAELGS"> </ node>
<versioning> </ versioning>
</ repository>
<node id = "EGOE6LPEVKJQ3EVYJNZJ2QC6NHTQA7L5SPCOGCSZ33DTLTTCM22D" name = "raspberrypi">
<address>動的</ address>
</ node>
<ノードID = "WFDJGOXZBKCC45BFO36JCTFM2EPIKSPXZACUZAUTXRYD2RJAELGS" name = "macbook">
<address>動的</ address>
</ node>
一般に、構成ファイルは十分に読み取り可能であり、可能なパラメーターがあります。詳細については、資料を参照してください。
Raspberry Piでのクライアントのセットアップが完了しました。コマンドでサービスを再起動する必要があります
./syncthing &
または、/ etc / rc.localの起動に追加します。
作業確認
ノートパソコンのブラウザでアドレスhttp://127.0.0.1:8080を再度開き、右上隅の[編集]→[ノードの追加]を選択します
![](https://habrastorage.org/getpro/habr/post_images/fdf/ced/c9d/fdfcedc9d759d5c69926b846a4dc0139.jpg)
表示されるウィンドウで、以前に受信したRaspberry Pi ID、ホスト名を示すフィールドに入力します。 [ アドレス]フィールドは「動的」のままです。
![](https://habrastorage.org/getpro/habr/post_images/a93/a43/e7d/a93a43e7df4c2999af70ba4e59b0076f.jpg)
ディレクトリを同期してみましょう。 デフォルトでは、同期フォルダーは各ノードの〜/ Sync /に作成されます。
ファイルを配置すると、しばらくすると他のノードと同期されます。
これで、高速プロトコルを使用してマシン間でデータを同期できます。 ファイルを交換するには、共有ストレージを整理したい相手にコンピューターIDを伝えるだけです。
統計
Raspberry Pi Load
Syncthing管理パネルから:
RAM使用率:〜10MB
CPU使用率:安静時で最大1%、同期中に最大60%。
同期中のメモリとプロセッサの出力統計(htop)
![](https://habrastorage.org/getpro/habr/post_images/c79/90f/188/c7990f1889fa4f253fac0885205f0eb2.jpg)
Macbook Pro'13ロード
Syncthing管理パネルから:
RAM使用率:〜20MB
CPU使用率:〜12-30%
システムユーティリティのアクティビティモニターからの画面統計
![](https://habrastorage.org/getpro/habr/post_images/ad4/1d4/b95/ad41d4b95d8390541fb0abbb1908636c.jpg)
統計情報を収集する過程で、ブラウザで管理パネルを開いていると、プロセッサ時間の使用が何度も増加することがわかりました(5〜40%)
![](https://habrastorage.org/getpro/habr/post_images/942/91b/72a/94291b72a056c5241407a92e841729e9.jpg)
バックグラウンドプロセス(管理パネルなし)は2〜4%しか消費しませんが
![](https://habrastorage.org/getpro/habr/post_images/ffb/b87/0b6/ffbb870b6d01e106638c9c3d4fa15cb1.jpg)
たとえば、Bittorrent Syncは5〜9%を消費します。 もちろん、データは相対的であり、他の要因の鉄に依存しますが、いくつかの結論はそれを可能にします。
結論の根拠-管理パネルをブラウザで開いたままにしないでください。バックグラウンドタブでも、不必要に開いたままにしないでください。
おわりに
このアプリケーションが、同じBittorrent Sync(私がすでに慣れている)よりもどれだけ便利で効率的であるかが、時間を教えてくれます。 この投稿は、Syncthing情報を発見してからわずか数時間後に熱心に書かれました。
コメントに質問を書いてください。サービスをテストする予定です。興味深い場合は、同期速度、負荷などに関する情報を投稿に追加しようとします。
関連リンク
![](https://habrastorage.org/getpro/habr/post_images/998/d00/6eb/998d006eb0dec4cdf253db4ef5d0db83.png)
![](https://habrastorage.org/getpro/habr/post_images/998/d00/6eb/998d006eb0dec4cdf253db4ef5d0db83.png)
![画像](https://habrastorage.org/getpro/habr/post_images/ac2/60c/6b4/ac260c6b4b683a38a76035e30080ea57.gif)
![画像](https://habrastorage.org/getpro/habr/post_images/ac2/60c/6b4/ac260c6b4b683a38a76035e30080ea57.gif)
![](https://habrastorage.org/getpro/habr/post_images/998/d00/6eb/998d006eb0dec4cdf253db4ef5d0db83.png)