RaspberryPi3でNASをつくる STEP1

目的

私はクラウドストレージサービスをPCとスマホ間の写真とか動画のデータ共有に使っているのですが、ついにこのようなメールが来てしまいました・・・。
f:id:katosunmemo:20171029165818j:plain
クラウドサービスを提供している会社も慈善事業ではないので無料で無制限に使いたいなんて虫の良い話...(いっぱい使いたかったらお金払ってねってことですね)
というわけで、自宅にNASを設置して大容量クラウド環境を構築してやろう!というのが今回の目的です。

とはいえ、ただ買ってくるだけでは面白みがない。
というわけで、今回はRasPi3を使用してNASを作ろうと思います!


ロードマップ

STEP1 NAS環境の構築←今回はココ

STEP1ではNASとして最低限の機能を実装します。
RasPi3をローカルネットに接続し、WindowsPCとAndroidスマホからアップロードダウンロードを行えるようにします。

STEP2 NASのハードウェア拡張

今回のNASはローカルでの使用を前提とするため、長期間不在にするときのための省エネ機能を追加します。
ハード回路にて電源OFFと再起動を実装します。



NASの構築

前章で購入したものを組み合わせます。
f:id:katosunmemo:20171104004651j:plain

ローカルネットへの接続
Wifiは未設定のため、当面は有線で接続します。

HDD
HDDは電源と通信に分岐できるUSBケーブルを見つけたため、電源をACアダプタから取るようにしています。
RasPiはSTEP2でGPIOからシャットダウン、再起動などをやるため、再起動時にHDDが自動でマウントされるようにします。
いろいろ試しましたが、最終的にfstabにHDDのUUIDを登録する方法で行きます。
ただし、ACアダプタを刺して起動(RasPiとHDDに同時に電源供給開始の条件)ではそもそもRasPiがHDDを認識しない...
ここは運用で逃げます。
blog.treedown.net



ラズパイの設定

他の端末とファイル共有するために、SAMBAを使用します。
「raspberrypi SAMBA」あたりでぐぐれば解説しているサイトはたくさんでてくるので、ここは軽く触れます。
基本的にはこちらのSAMBA導入の項目の通りの作業でRasPi側のソフトの準備は完了です。
j-caw.co.jp

やることは大きく下記の4つ。
①SAMBAのインストール
②共有フォルダの作成
③設定ファイルの変更(②で作成したフォルダを指定する、など)
④SAMBAの自動機能設定

ここで躓いたところを紹介しておきます。

つまづき1.設定ファイルの編集が出来ない。

SAMBAの設定ファイル(/etc/samba/smb.conf)は上書き保存のためにroot権限が必要です。
viに慣れている人はsudoで立ち上げてそのまま編集できますが、恥ずかしながらviの扱いに慣れていないため、他の方法を使いたい...できればGUIで...
そこでnautilusというファイルブラウザをインストールし、sudoで立ち上げます。
これでSAMBAの設定ファイルだけでなく、他のroot権限が必要な設定ファイルをGUIで見つけ出し、Leafpadなどで簡単に設定できます。
ameblo.jp

つまづき2.他の端末からデータは閲覧できるが、上書き保存やコピーが出来ない。

SAMBAで設定したファイルのプロパティでアクセス値を「作成と削除」に設定する必要がありました。
f:id:katosunmemo:20171104011310j:plain


WindowsPCとつなぐ

WindowsPCからはエクスプローラにてRasPiのIPアドレスを入力するだけでアクセスが可能です。
あとはクイックアクセスあたりに登録しておくと超便利です。
f:id:katosunmemo:20171104011704j:plain


Androidスマホとつなぐ

Androidスマホ用のクライアントアプリとしてこちらを使用しています。
play.google.com
普段使っている画像ビューワなどの共有機能の一覧にでてくるため、アップロードが非常に楽です。
もちろんダウンロードも可能です。
ひとつ不満なのは、画像のプレビューが表示されないことと、pdfが表示されないこと。
f:id:katosunmemo:20171104021119j:plain



もうひとつ便利なアプリはZenFoneシリーズにはプリインストールされているASUS製ファイルマネージャ。
play.google.com
他社スマホにもインストールできるみたいなことがコメントに書いてあります。
こちらは画像がサムネイル表示されますし、先程のアプリより見た目がかっこいいです。
pdfも表示されます。
アップロードはファイルマネージャ内でコピー先として指定します。
f:id:katosunmemo:20171104013624j:plainf:id:katosunmemo:20171104013628j:plain


最後に

疑問点その①

NAS構築の項目でも触れたHDDが認識されない問題。
ざっくり起動条件別の結果
No. 開始 HDD電源 結果
1 電源投入 接続 NG
2 電源投入 接続せず OK
3 電源投入 RasPi起動後接続 OK
4 reboot 接続 OK
5 GPIOリブート 接続 OK
6 GPIOリブート RasPi起動後接続 OK
これを見る限り、ACアダプタを刺してRasPiとHDDに同時に電源供給が開始される場合(No.1)はRasPiにHDDが認識されないらしい。
No.2は電源と通信を分離したケーブルがどんな理屈で通信線からHDDを駆動しているかわからないものの、バスパワー駆動なら問題なく動くらしい。
幸いGPIOからのリブートは問題なくHDDを認識してくれる。
不明な点はありますが、今回の結果をもとにSTEP2の仕様を練り直します。


疑問点その②

今回購入した電源と通信を分岐するUSBケーブル、導通チェックではGNDのみ共有しているようでしたが、通信線のみの接続でもHDDが動いてしまう。

本当はRasPiOFF時は電源ラインを遮断してパワーセーブをしたかったけど、あきらめてバスパワー給電にしようかな?
動作中でもメチャクチャ電流食ってるわけでもないみたいだし。

↓HDDバスパワー駆動時
f:id:katosunmemo:20171104014238j:plain

↓HDD別電源駆動時
f:id:katosunmemo:20171104014302j:plain



運用で逃げたところはありますが、ひとまずSTEP1の目標であったNASとしての最低限の機能の構築が完了しました。
数日使いましたが、なかなか便利です。
番外編としてミュージックサーバとか、ラジオサーバの機能も付けてみようかな。