Nano Pi NEO 2とRAID1ケースでNASを作った

※記事内に商品プロモーションを含む場合があります

2013年に再構築した自宅サーバ。
最近HDDのシーク音が大きくなってきました。

致命的なのが、Python2.7へのアップデートが出来ず
Let’s encryptのSSL証明書が失効してしまった事。

SSL証明書は無効なので、iPhoneからWebDAV接続できなくなりました。
これにより、iPhoneから無線での写真転送ができなくなってしまいました。

新サーバの選定

パソコンをベースとすると大きくなり、数年経過後の基板や部品も入手性が低いので
今回はシングルボードコンピュータで構築予定です。

約5年前にはラズパイぐらいしかありませんでしたが
今ではWindows搭載のモノ(ラテパンダ)まであります。

ラズパイはギガビットイーサネット非対応なので
通信速度が遅くNASとしては使えません。

秋月で売られているrock64

USB3.0が使えてギガビットイーサネット対応のシングルボードコンピュータ。
メモリが2Gで5400円、秋月で購入しました。

電源ジャックが特殊なので注意が必要です。
私は直接はんだ付けし、安定化電源から電源を供給しました。

公式サイト上にはイメージのインストーラーがあり
マイクロSDカード上にOSイメージを書き込んでくれます。

インストーラーがあるので、SDカードへ書き込む為のソフトは不要です。

ただし、私の環境ではSSH接続が安定せず
IPアドレスの固定も出来なかったので、使用は諦めました。

秋月で売られているNano Pi NEO2

こちらも、秋月電子通商で売られているシングルボードコンピュータ。
USB2とメモリが512MBですが、ファイルサーバなら十分です。

USB2なので、転送速度はUSB3に比べて劣ります。
ただし、CPUスペックがパソコンやサーバと比べると劣るので
USB3だったとしても、そこまでスピードは出ないかもしれません。

Nano Pi NEO2でSambaなどをインストールしテストした所
Windowsとのファイル共有までスムーズにできました。

今回は、Nano Pi NEO2をサーバとして使用する事にしました。

ヒートシンクも同時購入をおすすめ

秋月電子では本体と、ヒートシンクが別々で売られています。

CPUは結構熱を持つのでヒートシンクを購入しておくと安心です。

ちなみに値段はNEO2本体が、2400円。
ヒートシンクが400円です。

先月、ガルパン博を見に行った時に秋葉原に寄って
秋月電子秋葉原店で購入しました。

RAID1をどうするか

RAID1のミラーリングは2つのハードディスクにファイルを維持し
1つのハードディスクが壊れてもファイルを維持出来るようにするものです。

前回のサーバーではソフトウェアRAIDを使用していましたが
ファイルコピー時はソフトウェアRAIDの負荷もありました。

今回はATOMに比べてCPUのスペックが落ちるのと、
Nano Pi NEO2にはUSB2のポートが1つしか無いので
ハードウェアRAIDにすることにしました。

使用するRAID1機能付きHDDケース

2つのハードディスクを入れれるハードディスクケースで
RAIDの機能が付いています。

ソフトウェアRAIDだと、コマンドでmdadmの状況を確認し
コマンドで切り離し、統合、再構築などを行う必要があります。

今回はハードウェアRAIDなのでインジケーターLEDで異常なハードディスク
を確認し、交換すれば自動的に再構築してくれます。

インターフェイスはUSB3.0ですがNano Pi NEO2がUSB2なので
USB2で動作します。

使用するハードディスク

前回は、シーゲートのHDDと、WDのNAS用HDDを使用しました。

今回もWD赤NAS用HDDを使用しようかとしまししたが
高かったので止めました。

容量は前回構築したサーバは2TBでした。
使用容量としては、600GBです。

ハードディスクは2TBたど6000円ぐらい、4TBだと9000円ぐらい。
容量が倍なのに、3分の1しか値段が変わりません。
容量は4TBとしました。

使用したハードディスク

ハードディスクはわざと違うメーカーのモノを使っています。

やっぱり、同じモノを同じ様に使うと、同じ様に壊れそうな感じ
がするためです。

【参考】RAIDを同一ロットのHDDで組むのは禁じ手

新サーバの構築

Nano Pi NEO2は公式サイトからイメージをダウンロードし
イメージライターでSDカードに書き込みます。

私はWin32 Disk Imagerというソフトを使い、書き込みました。

IPアドレスの固定と名前の解決

Nano Pi NEO2の初期状態では動的DHCPになっているので
起動するたびにIPアドレスが変わってしまいます。

そこで、IPアドレスを固定します。

設定ファイルは、/etc/network/interfacesです。

設定内容

allow-hotplug eth0
iface eth0 inet static
address 192.168.1.3
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1

注意点

ネームサーバの指定は、/etc/resolv.confで行う事が多いと思います。

Nano Pi NEO2は/etc/resolv.confで指定しても、起動するたびに
上書きされるので名前の解決が出来ない事態が発生します。

dns-nameserversで設定すると、この設定が上書きされます。

青色LEDのピカピカを止める

Nano Pi NEO2の青色LED、結構眩しいです。
不規則な点滅をするので、コマンドで消しちゃいます。

echo none > /sys/class/leds/nanopi:blue:status/trigger

もとに戻したい場合は

echo heartbeat> /sys/class/leds/nanopi:blue:status/trigger

で戻せます。

あと、再起動しても、元に戻ります。

ハードディスクのフォーマットとマウント

fdisk -lなどで接続したハードディスクの場所(/dev/sdaなど)を
調べfdiskなどで領域を設定します。

領域の設定が完了したらmkfsコマンドでフォーマットします。
 mkfs -t xfs -f /dev/sda1

フォーマットが完了したら、マウントします。
mount -t xfs /dev/sda1 /data/

強制的にアンマウントする場合は、このコマンドを使います。
umount -l /data/

この設定でOKな場合は再起動しても自動マウントする様に
/etc/fstabに追記します。
/dev/sda1 /data xfs defaults 0 1

この場合/dataでは一般ユーザーが自由に使えないので
/data/dataを共有ディレクトリとしました。

Sambaのインストール

このコマンドでインストールできます。
apt-get install samba

設定ファイルは/etc/samba/smb.confです。

この様に設定しました。
[d]
path = /data/data
read only = no
guest ok = no
writable = yes

Sambaのアクセスには一般ユーザーで可能ですが
smnpasswdでSamba用パスワードの設定が必要です。

これでWindowsから¥¥[サーバーのIP]¥d
で共有フォルダが使える様になりました。

Sambaの再起動は
service smbd restartでできます。

Apacheのインストール

Apacheはwebサーバーですが、WebDAVによるファイル共有が使いたいので
インストールします。

このコマンドでインストールできます。
apt-get install apache2

今回はHTTPSを使いたいので、ここでLet’s encryptをインストールします。

Let’s encryptのインストール

このコマンドでカレントディレクトリを移動し、ファイルをダウンロードします。
cd /usr/bin
wget https://dl.eff.org/certbot-auto

実行属性を付けます。
chmod 700 /usr/bin/certbot-auto

このコマンドでLet’s encryptを設定します。
certbot-auto certonly –standalone -t –standalone-supported-challenges tls-sni-01

これで失敗したので、pipをインストールしたらうまくいきました。
wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py

これでダメな場合は、virtualenvが複数あるのかも、しれません。
【参考】virtualenvが原因でLet’s Encryptが更新できない

Apacheの設定

いろいろ設定があるので、詳しくは調べてください。
WebDAVの設定だけ書きます。

Alias /dav “/data/data”
<Location /dav>
DAV On
SSLRequireSSL
#AllowOverride All
Options Indexes
AuthType Basic
AuthName “Need Authentication. Enter ID and password. “
AuthUserFile /data/webdav.htpasswd
Require valid-user
</Location>

今回はBASIC認証にしました。
ユーザーとパスワードはこのコマンドで設定します。
htpasswd -c  /data/webdav.htpasswd ユーザ名 パスワード

まとめ

他にもWebmin、PHPやMariaDBなどインストールしましたが
長くなるので割愛します。

これで、ファイルサーバとしての機能は使える様になりました。

現在は、旧サーバと交換となり、クローゼット内で動いています。

クローゼット内に設置されたNano Pi NEO2とMAL352U3RS3で作ったファイルサーバ

転送速度

旧サーバはSATAが使えたので60MB/Sぐらいは出ました。

Nano Pi NEO2とMAL352U3RS3で作ったファイルサーバはどうか?
というと40MB/Sになります。

小さいファイルなら、キャッシュが効くのでもっと早く
コピーがしばらく続くと30MB/Sで落ち着きます。

低消費電力なのでしょうがないです。
今後、USB3対応のNano Piが出たら試してみたいです。

追記

ラズベリーパイ4がUSB3に対応したので
新たなサーバを作りました。

Wifi化してトイレに設置しています。
換気扇もあるので、クローゼットよりは、温度があがりにくいです。
【関連】自宅ファイルサーバーをトイレに移設した