追記(2024/05/23)
OpenMediaValut
ver.7が安定版としてリリースされました.
これにより,導入前提OSがDebian12 (bookworm)
に変更されています.
また,ソフトウェアRAIDを構築するソフトウェアが,プリインストールではなくなりました.この変更により,この記事で紹介している手法が使えなくなっているかもしれません.
OMV7でこの手法を試した方いらっしゃいましたら,コメント欄で動作報告していただけるとありがたいです.
概要
Raspberry Pi
を用いてOpenMediaVault
を使ったRAID搭載NAS
を作っていきます.
OpenMediaVault
では,USB接続されたHDDに対し,ソフトウェアRAIDを構築することはできません(信頼性の関係).そこで,裏技を用いてソフトウェアRAIDがOpenMediaVault
上でも作成できるようにしていきます.
OpenMediaVault
上でUSB接続によるRAID構築をする理由
OpenMediaVault
を使わなくとも,USB接続かどうかに関わらずソフトウェアRAIDは構築できます(samba + mdadmパッケージ).では何故OMV
を使うのか?
それは,後々の管理が楽だからです.OMV
を使えば,共有フォルダやパーミッションの設定,NASの状態把握などがブラウザ上で直感的に行なえます,このような観点からOMV
を用いたUSB接続によるHDDのRAID構築を目指していきます.
構成
今回使用するパーツは以下の通り.
今回RAID 1
を構築するので,データ消失のリスクは低いと考えています.
そこで,HDDはジャンク品(動作確認済み)を使用しました.当たり前ですが,予算があるのであれば新品を買った方がいいと思います.
パーツ | メーカー | 型番 | 価格 | 備考 |
---|---|---|---|---|
コンピュータ | Element14 | Raspberry Pi 4 Model B / 4GB | ¥10,560(スイッチサイエンス) | |
HDDケース | 玄人志向 | KURO-DACHI/CLONE/CRU3 | ¥3,655(Amazon) | |
SDカード | グリーンハウス | GH-SDMRHCUB32G | ¥1,500(Amazon) | 元はドラレコ用 |
HDD1 | SEAGATE | ST1000DM010 | ¥1,500 | ジャンク品 |
HDD2 | WesternDigital | WD1002FBYS | ¥1,500 | ジャンク品 |
合計して¥18,715
になりました.BUFFALO
のLinkStation LS220D0202G
という製品が¥19,248(価格ドットコム調べ,2023/08/27 現在)で売られているところを考えると,市販品買った方が良いという結論になりますね(汗)
ただ,NASの有名メーカーである,QNAP
やSynology
と比べれば安価に作れますし,またNASに使用するHDDの容量・台数を増やしていくと,この状況は逆転するのではないかと考えれらます.
また,カスタマイズ性,拡張性(あとからHDDの台数を増やせる)という点から見れば,自作するのも結構悪くないんじゃないですかね
自作する楽しみは既製品のNASでは味わえないので高くなってもOK!
HDDケースについて
今回は玄人志向
のHDDケースを使用しましたが,ケースに関してはお好みで良いと思います.HDDが1台入るケースを複数台購入しても良いと思いますし,別に玄人志向
でなくとも様々なメーカーが同様のHDDケースを販売していますので,そちらを選んでも良いかと思います.今回はソフトウェアRAIDを使用してRAIDを構築していますが,ハードウェアRAID搭載のケースであれば,それ単体でRAIDが構築できてしまいますしね.
ただ,注意しておきたいのはRaspberry Pi
側のUSBポート数です.使用するHDDの数やケースによっては,USBポートが足りなくなることがあるので,その際はUSBハブを間に噛ませるなど,対策が必要です.
構築方法
大まかな流れ
- SDカードにOSを書き込む
- OpenMediaVault(NAS管理ソフト)をインストール
- ソフトウェアRAIDを構築
- Sambaの有効化・共有ファイルの設定等
- 動作確認
手順
1. OSを書き込む
Raspberry Pi用のOSをSDカードに書き込んでいきます.
OSは,RaspberryPi OS Lite (64bit)
を選択しました.
使用するOSについて
使用するOSはRaspberryPi OS以外でも大丈夫ですが,以下の条件を満たす必要があります.
-
Debian 11(bullseye)
であること
-Debian 12(bookworm)
であること - デスクトップ環境が用意されているものでないこと
となると,RaspberryPi OS
以外で使用できるものといえば,Ubuntu Server
くらいでしょうか.
※具体的な手順については割愛します.
2. OpenMediaVault
(NAS管理ソフト)をインストール
OpenMediaVault(OMV)
をインストールしていきます.OMV
は通常,OSと一緒にインストールしますが,公式サイトで配布されているものがIntelx86
系用OSであるため,このままではARM
系であるRaspberry Pi
にインストールすることができません.
そこで,今回は既存のDebian
系OS上で動作するようにしていきます.
① インストールスクリプトを実行
Raspberry Pi
のターミナル上で以下のコマンドを実行します.
sudo wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash
トラブルを避けるため,HDDはまだ接続しないでください.
すると,OMV
のインストールが開始されます.インストール終了まで大体20分程度かかります.気長に待ちましょう.
インストールが完了すると,自動的にシステムの再起動が行われます.再起動したらインストール完了です.
SSH接続で作業をしている場合には再起動に伴って,接続が切断されますので,再起動後に再度接続をし直してください.
③ OMV
のインストール完了の確認
正しくインストールが完了しているか,確認していきます.ifconfig
等でRaspberryPiのIPアドレスを確認した後,ブラウザで以下のサイトにアクセスします.
http://ラズパイのアドレス
言語が日本語でない場合は,地球儀のアイコンをクリックすると変更できます.
デフォルトでは,以下のようなIDとパスワードで管理画面にアクセスできます.
- ログインID:
admin
- パスワード:
openmediavault
試しにアクセスして,管理者パスワードを変更しておきましょう.
以下の画像のように,右上にあるユーザーアイコンをクリック
→パスワードの変更
でパスワードを変更しておきます.
3. ソフトウェアRAIDの構築
続いて,ソフトウェアRAIDを構築していきます.OMV
ではUSB接続されたHDDは信頼性の関係でRAIDを構築することができません.そこで,裏技を使ってソフトウェアRAIDの設定を行います.
① HDDを接続する.
HDDを接続します.Raspberry Pi
には,USB2.0
とUSB3.0
の2種類がありますので,注意して接続してください.
② HDDのフォーマット
HDDのフォーマットを行います.先程のようにOMV
の管理画面にアクセスしてください.
続いて,ストレージ
→ディスク
と進みます.
フォーマットするには,フォーマットしたい(RAIDを構築したい)HDDをリストから選んだ後,ワイプ
をクリックしてフォーマットします.
途中フォーマット方法にクイック
かセキュア
を選ぶ画面が現れますが,特段のことがなければ,クイック
で大丈夫です.
また,このときデバイスの欄に記載されている,HDDのパス(画面の例では,/dev/sdaや/dev/sdb)を覚えておいてください.
③ RAIDの構築
RAIDの構築をしていきます.前述の通り,OMV
の管理画面上ではUSB接続されたHDDのRAID構築は行えません.
そこで,再度ターミナルにアクセス
します.
ターミナルに接続したら,以下のコマンドを実行します.
sudo mdadm --create /dev/md0 --raid-devices=構築に用いるドライブ数 --level=RAIDのレベル HDD1 HDD2
# RAIDのレベルには,構築したいRAIDのレベルを入力
# 記載例:raid0,raid1,raid5
# HDD1,HDD2には,先程確認したHDDのパスを入力します.
# 記載例:/dev/sda
途中聞かれることがありますが,y
で問題ないようです.
私の場合は,2台のドライブを使ってRAID1
を構築しますので,以下のようになります.
sudo mdadm --create /dev/md0 --raid-devices=2 --level=raid1 /dev/sda /dev/sdb
コマンドが成功していれば,RAID構築の設定は完了です.
④ RAID構築の確認
RAID構築が正しく行えているか確認します.再度ブラウザでOMV
の管理画面を開いてください.
続いてストレージ
→ソフトウェアRAID
を開きます.
正しく,RAIDが構築されていれば,ソフトウェアRAID一覧に先程作成したRAIDドライブ(/dev/md0)が表示されているはずです.
シンクロナイズ
画像は,RAID構築してしばらく経った後のスクリーンショットになりますが,RAID構築直後はシンクロナイズ
作業が行われます.HDDの容量によって時間は大きく異なりますが,私の場合(HDD 1TB)では3時間ほどかかりました.
シンクロナイズ
中であっても,別の操作を行うことは可能ですが,念のため完了するまで待っておいた方がいいでしょう.
4. Samba(SMB)
の有効化
シンクロナイズが終了したら,実際に共有の設定を行なっていきます.
① ファイルシステムの作成
NASのストレージとして使うファイルシステムの作成
を行っていきます.
ストレージ
→ファイルシステム
にアクセスし,プラスボタンを押下.
その際,ストレージの形式を聞かれますので,お好きなフォーマット形式(今回はBTRFS
)を選んでください.
すでにRAIDは構築済みなので,プロファイルにはSingle
を選択,デバイスには先程作成したRAIDドライブ
を選択し,保存をクリックします.
続いてマウントを行う画面に遷移しますので,先程設定したドライブがファイルシステムに選択されていることを確認し,保存を押します.
このとき,変更の反映を促すバナーが表示された場合には,反映ボタンを押してください.
マウントを行う画面に自動的に遷移しない場合,ファイルシステム
ページの再生ボタン(マウント)から同様の作業を行なってください.
② 共有フォルダの作成
共有フォルダを作成していきます.
ストレージ
→共有フォルダ
→作成(プラスボタン)
を選択,名前とファイルシステムを選んだ後,パーミッションを
Administrator: 読み込み/書き込み, Users: 読み込み/書き込み, Others: アクセス不可
に変更し,保存します.
③ SMBの設定
ファイル共有を行うためのシステム(Samba)の設定を行っていきます,
サービス
→SMB/CIFS
→設定
を選択します.
続いて,ワークグループの項目の上の有効ボタン
にチェックをいれ,変更を保存.
その後,サービス
→SMB/CIFS
→共有
のページに移動し,作成
ボタンをクリックします.
有効ボタンにチェックが入っていることを確認した後,Shared folder
に先ほど作成した共有フォルダを選択,保存します.
これで,ファイルの共有が行えるようになりました.
⑤ NAS用アカウントのパスワード設定
NASにアクセスするためのパスワードを設定していきます.
ユーザー
→ユーザー
にアクセス.デフォルトではRaspberryPiのアクセスに用いているアカウントが登録されているはずです.別個新しくNASアクセス用のアカウントを作成しても良いのですが,今回は予め登録されているアカウントを使用していきます.
予め登録されているアカウントを選択後,編集
をクリック,パスワード
,パスワードの確認
の欄にNASにアクセスするためのパスワードを入力します.入力が終わったら保存し,変更を保存します.
今回設定したパスワードとRaspberry Pi
を操作するためのパスワードは別です.混同しないようにしてください.
5. 動作確認
動作確認を行います.まず,エクスプローラのアドレス欄にNASのIPアドレス
を入力します.
すると,ログイン画面が現れますので,先程設定したアカウント名とパスワードを入力します.
そうすると,先程作成したフォルダが表示され,自由に読み書きができるはずです.
ここまでできれば,作成完了です.
使用感について
読み書きの速度を計測してみました.ベンチマークに用いるソフトはCrystalDiskMark
です.
結果,最大115.77 MB/s
の読み取りができていることがわかりました.我が家のLAN環境は1Gbps(125 MB/s)環境ですので,実測値などを考慮すれば,想定されるような結果が得られているのではないかと考えられます.
RAID1
構成のHDDでこの速度ですから,RAID0
やRAID10
などを用いて高速化を図りたい場合,LAN環境を実測値で1Gbps以上の速度が出せるようにしなければならないことになります.
そうすると,LANケーブルだけでなく,LANカードやルータなども場合によっては交換しないといけなくなるため,一般の家庭ではHDD単体で十分なのかもしれませんね.
参考文献