LoginSignup
8
12

Raspberry PiでRAID付きNASを構築する

Last updated at Posted at 2023-09-01

概要

 Raspberry Piを用いてOpenMediaVaultを使ったRAID搭載NASを作っていきます.
YEP06127.jpg

 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になりました.BUFFALOLinkStation LS220D0202Gという製品が¥19,248(価格ドットコム調べ,2023/08/27 現在)で売られているところを考えると,市販品買った方が良いという結論になりますね(汗)

ただ,NASの有名メーカーである,QNAPSynologyと比べれば安価に作れますし,またNASに使用するHDDの容量・台数を増やしていくと,この状況は逆転するのではないかと考えれらます.

また,カスタマイズ性,拡張性(あとからHDDの台数を増やせる)という点から見れば,自作するのも結構悪くないんじゃないですかね

自作する楽しみは既製品のNASでは味わえないので高くなってもOK!

HDDケースについて

 今回は玄人志向のHDDケースを使用しましたが,ケースに関してはお好みで良いと思います.HDDが1台入るケースを複数台購入しても良いと思いますし,別に玄人志向でなくとも様々なメーカーが同様のHDDケースを販売していますので,そちらを選んでも良いかと思います.今回はソフトウェアRAIDを使用してRAIDを構築していますが,ハードウェアRAID搭載のケースであれば,それ単体でRAIDが構築できてしまいますしね.

 ただ,注意しておきたいのはRaspberry Pi側のUSBポート数です.使用するHDDの数やケースによっては,USBポートが足りなくなることがあるので,その際はUSBハブを間に噛ませるなど,対策が必要です.

構築方法

大まかな流れ

  1. SDカードにOSを書き込む
  2. OpenMediaVault(NAS管理ソフト)をインストール
  3. ソフトウェアRAIDを構築
  4. Sambaの有効化・共有ファイルの設定等
  5. 動作確認

手順

1. OSを書き込む

 Raspberry Pi用のOSをSDカードに書き込んでいきます.
OSは,RaspberryPi OS Lite (64bit)を選択しました.

使用するOSについて

使用するOSはRaspberryPi OS以外でも大丈夫ですが,以下の条件を満たす必要があります.

  • Debian 11(bullseye)であること
  • デスクトップ環境が用意されているものでないこと

となると,RaspberryPi OS以外で使用できるものといえば,Ubuntu Serverくらいでしょうか.

※具体的な手順については割愛します.

2. OpenMediaVault(NAS管理ソフト)をインストール

 OpenMediaVault(OMV)をインストールしていきます.OMVは通常,OSと一緒にインストールしますが,公式サイトで配布されているものがIntelx86系用OSであるため,このままではARM系であるRaspberry Piにインストールすることができません.

そこで,今回は既存のDebian系OS上で動作するようにしていきます.

① インストールスクリプトを実行

Raspberry Piのターミナル上で以下のコマンドを実行します.

shell InstallScript.sh
sudo wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | sudo bash

トラブルを避けるため,HDDはまだ接続しないでください.

すると,OMVのインストールが開始されます.インストール終了まで大体20分程度かかります.気長に待ちましょう.

 インストールが完了すると,自動的にシステムの再起動が行われます.再起動したらインストール完了です.

SSH接続で作業をしている場合には再起動に伴って,接続が切断されますので,再起動後に再度接続をし直してください.

OMVのインストール完了の確認

 正しくインストールが完了しているか,確認していきます.ifconfig等でRaspberryPiのIPアドレスを確認した後,ブラウザで以下のサイトにアクセスします.

管理画面へのアクセス.
http://ラズパイのアドレス

すると,以下のようなサイトに繋がるはずです.
OMV管理画面

言語が日本語でない場合は,地球儀のアイコンをクリックすると変更できます.

デフォルトでは,以下のようなIDとパスワードで管理画面にアクセスできます.

  • ログインID:admin
  • パスワード:openmediavault

試しにアクセスして,管理者パスワードを変更しておきましょう.

以下の画像のように,右上にあるユーザーアイコンをクリックパスワードの変更でパスワードを変更しておきます.
パスワード変更

3. ソフトウェアRAIDの構築

 続いて,ソフトウェアRAIDを構築していきます.OMVではUSB接続されたHDDは信頼性の関係でRAIDを構築することができません.そこで,裏技を使ってソフトウェアRAIDの設定を行います.

① HDDを接続する.

 HDDを接続します.Raspberry Piには,USB2.0USB3.0の2種類がありますので,注意して接続してください.

② HDDのフォーマット

 HDDのフォーマットを行います.先程のようにOMVの管理画面にアクセスしてください.
続いて,ストレージディスクと進みます.

ディスクの管理画面

フォーマットするには,フォーマットしたい(RAIDを構築したい)HDDをリストから選んだ後,ワイプをクリックしてフォーマットします.

途中フォーマット方法にクイックセキュアを選ぶ画面が現れますが,特段のことがなければ,クイックで大丈夫です.

また,このときデバイスの欄に記載されている,HDDのパス(画面の例では,/dev/sdaや/dev/sdb)を覚えておいてください.

③ RAIDの構築

 RAIDの構築をしていきます.前述の通り,OMVの管理画面上ではUSB接続されたHDDのRAID構築は行えません.

そこで,再度ターミナルにアクセスします.

ターミナルに接続したら,以下のコマンドを実行します.

ターミナルにアクセス.sh
sudo mdadm --create /dev/md0 --raid-devices=構築に用いるドライブ数 --level=RAIDのレベル HDD1 HDD2

# RAIDのレベルには,構築したいRAIDのレベルを入力
# 記載例:raid0,raid1,raid5

# HDD1,HDD2には,先程確認したHDDのパスを入力します.
# 記載例:/dev/sda

途中聞かれることがありますが,yで問題ないようです.

私の場合は,2台のドライブを使ってRAID1を構築しますので,以下のようになります.

2台のドライブでRAID1を構築するとき.sh
sudo mdadm --create /dev/md0 --raid-devices=2 --level=raid1 /dev/sda /dev/sdb

コマンドが成功していれば,RAID構築の設定は完了です.

④ RAID構築の確認

 RAID構築が正しく行えているか確認します.再度ブラウザでOMVの管理画面を開いてください.
続いてストレージソフトウェアRAIDを開きます.

ソフトウェア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です.
CrystalDiskMark_20230902114202.png
結果,最大115.77 MB/sの読み取りができていることがわかりました.我が家のLAN環境は1Gbps(125 MB/s)環境ですので,実測値などを考慮すれば,想定されるような結果が得られているのではないかと考えられます.

RAID1構成のHDDでこの速度ですから,RAID0RAID10などを用いて高速化を図りたい場合,LAN環境を実測値で1Gbps以上の速度が出せるようにしなければならないことになります.
そうすると,LANケーブルだけでなく,LANカードやルータなども場合によっては交換しないといけなくなるため,一般の家庭ではHDD単体で十分なのかもしれませんね.

参考文献

8
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
12