Syncthingでサーバー間同期する #Synology #ASUSTOR #QNAP

サーバー間同期はいつになっても悩ましい。本業ならまだしも、ポートの開放や安定性などいい解決策が見いだせない。わざわざVPNを張るほどでもという気がしている。

とりあえず、rsyncのようなものを使ってみたりもするが、設定が面倒、素人には状況がわかりにくいなどという問題がある。

今回、改めてSyncthingを使ってみたらそれっぽくなったのでご紹介しておきたい。

ここ数年はNASのソフトウェアセンターの都合でResilio Sync (bittorrent sync)を使っていたが、有料化にあたってフォルダ制限に不満を抱えていた。

できれば素人にも設定が変更できたりするほうが後々都合がいいと思っているので、できればGUIが使える同期方法が欲しい。

今回Synologyを追加するにあたり、改めて同期ソフトを確認してみたところ、SyncthingはQNAP, Synology, ASUSTORにインストール可能だったので改めてフォーカスしてみることに。

Synology

パッケージセンターの"設定","パッケージソース"にSynoCommunity "http://packages.synocommunity.com/"を追加。

Syncthing-Synology.png

QNAP

AppCenterの設定画面、アプリリポジトリにQNAPclub "https://qnapclub.eu/en/repo.xml"を追加。

Syncthing-QNAP.png

ASUSTOR

App Centralに当たり前のようにある。

以上の作業でアプリ一覧にSyncthingが出現するのでインストール。

ここからはSyncthing共通の作業。p2pの同期になるので、共有させたいフォルダをどう管理していくかがカギ。Syncthingは基本的にDropboxのような使い方という意味でDefault Folderを共有してこようとするが、バックアップ同期という観点では無意味。任意のフォルダを他のマシンの任意のフォルダと同期するのが今回の目的。

NASのパッケージの場合は、ルートフォルダが基本的にアプリ専用のフォルダになる。見に行きさえすればそれでもいいのだろうが、感覚としてはNAS上の任意のフォルダをPCや他のNASと同期させたいという感覚があるだろう。3社のルート直下のディレクトリのパスを見てみると

Synology

/volume1/Documents   /(Volume+ボリューム番号)

QNAP

/share/CACHEDEV1_DATA/Documents/(命名規則不明)

ASUSTOR

/volume1/Documents     /(Volume+ボリューム番号)

こんな感じ。RAIDなどを分けていなければNASの全フォルダを一括指定もできそうな気配だが、今回は専用の共有用フォルダを作成し、その中に各マシン用のフォルダを作成することにした。

設定手順

①デバイス同士を登録(ペアリング)する

マシンAのSyncthingのメニューから"IDを表示"し、デバイスIDをコピー

マシンBのSyncthing画面右下の"接続先デバイスを追加"のデバイスIDにAのIDをペースト

ついでに下のデバイス名に任意の名前を入力

共有を設定したくなるが、フォルダ選択するのであればここはスルー

マシンAに接続許可画面が出るので許可。この時に共有設定は全て解除する

②共有フォルダの設定

Syncthing 左下、"フォルダを追加"でフォルダパスにNASの自分自身のフォルダパスを入力

フォルダ名を簡潔に入力し、同期先のマシンをチェック、必要なら同期方向も指定

同期先のマシンに許可画面が出るので"追加"を押し、フォルダ名とフォルダパスを同期させたいパスに変更。

以上の設定で、任意のフォルダと、任意のフォルダの同期設定が完了する。

それっぽく設定すると

Syncthing.png

3台のNASと2台のPCで同期をかけるとこんな感じになる。

いつさ災害が起こるかもわからないので、遠方の親戚などと相互バックアップを取っておくと吉かも。

ちなみに同期速度はそこまで早くない感じだが、一通り終わってしまえば増減分のみなので問題なさそう。