サーバー:RHEL 5.9 / smbd 3.0.33-クライアント:さまざまですが、すべてが現在のmount.cifs(5.2)を使用していました
私はすでにこの問題を解決しましたが、これらのエラーコードを追い詰めるのは非常に悪夢でした。
症状:特定のcifsクライアントからlinux sambaサーバーへの予期しない断続的なマウント障害。ログイン時のすべてのLinuxクライアントpam_mountユーザーホーム。ランダムに、そして散発的に、ホームディレクトリのマウントが1台のマシンで失敗し始めました。ログインとマウントは、他のすべてのクライアントで問題なく動作し続けました。当初、壊れたクライアントでの異常な量のアクティビティがsmbdをフリークさせると考えていましたが、使用が停止した後でも断続的な障害が長引きました。
手動でマウントしようとすると失敗し、報告されます:
Errors from underlying mount program
mount error(12): Cannot allocate memory
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
<debug enable="1"/>
/etc/security/pam_mount.conf.xmlで設定して、pam_mountから詳細情報を取得します。
command: 'mount' '-t' 'cifs' '//my_server/watdo' '/home/watdo' '-o' 'user=watdo,uid=666,gid=666'
pam_mount(misc.c:38): set_myuid<pre>: (ruid/rgid=0/0, e=0/0)
pam_mount(misc.c:38): set_myuid<post>: (ruid/rgid=0/0, e=0/0)
pam_mount(mount.c:64): Errors from underlying mount program:
pam_mount(mount.c:68): mount error(12): Cannot allocate memory
pam_mount(mount.c:68): Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)`
/var/log/kern.logもこのイベントについて報告しました:
kernel: [4316790.256149] CIFS VFS: cifs_mount failed w/return code = -12
'エコー1> / procの/ FS / CIFS / cifsFYI' クランクアップmount.cifsデバッグ(への/ var /ログ/デバッグ書き込み)。良い部分はここにあります(見慣れていますか?):
CIFS Session Established successfully
For smb_command 117
Sending smb: total_len 88
cifs_sync_mid_result: cmd=117 mid=54307 state=4
Mapping smb error code 0xc0000205 to POSIX err -12
この時点では、文字通りクライアント側で利用可能な他の情報はありません。cifsマウントリクエストが送信され、クライアントはほぼ即座に停止します。mount.cifs error(12)はあまり情報がありません(manページは役に立ちません、thx guys)。広範なインターネット検索により、これは一般的なエラーコードであることが明らかになり、情報価値がないことも確認されました。
サーバーをチェックする時間です!log level = 3
/etc/samba/smb.confでsmbdを設定します(Using Sambaの本から:「3以上のレベルは開発者が使用するためのものであり、膨大な量の暗号情報をダンプします」。関連する行は次のとおりです。
[2013/02/08 10:18:03, 3] smbd/error.c:error_packet_set(106)
error packet at smbd/reply.c(514) cmd=117 (SMBtconX) NT_STATUS_INSUFF_SERVER_RESOURCES
もうすぐ ... smbメーリングリストアーカイブから、ある種の同様の問題を報告している人を見つけました。これは、個々のsmb接続のペグ共有制限として識別されます。サーバー上の開いている共有を一覧表示します。
smbstatus -S | grep <serverIP> | wc -l
2048を返しました。とても目立つ。
実際の出力調べてsmbstatus -S
明らかにした何千人も「IPC $」のエントリを。IPC $のSambaドキュメントは、匿名共有ブラウジングと「その他のリソース」へのアクセスに関与していることを明らかにしています。/etc/samba/smb.confのサーバーでホスト拒否を設定します。
[IPC$]
hosts deny = 0.0.0.0/0
うまく動作します。OK、うまくいけばここの何かが将来のある貧しい人の魂を助ける。
私はこのサイトの精神で質問をするだろうと思う:なぜsmbdはIPC $シェアをクリーンアップしないのか?クライアント接続ごとに1つではなく、共有へのユーザー接続ごとに1つのIPC $を確立するのはなぜですか?クライアント側からIPC $共有の作成を無効にできますか?共有あたりの最大接続数を増やす方法はありますか(これはこの場合に役立ちます)。私はドキュメントでそれを見ませんでした。