web-dev-qa-db-ja.com

NFSv4共有でtarを抽出するときに「閉じることができません:入出力エラー」

NFS共有でtarアーカイブを抽出するときに、奇妙なエラーの根底に到達しようとしています。

アーカイブされたファイルに書き込み権限が設定されていない状態でアーカイブされたファイルを含むtarファイルを抽出すると、エラーが発生します。

エラーメッセージは次のように断続的に出力されます。

tar: test/doc/manpages/man1/Makefile.in: Cannot close: Input/output error

この動作を確認するために、2つの同一のtarファイルを設定しました。1つはアーカイブファイルがchmod権限575(ユーザー読み取り/実行)に設定され、もう1つはchmod権限が755(ユーザー読み取り/実行)に設定されています。書き込み/実行)。

両方のtarファイルは次のようにアーカイブされました。

tar czf test.tgz test

そして次のように抽出されます:

tar -xvzf test.tgz

ローカルファイルシステムで両方のアーカイブを抽出したときに、エラーは発生しませんでした。さらに、NFS共有でユーザー書き込みを使用してアーカイブを抽出すると、エラーは発生しません。アーカイブファイルに対するユーザーの書き込み権限なしでアーカイブセットをNFS共有に抽出すると、常にエラーが発生しました。

NFS共有は、次のエクスポートパラメータで構成されます。

/media/share 10.0.0.3(rw,sync,no_subtree_check,no_root_squash)

また、NFSマウントのクライアントfstabエントリは次のとおりです。

10.0.0.3:/media/share /media/share nfs4 rw,_netdev,auto,clientaddr=10.0.0.10 0 0

クライアントとサーバーの両方がUbuntu14.04.1を実行しています

nfs-commonクライアントとサーバーの両方のバージョンはv1:1.2.8-6ubuntu1.2 そしてその nfs-kernel-serverサーバー上のパッケージもv1:1.2.8-6ubuntu1.2

これらのエラーの原因を突き止めたいので、助けていただければ幸いです。

1
PicoutputCls

多くのトラブルシューティングを行った結果、私の場合、これらのエラーは、一部のクライアントマシンのfstabエントリのclientaddrマウントオプションが誤ったIPアドレスに設定されていることに関連しているようです。各ホストを通過し、すべてのclientaddr値が正しいことを確認し、ボリュームを再マウントすると、前述の両方のアーカイブをエラーなしで抽出できました。

NFSのマニュアルページ は、clientaddrマウントオプションに関して、次のことを具体的に述べていることに注意してください。

サーバーがクライアントへのコールバック接続を確立できない場合、パフォーマンスが低下したり、ファイルへのアクセスが一時的にハングしたりする可能性があります。

したがって、私が見た問題は、サーバーが間違ったクライアントコールバックアドレスで構成されたクライアントへのコールバック接続を確立できないことに関連していると思われます。

1
PicoutputCls