Sambaは、WindowsとLinuxのファイルシステムをつなぐ重要なサーバー機能ですが、最近、一部のSambaサーバーで遅延が発生し、Windows端末での操作に支障が出ることがありました。
Sambaのアップデートでは、古いSMBプロトコルや認証方式の扱いが変更されることがあります。事務所では、古いスキャナーやプリンターなどを接続していることもあり、設定変更には慎重になります。
今回、実際に発生した問題について、2点変更したところ改善しました。
1.Rsyncのパーミッションエラー
Windowsにはrobocopyがありますが、差分バックアップではRsyncも比較的高速で便利です。当事務所では、RsyncとFedoraサーバーへのSSH接続のためにCygwinを利用しています。
Rsyncでは、
rsync --delete -t -v -r --perms /cygdrive/c/path //Sambaserver/backup-path
としていましたが、Sambaサーバー側でパーミッションのエラーが発生しました。
そこで、
--perms
を
--no-perms
に変更したところ、正常にバックアップできるようになりました。
--permsは転送元のパーミッションを転送先にも設定するオプションです。バックアップ先でパーミッションを再現する必要がなければ、--no-permsで問題ありません。
- 不要なサーバーではNT1を無効にする
古い機器との互換性のため、SambaでSMB1(NT1)を許可している場合があります。
今回、古い機器と接続する必要のないSambaサーバーについて、
;server min protocol = NT1
;ntlm auth = yes
として、これらの設定を無効にしました。
その結果、Windows端末からSambaサーバー上のテキストファイルを開く際などに発生していた遅延が改善しました。
ただし、古いスキャナー、プリンター、スマートフォンなどが接続されている場合は注意が必要です。設定変更後に、それらの機器からSambaサーバーを利用できるか確認した方が安全です。
今回、
- Rsyncの
--permsを--no-permsに変更 - 不要なSambaサーバーでSMB1(NT1)を無効化
したところ、バックアップが正常に動作し、Windows端末からのファイル操作も改善しました。
古い機器との互換性が必要な環境では無理に設定を変更する必要はありませんが、必要のないサーバーまで古いプロトコルを有効にしておく必要もありません。
接続する機器に応じて、設定を分けておくことが重要だと思います。
