GNU/Linux >> Linux の 問題 >  >> Linux

Linux での一般的な NFS の問題のトラブルシューティング

この投稿では、Linux で最も一般的に発生する NFS の問題とその解決方法について説明します。

1.エラー:「サーバーが応答していません」

ネットワーク ファイル システム (NFS) クライアントとサーバーは、ネットワーク経由でリモート プロシージャ コール (RPC) メッセージを使用して通信します。ホストからクライアントへの通信パスとクライアントからホストへの通信パスの両方が機能している必要があります。 ping、traceroute、tracepath などの一般的なツールを使用して、クライアント マシンとサーバー マシンが相互に到達できることを確認します。そうでない場合は、ifconfig または ethtool を使用してネットワーク インターフェイス カード (NIC) の設定を調べ、IP 設定を確認してください。

NFS ファイル システムは、サーバーまたはネットワークの負荷が高いために RPC メッセージの応答がタイムアウトした場合にも、「サーバーが応答していません」と報告します。 「timeo=N」を使用します タイムアウトを増やすには、クライアントのマウント オプションを使用します。詳細については、「マン マウント」を確認してください。

2.エラー:「ホストへのルートがありません」

クライアントがサーバーへの ping に成功した場合でも、クライアントが NFS ファイル システムをマウントしようとすると、「ホストへのルートがありません」というエラーが報告されることがあります。

# mount NFS-Server:/data /data_remote
mount: mount to NFS server 'NFS-Server' failed: System Error: No route to host.

これは、ホスト ファイアウォール、クライアント ファイアウォール、またはネットワーク スイッチのいずれかによってフィルタリングされている RPC メッセージが原因である可能性があります。ファイアウォールがアクティブかどうか、および NFS トラフィックが許可されているかどうかを確認します。通常、nfs はポート 2049 を使用します。簡単なテストとして、次の方法でファイアウォールをオフにすることができます。

# service iptables stop

クライアントとサーバーの両方で。 NFS ディレクトリのマウントを再試行します。スイッチをオンに戻し、NFS トラフィックを許可するように正しく構成することを忘れないでください/

3.エラー:「マウント clntudp_create:RPC:ポート マッパーの失敗 – RPC:受信できません」

Linux NFS 実装では、NFS サービスとポートマッパー (RPC) サービスの両方がクライアントとサーバーの両方で実行されている必要があります。次のようにチェックしてください:

# rpcinfo -p
  program vers proto   port
  100000    2   tcp    111  portmapper [portmap service is started.]
  100000    2   udp    111  portmapper
  100011    1   udp    881  rquotad
  100011    2   udp    881  rquotad
...
# service portmap status
portmap (pid 7428) is running...   [portmap service is started.]

そうでない場合は、以下のコマンドで開始してください。

# chkconfig portmap on
# service portmap start

4.エラー:「NFS 古いファイル ハンドル」

アプリケーションがローカル ファイルを開くのと同じ方法で、プログラムは open(2) システム コールを使用して NFS ファイルにアクセスします。このシステム コールは、ファイル記述子、または「ハンドル」を返します。これは、プログラムが後で操作するファイルを識別するために I/O コマンドで使用します。

ファイルが unlink または rm を使用して削除された場合でも、アプリケーションが開いているファイルにアクセスできる従来の Linux ファイル システムとは異なり、NFS はこの機能をサポートしていません。 NFS ファイルはすぐに削除されます。削除されたファイルに対してさらに I/O を実行しようとするプログラムは、「NFS 古いファイル ハンドル」エラーを受け取ります。たとえば、現在の作業ディレクトリが NFS ディレクトリであり、削除されている場合、次のシェル プロンプトでこのエラーが表示されます。

クライアントの状態をサーバーの状態に更新するには、マウント ポイントを強制的にアンマウントします:

# umount -f /mnt/mount_point

または、マウントされたファイル システムを参照するプロセスを強制終了します。

# fuser -k [mounted-filesystem]

5.エラー:「アクセスが拒否されました」または「許可が拒否されました」

NFS ファイル システムのエクスポート権限を確認します。クライアントからこれを行うことができます:

# showmount -e server_name

またはサーバーから:

# exportfs -a

予期しないエクスポート許可が表示された場合は、サーバー上の /etc/exports ファイルを確認してください。許可されたホストとパーミッションの間にスペースなどの構文エラーがないことを確認してください。次の行に大きな違いがあります:

/home *(ro)

そして次の行:

/home * (ro)

2 番目のエクスポートは /home をすべてのシステムに読み書きできるためです。これは意図したものではありません。この行の構文はまだ正しいため、NFS はそれについて文句を言うことはありません。

6.エラー:「rpc マウント エクスポート:RPC:タイムアウト」

エラー メッセージ:

Unable to access file system at [NFS SERVER]: rpc mount export: RPC: Timed out

これは、DNS の名前解決の問題が原因です。 NFS(RPC) は名前の逆引きが必要です。 NFS サーバーまたはクライアントが名前を解決できない場合、このエラーが発生します。エラー メッセージが表示された場合は、DNS 構成と /etc/hosts 構成を確認してください。


Linux
  1. Linuxでのハードウェア問題のトラブルシューティング

  2. Linux –すべてがファイルですか?

  3. Ubuntu Linux - 共有 VHDX

  1. NFSとは何ですか?Linuxにインストールする方法

  2. Linux OS サービス「nfs」

  3. Linux の一般的な NFS マウント オプション

  1. Linuxでファイルを移動する方法

  2. autofsを使用してLinuxでNFS共有を自動マウントする

  3. Linuxファイルのアクセス許可について