Raspberry Pi + WifiアダプタでNAS化

# 経緯
私はPCに内蔵HDDを4個接続して、いろんなデータを保管していたんですが、バックアップを取っていませんでした。
今までは運良くHDDが故障したりはしていないですが、今後どうなるか分からない！
そう思ってNASを用意することにしました。

どんなNASが良いかなと思って検討した結果、

- 大容量でHDDの交換や増設が可能
- WiFi接続できて配線に困らない
- NAS内だけでバックアップが完結する

このぐらいの機能がほしいな、となりました。

ただ、Amazonで商品検索したらNAS対応のHDDケースは5ベイだと5万6万超えてきて、もっと安く済ませたい！と思ったので、勉強がてらラズパイを使ってNASを構築してみました！

一度構築してからラズパイのWiFi速度を計測してみたら、満足できなかったので別途WiFiアダプタも使ってみました。

# 用意したもの
NAS構築のために用意したものを書き出します。

|商品名|値段|
|:--|:--|
|[Raspberry Pi4 ModelB 4GB](https://www.amazon.co.jp/dp/B081YD3VL5)|￥6,875|
|[ラズパイ電源アダプター](https://www.amazon.co.jp/dp/B07DN5V3VN)|￥1,139|
|[SDカード 64GB](https://www.amazon.co.jp/dp/B08QMZC2TT)|￥1,230|
|[見た目が気に入ったラズパイ用ケース](https://www.amazon.co.jp/gp/product/B07WG4DW52)|￥3,199|
|[5ベイHDDケース](https://www.amazon.co.jp/gp/product/B0827G6P74)|￥14,990|
|[HDD 8TB（データ保存用）](https://www.amazon.co.jp/gp/product/B07911QK3X)|￥14,222|
|[HDD 8TB（バックアップ用）](https://www.amazon.co.jp/gp/product/B07911QK3X)|￥14,222|
|[TP-LinkのWiFiアダプタ](https://www.amazon.co.jp/dp/B07SGLSFYK)|￥3,036|

これで合計￥58,913。思ったより高くなったけど、HDD2個分の値段含んでいるので、同じ容量・機能の搭載されたNASをそのまま購入するよりは安くすんでいる、と思いたい！


# 構築手順
## まずはラズパイのOSインストール
この辺は端折りますが、「Raspberry Pi Imager」を使ってOSは「Raspberry Pi OS Lite」をインストール。

その後、ラズパイに外から接続できるように、インストール後の以下のようにしてSDカード内に各設定ファイルを作成。

```bash:ssh
# SDカードにsshファイルを作成。これで外からSSH接続可能になる。
touch /Volumes/boot/ssh
```

```bash:wpa_supplicant.conf
# 同じくSDカード内にラズパイで接続したWiFi情報を記述したファイルを作成
vim /Volumes/boot/wpa_supplicant.conf

country=JP
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="{SSID}"
    psk="{PASSWORD}"
}
```

## ラズパイ起動後は各種設定や更新作業
ログインパスワード変えたり、セキュリティ的にやったほうが良いことは結構あるが、ここでは書かないです！

```bash:SSHログイン
ssh pi@raspberrypi.local
```

```bash:アップデート
sudo apt-get update
sudo apt-get upgrade
```

```bash:各種設定
# このコマンド実行後色々設定した
sudo raspi-config
```

以下はやっておかないとWiFi接続が不安定になるらしいのでやってみました。

```bash:WiFiのPowerManagement機能停止
sudo iwconfig wlan0 power off

# その後上のコマンドを以下ファイルにも記述
sudo vim /etc/rc.local
```

## NASとするためにopenmediavaultをインストール
これについてもいろんな記事があるので、自分がハマったところだけ書きます。
詳しくは[公式ドキュメント](https://openmediavault.readthedocs.io/en/5.x/index.html)をオススメします。

```bash:インストール
wget https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install
chmod +x install

# nオプションが重要
sudo ./install -n
```
（ちゃんとドキュメント読んでなかったり、そもそもLinuxの各種設定に詳しくないので、もっと他に良い方法があるかもしれませんが、）
`n`オプションはインストールスクリプトによるネットワーク設定をスキップしてくれます。
スキップしてくれないと、この後で書くWiFiアダプタが上手く認識されなくなってしまいました。


## TP-LinkのWiFiアダプタをセットアップ
正直ここが一番悩みました。が[ラズパイのフォーラム](https://www.raspberrypi.org/forums/viewtopic.php?t=239830)を参考にしました。
以下を実行すれば新しいWiFiインターフェースとして`wlan1`が登録されます。

```bash:ドライバインストール
sudo wget http://downloads.fars-robotics.net/wifi-drivers/install-wifi -O /usr/bin/install-wifi
sudo chmod +x /usr/bin/install-wifi
sudo install-wifi
```

`wlan1`があれば、オンボードのWiFiインターフェースは動作していても無駄なので、以下を実行して停止します。

```bash
sudo iwconfig wlan0 txpower off
```


## 最後にブラウザからopenmediavaultを設定
ここまでやったら後はブラウザからラズパイのopenmediavaultにアクセスして、

- HDDのマウント/フォルダの設定
- SMB/CIFSの設定

をすればNASとして利用できるようになりました！
この辺の設定はすっ飛ばします。

バックアップはプラグインも色々あるようでしたが、使い方をちゃんと理解するのが面倒だったので、定期的にRsyncを使って保存用HDDからバックアップ用HDDにコピーするように設定しました。

# 感想
大体先人がいたので、自分で細かく設定を調整したり、といった作業はなくて比較的簡単ではあると思いました。
8TBも保存できるNASになったので、贅沢に使っていきたいと思います。
足りなくなったら、まだHDDケースに3ベイも空きがあるので拡張も可能。

問題は、ここまで作業して各種詳細な設定部分を理解しきっていないので、もっと良い設定ややり方があるかもしれないということ。

もしこの記事を読んでくださって、バカなことやってるな、と思った方はぜひ感想をください！


# 参考：インターネット速度計測ツールをインストール
WiFiの速度はspeedtestというツールを使ってみました。

```bash:インストール
sudo wget -O /usr/local/bin/speedtest-cli https://raw.githubusercontent.com/sivel/speedtest-cli/master/speedtest.py
sudo chmod +x /usr/local/bin/speedtest-cli
```

以下でコマンドで、TP-LinkのWiFiアダプタを使う前後の計測をしてみましたが、契約している回線に依存するのと、私があまりネットワークの設定周りに詳しくないので、あくまで参考程度に。

```bash:実行
speedtest-cli --server=24333
```

| |Download|Upload|
|:--|:--|:--|
|オンボードWiFi|55.60 Mbit/s|3.52 Mbit/s|
|TP-Link Wifi|86.66 Mbit/s|6.74 Mbit/s|

多分早くなっているはず！