友人から紹介されて、以前から気になっていた Raspberry Pi ですが、試すなら多少時間に余裕がある今しかないとAmazonで購入してみました。購入したのは、Raspberry Pi2 Model B という次のモデル。ソフトウェア無しの本体のみというのは、黎明期のAT互換機パソコンやOSが無かった頃のPCを思い出します。
本体だけ購入すれば、スマートフォンの充電アダプターを電源として使えるし、既存のUSBキーボード、4GB以上のマイクロSDカードを流用すれば追加コスト無しで使い心地を試してみることが出来ます。低消費電力で高性能な4コアRISC CPU の ARM プロセッサのはずなので、可能であれば現サーバーの置き換えやルーターに利用できるかもと期待しています。
OSの選択
Raspberry Pi の本家サイトの情報と同ダウンロードページによると、NOOBS か Raspbian をダウンロードして、SDにコピーして使えるようです。Raspbian は Raspberry + Debian の名称から、Debian だと分かりますが、NOOBS(New Out of the Box Software)って何?リンクをクリックしてみると、Raspbian を含んだインストーラのようです。
その他に、Raspberry Pi 用にカスタマイズされたUnix系OSやWindowsが使えるようです。
ということで、
- Raspbian
- NOOBS
- FreeBSD/Arm
- Windows10
が選択できるようですが、まずはパフォーマンス確認ということで Raspberrian をダウンロードしてインストールしようとしました。ダウンロードしたものを unzip して(Safariでダウンロードすれば自動解凍。ただしcheck sum を確認できなくなる。)、dd で SDメモリにコピーするだけ。Macで何度もやている作業なので簡単に考えていましたが、うまく行かない。SDメモリから起動させようとしても画面が真っ暗で何も進まない。SHA1チェックサムは一致しているので、dd コマンドの使い方がうまく行っていないと思われますが、Raspbian を使うのは保留にして、NOOBS で再チャレンジすることにしました。
NOOBS / Raspbian
NOOBS は dd で起動ディスクを作る必要が無く、
- SDFormatter というSDメモリカードをフォーマットするユーティリティーをダウンロードして、それを使って 32GB マイクロSDメモリをFATでフォーマット。
- 解凍したNOOBSフォルダーの中身をフォーマット済みSDメモリにコピー。
- コピー後、SDメモリカードをRaspberry のSDメモリスロットに差し込んで起動。
という作業をMac(Snow Leopard)で行いました。
Raspbian 起動
Raspbian 起動のための苦労は何だったんだ! と言うくらいあっさりGUIが起動。
しかも、起動の途中で Raspbian がSDメモリをパーティショニングして勝手にOSのインストールまで出来るという便利さ。
Boinc / Raspbian
一般的なベンチマークソフトを入れてみるというのが良いのでしょうが、ベンチマークソフトの値って実使用においてはあまり役に立たないので、実際に自分が使っているアプリ入れて計測することにしました。
まずは、Boinc。ARM用のBoincがあるのかどうか Boincホームページで調べてみると、何個かプロジェクトが見つかりました。存在が確認できれば、あとは入れてみるだけ。aptitude を使ってインストール。
31-Aug-2015 14:46:41 [---] Fetching configuration file from http://einstein.phys.uwm.edu/get_project_config.php 31-Aug-2015 14:47:00 [---] Running CPU benchmarks 31-Aug-2015 14:47:00 [---] Suspending computation - CPU benchmarks in progress 31-Aug-2015 14:47:00 [---] Running CPU benchmarks 31-Aug-2015 14:47:00 [---] Running CPU benchmarks 31-Aug-2015 14:47:00 [---] Running CPU benchmarks 31-Aug-2015 14:47:00 [---] Running CPU benchmarks 31-Aug-2015 14:47:32 [---] Benchmark results: 31-Aug-2015 14:47:32 [---] Number of CPUs: 4 31-Aug-2015 14:47:32 [---] 294 floating point MIPS (Whetstone) per CPU 31-Aug-2015 14:47:32 [---] 1144 integer MIPS (Dhrystone) per CPU
これがどれくらいの速さなのか、Vyatta を動かしている Celeron 500MHz と比較してみたのが次の結果。
31-Aug-2015 23:57:21 [---] Running CPU benchmarks 31-Aug-2015 23:57:53 [---] Benchmark results: 31-Aug-2015 23:57:53 [---] Number of CPUs: 1 31-Aug-2015 23:57:53 [---] 294 floating point MIPS (Whetstone) per CPU 31-Aug-2015 23:57:53 [---] 784 integer MIPS (Dhrystone) per CPU
同じく、Celeron 1.2GHz のこのサーバーと比較したのが、次の結果。
31-Aug-2015 23:55:03 [---] Benchmark results: 31-Aug-2015 23:55:03 [---] Number of CPUs: 1 31-Aug-2015 23:55:03 [---] 714 floating point MIPS (Whetstone) per CPU 31-Aug-2015 23:55:03 [---] 1546 integer MIPS (Dhrystone) per CPU
この結果が示すのは、1CPUの結果で、Raspberry Pi2 の場合は4コアですから、i386換算ではPentium3 1GHz CPUのデュアルCPUマシンのようなイメージと思われます。個人サーバーとしては丁度いい感じ。
ベンチマークの値はこれくらいとして、次は実際のアプリがどの程度動くのか?が大きな関心です。
WordPress を動かす
面倒ではありますが、実際にWordpress を動かして、どの程度のパフォーマンスが出るのかを試してみることにしました。
apt-get で入れたかったのですが、パッケージ名が分からないため、aptitude を使ってapache2, mysql, phpmyadmin, wordpress とこれに依存関係があるものを aptitude 任せでインストールしました。aptitude から /usr/share/wordpress にインストールされた WordPress ってどうやって使うの? apache2.conf の中で、Alias 指定で使うのかな?調べる気にならないので、/var/www にwordpress.org からzipファイルをダウンロードしたファイルをインストールしました。
phpMyAdmin で、WordPress 用データベースとユーザーを作って、wp-config.php をアップロード。これで、WordPress がセットアップできるからバイナリーインストールは楽。
本番サイトからコンテンツを全部エクスポートして、Raspbian にインポート。
正直なところ、サクサク感はまったくありません。表示に関しては、このCeleron 1.2GHz のこのサーバーの WordPress よりは軽いかも・・・・という感じ。文章を入力すると待たされます。Raspbian wordpress テストだけに使用している、他にタスクがないという状況なので、現サーバーよりちょっと軽いかなという感じ。
現行サーバーは、公開サーバーなので常にバックグランドで外部からのアクセスがあり、同様の状況に置いたとき、今と同じパフォーマンスが出るの?と考えると未知数。他に3つコアがあるわけで負荷は分散されるんじゃないかという期待は出来ます。
その他、SDメモリはブートのためだけに使用し、運用はUSBポートにSSDまたはHDDを接続すれば速度と容量を稼げるかもしれません。
まとめ
まだ1日しか動かしていませんから結論にはほど遠い状態ですが、スマートフォン充電用アダプターが供給できる電力 5V / 1A = 5W 以下で個人サーバーを運営できそうだということがわかりました。
パフォーマンスは、1GHz CPU程度の処理能力を最低限確保できそうです。