Lightroomを完全NAS運用できた!
RAW現像ソフトとして多くの人が使っているAdobe Lightroom。これをNASと連携して使う場合、PCにネットワークドライブとしてマウントすれば写真(RAW、JPEGなど)はNASに入れたまま運用できましたが、カタログだけはPC側に置いておかなければ起動できませんでした。
つまり、LightroomをNASと連携させるなら「カタログはローカル、写真はNASへ」という運用をしなければいけませんでした。ところが今回、NASメーカーのSynologyさんからNASにカタログを入れたままでも使える方法があるよとヒントをいただいたので実際に試してみることに。
使用感も実用的だったのでLightroomを完全NAS運用するための設定方法やメリット、デメリットなどを紹介してみようと思います!
NASユーザーであれば無料ですぐ試してみることができますよ!(Macの人は少し問題がある。。後述)
私はネットワーク専門家ではないので、各用語などふんわりした理解で使っています。。間違った点などありましたらご指摘ください。
iSCSIを使ってNASと接続するのがキモ
まず、なぜLightroomはNASにカタログを置いたまま起動できないのかというと、Lightroomのカタログ(データベース)は複数のPCからの同時アクセスに対応していないからです(たぶん)。
NASは複数のPCからの同時アクセスが可能なように設計されていますが、Lightroomのカタログはそれに対応していないのでNAS(ネットワークドライブ)にカタログを置いて起動できない仕様になっているのだと思います。Adobeの人に聞いたわけではないですが。
NASはPCにマウントしてエクスプローラーやFinderから外付けHDDのように操作することは可能ですが、場合によってはネットワークドライブならではの制限が出てくるのです。
*写真(RAW、JPEG)はNASに入れたまま運用が可能です
NASの一般的なマウント方法については以下の記事をご覧下さい
iSCSI接続でNASを外付けHDDと同じようにする
ところが、NASにiSCSI(アイスカジー)というプロトコルで接続すると、NASはネットワークドライブとしてではなく、普通のドライブとして認識されるようになるのです。
これを使えばLightroomのカタログもNASに入れたまま運用出来るというわけ!iSCSIを使って接続すれば普通の外付けドライブと全く同じように使用することができるのです。
iSCSIとは
(ここは興味なければ読み飛ばしてもOK)
通常、NASはPCのデータのやりとりにSMBやAFPといったプロトコルを使用します。これはファイルやフォルダレベルでのデータのやりとりをする仕組みです。
PCからNASにデータを送るときはPCからの「***というファイルを送るよ!」という信号に対して、NAS側でファイルの競合などが起こらない事を確認した上で「***ならOK!送って!」というやりとりをしながら処理をします。
一方、iSCSIではより低層のブロックレベルでのデータ転送が行われます。「1つのファイル」といった概念ではなく、それを構成するデータ(01110000101010みたいなやつ)を転送するということ。余計な確認をすることなく純粋にデータだけを転送するのでSMBなどと比べてより高速な転送が可能なようです。
(参考)【図解】初心者にも分かる iSCSI の仕組み ~NAS(NFS)との違いやメリット,デメリット~ | SEの道標
普通のNAS運用との違い
普通のNASをPCにマウントすると、PCからもNASから(ブラウザのNAS OSから)も中身を見ることができますが、iSCSIを使った接続の場合、NAS側のOS(SynologyならDSM)からデータの中身は参照できないことは覚えておきましょう。
この場合、NASは「iSCSI接続で使うための箱」だけを提供するというイメージを持っておくといいでしょう。この「iSCSI接続で使うための箱」を「LUN(Logical Unit Number)」といいます。
Lightroom以外でも効果があるよ!
ということで今回の話の本質は、NASにiSCISIで接続すると外付けドライブと全く同じように使う事ができ、転送速度もパワーアップするということなので、Lightroomのカタログだけでなく、あらゆるデータに対して利用することが可能です。
ただし、上記のとおりNASからデータが見えなくなるので、NAS専用の便利なアプリケーション(SynologyならPhotoStationとかCloud Sync、Driveなど)は使えなくなる事に注意しなければなりません。
NASにiSCSI接続する方法
では早速NASにiSCSI接続する方法を順を追って紹介してみようと思います。やり方自体は簡単で、慣れれば5分もあれば完了です。
おそらくどのメーカーのNASでもiSCISI接続用のオプションはあるはず。今回は普段使用しているSynologyのNASで紹介してみようと思います。
やる前の注意
PCからNASにiSCISで接続する場合、Windowsはデフォルトで接続用のアプリ(iSCSIイニシエーター)が搭載されていますが、Macには未搭載です。
Macの人は別途有料のiSCSIイニシエーターを手に入れて使用する必要があります(詳細は後述)。
ほかは特に準備するものはありません。NASを持っているWindowsユーザーならすぐに試すことができます。
データバックアップも抜かりなく
お約束ですが、作業中何があるかわからないので大事なデータはきちんとバックアップしておくこと。自己責任にて作業を行ってくださいね。
1.NASにLUNを作る
まずはNASの中にiSCSIでやりとりするためのデータの箱(LUN)を作ります。HDDのパーティションを分けるみたいなイメージだと思ってください。
Synologyの場合、左上のメインメニューから「iSCSI Mnager」を選択。以前のOS(DSM)では「ストレージマネージャー」の一部だった気がしますが、最近一つの機能に独立したみたい?
左カラムから「LUN」を選んで「作成」。
あとはウィザードに従って操作するだけです。
名前は好きなものを入れてOK。場所は普通の人なら1つしか選択できないはず。
容量も空き容量の範囲で必要な数字をいれましょう。この容量はあとからでも簡単に変更出来ます(iSCSI Manager > Target > 操作 > 編集 から)。
Thin Provisioninは「いいえ(使わない)」でOK。
ThinとThickプロビジョニング
デフォルトではLUNの容量を1000GBに設定すると、NASの空き容量は1000GB分はじめから消費されてしまいます(Thick Provisioningという)が、Thin Provisioningを有効化させるとLUNを1000GBに設定しても実際に消費される容量は使用した分だけになります(1000GBに設定しても10GBしか使わなければNASの容量も10GBしか減らない)。
Thin ProvisioningはNASの容量を節約できて便利ですが、LUNの容量は後からすぐ増やせますし、使用中にNASの容量がなくなってしまうと不具合が起こる可能性があるので、個人で使うなら使用する容量をはじめから押えてしまうThick Provisioning(デフォルト設定)の方が良いでしょう。
高度なLUN機能はファイルシステムがext4(Synologyの場合は古いシステム)の場合のみ選択できるみたい。外付けHDDのようにデータ入れて使うだけなら「いいえ」で良いと思いますが、スナップショットなど使いたければ有効化します(処理スピードが若干遅くなるかも)。
最近のBtrfsを使っている場合は無視してOK。というか選択できない。(デフォルトで高度な機能が使える)。
設定できたら「次へ」
2.iSCSIターゲットを作る
データの箱(LUN)ができたら次に、LUNの中にPCからiSCSI接続するための窓口を作ります。これをiSCSIターゲットといいます。
新規iSCSI Target作成を選択して次へ
ここもウィザードに従うだけ。
名前は好きなものでOK。
IQCというのはiSCSI Targetの固有識別子で、他と被らないよう「iqn.yyyy-mm.domain:device.ID」というフォーマットで決めるようです。好きな名前に変えてもいいし、そのままでもOK。
CHAPというのはIDとパスワードだと思ってください。後でPCから接続するときにここで決めた名前(ID)とパスワード(シークレット)を使用します。セキュリティのためにも設定しておきましょう。
相互CHAPというのはPC側のiSCSIイニシエーターにも名前(ID)とパスワード(シークレット)を設定しておき、その値をここに設定しておくことで双方向のより強固なセキュリティで接続ができるものです。ローカル環境で使うならここまで設定しておかなくても大丈夫かも。
最後に設定を確認して「適用」を。
これだけでiSCSI接続に必要な「LUN」と「Target」が出来ているはずです。これでおしまい!
簡単でしょ。
接続に使うIPアドレスを限定しておく
Synologyの場合、Target > 操作 > 編集 > ネットワークバインディング で接続に使用するIPアドレスを限定しておきましょう。LANポートが複数あるNASの場合、ここを限定しておかないとPCとの接続に時間が掛かってしまいました。
ネットワークバインディングタブへ
デフォルトの「すべてのネットワークインターフェイス」のままにしておくと、未使用のポートにも接続を試みるっぽくややこしいことになりました。
3.PCのiSCSIイニシエーターを起動
NASにiSCSIターゲットを作ったらPCからそこに接続しましょう。「iSCSIターゲット」へは「iSCSIイニシエーター」を使って接続することになります。
Windows10の場合は標準でiSCSIイニシエーターが搭載されています。左下の検索ボックスに「iSCSI」と入れれば出てくるはず。スタートメニュー > Windows管理ツール から選択することも出来ます。
初回のみPCを立ち上げたときに自動でiSCSIイニシエーターを起動するか聞いてくると思います。通常は「はい」を選択しておきましょう。こうすれば次回以降PCを立ち上げると自動でiSCSIイニシエーターが起動し、自動接続ができるようになります。
Macは別途iSCSIイニシエーターを用意する
残念ながらMacにはデフォルトでiSCSIイニシエーターは搭載されていません。別途手に入れる必要があります。。
いくつか選択肢があるようですが、有名なのがglobal SANのiSCSIイニシエーターとのこと。$89とまぁまぁなお値段がします。(他のiSCSIイニシエーターはより高額)
黒い画面を触るので上級者向けですが、フリーのiSCSIイニシエーター( iSCSI Initiator for macOS)もGitHubで公開されているようです。今回私はMacからの接続は検証していないのですが、下記記事など参考にしてみてください。
iSCSI Initiator for macOS を使って Mac を iSCSI に対応させる方法 - Qiita ←無料版を使う方法
4.iSCSIイニシエーターでNASに接続する
ここからはWindowsのiSCSIイニシエーターを使った方法を紹介します。クイック接続を使っても良いけどベーシックな方法で紹介していきます。
iSCSIイニシエーターを起動したら「探索」のタブ > 「ポータルの探索」をクリック。
NASのIPアドレスを入力し、ポートは特に変えていなければ「3260」のままでOK。
NASのIPアドレスはSynologyの場合、コントロールパネル > ネットワーク > ネットワークインターフェイス で確認出来ます。
すると「ターゲットを探索するポータル」のところに先ほど登録したNASが表示されているはず。
「ターゲット」のタブに移ると作成したターゲットのIQC名が表示されているはずです。(表示されていなければ最新の情報に更新しましょう)
ターゲットを選択して「接続」ボタンをクリック。
「この接続をお気に入りのターゲット一覧に追加する」にチェックしておけば、PC起動時に自動でNASに繋がります。
CHAP認証を設定している場合は「詳細設定」をクリック。
「CHAPログオンを有効にする」をチェックして、NASでターゲット作成時に設定した名前とパスワード(ターゲット シークレット)を入力します。
設定できたらOKをクリックで完了!
ターゲットの状態が「非アクティブ」から「接続完了」に変わっているはずです。
*ここでiSCSIイニシエーターが(反応なし)と固まってしまった場合は下記参照
5.PCでフォーマットする
これでPCからNASに作ったiSCSIターゲットを認識することが出来ましたが、まだエクスプローラーからは見えません。
iSCSIターゲットはデータ用の箱なので最初にPCでフォーマットしないと使えないのです。ここから先は新しいHDDやSSDを使う流れと同じです(最近は最初からフォーマットされたドライブも多いけど)。
左下のスタートボタンを右クリック > ディスクの管理 を選択
次のようなディスクの初期化画面が出てくるはず。ここでパーティションスタイルを「GPT」にしておきましょう。
(参考)MBR形式とGPT形式の違い(パーティション) | パソコンの問題を改善
続いて、ずーっと下の方に行くと黒い未割り当てのディスクがあるはず。これがNASに作ったLUNです。これをPCで使えるようにフォーマットしましょう。ディスクの未割り当て部分を右クリック > 新しいシンプルボリューム を選択。
ボリュームサイズは何もいじらず最大値のまま次へ。パーティションを分けたい場合は任意の値を入れます。
好きなドライブ文字を選んで次へ
フォーマット方法のところは「このボリュームを次の設定でフォーマットする」にチェックを入れ、ファイルシステムを選びます。Windowsだけで使うのであれば標準のNTFSで良いですが、Macでもアクセスする予定があるなら「exFAT」としておきましょう。
NTFSファイルシステムはMacからのアクセスに制限がありますが、exFATならどちらからでも使えます。
*なお、今回はexFATでフォーマットしたものの実際にMacからのiSCSI接続は試してません。今後試してみたら追記しようと思います。
アロケーションユニットサイズはそのままでOK。ボリュームラベルに好きな名前を付けておきます(この名前がエクスプローラーに表示される)。
最後に設定を確認したらおしまいです。
6.エクスプローラーで確認
実際にエクスプローラーから使えるようになっているか見てみましょう。
通常、NASをPCにマウントした場合、「ネットワークの場所」という欄に表示されますが、iSCSIで接続した今回のケースは内蔵ドライブや外付けドライブと同じように「デバイスとドライブ」の欄に表示されているのが分かります。
iSCSIイニシエーターの接続が上手くいかないとき
実際私が経験したのですが、はじめてiSCSIイニシエーターを使った時にうまく接続ができませんでした。ターゲットに接続しようとするとiSCSIイニシエーターが「応答なし」となってしばらくフリーズし、接続完了までかなり時間がかかりました(5~10分くらい)。
どうも、LANポートが複数あるNASの場合、実際に使っていないポートのIPアドレスにも接続を試し、タイムアウトを繰り返しながら正解のポートに辿り着くといった挙動をしているようでした。
接続時の詳細設定 > ターゲットポータル IP を見ると複数のIPアドレスが表示されていて、上から順に試行をしている感じ(なぜかリストのIPアドレスを選択できなかった)。
IPアドレスを限定しておく
一番簡単なのは上の2.でも説明したように接続に使用するIPアドレスを限定しておくことです。これで無駄な試行はしなくなりました。Synologyの方はここをチェック。
DHCP有効化&再起動
もう一つの方法は、DSMのコントロールパネル > ネットワーク > ネットワークインターフェイスで未使用のポートのDHCPを有効化したのち、NASを再起動することで、未使用ポートに接続を試みることがなくなり一瞬で接続できるようになりました。
もしお困りの人がいれば試してみてください。
---
ということでこの一連の流れを使う事でLightroom用のカタログフォルダに限らず、マウスポチポチするだけでNASを使って好きなだけ外付けドライブを作る事ができるのです(NASにより作れるLUNの上限は決まってるけど。入門機のDS218jでも10個まで作れる)。
NASにカタログを置いて起動させる
ここまでできれば後は普通の外付けHDDを扱うようにすればOKです。
カタログフォルダごとコピペするだけ
NASにカタログを移動するのはただ単にカタログフォルダごと新しいドライブにコピペするだけです。注意すべき点は必ずLightroomを終了させておくことだけ。
数万枚程度のカタログならそれほど待たずに転送が終わるかと思います。
iSCSIは細かなデータ転送に強い
カタログフォルダにはLightroomで使われるプレビューが詰まったプレビューフォルダが存在します(カタログ名 Previews.lrdata)。この中には細かなデータが鬼のように詰まっているため普通のNAS(SMBやAFP)に転送すると速度が出ずかなり時間が掛かるのですが、iSCISなら細かなファイルの転送も得意なのでワリと短時間で終わります。
約2000枚、1GBのカタログのコピペで40秒くらいで終わりました。iSCSIでない普通の接続で転送すると1.5倍ほど時間掛かる感じです。
カタログダブルクリックで起動
新しいドライブのカタログで起動させる方法はいくつかありますが、確実なのは新ドライブにコピペしたカタログ本体(.lrcat)をダブルクリックして起動することです。
これで確実に新しいカタログで起動します。
一応、Lightroomからも確認する
カタログをコピペした直後は旧ドライブに残っているカタログと同内容なので、誤って旧ドライブのカタログを使っていることに気付かないという事故が起こるかも知れません。。
念のため、編集 > カタログ設定(MacはAppleマーク > カタログ設定)から今自分が使っているカタログを確認しておきましょう。(次回以降は前回起動したカタログが使われる)
あえてNASにカタログを置く価値とは?
さて、実際の使い勝手ですが、私が普段使用している33万枚の写真が登録された激重のカタログを使って試してみました。
十分使えるスピード。SSDには劣る?
検証に使用したのはDS1517+(5ベイ、10GbE)とDS416play(4ベイ、1GbE)の2つ。それぞれのベンチマーク速度は以下の通りです。
ただ、どうもこの結果、実体を反映していない感じで上手く測定できていないかもです。ランダムの値は測定ごとに大きくバラついたりするし。例えば4GBのファイル転送だとDS1517+(10GbE)の転送は4秒掛からないくらいに早く1000MB/sは出ている感じ。SMBで転送するよりずっと早く終わったりするので参考程度にどうぞ。
ベンチマークからは思ったような値は出てこなかったのですが、実際にファイルコピーなどを試した感じだと大きなファイル、小さなファイルの転送共にiSCSI接続のほうが体感的に速く感じます。
結果としては十分使えるんじゃない?という感じ。たぶん数万枚レベルのカタログならかなり快適に使えるんじゃないかと思います(経験的に)。
カタログの使用感(スクロール表示、検索など)はDS1517+の10GbEも、DS416playの1GbEも体感的にはあまり違いを感じませんでした。(2ベイのNASだと転送速度はさらに遅くなるのでどうなるかな?)
でもNVMe SSDの方が快適
ただ、今まで使用してきたNVMe SSD(Samsung 960EVO)にカタログを入れて使うことと比べると、グリッド表示でスクロールするときなどに少しもたつきを感じました。まぁ、カタログを扱う上で重要だと思われるなランダムアクセス性能がSSDは桁違いなので違いは出て当然かもしれません。
カタログをSSDに入れた方が良いという話は以下の記事も参考にどうぞ!
Samsung SSD 500GB 970 EVO Plus M.2 Type2280 PCIe3.0×4 NVMe1.3 5年保証 正規代理店保証品 MZ-V7S500B/EC
▲960 EVOの後継。めっちゃ速いよ
普通のSSD(SATA SSD)も以前NVMe SSDと比べたときにほとんど体感が変わらなかったので、カタログはNASに置くよりSSDの方が快適ということは言えそうです。
オールSSDの10GbE NASみたいなのだとどうなんだろ。富豪NASで試してみたいw
繰り返しますが33万枚の巨大カタログを扱うといった場合においてですが。
複数端末からカタログを共有できるのか?
恐らく多くの人が考えているのがこれでしょう。複数の端末から同時に1つのカタログにアクセスして使えるのかどうかという話。
残念ながらこれは基本的にはできません。iSCSIの仕様による問題とLightroomの仕様による問題の2つが絡んでいます。でも同時でないなら条件付きでアクセス可能です。
iSCSIは複数端末からの同時アクセスに向かない
前半でiSCISはブロックレベルの転送を行うと言いました。ファイルの競合とかそういうことは考えずにデータをやりとりします。基本はiSCSIターゲットとiSCSIイニシエーターの一対一での接続なのです(これなら競合は起きない)。
ちなみに、Synologyの場合、iSCSI Managerの設定で複数のiSCSIイニシエーターから1つのiSCSIターゲットに接続できるようにすることも出来ますが、普通の環境でこれをやるとデータが壊れる可能性があるので止めた方が良さそうです。(実際に私の環境でも2台のWindows機で同時にアクセスすることはできました)
Lightroomは起動中にロックされる
もう一つの問題はLightroomは起動時にカタログを守るためにロックされるという問題も。Lightroomを起動中にカタログフォルダを覗くと、(カタログ名).lrcat.lockというファイルができているのが分かります。
Lightroom終了時にこのロックファイルは自動で消えるのですが、異常終了などでこれが残ったままの状態だと次回正常にカタログが起動出来ないのです(手動で削除すればOK)。ですから、Lightroomで使用している間に、別の端末で使用しようとしてもロックファイルがあるのでたぶん無理なんじゃないかと思います。
iSCSIイニシエーターを切り換えれば複数端末からでも使える
もし、複数の端末で使いたければ、一旦iSCSIイニシエーターの接続を切り、別の端末からiSCSIターゲットに接続を行うという一手間が必要です。ちょうど外付けHDDのUSBを他の端末に差し替えるようにです。
物理端子を差し替える訳ではないので、外付けドライブを変えるよりは楽かもしれませんね。
LUNのバックアップはどうする?
もう一つ大事なのは今回作ったiSCSIドライブのバックアップ問題ですが、こちらはいろいろなオプションがあります。
まず、RAID1やRAID5(またはSHRなど)といった冗長性のあるNASの中にLUNを作った場合、そのLUNもハード障害からは守られます。
さらに、これをバックアップする場合は外付けドライブと同じようにファイル同期ソフトなどでバックアップしても良いですし、SynologyならHyperBackupを使って外付けHDDや別のSynologyNASにバージョン管理しながらバックアップすることも可能です。大事なデータを保管する場合も心強いですね。
NASに全データを集中させると万が一の事態に失うものが大きくなりますので、バックアップはかならずやっておくこと。マストです。火事や地震などのリスクもありますからね。
私がやろうとしている方法
このように最高のパフォーマンスを得たいならカタログはNASよりもSSDに置くべきだとの結論になるのですが、iSCSIイニシエーターの切り換えだけで、メインのデカいカタログを別端末から使用できるメリットは計り知れません。
そこで私が今考えているのは、メインのデスクトップPCでの作業は今まで通り、SSDに置いたカタログで作業し、このSSDをNASのiSCSIドライブと同期させて使おうかと考えています。同期にはFreeFileSyncなどを使いながら。バックアップも兼ねます。
ほとんどの作業はSSDで作業し、別端末で使用したいときは一旦メインPCのiSCSIイニシエーターを切断し、別端末で再接続して使用。終わったらSSD側に再同期するといった流れでしょうか。
外からの接続はできる?
ここはまだ試していないですが、VPNなど使えばインターネット越しでも使えるかもしれませんね。
ただ、元写真もNASに置いておくといった使い方だとかなり太い回線が必要な気もします。スマートプレビューなど駆使しながら作業すればなんとかできるかも。
ぜひネットワーク詳しい方チャレンジしてまとめてください。待ってます!(他力本願)
まとめ:無理してNASを使う必要はないが便利
ということで、ここまで説明してきてアレですが、普通のNASのように複数端末でアクセスできるわけでもなく、SSDの方が快適に使えるということが分かったので、すべてのNASユーザーがカタログをNASに置く必要はないかなと思います。いままでSSDにカタログを置いて運用していたのであればそのまま使い続けた方が良いでしょう。
ただ、ノートPCなどで内蔵ドライブの容量不足に困っているという人ならカタログをNASに逃がすという選択はアリかも知れません(Wi-FiでNASにアクセスしている場合はさらに遅くなる可能性もあるので有線推奨)。また、iSCSIイニシエーターの切り換えに多少手間はかかるにしても、USBドライブを挿し変えるよりは楽と考えれば複数端末で使用したいというユーザーにとってもメリットになるかと思います。
iSCSIドライブは普通のNASより転送速度も優れているので、動画編集用のデータを置いたり、元写真も入れてしまうといった使い方をしてもいいかもしれません。
NASが1つあるだけで、様々な選択肢が生まれるというのはとても良い事だなーと思います。内蔵ドライブ、外付けドライブ、NAS、iSCSIドライブそれぞれにメリット、デメリットがありますので自分の用途をよく考えながら導入を考えてみるとよさそうですね。