2016/01/10

Raspberry Pi 2 Model B を買ってみたとか

ファイル同期ソフト BitTorrent Sync を Raspberry Pi 2 Model B に導入した話。


これまで、Linux の設定ファイルは Dropbox、開発中のプログラムは Copy でファイルを同期・管理してきました。

しかし、Copy で mercurial のバージョン管理をすると、mercurial の一部ファイルが同期しない問題が発生。Dropbox も容量がいっぱいのため、何か別のファイル同期システムがないかと探していたところ、BitTorrent Sync に出会いました。

BitTorrent Sync は、Dropbox や Copy 同様にファイル同期サービスですが、特徴的なのは P2P 技術*1で同期していて、容量がデバイスの上限まで利用できる点でしょうか。あと、Windows や Mac、Linux 用のソフトウェアだけでなく、Android や iPhone、ARM 用のソフトウェアもダウンロードできるのも魅力的です (様々なデバイスで利用できる)。
P2P の利点はDropbox などの多くのユーザが利用するサーバを介する同期では、サーバがボトルネックになることがありますが、P2P はデバイス同士を直接接続するため、比較的高速に同期することができます。また、容量がデバイスに依存するので、1TB など大容量の同期も可能になります。

ただ、欠点は BitTorrent Sync が起動しているデバイス同士でしか同期できないこと。つまり、片方の電源が落ちてたり、ソフトウェアが起動していないと同期できないということです。

そこで、BitTorrent Sync でファイルを同期するため、サーバを導入します。まぁ、サーバと言っても、要はどこかに常時起動の PC やらデバイスがあればいいわけです。また、個人や小規模でしか利用しないのであれば、Dropbox のようなサーバのボトルネックはないですしね。
最初は使わなくなったネットブック Lenovo IdeaPad S10-2 をそのサーバにしようと思ったのですが、物置から出してスイッチを入れても起動せずお陀仏。やっぱりある程度使ってないと、駄目になるんですかねぇ。

なので、巷で話題になっている Raspberry をサーバにしてみました。5千円程度で購入でき、サイズはキャッシュカードサイズというのが決め手です。

ちなみに、これが初 Raspberry。少しワクテカします。

早速、最新版の Raspberry Pi2 Model B + メタルケース + ヒートシンクを Amazon (Raspberry Pi2 Model B 本体+ケ-ス+ヒートシンク+USBケーブル 4点セット (極薄アルミケース(ブラック)) でポチりました。あと、Raspberry は電源や内蔵ストレージなどが一切ついてないので、それも購入しました。
で、届いたのがこれ。
パッケージ外装。シンプルなデザインで、小さいですね。シャープペンの4/5くらい?

中身。パッケージ外装よりもさらに小さい Raspberry が出てきました。サイズはシャープペンの 2/3 くらい?

ケースなども入れるとこんな感じ。

まず、microSD (内蔵ストレージ) に OS をインストールします。
自分は、Ubuntu 派ですので、今回は Ubuntu server をインストールします。イメージファイルの入手とインストール方法はこちら (ARM/RaspberryPi - Ubuntu Wiki)
簡単に言うと、イメージファイルを dd コマンドでイメージファイル内のパーティションを丸ごとコピーする感じですね。ただし、イメージファイルはパーティションサイズが最小になっているので、dd コマンドでコピーしたら、その microSD を gparted などで開いて、ext4 でフォーマットされたパーティションを microSD の最大サイズまで拡張されることをオススメします。

インストールが完了したら、組み立てます。
とは言っても、そんなに難しくないんですけどね。
内蔵ストレージの microSD を基盤の裏側に挿します。microSD はケースに入れた後も脱着できるので、これを最初にする必要はないのですが…。

ヒートシンク (写真左) を Raspberry 上のCPU や LAN コントローラにグリスを塗ってから装着させます (写真右の銀色の波々パーツ✕2)。

ケースに Raspberry を載せて、四隅を付属の銀色のねじで固定します。

ケースのカバーを上からかぶせて、側面 (USB コネクタや microSD 差込口がある面) の計 4 箇所を付属の黒い小さいねじで固定します。

ケース完成図

HDD ケースに HDD を入れて、Raspberry の USB ポートに挿します。
ちなみに、バスパワー (USB ケーブルから電源を供給するタイプ) の外付け HDD (あるいは HDD ケース) だと、Raspberry から供給される電源不足で通常では起動できない (設定ファイルで USB からの供給電流を設定する必要がある) ので、セルフパワー (USB ケーブルの他に、コンセントにつなぐ電源があるタイプ) が無難です。
バスパワーでやる場合は、microSD を別 PC で開いて、こちら (Raspberry Pi の USB ポートに 1200mA の電力供給 | Raspberry Pi) のページの通りにします。

そして、電源開封。
Raspberry とモニターを HDMI で接続した上で、100 均の USB 電源ケーブルでつなぎます (ケーブルをつないだ瞬間に電源が入ります)。
HDMI については、VGA 変換ケーブルを介しているとそのままでは画面に映らないため、設定が必要です (microSD を別 PC で開いて、こちら (Raspberry PiをVGAモニターに接続して画面出力したときのメモ - Qiita) のページの通りにします。)。

うまく、起動できたら、こんな感じに Ubuntu のサーバのコンソールが表示されます。

あとは、コンソールから openssh-server を入れると、以後ネットワーク上からアクセスでき、HDMI を外して運用することができます。

最後に、Bittorrent Sync のインストールは、 公式ページから Linux ARM 版をダウンロード (他のバージョンだと動きません)。展開した後、実行するだけです (参考サイト: Tutorial – How to set up BitTorrent Sync on a Linux server to create a Dropbox-like syncing solution | Nickology.com)。

これで、2TB のスペースのファイル同期ができたー。
mercurial でのバージョン管理も問題ないようです。


*1 P2P と聞くと、ファイル共有ソフト Winny などで悪いイメージがあるかもしれませんが、P2P 自体は通信方式、通信技術のことなので、P2P を利用したソフトが問題であって、これ自体は悪くはないんですよね (市販薬を大量に飲んで死人が出たからと言って市販薬すべてが悪いというわけではなく、使い方の問題ということ)。