初心者でもラズパイでNASサーバーを作ってみよう!

Raspberry Pi は設定や機器を追加して色んな機能を持たせられます。NASサーバーも可能です。

Raspberry Pi を買ったはいいが、さて次はどうしようか? 勉強するためだけでは飽きちゃうなー、という人に、実用的に使える仕組みにトライして欲しいと思っています。

しかし、どうしても専門的で難しく感じてしまいますよね。それは仕方がないことです。

コードやコマンドなどをあまり分からないとしても、先ずは真似して実践してみましょう。

目次

NASとは

今回はRaspberry Pi をNASにします。

NAS——NAS(Network Attached Storage)の略で、ネットワーク(LAN)上に接続することができるハードディスクのことです。

Raspberry Pi で構築したNASを家庭内LANに設置します。

NASがあるとこんなことが!

家族で撮影した写真や動画などをRaspberry Piに繋いだHDDなどへ保存しておくとします。それをテレビに映して複数人で視聴したり、自分のスマホに表示したり、手元にないデータを閲覧できます。

NASに保存したデータを(家庭内の)どのデバイスからも閲覧できる共有元として使います。

逆にバックアップ場所として利用して、手元のデバイスやPCから削除させても良いでしょう。

例えばこんな使い方

NASにメディアファイルがあれば、Raspberry Pi のmicroSDカード内にメディアファイルをコピーする必要はありません。

テレビに繋いだラズパイに入れたLibreELECで、NASにあるホームビデオを再生させられます。

別のPC端末やタブレットなどで、やはり同じNASにある別のホームビデオを再生させることができるようになります。

更に、NASはある種のサーバーのため、同時に別の部屋で寛いでいる家族が、やはり同じNASにあるメディアファイルを呼び出せます。同時に利用できる点が便利ですよね。

メディアファイルに限らず、NASに保存したデータにアクセスができるので管理も楽になります。

Raspberry Pi のメリット

家庭内であれば数人との共有になりますから、本格的なNASではなくても役立ちます。中古PCでも代用できるんですけど、消費電力はノートパソコンでもそれなりに掛かってしまいます。

その点、Raspberry Piであれば、月に200円以下で収まります。(※外付けHDDの消費電力は除く)

  • 家族の共有先として
  • バックアップ場所として
  • 同時に利用できる

一昔前にではあまり一般的では無かったと思います。企業ではとうの昔から利用されていました。これがRaspberry Pi 4のような安価で小さな基板があれば構築できるのが魅力です。

使用したパーツ

先ずはNASのセットアップを(難しいところを極力省いて)ご紹介していきます。

追記:ネットワークに繋がらない対処法その3まで追記しました。
追記:WEB管理画面にログイン出来ない場合の現象と解決法を追記しました。

openmedeiavault-nas4

以下は、記事執筆当時の構成です。

  • Raspberry Pi 3B/3B+ → Raspberry Pi 4が実用的な回線速度(ギガビットイーサネット)
  • microSDカード16GB
  • 外付けHDD 3TB
  • Raspberry Pi クリアケース(3ple Decker)→冷却ファンが金属ケースがおすすめ

Raspberry Pi 4の登場以降

Raspberry Pi 4を利用すれば、ギガビットイーサネットが使え通信が実用的になります。

処理速度も大幅に上がって、メモリーも4GBもあれば多いくらいです。同時にアクセスする際にCPUの速度は速い方が良いですからね。

この記事では、Raspberry Pi 3Bまたは3B+を利用します。
Raspberry Pi 4は別の記事を参考にしてください。

今回の環境

  • openmediavault(NASサーバーOS)
  • モニター——モニターは確認用で繋げました。ブラウザからの操作で必須ではありません。
  • キーボード——これも後で取り外します。rootのパスワード変更のみ使用します。
  • LANケーブルは接続しておいてください
USBハードディスク

画像の外付けHDDは、空のケースとハードディスク本体を別々に用意する製品です。古いHDDの使い回すために使いました。

もちろん、新品の外付けハードディスクならいうことはありません。

USB接続するHDDのフォーマットは、事前にフォーマットしておくと便利です。WindowsのNTFSではなく、exFATまたはLinuxのExt4にします。

exFATならWindowsマシンからもファイルにアクセスできるのでオススメです。

インストール方法

今回使うOpenMediaVaultは、バージョン5からこれまでとインストール方法が異なります。

OMV5からインストール方法が変更になりました。

2019年末以降は単独のイメージではなく、Raspberry Pi OS liteに追加する形に変更になっています。
Raspbian Buster Liteをインストールした状態で以下のコマンドを実行してインストールします。

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

microSDカードへはRaspberry Pi Imager からRaspberry Pi OS liteを書き込んでおきます。

liteが起動した後、piユーザーでログインして上記コマンドを入力します。

初期ユーザー pi
初期パスワード raspberry

Raspberry Pi liteにはGUI画面が有りません。

WEBインターフェイスから設定する

このOpenMediaVaultは、同じネットワークにある他のPC/MacからWEBブラウザを使って設定します。

従ってRaspberry Pi自体への設定は一旦これで終わりです。

ログイン

Raspberry PiのIPアドレスは、Raspberry Pi にモニターを繋いでいれば、コマンドで ip a と入力して調べることができます。

他のマシンからWEBブラウザでアクセスすると、また別のログイン画面が表示されます。

初期ユーザー名は「admin」、初期パスワードは「openmediavault」になります。

web interface:
- username = admin
- password = openmediavault

web-login
キャプチャはOMV4

最初から日本語になっているのは有り難いですね!

ログインできない?

コメントいただきました。このケースは多いと思うので追記しておきます。

私もwebguiが使えず困っていました。ルーターの設定ばっかり見直していてハマりました。使用しているネットワーク環境がIPv6に対応していないとPort80が動作しない?ようです。Openmediavaultの設定ファイルを編集してサービス再起動して直りました。同じ原因だといいのですが。OMV4でのお話です。

まきジャックさんのコメントより

(編集するファイル)

sudo nano /etc/nginx/sites-available/openmediavault-webgui

私の環境のopenmediavault-webguiファイルのソースを参考にしてください。

sudo cat /etc/nginx/sites-available/openmediavault-webgui
server {
    server_name openmediavault-webgui;
    root /var/www/openmediavault;
    index index.php;
    autoindex off;
    server_tokens off;
    sendfile on;
    large_client_header_buffers 4 32k;
    client_max_body_size 25M;
    error_log /var/log/nginx/openmediavault-webgui_error.log error;
    access_log /var/log/nginx/openmediavault-webgui_access.log combined;
    error_page 404 = /404.php;
    location /404.html {
        internal;
    }
    location /extjs6/ {
        alias /usr/share/javascript/extjs6/;
        expires 2d;
    }
    location ~ ^/(css|fonts|js|images)/ {
        expires 2d;
    }
    location /favicon {
        expires 14d;
    }
    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php-fpm-openmediavault-webgui.sock;
        fastcgi_index index.php;
        fastcgi_read_timeout 60s;
        include fastcgi.conf;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
    listen 80;
    include /etc/nginx/openmediavault-webgui.d/*.conf;
}

変更する箇所

listen [::]:80 ipv6only=off;  →  listen 80;

サービスの起動と確認

sudo systemctl start nginx.service
(もしくはsudo systemctl restart nginx.service)
sudo systemctl status nginx.service

お使いのルーターがIPv4しか対応していない機器か、IPv6の設定を変更しているか、もしくは接続プロバイダ自体がIPv6に対応していないと起こり得るので、少し前の古い機種なら確認した方が良いです。ラズパイマガジンに載っていました。情報提供をありがとうございます。

ログインできない?その2

コメントいただきました。やはりルーターとか、配線とか、Wi-Fiとか、分かりにくいと思いましたので、図を作成しました。

ルーター配線図

これは基本の図です。ケースバイケースもありますけど、家庭ではこんな感じでしょう。

ネットワークは分かりにくいと思いますが、最小の構成で考えてください。

Wi-Fi機は恐らくルーター機能付きが大半なので、増設した場合はルーターモードではなくブリッジモードにすれば、PCマシン達と同じ扱いです。

ログイン後の画面

ログイン後

左のメニューから様々な設定ができます。

ここでは、ファイルを共有するという点に絞って設定していきます。

具体的には、USBハードディスクをマウント(認識)させ、ファイル共有のためsambaを有効にして、アクセス権を持つユーザーを追加し、共有するフォルダを指定します。

順番に行えば何も難しくありません。

  1. USBハードディスクをマウント
  2. sambaを有効
  3. ユーザーを追加
  4. 共有するフォルダを指定

では順番に設定していきましょう。

ここで設定の保存について!

設定は保存ボタンで保存しますが、一番最後にでも構いませんので、右上に出る適用も押下して反映されます。

保存ボタン

日時修正のためのタイムゾーンを変更

先ずはじめに日付を日本の時刻に合わせます。

【システム】-【日付と時刻】

タイムゾーン

Asia/Tokyoです。Japanでも大丈夫でした。プルダウンメニューから選びます。

sambaサービスを有効にする

sambaサービスが有効になっていないと思うので、有効にしておきます。

【サービス】-【SMB/CIFS】

sambaサービス

有効のボタンを押すだけです。

USBハードディスクをマウント

繋いでいるUSBハードディスクがマウントされているか見てみます。マウントされていないと思いますので、該当のUSBハードディスクの行を選んで、上部にあるマウントするでマウントします。

後から繋げて表示されていなければスキャンボタンでスキャンしてください。

ちなみにワイプというのは削除と同等です。パーティショニングをしフォーマットする時に使います。

ワイプ ≒ フォーマット

新品のHDDを使う場合はワイプからフォーマットしてください。

フォーマット形式はLinuxのext4が良いとは思いますが、WindowsやmacOSからは認識することができません。

【ストレージ】-【ディスク】

マウント

今回は1TBのハードディスクを繋げてマウントしました。

マウントできない??

もしもマウントできない場合は、フォーマット(=ワイプ)をしないとなりません。繋げた外付けハードディスクがスキャンで表示されれば、フォーマットが可能です。

※フォーマットするとデータが全て消えます。気をつけてください。

エラーが出て変更を適用できない・・・?

外付けハードディスクの書き込みに失敗したのかも?
もう一度、USBで繋げた外付けハードディスクのフォーマットからやり直してみよう。

アンマウントできない?

もう一度外付けハードディスクのフォーマット(=ワイプ)するためにハードディスクのアンマウントが必要です。

もしも同じようにアンマウントで悩んでいたら次の記事もご確認ください。

ユーザーの追加

sambaサービスでアクセスできるユーザーを追加します。

【アクセス権の管理】-【ユーザー】

ユーザー

ここでは名前を「nas-user」にしました。コメントは任意です。

そしてパスワードを2箇所に入れて保存でOKです。このユーザー名とパスワードで他のマシンから接続します。

共有フォルダの設定

共有させ他から接続できるフォルダの場所を登録します。

【アクセス権の管理】-【共有フォルダ】

共有ポイント
共有を選ぶ

名前は任意で構いません。デバイスの欄はプルダウンメニューで選びます。先程、ハードディスクをマウントしたため、選べるはずです。出ない場合はマウントを確認してください。

パーミッションはアクセス権限です。デフォルトの読み書きのままで良いでしょう。

samba共有フォルダを有効

先程、ユーザーの追加と共有フィルダの作成をしましたが、sambaでは共有フォルダを有効にし、先程の共有フォルダの場所を設定します。

【サービス】-【サービス】-【SMB/CIFS】-【共有タブ】

smb共有フォルダ

選んで有効のボタンを押すだけです。他はとりあえずデフォルトのままで良いでしょう。

固定IPに変更する

IPアドレスは動的で変更になりますので、ここで固定IPに変更しておきましょう。

名前の変更

固定IPにも変更しますが、ネトワーク名であるホスト名も変更しておきます。

これなら次回から、ssh root@nas.localで接続可能です。(ホスト名はNASならば)

【システム】-【ネットワーク】

ネットワーク名

大文字と小文字と混ざった例になってしまっていますが、英語小文字で構いません。

固定IPの設定

イーサネットをスタティック(固定)にします。

※NASなのでWi-Fiでは設定していません。

[システム]-[ネットワーク]-[インターフェイスタブ]-追加(イーサネット)

イーサネット
スタティックアドレス

メソッドをスタティックと選び、アドレスを任意の(他と重ならない)ローカルIPアドレスにします。※ローカルアドレスやネットマスクは環境により異なります。

ここでは19番にしましたけど、分かり易い99や50なら重なりませんね。

ゲートウェイはルーターの番号です。

確かにネットワーク系は難しいかも知れませんが、何度も設定していると理解してきますよ。
完全に理解できないとしても、よく使う場面のIPアドレスや設定方法だけでも覚えて置くと助かるでしょう。

この後さらに設定を続けるには、先程変更したIPアドレスまたは名前でアクセスし直してください。

また、再起動後はここで指定したIPアドレスになります。

こまでで基本的な設定は以上です。

今後もRaspberry Pi を使うのなら、こういったネットワークに繋いだり設定する場面が出てくると思いますので、基本的な部分は知っておきましょう。

ネットワーク系が苦手な人のために「IPアドレスとサブネットマスクを理解しよう!」に分かり易くまとめてみました。

1つずつやれば難しくない

手間がかかるように思えますが、コマンドはあまり使わずにWebインターフェイスにある設定を一つずつ済ませれば使えます。

Raspberry PiでNASサーバーが出来上がったら、もう1台Raspberry Piを導入して、LibreELECを利用したメディアプレイヤーに仕立て上げて連携すると更に快適です。

家庭で使うのに充分な機能のNASは、Raspberry PiとOpenmedeiavaultで実用的に構築可能です。やはりRaspberry Piなら電気代があまりかからないので気にしなくて済むのが嬉しいですね。

参考:

目次
トップへ
目次
閉じる