17
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Nano Pi M4でファンレスシングルボードSATA NASを作る

Last updated at Posted at 2019-06-15

はじめに

 きっかけは些細なことで。

 自宅の模様替えをしていたんですが、ふと今使っている古いReady NASが目に入りましてね。

 長らく自宅用NASとして活躍してくれたんですが、ちょっと大きいなぁと。

 で、これの代わりにNUCを使ってNASの構築を試してみたんですが、どうも電源周りに問題があるらしくて安定稼働しなくて。

 どうしようかなぁと思っていたら、LinuxシングルボードでNASを構築した事例がいくつか聞こえてきたので、せっかくだから遊びがてら組んでみようかな、と思った次第です。

ボード選び

 いくつか選択肢があって。俎上に挙げたのはこの辺です。

Linuxボード URL
Raspberry Pi 3 B+ https://www.raspberrypi.org/products/raspberry-pi-3-model-b-plus/
RockPro64 https://www.pine64.org/rockpro64/
NanoPi M4 https://www.friendlyarm.com/index.php?route=product/product&product_id=234

Raspberry Pi

 Raspberry Piは手軽だけあって、NASを作っている人も多かったのですが、USB 2.0というボトルネックがあるんですよね。

  • Gigabit Ethernetの最大速度がUSB 2.0に制約される
  • ストレージ接続先もUSBしかないので、同様にUSB2.0に制約される

RockPro64

 他の事例を探していて見つけたのがRock64で、Raspberry Piに次いで事例が多かったんですが、さらに強力なRockPro64が出ているという話を聞いて。

 このボード、Rockchip RK3399という特徴的なSoCを積んでいます。Raspberry Pi 3B+が搭載しているBCM2837よりも格段に速く、かつPCIeをインタフェースとして持っています。しかもGigabit Ether付きなので、これも悪い選択肢ではありません。

Nano Pi M4

 RK3399のボードが何枚か出ていたので探していたら見つけたのが『NanoPi M4』でした。

 私はこのボードを選択することになったのですが、決め手は以下でした。

1. Raspberry Piと同一サイズ。

 RockPro64はRaspberry Piの2倍ぐらい大きいんですが、Nano Pi M4はRaspberry Piと同一サイズです。

(ただしPCIe用のPINが追加されているので、Raspberry Piのケースは使えない)

2. SATA I/Fを追加できる。

 今回のストレージはHDDなので、USB 3.0でつないでも十分な速度とは思うのですが、最近発売されたこんなHATを見つけてしまったのです。

4x SATA HAT for NanoPi M4
https://www.friendlyarm.com/index.php?route=product/product&product_id=254

 RK3399のPCIeをSATAに展開することができるHATが出ていまして。

 これを見て『楽しそうだなぁ』と思ってしまったのです。

購入

 購入自体はFriendly Elecのサイト(先ほど記述したURL)から行うことができます。

 ここから先は英語必須なので頑張りましょう。

 Raspberry Piと違って、機器構成についてもいろいろ気を付ける必要があります。私は以下のオプションを付けて購入しました。

選択したオプション 備考
DDR3 4GB RAM RAM不足で困りたくなかったので奮発。
HeatSink 底面に貼り付ける巨大なヒートシンクです。RK3399の発熱はかなりあるので必須。
32GB eMMC Module for NanoPi eMMCスロットを持っているので、買っておくとSDカードなしに起動することが可能。
4x SATA HAT for NanoPi M4 バラで買うこともできますが、一緒に購入可能です。
5V 4A Power Adapter 後述の通りSATAを使う場合は不要だが、単体で使う場合のために。
High-Power Type-C to USB-A Male 2.0 Cable - 30cm 同上。

 その他はお好みで。ただし、電源には注意が必要です。

電源アダプタ

 Nano Pi M4は通常USB TypeC(5V/3A)で動作しますが、SATA Hatを使う場合は別途ACアダプタが必要です。

 最低でも12V/2A電源が必要ですが、SATA4つを3.5Inch HDDで動作させる場合は12V/5Aが必要となります。

 コネクタにも注文がついていて、5.5 * 2.1 mmのロック機構が付いたアダプタであることを求められます。

 一応PCのATX電源等でも代用はできるのですが、せっかく小さいNASを作るのであればアダプタにしたいところです。

 細かいことはここに書いてあります。

 私は手元に12V/2Aのアダプタがあったので、合わなければ別途調達するか、位の認識で注文しませんでしたが、2AでよければFriendly Elecでも売っているので、一緒に買うという手もあります。

発送

 私はEMS(発送料が$40ほど割高)で頼んだのですが、DHL預かりになって、6/2注文->6/7着荷でした。

 集荷が6/6だったので(注文から4営業日ぐらいで発送と書いてある)、発送だけ見るとだいぶ早く届きました。

 ChinaPostを使うともう少し遅いかもしれません。

現物

IMG_20190608_091617.jpg

盛りだくさんで届きました。

本体

IMG_20190608_092643.jpg

eMMC

IMG_20190608_091734.jpg

ヒートシンク

IMG_20190608_091742.jpg

USBアダプタ

IMG_20190608_092652.jpg

SATA Hat

IMG_20190608_092747.jpg

組み立て

 それほど迷わないとは思います。

 ヒートシンクは、付属のパッドをNano Pi M4のRK3399に貼り付けてから固定しましょう。

 あと、eMMCはHATを挿す前に固定しておきましょう。

 おそらく技適を通っていないと思うので、日本国内で使う場合、Wifiは使わない方がよいでしょう。このためアンテナを付ける必要はそれほどありません。

OS

 6/15時点でNano Pi M4がサポートしているOSは7種類ありますが、SATA Hatがサポートしているのは3種類だけです。

 が、実はこれ以外のOSを使うことができるのを耳にしていまして。

 実はArmbianでもSATA Hatを使うことができる、と聞いたので、なるべく汎用のディストリビューションを使いたく思っていた私はArmbianを使うことにしました。

Armbian?

Raspbianばかり使っていた私も詳しく知らなかったのですが。

 Armbianは、主としてArmのSBC(シングルボードコンピュータ)向けに作られているDebian/UbuntuベースのLinuxディストリビューションのことです。NanoPi M4に限らず、多くのシングルボード上で動作します。

Armbianのインストール

SDカードへの書き込み

 Armbianはボードごとにサポートステータスがあって、Nano Pi M4は『Suitable for testing (WIP)』なのだそうですが、構わずダウンロードします。

 6/15時点ではBionicとStretchがあって、一応どちらでもSATA Hatは動きますが、今回はStretchを使うことにしました。

 『Armbian Stretch』をダウンロードし、Balena Etcher等でSDカードに書き込みます。

SDカードからの起動

 最終的にはSDカードからではなくeMMCから起動するので、SDカードはインストールメディア替わりなのですが、まずはSDカードを挿して電源を投入し、SDカードから起動します。

 起動するとrootアカウントでのログインを求められます。Armbianのデフォルトに従ってrootログインします。

 次に通常ユーザの登録を行うよう指示が出るので、ユーザ名、パスワードを設定。

 ユーザ登録が完了すると、初めてログインできるようになります。

 この辺はSDカードさえ挿せばウィンドウまで出るRaspbianとはまるで違うので気を付けましょう。

SDカードからの起動

 ログインしたら、eMMCへArmbianをインストールするため、以下のコマンドを実行します。

$ sudo nand-sata-install

 するとメニュー画面が出てきてインストール先を聞かれるので、"Boot from eMMC - System on eMMC"を選択します。

 その後、大きく赤字でWARNINGが表示され、eMMCの内容が消去される旨の確認が出るので、"Yes"を選択。

 後はしばらく待っていると、Power offするか確認のダイアログが出るので、いったんPower offした後ACアダプタを抜き、SDカードを抜いて再度電源を投入しましょう。

 首尾よくいっていれば、SDカードを挿していない状態でもeMMCからArmbianが起動するはずです。

ファイル共有/DLNAサーバのインストール

 ここまで来てしまえば、後は他のLinuxディストリビューションとさほど差はありません。

 ネットワーク設定を行ったのち、各種サーバのインストールをしましょう。

OpenMediaVaultの罠

 単にNASとして使うだけなら、OpenMediaValutを入れてしまう、という手もあるのですが。

 私が使った際にはどうも安定して動作しなくてですね。アクセス中に突然NASサービスが止まってしまい、ファイルにアクセスできなくなる、という現象が多発しまして。

 代わりにSambaでファイル共有したら、まったく止まらなくなったので、おそらくOpenMediaVaultが悪さしていたのだと思っています。

 今は治っているかもしれませんので試すのも一興ですが、私はSambaでファイル共有しています。

(2019/9/18)

 OpenMediaVaultが動いたという報告を受けました。

 今からこのNASを作るなら試してみてもいいかもしれません。

Sambaのインストール

 これは特段代わり映えしないので、ここでは紹介しません。

 事例はたくさんあるかと思いますので探してみてください。

DLNAサーバのインストール

 シングルボードNASのパワーだと、基本的にはminidlna(Readymedia)を使う所ですが。

 トランスコード機能がなかったりとか、多少不便なところがあって、どうしようかと考えていたら、ServiioというDLNAサーバ実装があることを知りました。

 今手元にあるのはRaspberry Pi 3B+の数倍の性能を持つNano Pi M4だし、メモリも4Gあるし、Java実装だけどここはパワーで押し切るか、とインストールを試みました。

 Java8をインストールした後、Version 2.0をダウンロードしてインストールしたところ、特段問題なく動作しています。

RAIDの構成

 ここまでの操作は、旧NASサーバからバックアップしたExt4の2.5Inch HDDをSATAでつないで構成していたのですが。

 やはり2.5Inch HDDだと、

  • 容量が少ない(今回は2T)
  • 処理速度が低下する(最初は80MB/Sでコピーしていたが、しばらくすると10MB/Sぐらいに落ちる)

 という現象が見られたのです。

 旧NASサーバはRAID1構成していて、ReadyNASのFSはbtrfsだということが分かっているので、

ReadyNAS102のHDDをサルベージする
https://qiita.com/houmei/items/04edaf436e9bb2428fb9

NETGEAR Readynas 102 のディスクをPCでデータ吸出し
https://qiita.com/abeshi01/items/33588fd36b2f22f7cdf7

 この辺の情報を元に、旧NASサーバのHDDをそのまま使えないかと考え始めました。

mdadmのインストールとRAIDの稼働

 旧NASサーバでRAID1していたHDDを2台接続して起動後、

 ソフトウェアRAIDをLinux上で使うために、mdadmをインストールします。

$ sudo apt install mdadm

 mdadmからRAIDの構成を試みます。Ready NASのRAID0ディスクは3パーティションあって、3つ目に実データが入っています。

sudo mdadm —assemble /dev/md127 /dev/sda3 /dev/sdb3

 構成できたらRAID0を起動。

sudo mdadm -R /dev/md127 

mountとfstab

 この状態で適当に作ったフォルダ(ここでは/nas)にマウントします。

sudo mount /dev/md127 /nas

 とやってみたら、/nasから旧NASが保持していた実データにアクセスできたので、所有者を変更して、

sudo chown [ユーザ名]:[グループ名] /nas

 SambaとServiioに共有してやったら、どちらもデータの共有ができるようになりました。

 最後に、起動時に自動マウントするよう、/etc/fstabを変更。

/dev/md127                                      /nas            btrfs   defaults        0       0

 btrfsでマウントするよう指示して再起動し、再起動後自動マウントと、NAS/DLNAからのアクセスを確認して終了です。

完成図

 ちょっとケーブルが汚いですが。

IMG_20190615_205507.jpg

IMG_20190615_205131.jpg

 旧NASと違ってファンレスで、体積も小さくなり、小回りが利くようになったので置き場所が自由になりました。

 HDDからの熱についてはそれほどでもなかったので、後はケース等衝撃保護について考える予定です。

おわりに

 楽しそう、という探求心に乗っかって作ってみたら、実用品を作りながら、いろいろと知らないことを学ぶことができ、大変良い経験になりました。

 若干のLinuxの知識と、Raspberry Piの一つ先へ進む勇気があれば、こうした強力なシングルボードを使ったNASに挑戦してみるのも、また一興かもしれません。

17
15
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
15

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?