皆さんはデータのバックアップをどのように取得されていますか?
特に写真についてはGoogleやAmazonが提供しているクラウドを利用する方も多いと思っています。
自分もその一人なのですが、やはり大切な写真は自分自身でも管理したいということで、NASを導入しています。
値段もお手頃なので、Synologyのものを利用しています。
ただ、タイトルにある通り、このNASにMACで接続する際に少し速度が遅かったので、その対策方法をまとめました。
NASとは?
Network Attached Storageのことで、HDD/SSDなどの補助記憶装置をネットワーク経由で利用できるようにするものです。
固定IPにしたりDDNSなどを利用して、VPN経由で自宅の回線にアクセスできるようにしておけば、外出先からも参照することができて便利です。
SynologyがDDNSサーバを提供してくれているので、それを使わせてもらうと便利かもしれません。
利用したことがないので憶測ですが、自力で環境を構築せずとも、どこからでもデータにアクセス | Synology Inc.に記載があるとおり、アプリをインストールすればGoogleDrive的な感じで簡単にデータにアクセスできそうですね。
SMBとは?
Server Message Blockのことで、主にWindowsとネットワーク機器がやり取りをするために利用されていたプロトコルです。
そのため、MACと相性が悪いのかなと思っています。
どんな問題が起こっていたか?
Windowsから接続する際には、ファイルリストの読み込みも高速で、実際にファイルをプレビューする際にもローカルと遜色ない速度で動いていました。
しかし、MACから接続すると、ファイルリストの読み込みの時点でローディングが走り、プレビューもかなりローディングが挟まる状況でした。
どうやって解決した?
例の如く公式サイトに設定内容を見にいきました。
よくよくみると、SMBにはプロトコルバージョンが存在しているようでした。
それが初期設定だと、互換性を重視してかSMB1が選択されていました*1。
Wikiによると、SMB1はWindows2000以前のマシンでも利用できるようなもので、2012年には廃止が提案されるなど、あまり良くないものであることがわかりました。
SMBプロトコルの最小バージョンを上げる
そこで、まずは最小SMBプロトコルを「SMB2 と Large MTU」に変更してみました。
すると、Windowsで接続するのには劣るものの、かなり高速にファイルが表示されるようになりました!
自分の環境ではあまり意味がなかったこと
早くなったので気を良くして、もう少し早くなる方法がないか探してみました。
(非推奨)サーバ署名を無効に設定する
あまりよろしくないと思うのですが、サーバ署名を無効化してみました。
これにより、ファイル内容の改ざんには弱くなってしまうのですが、「SMBプロトコルの最小バージョンを上げただけ」よりは、多少表示が速くなったように感じます。
ただ、改竄のリスクとは見合わないので、オンにできる環境はオンになる、「クライアント定義」にしておくのが良いのかなと思います。
(非推奨)転送暗号化モードを無効に設定する
こちらの機能はSMB2以上で有効化できる場合に有効となるようで、ファイルの盗聴のリスクがあるかと思うのですが、無効化してみました。
結果から言うと、「SMBプロトコルの最小バージョンを上げただけ」と対して変わりがないように思います。
そのため、こちらも「クライアント定義」のままにしておきます。
非同期読み取りを有効にする
10GbのLAN向けの設定のようなのですが、早くなりそうな雰囲気があったので入れてみましたが、体感値としては、「SMBプロトコルの最小バージョンを上げただけ」の状態と変わりませんでした。
感想
結局、古いプロトコルが優先して利用されていたことが原因だったのかなと思います。
また、ファイル数が多いディレクトリを開くのには依然として時間がかかるので、純粋にCPUの処理能力が不足しているのかもしれません。
キャッシュなどの生成をある程度事前に行わせておいたり、そもそもプロトコルをNFSに変更するなど、他にも検討できることはありそうなので、また遅さが気になってきたら修正を検討してみようと思います。
*1:なお、自分はバージョン6から7に上げたのでSMB1だったのかもしれませんが、バージョン7のドキュメントにはSMB1が非推奨である旨が記載されているので、バージョン7のデフォルトは違っているかもしれません。