SanDisk Ultra Fit 128GB 4個でRAID5を構築してみた

2016年1月30日

先日、Raspberry Pi 2 Model B 用に、SanDisk Ultra Fit 128GBを購入しまして、ファイルサーバやミュージックサーバのデータ領域として使っているところですが、

参考記事:
Raspberry Pi 2 Model B用にUSBメモリ(SanDisk Ultra Fit 128GB)を購入してみた
Raspberry Pi 2 Model Bでファイルサーバを構築してみた

エンジニアとしては、「冗長化されていないけど大丈夫?」と心配になるわけです。

一度心配になると、日に日に心配度が増していって精神衛生上良くないので、SanDisk Ultra Fit 128GBを追加購入し、USBメモリ4台(4個)でRAID5を構築し、心の平穏を取り戻すことにしました。

ultra-fit-128gb-x4

Raspbian jessieでのRAID5構築手順などなどは以下のとおり。(debian というか、Linux全般のソフトウェアRAID構築手順です)

ポート数について

SanDisk Ultra Fit 128GBの4台構成のため、USBのポートが4つ必要です。

Raspberry Pi 2 Model Bには標準でUSB2.0ポートが4つ搭載されていますが、私は既にUSBポートにS/PDIF出力BEHRINGER UCA202を装着したりしており、ポート数が足りません。

従いまして、USBハブを使うことでポート数を増やすことにしました。

ultra-fit-128gb-x4

消費電力について

今のところ、バスパワーで何とかなっているようですが、「ものすごく負荷がかかったりしたら、さすがに無理なんじゃないだろうか?」と思っています。

従いまして、USBハブはセルフパワー対応のものを選定しています。自宅にあったBuffaloのBSH4A02シリーズというものを使いましたが、こちらの商品は既に販売終了していますので、もしも面白半分で真似をされる方がおられましたら、念のために、セルフパワーのUSBハブを選定された方が良いと思います。

RAID5の構築

SanDisk Ultra Fit 128GBを4つ装着したUSBハブをRaspberry Pi 2 Model Bに接続します。

fdisk -l コマンドで、認識されたデバイス名を確認します。

RAID用ファイルシステムの作成

認識された4つのデバイス

  • /dev/sda
  • /dev/sdb
  • /dev/sdc
  • /dev/sdd

に対して、fdisk デバイス名コマンドで既存のファイルシステムの削除と、RAID用ファイルシステムの作成を実施します。

以下は/dev/sdaに対しての実施例ですので、sda,sdb,sdc,sddの4回実施してください。

確認

ls -l コマンドで、/dev/sd*ファイルを確認します。

最後に1が付いたものができていればOKです。

RAID用のパッケージをインストール

mdadmというパッケージをインストールします。

インストール途中で設定画面が表示されてしまった場合は、キーボードのESCキーを押してキャンセルします。

余談ですが、mdadmコマンドは、過去にNASのRAID5ダブルフェイルが発生した際に大変お世話になりました。
参考:RAID5のHDD2本障害が発生したのでデータ復旧を試みた

RAID構築コマンドを実行

mdadmコマンドでRAIDを構築します。

パラメータの意味

  • -C RAIDのデバイス名:RAIDアレイ名を指定する。マルチプルデバイスなので、mdです。
  • -l 数字:RAIDのレベルを指定。今回はRAID5です。
  • -n 数字:RAIDのデバイス数を指定。今回は4台です。
  • /dev/sd[abcd]1:/dev/sda1,sdb1,sdc1,sdd1を使うという意味です。

進捗確認

cat /proc/mdstat にてRAIDアレイ構築の進捗が確認できます。

完了するまで待たずに次の作業に移れますので、気にせず進めましょう。

ちなみに、構築が完了すると、以下のようになります。

ファイルシステムの作成

作成したRAIDアレイ(/dev/md0)にファイルシステムを作成します。

ext4で作成します。

少し時間がかかりますが、気長に待ちましょう。

起動時に自動でRAIDが組まれる設定

以下のコマンドで設定を入れておきましょう。

起動時の自動マウント設定

/etc/fstabに追記しておきましょう。

/dev/md0 を/usbmemというディレクトにマウントする場合の例です。

私の場合は、ローカルIPアドレスからのアクセスは誰でも書込み可能なファイルサーバ(samba)での共有フォルダとして、/usbmem にマウントして使うため、uidとgidの指定をしています。

参考:Raspberry Pi 2 Model Bでファイルサーバを構築してみた

動作確認

Raspbian jessie を再起動して、マウントされるか確認しましょう。

マウント確認

df -h コマンドで確認してみましょう。

きちんとマウントされていますね。

RAID5構築後のサイズは342GB程度のようです。

ファイルサーバ領域のディスク(USBメモリ)が冗長化された、省エネ静音サーバとして、これだけの容量があれば、まぁまあ上出来でしょう。
SSD複数台でRAID組むより安くて低消費電力と思いますよ。

おススメですよ!

おまけ:RAID状態確認

以下のコマンドで、作成したRAIDアレイの構成・状態・容量を確認できます。

今回もお疲れさまでした。