Lightroom用NAS構築 on Raspberry Pi + NASのスピードテスト

プログラミングor技術

なにをするか

Lightroomで写真ファイルを貯めておくNASをRaspberry Piを用いて構築する。
最終的には速度に満足できた。
安定性には満足できていない。
ラズパイのせいじゃないかもしれないが、ときどきLightroomで多くの写真をいじっていると、NASが反応しなくなり繋ぎ直さなくてはならなくなるときがある。

Raspberry Pi側

ハードウェア関係の準備

使用するのはRaspberry Pi3。
標準のNICはギガビットイーサに非対応なので、今回はバッファローのLUA4-U3-AGTというギガビットイーサ対応のNICをUSB2.0で繋ぐ。

USB2.0 high-speedで接続するのがボトルネックになるが、本体内蔵のファストイーサネット端子を使うより速度が出る。
なお、記事末尾にスピードテストあり。

(ファストイーサ: 100Mbps = 12.5MB/s,
USB2.0 high-speed: 480Mbps = 60MB/s)

設定

マウント周り

ここ(ゆるガジェCHANNEL)をみて行う。

インストール

sudo apt-get install exfat-fuse exfat-utils

自動マウントの設定

exFatでフォーマットされた外付けHDDをRaspberry Piにつなぎ、sudo blkidコマンドでUUIDを調べる
/etc/fstabに

UUID="YOUR UUID"    /mnt/hdd/usbhdd    exfat-fuse      async,auto,dev,exec,gid=65534,rw,uid=65534,umask=007    0    0

を追記。
sudo rebootで再起動。

Sambaまわり

sambaインストール

sudo apt install samba

confファイルをいじる

設定ファイルを開く

sudo vim /etc/samba/smb.conf

MacではSMBはWindowsより遅いらしい。途中から対応したSMB3を使うとよいらしいので次のように[global]の配下に追記

[global]
# このへんにUTF-8がどうとかある

client min protocol = SMB3
client max protocol = SMB3

末尾に追記
[NAS] の部分は、後々説明するが、元の外付けHDDについていた名前と同じにしたほうがLightroomでは面倒がなくて良い。

[NAS] 
  comment = USBHDD 
  path = /mnt/hdd/usbhdd/
  read only = no 
  guest ok = yes 
  force user = pi 
  unix extensions = no

デーモン再起動

sudo service smbd restart  
sudo systemctl status smbd.service   #ステータス確認

sambaを停止したい時やアンマウントしたいとき

sudo systemctl stop smbd     #smbd停止
sudo umount /mnt/hdd/usbhdd   #smbdを停止してからでないとアンマウントできない

Firewallまわり

以下はUFWを使っている場合。ここは自分用メモの色が強い。

このように、sambaで用いるポート番号は複数あるので方法はどうあれそれを許可すれば良い。(22とか80が追加されているのは私の都合です)

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
80                         ALLOW       Anywhere
22                         LIMIT       Anywhere
Anywhere                   ALLOW       192.168.1.0/24
22                         LIMIT       Anywhere (v6)
80                         ALLOW       Anywhere (v6)

ルールの追加方法

sudo ufw allow 80
sudo ufw limit 22
sudo ufw allow from 192.168.1.0/24  to any 

ルールのデリート

sudo ufw status numbered   # これで番号付きで表示
sudo ufw delete 13

とかやる

Mac側

普通にFinderでcommand + Kでサーバ接続, smb://192.168.1.10などとRaspberry PiのIPアドレスなりなんなりで接続する。
次のコマンドでSMB3で繋げているか確認できる。

smbutil statshares -a

Lightroomでの運用

Lightroomの運用は次のような感じ?
ここを参考にする。
自分はアマチュアで大したことやってないので、

  • LightroomのカタログとプレビューをMacbook Proに保存
  • カタログはLightroom終了時に毎回NASにバックアップするように設定
  • 写真のファイルは全てNASに置く
  • 大量のファイルコピーは、HDDをPCに直接つなぎ変えて行う
という感じで行く。

普段はNASとして運用しつつ「大量のファイルコピーは、HDDをPCに直接つなぎ変えて行う」ための設定

外付けHDDとして運用していたものをNASにつないで使う場合とその逆をやる場合、Lightroomのカタログに記録されている写真ファイルのパス(=場所)と、写真ファイルの実際のパスが食い違うとLightroomが写真を見失ってしまう。

Sambaの設定の項で述べた通り、Lightroomのココに表示されるHDDの名前と同じ名前でマウントできるようにSambaを設定すれば、Lightroomgが写真を見失わないので楽。

今回の例だと以下のように、/etc/samba/smb.confに追記した[NAS]の部分を[HD500]にすればよい。

[HDD500] 
  comment = USBHDD 
  path = /mnt/hdd/usbhdd/
  read only = no 
  guest ok = yes 
  force user = pi 
  unix extensions = no

別なPCから編集する必要がでたら、NASにバックアップされてるカタログをダウンロードして、それで作業をする。終わったらカタログをNASにバックアップしておく。
同時に別なPCから同じカタログで作業すると不整合が生じると思うけど、同時にしなきゃ大丈夫そう。

この辺を気にするならApertureが良いらしいが、すでに開発終了している。

スピードテスト

この測り方で良いかは疑問が残るけど…。

ギガビットイーサ対応の外部NICをUSB2.0で接続すれば、まともに使える速度は出る。

ラズパイ内蔵Wi-Fi

ラズパイ内蔵NIC( ファストイーサ )

外部NIC ( ギガビットイーサ )

外付けHDDをUSB3.0で直接Macbook Proに接続

Macbook Pro 2018 内蔵SSD(参考までに)

コメント