■はじめに 玄箱PROの使い方の一つとして NAS (Networked Attached Disk: ネットワーク接続型ディスク) があります。NAS として使うときに重要になるのはバックアップです。今回はバックアップに使えるソフトウェアと、バックアップ時に外付けディスクの電源を自動で ON/OFF する方法を紹介します。

図1 完成した自動電源 ON 回路
■バックアップの意味 バックアップには二つの意味があります。一つには、ハードディスクの故障に代表されるハードウェア障害に対する備えです。もう一つは、誤って消去してしまうなど人為的なミスに対する備えです。
■ディスクのミラーリング バックアップの方法はいくつかありますが、一つの方法がミラーリングと呼ばれる方法です。ミラーリングとは1台のディスクが壊れたときのために、同じ物を保存した別のディスク(コピー)を用意する方法です。常にミラーリングする方法として RAID 1 があります。常時ミラーリングしていると、バックアップ忘れがないメリットがあります。一方でハードウェア障害には対応できますが、即時に変更が反映されるため、人為的ミスには対応できません。
そこで定期的にソフトウェアでミラーリングをする方法をとることにします。Windows でファイルをディレクトリ単位でミラーリングするには、WinSync2000*1 や、BunBackup*2 といったソフトウェアを利用すると便利です。Windows マシンから玄箱 PRO が SAMBA で共有している領域にバックアップをとることもできます。玄箱 PRO 上(UNIX マシン)では、rsync というソフトを使うとミラーリングが簡単にできます。
*1 WinSync2000:
http://hp.vector.co.jp/authors/VA015685/*2 BunBackup:
http://homepage3.nifty.com/nagatsuki/bunbackup/bunbackup.htm■rsync を使ったミラーリング rsync は UNIX でよく使われるファイル同期がとれるソフトウェアです。cp や tar を使ったコピーと違い、削除したファイルをコピー先から消すことや、更新されたファイルのみコピーすることで時間が短縮される、ローカルだけでなくネットワークを通してファイルを同期できるなどの特徴があります。Debian パッケージが用意されているのでインストールは、
apt-get install rsync
だけで済みます。/home 以下を /disk2/home 以下にミラーリングする場合の基本的な使い方は、
rsync -aHv --delete /home/ /disk2/home
とします。ここで注意が必要なのは /home の後ろについている / です。これがないと、/disk2/home/home ディレクトリが作成されることになります。--delete オプションがない場合は、rsync はコピー元のファイルが削除されたときも、コピー先からファイルを削除しません。そのためミラーリングする場合には必要になります。v は詳細なメッセージを表示するためなのでなくてもかまいません。--dry-run をつけると実際にはファイルの操作はしません。動作の確認のために使うことができます。
rsync -aHv --delete --dry-run /home/ /disk2/home
一度、誤って消してもよいディレクトリを用意して動作を確認するとよいでしょう。
■電源のON/OFF ACアダプタの電源のON/OFFには半導体リレー (SSR: Solid State Relay) を使いました(図2)。低い電圧の直流で商用電源 (AC 100V) を ON/OFF 制御できます。玄箱PROから指令するために、秋月電子の FT245RL USB パラレル変換モジュールを使いました。
回路図は図3のとおりです。SSR には、オムロンの G3MB-202P 5V を使っています。ほかの SSR を使う場合には、FT245RL の最大出力電流(2mA程度)と図2にある JC208SC (ジェルシステム) のように電流制限抵抗が外付けで必要なものもあることに注意してください。

図2 半導体リレー (SSR: Solid State Relay)の例
警告:この回路では商用電源 (AC100V) を取り扱います。感電やショートなどがないよう十分に注意し、自己責任で楽しんでください。

図3 FT245RL を利用して商用電源を制御する回路
■回路の組み立て 図4, 図5のように部品を用意しました。商用電源用には必ず商用電源用のコードを利用するようにし、電子回路用(耐圧30V以下など)の電線を利用しないでください。

図4 松下電器 ベター 小型コード・コネクタ (平形コード用) WH 451P と平形コード

図5 基板上に実装する部品 (FT245RL モジュール, ICソケット、抵抗とLED, SSR)

図6 基板を表から見たところ

図7 FT245RLモジュールの実装方向と、SSRの向き。SSRは文字が読める側を FT245RLモジュールに向ける

図8 基板裏面の様子
基板ができたら、平形コードを加工し配線しました。

図9 平形コードの加工

図10 平形コードを基板につける
基板が完成したらテストの前にケースに組み込みます。感電防止です。用意したケースは100円ショップで購入したものです。基板を蓋側に両面テープで貼り付け、コードはケースに切り欠きをつくり、そこを通すことにしました。

図11 完成した基板と用意したケース

図12 基板は両面テープでケースに止める

図13 平形コードをコネクタに止める

図14 ケースの切り欠きにコードを通す

図15 ケースに収めたところ
動作テストの前にテスタで必ずショートしていないことをオス、メスとも確認します。火災などの原因になるので必ず確認してください。

図16 ショートしていないか必ず確認する
■動作テスト 動作テストの前に環境を用意する必要があります。
以前の記事を参考に環境を用意してください。プログラムは LED の点滅と同様に作成してあります。
power245.c をダウンロードして以下でコンパイルしてください。
cc -o power245 -I/usr/local/include power245.c -L/usr/local/lib -lftdi -lusb
まずコンセントには何も挿さずにテストします。FT245RL を USB で玄箱PROにつなぎ、認識された後、
./power245 on
で LED が点灯し、
./power245 off
で LED が消灯すればOKです。
つぎに、テスタで LED 点灯時、消灯時ともにショートしていないことを確認してください。LED点灯時にSSRを通したコネクタ間の配線で抵抗が多少あるのは無視してかまいません。OK なら、コンセントに負荷(電気スタンドなど)を接続し、 LED の点灯、消灯とともに、負荷が ON,/OFF できれば完成です。
SSR の容量は 1A となっていますが、 0.5A 以下で利用するほうがよいでしょう。扇風機などのモータを使ったものは利用できません。
■バックアップ・スクリプト コンパイルした power245 を /usr/local/sbin にコピーし、以下のようなバックアップ・スクリプト
backup.sh を作成しました。電源を投入後、30秒待ち、/, /home を順にバックアップしています。USBハードディスクは、記事「玄箱PROのハードディスク交換」に従ってパーティションを作成し、用意したものです。
#!/bin/sh
/usr/local/sbin/power245 on
sleep 30
mount /disk2
rsync -aHvx --delete / /disk2
mount /disk2/home
rsync -aHv --delete /home/ /disk2/home
umount /disk2/home
umount /disk2
/usr/local/sbin/power245 off
mount コマンドを見て分かるように /etc/fstab には、以下の2行を追加しています。
/dev/sdb2 /disk2 ext3 noauto 0 0
/dev/sdb4 /disk2/home ext3 noauto 0 0
さらに backup.sh を cron から定期的に実行するようにすれば、節電しながら自動バックアップがとれる環境の完成です。
<光永 法明>
コメントする