最近なかなか仕事が進まない津村です。
初めて使ったWindowsは3.1、使った最古のWindowsは1.01、学生時代はNT4.0を愛用していました。
MSSQL ServerのデータをSamba上に置く際のハマりどころ。
もう色々面倒くさいのでざくざくいきます。政治ってやだね。
要するに「AD組むのめんどくさい」です。
Sambaは4.0からActiveDirectoryのドメコンになる事ができますが、3系だとNTドメインのドメコンにしかなれません。
あと、Sambaをドメコンとして構成する場合は、最初からLDAP認証を有効にする必要があります。
じゃあ、ドメイン組まなかった時の認証処理ってどーなの?って話で。
Windows2008R2では上記の画面ですが、要するにサービス起動用のアカウントを使ってSQL Serverは起動してきます。
ここでADで上手く連携していれば面倒な事は無いのですが、諸般の事情でADを組めない時は、結論としてGuestUserとしてSambaを構成します。
2014/12/01追記
結果として、masterデータベースの移行は可能ですが、その他システムデータベースのマイグレーションができません。
SQL Server のデータベース ファイルをネットワークのサポートの説明 – KB304261
エラー メッセージ 2
5110「ファイル ‘file_name’ はデータベース ファイルをサポートしないネットワーク デバイス上で。
この動作は仕様です。
# logs split per machine log file = /var/log/samba/log.%m log level = 3 # max 50KB per log file, then rotate max log size = 50
まず、ログレベルを3に設定し、デバッグログを出力します。
smb.confのglobalセクションに、「log level = 3
」を追記します。
あ、調査終わったら元に戻してくださいね。/varが溢れても知りません。
次に、SQL Serverの起動パラメータを、以下のように修正します。
-d\192.168.11.1dataMSSQLMSSQL10_50.MSSQLSERVERMSSQLDATAmaster.mdf; -e\192.168.11.1dataMSSQLMSSQL10_50.MSSQLSERVERMSSQLLogERRORLOG; -l\192.168.11.1dataMSSQLMSSQL10_50.MSSQLSERVERMSSQLDATAmastlog.ldf ※実際は1行で記述します。
ポイントとしては、ドライブ名にマウントせず、フルパスで表記する事です。
これで3時間はハマりました。
運用上必要であれば、適宜ドライブ名も併用してください。
SQL Serverを起動すると、Sambaが大量のログを吐きます。
「tail -f /var/log/samba/* | grep user
」とかで、適宜ログを舐めると、以下のような出力が確認できます。
[2014/11/30 16:48:36.774001, 3] auth/auth.c:219(check_ntlm_password) check_ntlm_password: Checking password for unmapped user [][]@[WIN-015L7U2HODM] with the new password interface [2014/11/30 16:48:36.774031, 3] auth/auth.c:222(check_ntlm_password) check_ntlm_password: mapped user is: [CLUSTER-1A][]@[WIN-015L7U2HODM] [2014/11/30 16:48:36.774065, 3] auth/auth.c:278(check_ntlm_password) check_ntlm_password: guest authentication for user [] succeeded
つまるところ、guestユーザとして認証に成功しています。
なので、smb.confの共有設定で以下のように設定します。
[data] valid user = +cloudpack,guest
さいごに
この場合、SQLServerの複数台からの同時起動が可能になってしまいますが、SQLServerには排他ロック制御があるようで、後のノードは起動する事ができませんでした。
MSFTを構成しない場合でSQL ServerのHAクラスタというと、NEC製CLUSTER PROといったソリューションがありますが、CLUSTER PROはADを必要としません。よって、今回のような構成をする必要があります。
元記事はこちらです。
「SQL ServerはSambaを踊…れなかった。」