Edited at

NanoPi NEO2でNASを構築してみる

More than 1 year has passed since last update.


はじめに

秋月電子通商で超小型のarmボードであるNanoPi NEO2が買えるようになりました。

40×40mmの極小ボード「NanoPi NEO2」、秋月電子通商で税込2,400円

加えて、このNanoPi用のNASキットも同時に買えるとのことで、今回はこれらを使ってNASを構築してみます。

【4/11追記】

Facebookグループに「NanoPIの部屋」ができました。そこでいただいたアドバイスを反映しました。


必要なもの

当然、NanoPi NEO2NASケースキットは必要ですが、それ以外に


  • 接続する2.5inch HDD or SSD

  • 12v ACアダプター

  • ハンダゴテとハンダ

  • シリアルケーブル (もしくは、USBシリアルアダプタ+ジャンパーワイヤー)

が必要です。

ACアダプターのプラグ規格は、外径:5.5mmΦ 内径:2.1mmΦ、極性はセンタープラスのものが使用できます。

必要な出力電流値はSSDだと1A、HDDだと2A、その他に接続するものあれば、その分を加えたものを用意する必要があります。


設定


イメージの用意

2018.4.8現在、オフィシャルとしては以下の3つが用意されていました。


  • nanopi-neo2_debian-nas-jessie_4.14.0_20171208.img.zip

  • nanopi-neo2_FriendlyCore-Xenial_4.14.0_20171208.img.zip

  • nanopi-neo2_ubuntu-oled_4.14.0_20171208.img.zip

NAS用はnanopi-neo2_debian-nas-jessie_4.14.0_20171208.img.zipを使用することになります。ファイル名から想像つくように、Debian8(jessie)ベースです。インストール後に確認した結果は以下。

root@FriendlyELEC:~# cat /etc/debian_version

8.8

ここここをみると、残りの2つはUbuntu Coreの16.04(Xenial)ベースのようです。


イメージのSDへの書き込み

公式Wikiでは、Win32DiskiMagerでの書き込みが紹介されています。今回、私もWindowsからWin32DiskiMagerを使って書き込みました。また、Etcherもお手軽で最近人気です(Mac/Linux版もあります)。


初期セットアップ

Raspberry piとは異なり、NanoPiはHDMIを持たないので、接続はネットワークもしくはシリアルコンソールから行います。まずはシリアルコンソールで接続します。

シリアルの接続ピンは、ここにあるのですが、私が秋月で購入したものは、1世代古いもののようで、オーディオピンの位置が若干異なります。

こちらの方で古いものは見ることができました。

image.png

手持ちのスイッチサイエンスさんのUSBシリアル変換アダプターを使って接続しました。

ネットワーク設定は以下のように有線はDHCPの設定になっていました。


/etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)

# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

allow-hotplug eth0
iface eth0 inet dhcp

allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf


avahi-daemonも動いていたので、DHCPサーバがあるネットワークで有線を繋いでroot@FriendlyELEC.localでアクセスすることができるのではと思います。ただし、SSHの設定(/etc/ssh/sshd_config)をみたところ、ユーザpiではsshで入れない設定になっていましたので注意です。

私はWLANを使って接続したかったので、シリアルを接続してからwpa_supplicant.confに設定を記載してから、WiFiドングルを挿入したところ無事に接続することができました。

WiFiドングルですが、手持ちの2つで試した結果は以下です。

品名
結果
チップセット
適用されたドライバ
備考

Buffalo WLI-UC-GNM2
OK
Ralink RT8070
rt2800usb

Planex GW-USNano2
一応OK
Realtek RTL8188CUS
rtl_usb
なぜかwlan1にリネームされるので、wlan1として設定・起動すると利用できた

これでネットワークへの接続はできたので、実際にケースに組み込んで起動し、あとはネットワークから接続して設定をすすめます。


状況確認

まずは、apt updateした後でのdfは以下。SDは8GBを使用しています。

root@FriendlyELEC:~# df

Filesystem 1K-blocks Used Available Use% Mounted on
udev 235976 0 235976 0% /dev
tmpfs 49392 13124 36268 27% /run
/dev/mmcblk0p2 7496880 1860652 5619844 25% /
tmpfs 246952 0 246952 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 246952 0 246952 0% /sys/fs/cgroup
tmpfs 246952 0 246952 0% /tmp
/dev/mmcblk0p1 102182 17316 84866 17% /boot
tmpfs 49392 0 49392 0% /run/user/0

dmsgをみると

[    2.597135] scsi host0: uas

[ 3.082824] scsi 0:0:0:0: Direct-Access JMicron Tech 0227 PQ: 0 ANSI: 6
[ 3.094559] sd 0:0:0:0: Attached scsi generic sg0 type 0
[ 3.101056] sd 0:0:0:0: [sda] 234441648 512-byte logical blocks: (120 GB/112 GiB)
[ 3.108718] sd 0:0:0:0: [sda] 4096-byte physical blocks
[ 3.116293] sd 0:0:0:0: [sda] Write Protect is off
[ 3.121290] sd 0:0:0:0: [sda] Mode Sense: 5f 00 00 08
[ 3.131767] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 3.151904] sda: sda1
[ 3.161070] sd 0:0:0:0: [sda] Attached SCSI disk

JMicronのチップを見つけて、接続しているIntelのSSD(120GB)を見つけてくれてます。

psをみると

・・・

root 831 0.0 3.4 31816 17028 ? S 11:26 0:01 omv-engined
root 838 0.0 3.8 92600 19196 ? Ss 11:26 0:00 php-fpm: master process (/etc/php5/fpm/php-fpm.conf)
root 844 0.0 0.4 16320 2364 ? Ss 11:26 0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data 845 0.0 0.7 16636 3632 ? S 11:26 0:00 nginx: worker process
www-data 846 0.0 0.7 16636 3632 ? S 11:26 0:00 nginx: worker process
www-data 847 0.0 0.6 16636 3432 ? S 11:26 0:00 nginx: worker process
www-data 848 0.0 0.6 16636 3436 ? S 11:26 0:00 nginx: worker process
www-data 849 0.0 1.3 92568 6708 ? S 11:26 0:00 php-fpm: pool www
www-data 850 0.0 1.3 92568 6708 ? S 11:26 0:00 php-fpm: pool www
・・・
snmp 867 0.1 1.2 12980 6228 ? S 11:26 0:02 /usr/sbin/snmpd -Lsd -Lf /dev/null -u snmp -g snmp -I -smux mteTrigger mteTriggerConf -
root 884 0.0 1.0 21520 4960 ? Ss 11:26 0:00 /usr/sbin/nmbd -D
root 894 0.0 2.7 35540 13484 ? Ss 11:26 0:00 /usr/sbin/smbd -D
root 899 0.0 1.1 35540 5852 ? S 11:26 0:00 /usr/sbin/smbd -D
・・・

というように、OpenMediaVaultとそのWebフロントエンド(nginxなんですな)に、SambaにSNMPも動いてました。

ということでhttp://friendlyelec.local/にアクセスすると

image.png

と出るのでadmin/openmediavaultでログイン。言語は日本語も選択できました。

image.png

で、次に、「ストレージ」の「物理ディスク」を見ると、

image.png

ちゃんと認識されていました。あら簡単。


設定編

使用したSSDは、Windowsで内容をきれにフォーマットしただけの状態で、OpenMediaVault上からはそのまま利用できなかったため、


  • コマンドラインからfdiskでLinuxのプライマリーパーティションを作成した後

  • 再度、OpenMediaVaultにもどり

  • 「ストレージ」の「ファイルシスムテム」から、「作成」を行い

  • 「マウント」する

ことで以下のように利用できるようになりました。

image.png

コンソールからdfをすると、以下のようにマウントされてました。

root@FriendlyELEC:~# df

Filesystem 1K-blocks Used Available Use% Mounted on
udev 235976 0 235976 0% /dev
tmpfs 49392 13136 36256 27% /run
/dev/mmcblk0p2 7496880 1861408 5619088 25% /
tmpfs 246952 0 246952 0% /dev/shm
tmpfs 5120 0 5120 0% /run/lock
tmpfs 246952 0 246952 0% /sys/fs/cgroup
tmpfs 246952 8 246944 1% /tmp
/dev/mmcblk0p1 102182 17316 84866 17% /boot
tmpfs 49392 0 49392 0% /run/user/0
/dev/sda1 115247688 61464 115169840 1% /srv/dev-disk-by-id-usb-JMicron_Tech_00000000477D-0-0-part1

ちなみに、

root@FriendlyELEC:/srv# ls -al

total 16
drwxr-xr-x 4 root root 4096 Apr 9 12:58 .
drwxr-xr-x 22 root root 4096 Jan 1 1970 ..
drwxr-xr-x 3 root root 4096 Apr 9 13:08 dev-disk-by-id-usb-JMicron_Tech_00000000477D-0-0-part1
drwxr-xr-x 2 ftp nogroup 4096 Apr 8 2017 ftp

と/srvの配下にftp用のフォルダがありました。


最後に

ということで、あっさりとNASシステムができあがりました!

普通にNASとして使うならこれで十分やっていけそうな気がします。(熱の問題や長期ランニングについてはどうかわかりませんが)

ただ、私としては、Ubuntu CoreのXenialでストレージを使いたいので、次はそちらのイメージを使って、ストレージを使用できるかを確かめてみようと思います。