電池で駆動可能なサーバーの構築○

佐々木康俊、藤原富未治、雨宮	  尚範、大下	  弘、伊藤	  康広、原	  裕一工学系技術支援室	  情報通信技術系

概要
これまでは省エネで単機能なサーバーとして OpenBlocks 等が使用されてきた。しかし、これらの機器は少なくとも 5 万円程度の費用を要する。そこで、本研修では Raspberry Pi を用いて 1 万円程度でサーバーを構築し、どの程度のことができるのかを確かめた。また、電池駆動により非常時用のサーバーや、一時立ち上げ用サーバーとして利用する可能性についても検証した。その結果を以下に報告する。

1

システム構築プランの検討

電池で駆動可能なサーバーシステムの構築プランを検討した。ハードウェアは以下の選択条件から
Raspberry Pi を選定した。
1) オープンソースソフトの OS Linux が動作する。
2) PC 用周辺機器(キーボード、マウス、モニターとネットワーク)が接続可能。
3) 技術系研修の予算の範囲内。

2

Raspberry Pi について	  Raspberry Pi は同財団によりイギリスで実験・教育用に開発された PC ボードで、CPU に ARM プロセッサーを搭載している。表 1.に Model B と Model B+の仕様を示す。それらの本体の価格は Model B や B+ は35 米ドルに抑えている(RS オンラインで 3,940 円 2014 年 11 月 28 日現在)。他の Linux 対応 PC ボード BeagleBone
Black (RS オンラインで 9,280 円 2014 年 11 月 28 日現在) や Intel Galileo (秋月通商で 7,880 円 2015 年 1 月 20日現在)と比べても安価である。
表 1. Raspberry Pi Model B と Model B+の仕様
Operating Sytem
CPUMemoryStorage
Ethernet
Video Output
USB ports 2.0
Power supply
Dimension3

Raspberry Pi Model B
Raspberry Pi Model B+
Boots from SD card, running Linux Boots from micro SD card, running LinuxARM1176JZFS 700MHz
512MB SDRAM
SDIO
micro SDIO
10/100 Base
HDMI(rev 1.3 & 1.4)
Dual Connector
Quad Connector
5V1.2A
5V2A
85x56x17mm

本研修の購入機材	  Raspberry Pi Model B とその後発売された Model B+を購入し、両モデルを比較検討した。
その外観写真を図 1．に示す。本研修の購入機材一覧を表 2．に示す。モニター、キーボード、マウスとプ

(a)(b)亜）亜）(c)(d)亜）亜）図 1. Raspberry Pi Model B (a)、(c)と Model B+ (b)、(d)の外観
ライベートネットワーク環境は既存の設備を活用した。図 2．に接続時の外観写真を示す。

表 2. 購入機材一覧
Raspberry Pi Model B
Model B 専用ケース
SD カード(8GB)

Raspberry Pi Model B+
Model B+ 専用ケースmicro SD カード(8GB)
USB 電源micro USB-USB ケーブル
USB 電圧/電流チェッカー

4

Raspbery Pi の設定と動作試験

4.1 Raspbery Pi 用 OS のインストール
Raspberry Pi 用の OS 一覧を表 3.に示す。本研修では公式に推奨されている Linux 系 Debian をベースにした Raspbian を採用することにした。
表 3. Raspberry Pi 用 OS 一覧
Operating System Images
Raspbian
Debian Wheezy
PidoraFedora Remix
OpenELEC An XBMC Media Centre
RaspBMC An XBMC Media Centre
RISC OS
A non-Linux distribution

Release date:2014-09-09
2014-07-24
2014-06-14
2014-06-13
2014-06-04

Raspberry Pi は OS を(micro)SD カードから起動するため、システムイメージのインストール作業を以下の手順で行う。

図 2.
1)

Raspberry Pi にキーボード、マウス、モニターとネットワークを接続し起動した画面

Raspberry Pi 用 OS イメージファイル Rasbian をダウンロードする(名大からは公式サイトよりも北陸先端大のサイト http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/ を利用した方が速い。研修時のバージ
ョンは 2014-06-20-wheezy-raspbian.zip)。
2)

Linux、Mac、Windows どの PC からでもイメージファイルを(micro)SD カードに書込むことができるが、本研修では Windows PC から書込み作業を実施した。Windows PC (SD カードスロットのあるもの)にWin32DiskImager (SD カードへのライティングソフト)をダウンロードしこれを用いて Raspberry Pi 起動用の(micro)SD カードを作成した。
4.2 Raspberry Pi で起動確認	  Raspberry Pi にキーボード、マウス、モニター、ネットワークケーブル、(micro)SD カードを接続し USB電源を最後に接続する。その後以下の設定を行う。
1)

初期設定メニュー画面が初回起動時に立ち上がるので(これ以降は raspi-config コマンドで起動できる)、キーボードと日本語ロケールの設定を行う。
2)login プロンプトが表示されたら、初期パスワードでログインする。

3)(micro)SD カードのパーティションを拡張する(標準で 2GB のため本研修の(micro)SD カード容量

8GB に対応させる)。
4)

日本語環境の構築。

5)

パスワードの変更。

6)

ユーザ作成。

7)/etc/network/interface ファイルに固定 IP アドレス(研修用のプライベートネットワーク)を記述し、ネットワークを設定。
8)

NICE の TimeServer による時計合わせ。

9) パケージをアップデートしシステムを最新のものに更新する。
4.3 Raspberry Pi によるサーバー構築
Raspberry Pi で ssh サーバー、TightVNC サーバー、DHCP サーバー、Web サーバーと DNS サーバーを構築
しそれぞれ動作確認をした。
1) ssh サーバー設定
・LANG=C
raspi-config コマンドを実行し、SSH を有効にする。
設定ファイル/etc/ssh/sshd_config を編集する。(root のログイン禁止等)
2) VNC サーバー設定
VNC として TightVNC を使用、TightVNC のインストールを行う。
・sudo apt-get install tightvncserver
インストール後、tightvncserver を起動し、接続用パスワードを設定する。
外部接続のため VNC 接続ポートを設定する。
3) DHCP サーバー設定
DHCP サーバーのインストール
・sudo apt-get install isc-dhcp-server/etc/dhcp/dhcp.conf を編集して、配布 IP 範囲、リリース時間等を指定する。
4) HTTP サーバー設定
HTTP サーバーのインストール
・sudo apt-get install apache2
設定ファイル/etc/apache2/apache2.conf で、ホスト名等を編集する。
5) DNS サーバー
DNS サーバーのインストール
・sudo apt-get install bind9 dnsutils/ etc/resolv.conf で DNS の指定先の設定を行う。
/ etc/bind 以下で以下の 3 つの設定ファイルを編集する。
named.conf.options, named.conf.local, named.conf.default-zones
正引き、逆引きゾーンファイルを作成し DNS サーバーとして動作させる。
4.4 fsprotect による SD カード寿命延長
SD カードの書き換え回数は限られている。そのため、Raspberry Pi をサーバーとして長期間使用する場合に SD カードへの書き込みを減らす設定は必須となる。今回インストールした Raspbian では fsprotect というパッケージを使用することで / に SD カードを実際には読み込み専用で使用しつつ、OS に対しては、読み書き可能な状態に見せかける（実際の書き込みは RAM ディスクに行う）ことができる。fsprotect を利用するためには aufs (ディレクトリを重ねて一つに見せる仕組み)を組み込んだカスタムカーネルを作成する必要があった。
fsprotect のインストールと有効化

(a)

(b)

亜）

亜）

(c)

(d)亜）亜）図 3. Raspberry Pi Model B の電圧 (a)と電流値(c) Model B+の電圧(b) と(d) 電流値
・sudo apt-get install fsprotect
初期ファイルシステム(initramfs)イメージを更新し、/boot/config.txt でファイルを指定する。
/boot/cmdline.txt の末尾に以下を追加する。
fsprotect=auto
4.5 Raspberry Pi の電池による動作試験
通常運用時の Raspberry Pi 各 model の消費電圧と電流値を簡易型の USB 電流・電圧チェッカーで測定した。
その様子を図 3.に示す。Model B で 5V / 0.4〜0.5A、Model B+で 5V / 0.2〜0.3A となった。
次に USB（micro-B）コネクタを装備したモバイルバッテリーを利用して Raspberry Pi の稼働時間を計測した。
スマートフォン用モバイルバッテリー( [2 ポート合計定格出力電流 4A / 電池定格容量 13000mAh]

ELECOM DE-M01L-13040WH http://www2.elecom.co.jp/avd/cellphone/battery/de-m01l-13040/) を用いて稼働時間を計測した。Raspberry Pi への接続機器は、コンソール作業可能な環境に限定した( USB ポートはキーボードとマウスのみ) 。
稼働時間計測には crontab を利用し、10 分毎の時刻をファイルに 1 行ずつ記述させ、記録することにより計測した。
この結果 Raspberry Pi Model B+は約 29 時間稼働した。これより消費電力が多い Raspberry Pi Model B でも約 21 時間稼働した。

5

まとめ

Raspberry Pi を用いて、OS 及び各種サーバーをインストール・設定し、動作することを確認した。また、13000mAh のモバイルバッテリーから電源供給して、Raspberry Pi Model B+が連続で 29 時間駆動することを確認した。同様に Model B でも 21 時間稼働し、東山キャンパスの年次点検による停電時間内にサーバーを継続的に運用することも可能であることが確認できた。
今後、IPv6 化のための動作確認と設定方法等の技術習得に今回獲得した知識を役立て、DNS 等の単機能サーバーとして運用テストを行い実運用に導いていければと考える。

参考文献
[1]

ラズベリー・パイで作る手のひら Linux パソコン、インターフェース ZERO、No.5