この記事は 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に続きます。