RaspberryPI4をサーバーにして遊び倒す。その1


この記事は Voicy Advent Calendar 2020 の 11日目の記事です。
前日は @yamagenii さんの 一瞬で作るストリームデータ収集基盤でした。明日は, @y_katsumura さんの 採用から組織開発は始まっている 〜エントリーマネジメントの重要性〜 です。

はじめに

とりあえず買ったはいいがどうやって使うか迷いがちなRaspberry。

Raspberry Pi4は1GbEをフルスピードで扱えたり、USB3.0に対応するなどIO周りが強化されていて省電力なファイルサーバーとして使えそうな構成になっています。最近のアップデートは、64bitOSでUSBBootにも対応しているので、SSBから起動することによって、SDカードの書き込み最大回数をきにすることなく、またSSD化でディスクアクセス速度の向上もできるので、大分実用的に運用できるようになってきてるように思います。

ということで、なにを作ればよいかわからない人は、とりあえずサーバーにしてあそんでみるのはどうでしょうか。実用的だし、学習にもぴったりです。

この記事では、RaspberryPi4をNAS、クラウドストレージ、ストリーミングサーバーとして活用するところまで書いていきます。
書いているうちに長くなってきたので、2つに分けます。

必要なもの

  • Raspberry Pi4
  • Boot用のSSD (容量お好みで。うちは32GB使っています)
  • USB接続のSSDケースか、SATA-USB 変換ケーブル
  • データ用のHDD/SSD
  • USB3.0対応のHDD/SSDのケース

Raspberry Piのセットアップ

軽量化の為にデスクトップ機能は省きます。
Raspberry Pi OS Lite 64bit版をダウンロードして、EtcherでSSDにコピーしましょう。

WiFi設定とsshの有効化

コピーしたSSDのbootにWiFi設定とSSHの有効化をします。
有線でつないでいる場合には、WiFi設定は飛ばしてかまいません。

SSHの設定は、bootにsshのファイルを作成するだけで有効になります

$touch boot/ssh

WiFi設定は/bootにwpa_supplicant.confファイルを作成します。

$vi boot/wpa_supplicant.confg
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=JP

network={
    ssid="<アクセスポイントのSSID>"
    psk="<パスワード>"
}

起動して初期設定とアップデート

起動の際に、SDカードがない場合は、USBを読みにいくので、SSDをUSBにつなげて起動して、必要な初期設定を実行します。
ここでアップデートもして、一度再起動します。

sudo apt update
sudo apt dist-upgrade
sudo reboot

Openmediavalut5をインストール

piユーザーで行ってください。
インストールに時間がかかるのでインストールされるまで待ちます。
ドキュメントによると30分かかることもあるらしいですが、そんなにはかからなかった気がします。

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

インストールが終わったら、もう一度再起動します。

sudo reboot

再起動から復帰したあと、今までのインストール作業がうまくいっていれば、ブラウザからのアクセスでログインできます。
IPアドレスが判明してる場合にはそのIPアドレスから、そうでなければ「ホスト名.local」からアクセスできるはずです。
デフォルトのホスト名だと下記になります。

http://raspberrypi.local

ブラウザからアクセスしたらログイン画面がでるので、初期ユーザー名と初期パスワードでログインします。
- 初期ユーザー名:admin
- 初期パスワード:openmediavault

こんな画面がでたら成功です

NASの設定

左側のペインの項目から設定していきますが、ペインの項目すべてを設定しなくても、NASとして動作させられます。
最低限として以下の項目を設定します。
- 基本設定としてシステムのすべて
- ストレージのディスク、SMART、ファイルシステム
- アクセス権の管理のユーザー、共有フォルダ
- サービスのSMB/CIFS
順々に設定していきます。

システム

一般設定

システム→一般設定→Web管理者パスワード
からログインしたadminのパスワードを変更します。新しいパスワードを入れて保存、適用します。

日付と時刻

タイムゾーンのプルダウンから、自分の環境に合わせて選択します。

ネットワーク

ネットワークでは一般とインターフェースのタブから設定を変更します。

一般では、ホスト名とドメイン名を任意のものに変更します。

インターフェースでは、自分のネットワーク環境に合わせてネットワーク接続の設定をしていきます。

モニタリング

システム→モニタリングから設定します。
モニタリングは有効(緑色)にするだけです。
SMARTの設定を有効にするのに必要です。

ストレージ

ディスク

外付けのHDDなどを制御します。
「編集」では、電源管理などのオプションが選べます。
「ワイプ」では、ストレージの内容を消去できます。新しいHDDをフォーマットしたりするのに使用します。

S.M.A.R.T

設定タブで有効にするだけです。

その後、デバイスタブでHDDを選択して編集と押すと、有効化できます。
設定の際は、一台づつ、保存→適用してください。

ファイルシステム

Linux系では標準になっているとおり、外付けのストレージはまずマウントをしないと使えません。
「デバイス」の項目にある「/dev/sda1, /dev/sdb1」などがストレージです。
「利用可能」の項目に「n/a」「マウント済み」に「いいえ」と表示してあれば、つながっていない状態です。
デバイスを選択して、マウントボタンを押してマウントします。

マウントできないとエラーがでる場合には

  • フォーマット形式が異なる
  • 別のシステムから移行したストレージ
  • 未フォーマット

などの場合が挙げられます。
一度ストレージの中身を真っ新にする必要があるので、ディスク項目のワイプでストレージの中身を削除することで、ここで利用可能になります。
ワイプする際のポイントとしては、接続するデータ用のストレージのフォーマットはext4にしてください。
ntfs、exfat等、他のファイルシステムでも一応は機能しますが、いまのところ細かい不具合やバグなんかで動作が不安定です。
設定する際は、1台づつ保存→適用するようにしてください。

マウントできると以下のように、「利用可能」の項目に「ファイルサイズ」、「マウント済み」に「はい」と表示されるようになります。

ストレージをマウントしただけでは、NASとしては利用できないので、後ほど、共有フォルダの設定をする必要があります。

アクセス権の管理

samba上でネットワークドライブとして認識させるために、

  • ユーザーの作成
  • 共有フォルダの指定
  • sambaで共有する設定

上記の3つを設定していきます。

ユーザー

ユーザーにはRaspberry Pi OSのデフォルトユーザーのpiがすでにいますが、ネットワークから参照するのに使う専用のユーザーを作成します。
アクセス権の管理→ユーザーから追加していきます。
名前とパスワード、グループを設定してください。グループはとりあえずusersの指定があれば大丈夫です。

共有フォルダ

後ほど、sambaの設定で、sambaで共有するフォルダを選択しないといけません。
そのために、共有するフォルダを作成する必要があります。
アクセス権の管理→共有フォルダから設定していきます。

デバイスのプルダウンメニューに、さきほどマウントしたストレージがでてくるので、デバイスを選択して、名前とパスを設定します。
ストレージ全体を共有したい場合は、パスは「/」のみで大丈夫です。

サービス

サービスにはFTP,NFS,RSYNC,SMB/CIFS,SSHといろいろと設定したい項目がありますが、とりあえずNASとして活用するにはSambaの設定だけあれば大丈夫です。

SMB/CIFS

まずは、sambaサービスを有効にします。

次に、共有タブでSambaで共有するフォルダを選択します。
追加ボタンで出てきた項目のうち、さきほど設定した共有フォルダを指定します。
下にスクロールすると、その他、読み込み設定やパーミッションの設定もできるので任意に指定してください。単に共有するだけであれば、デフォルトのままで大丈夫です。

共有フォルダが追加されると、下記のようにリストにでてきます。

ここまでの設定が正しく反映されていれば、SAMBAで接続できるようになっているはずです。
NASとしての設定は以上です。

次に、クラウドストレージとストリーミングサーバーの構築に必要な環境をセットアップしていきます。

DockerとPortainerのインストール

サーバーを追加していくにあたって、OpenmediavaultではDockerとPortainer(DockerのGUI管理)をサポートしていて非常に便利なのでインストールしていきます。
OMV-ExtrasのペインのDockerのタブに移動して、プルダウンからDockerとPortainerをそれぞれインストールします。

インストールが終了したら、Open Portainerのプルダウンメニューを使って、Portainerにブラウザからアクセスします。
ログインユーザー名とパスワードを設定するよう誘導されるのでそれに従い、設定していきます。
こんな画面が出たら導入成功です。

あとは、基本的には、Dockerを使って、好きなサーバーをずいずい構築していけばOKです。
クラウドストレージとストリーミングサーバーの導入については、その2に続きます。

RaspberryPI4をサーバーにして遊び倒す。その2