プログラミング素人のはてなブログ

プログラミングも電気回路も専門外の技術屋の末端が勉強したことや作品をアウトプットするブログ。コードに間違いなど見つけられたら、気軽にコメントください。 C#、Python3、ラズパイなど。

ラズパイとSambaでNASを構築する

f:id:s51517765:20210613181336p:plain

ラズパイでNASを構築しました。

家で複数のPCを使っていると、あっちのPCのあのデータが…、ということがたまにあります。
ネットワーク対応のハードディスク(NAS)を買って、とかも少し考えましたがヘビーに使うわけではないので小さなNASをラズパイで構築してみることにしました。
ラズパイはこのためにもう一台立ち上げようかとも考えましたが、Twitterのサーバーに相乗りさせることにしました。

こちらの記事を大いに参考にしました。
www.itmedia.co.jp

工程 じゃ~~~~~ん

WindowsでUSBをNTFSでフォーマットしたら、ラズパイに接続しラズパイを再起動します。
f:id:s51517765:20210613181907j:plain
Userフォルダの2つ上の階層(ルートフォルダ)にmediaというフォルダがあります。
これが外付けメモリです。

$ ls /
>>> media ...

ここに共有フォルダを作ります。ここではsambaとします。

$ mkdir /media/samba

フォルダのアクセス権を設定します。ここでは雑に777とします。

$ sudo chmod 777 /media/samba

ますSambaをインストールします。

$ sudo apt install samba samba-common-bin

途中、WINS(Windows Internet Name Service)について確認が求められますが、Windows10ではNoで良いらしいです。

つぎにsambaの設定をします。
一応もとの設定ファイルをバックアップしておきます。

$ sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup210612

一番最後に以下を記入します。

[raspberry_pi3]
path = /media/samba
public = yes
read only = no
browsable = yes
force user = xxx

home以下、いつものフォルダの下に作るときはpath = /home/xxx/sambaのようにします。
pathはラズパイ上の共有したいフォルダですが、この設定の仕方はフルパスにするほうが間違いがないです。
ラズパイで共有設定したいフォルダに移動(cd)してここで、pwdで表示されたフォルダパスを記入すると間違いないです。
ここで[raspberry_pi3]はwindowsから見たときに表示したいフォルダ名になります。
f:id:s51517765:20210613180353j:plain
force user はこのフォルダにアクセスする権限を設定します。通常はいつもラズパイにログインしているUser名でいいと思います。

sambaを再起動します。

$ sudo systemctl restart smbd

これでWindowsからラズパイのIPアドレスにアクセスすると/media/sambaが見えるはずです。
始めてアクセスするとき、IDとPassを聞かれます。いつものラズパイにLoginしているときのモノを入力します。

環境によって?フォルダは見えるけどアクセスできない、という場合があります。
このときは↓を参考に「SMBのクライアントを有効化」する必要があります。
f:id:s51517765:20210613180537j:plain
https://www.iodata.jp/pdf/win10_smb1.pdf

速度を測定してみる

比較として、SDカード(OSが入っているドライブ)に共有フォルダを設定して転送速度を測定してみました。

f:id:s51517765:20210613180943p:plain
上図:USBメモリ、下図:SDカード、若干SDカードが速い?

SDカードのほうが若干速いようですが、どちらでも普通に使う分には十分な速度が出ているといえるのではないでしょうか。

ddコマンドも見てみます。

$ dd bs=1M count=100 if=/dev/zero of=/media/samba/disktest oflag=direct
st oflag=direct
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 13.0413 s, 8.0 MB/s

$ dd bs=1M count=100 if=/dev/zero of=/home/xxx/samba/disktest oflag=direct
100+0 records in
100+0 records out
104857600 bytes (105 MB, 100 MiB) copied, 19.8014 s, 5.3 MB/s

こちらではUSBメモリのほうが速いという結果です。
トータルでは大差ないということでしょう。

まとめ

Smabaを設定して共有サーバーをラズパイに設定しました。
今回、共有フォルダをUSBメモリに設定しました。
USBメモリに設定するとSDカードに対して速度的には若干のデメリットがある場合がありますが、OSが書き込まれているSDカードに読み書きの負荷を増やすのは寿命に影響しそうなので別のストレージを設定しました。
ラズパイのバックアップストレージとしても活用できそうです。