Solaris 11x86ファイルサーバーを実行しています。ファイルサーバーの部分はZFS + Sambaです。大きな問題もなく、3、4年稼働しています。
Samba共有は、ネットワーク上の他のPCから見えるようになります。ファイルサーバーから確実に読み取ることができます。サーバーにpingを実行できます。サーバーから他のPCにpingを実行できます。サーバーからデフォルトゲートウェイにpingを実行できます。
数週間前からファイルサーバーに書き込もうとすると、数秒後(または数百メガバイト後)に共有が消えます。問題は明らかにネットワークにあります。ただし、サーバーはまだ生きています。マウスとキーボードを接続してモニターしても、サーバーと対話できます。
問題はハードドライブまたはSambaにあるようには見えません。試した:
エラーはありません。障害のあるデバイスはありません。 Sambaは問題ではないようです。
問題が発生した後、ファイルサーバーからデフォルトゲートウェイにpingを実行できなくなりました。ファイルサーバーから他のマシンにpingを実行できなくなりました。他のマシンからサーバーにpingを実行できません。
ネットワークデバッグ手順
私はもう試した:
Solarisボックスは、まだネットワークに接続されていると考えているようです。 Solarisボックスをリセットすると(init 6)、共有が元に戻りますが、それは私がそれらを再度書き込もうとするまでです。
netstat -rnを試しました問題の前後。すべてがかなり正常に見えます。以下は「後」です。
Routing Table: IPv4
Destination Gateway Flags Ref Use Interface
-------------------- -------------------- ----- ----- ---------- ---------
default 10.1.10.1 UG 27 456 skge0
10.1.10.0 10.1.10.254 U 6 2536350 skge0
127.0.0.1 127.0.0.1 UH 2 252 lo0
Routing Table: IPv6
Destination/Mask Gateway Flags Ref Use If
--------------------------- --------------------------- ----- --- ------- -----
::1 ::1 UH 2 4 lo0
「Before」では、最初のエントリの「Ref」列に17ではなく27があります。 「After」の「Use」の数値はわずかに高く、おそらく正常です。
私はnetstat -anを試しました問題の前後にも。これはもっと手がかりがあるかもしれません。すべてが消える問題の前に存在するUDP接続がいくつかあります。
前:
UDP: IPv4
Local Address Remote Address State
-------------------- -------------------- ----------
--truncated entries that are present in both before/after--
10.1.10.254.40504 10.1.10.1.53 Connected
10.1.10.254.39900 10.1.10.1.53 Connected
10.1.10.254.40129 10.1.10.1.53 Connected
10.1.10.254.37892 10.1.10.1.53 Connected
10.1.10.254.61658 10.1.10.1.53 Connected
その後、これらの5つのエントリはなくなりましたが、新しいエントリが1つ存在します。
UDP: IPv4
Local Address Remote Address State
-------------------- -------------------- ----------
--Again, truncated--
10.1.10.254.53920 10.1.10.1.53 Connected
ポート53920が何に使用されているかについての情報が見つかりません。ゲートウェイ側では、ポート53がDNSに使用されているように見えます。これが手がかりかどうかはわかりません。 ひどく役に立たないようです
TCPの部分では、「ESTABLISHED」beforeの全体がたくさんあります。 inafterまたは、TIME_WAITまたはFIN_WAIT_1のいずれかに移行しました。これは、私がすでに知っていることと一致しているようです。
ネットワークをクラッシュさせるために使用したコンピューターのIPへの参照は1つだけです。
前:
TCP: IPv4
Local Address Remote Address Swind Send-Q Rwind Recv-Q State
-------------------- -------------------- ----- ------ ----- ------ -----------
10.1.10.254.445 10.1.10.132.53487 64512 0 128480 0 ESTABLISHED
後:
TCP: IPv4
Local Address Remote Address Swind Send-Q Rwind Recv-Q State
-------------------- -------------------- ----- ------ ----- ------ -----------
10.1.10.254.445 10.1.10.132.53487 64256 0 128480 0 ESTABLISHED
唯一の違いは、Swind(ウィンドウの送信?)列にあります。状態がまだ確立されたものとしてリストされているのは奇妙です。
netstatをやり直しました-もう一度実験しました
前後の唯一の違いは、共有をクラッシュさせるために使用したPCのIPアドレスに関連していました。
前:
TCP: IPv4
Local Address Remote Address Swind Send-Q Rwind Recv-Q State
-------------------- -------------------- ----- ------ ----- ------ -----------
10.1.10.254.445 10.1.10.132.53613 380416 0 128480 0 ESTABLISHED
後:
10.1.10.254.445 10.1.10.132.53613 65280 0 128480 0 ESTABLISHED
繰り返しますが、唯一の違いはSwind列にあります-数が少なくなりました。
私が知っていることの終わりに達しましたこの種のことについて。 netstatは、私がすでに知っていることを教えてくれているようです。別のネットワークカードを購入して試してみるか、Solarisを再インストールする以外に、私にはわかりません。誰かがここで次のステップについて私を手がかりにできますか?
編集
別のネットワークカードを購入して試しています。ここに着くまでに1週間ほどかかるので、それまではこれを突っ込み続けます。
Netstat -an
、netstat -rn
、およびlsof
(問題の前および問題中)が手がかりを与える可能性があります。 (開いている接続が多すぎますか?) tcpdump
も役立つ場合があります。接続を確立する直前に開始し、接続が停止し始める頃(およびタイムアウトの数分前)に何が起こるかを確認します。
また、NFSオプションがデフォルトではなく、影響を与える可能性があるかどうかを確認してください。
たとえば、ハード設定ではなくソフト設定を使用してみてください。
すべての「非コア」オプション(コアはNFSを確立するために必要なオプション)を削除し、少しずつ元に戻して、問題の原因となっているオプションを確認します。
申し訳ありませんが、現時点では、正確な設定を提供するためのSolarisにアクセスできません。 「Solaris」および「NFS」キーワードを含むWeb検索は、それらを見つけるのに役立ちます。
エクスポートされたZFSデータセット上でSambaを実行すると、サーバーまたはクライアント上の対話型セッションが強制終了されるなど、パフォーマンスが非常に低下する可能性があることを確認しました。ただし、Solaris 11(およびそれ以降)の組み込みCIFSサーバーを使用することははるかにより良い解決策です-次に、ユーザースペースではなくカーネル内でプロトコルビットを実行します。
使用する正確な構文を忘れています。zfs(1m)のtfmを読んで、「smb」を検索する必要があります。 zfs_share(1m)もご覧ください。
Solaris 11システムを保守していますか? pkg info entire
およびpkg publisher
公演?
また、skgeインターフェースを使用していることに気づきました。知らなかったので調べてみました。 Solaris(SPARC)リポジトリでそのパッケージが見つかりませんでした。しかし、グーグルがそのネットワークドライバをSolarisで動作させようとしている人々のブログや議論を見つけたことがわかりました。または、デバイスがサポートされていない場合の代わりにそれを使用します。したがって、まだ検索していない場合は、それらを検索してみてください。