問題タブ [nfs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
19306 参照

nfs - NFS + ハードリンク?

ファイルシステムにまたがることができないのは、ハードリンクの条件であることを私は知っています。これは NFS マウントに適用されますか? 次のディレクトリ構造が与えられた場合、ディレクトリ B 内のファイルを指すハード リンクをディレクトリ A 内に作成できますか?

たとえば、実行したいln /root/B/file.txt /root/A/linkedfile.txt

0 投票する
1 に答える
1009 参照

unix - (日)RPC auth_unix

私は自分の RPC フレームワークを実装しており、ほとんどの作業は完了していますが、auth_unix を確認するにはどうすればよいですか? データの構造はhttp://www.faqs.org/rfcs/rfc1050.htmlで定義されています9.2 UNIX 認証ですが、ユーザーを確認するにはどうすればよいですか?

0 投票する
1 に答える
1058 参照

rpc - NFS CREATE File (上書き) = サイズゼロ?

私は NFS を実装しており、ほぼ完了していますが、RFC セクション 3.3.8の説明には次のように記載されています。

mode UNCHECKED、GUARDED、および EXCLUSIVE のいずれか。UNCHECKED は、同じディレクトリ内の重複ファイルの存在をチェックせずにファイルを作成する必要があることを意味します。この場合、how.obj_attributes は、ファイルの初期属性を記述する sattr3 です。GUARDED は、サーバーが作成を実行する前に重複ファイルの存在をチェックし、重複ファイルが存在する場合は NFS3ERR_EXIST で要求を失敗させる必要があることを指定します。ファイルが存在しない場合、要求は UNCHECKED の説明に従って実行されます。EXCLUSIVE は、サーバーが排他的作成セマンティクスに従い、ベリファイアを使用してターゲットの排他的作成を保証することを指定します。この場合、サーバーはターゲット ファイルのメタデータを使用して createverf3 ベリファイアを格納する可能性があるため、属性を指定することはできません。

したがって、UNCHECKED がモードであるかどうかという問題は、ファイルの長さをゼロに設定するだけでよいのでしょうか、それともファイルをそのままにしておくべきでしょうか? ディレクトリの場合、すべてのコンテンツを削除する必要がありますか?

0 投票する
1 に答える
984 参照

ruby - NFS マウント上の Ruby コードで、同じマウント上の別のファイルを使用すると問題が発生する

詳細については、この投稿の最後で説明されている組み込みシステムに取り組んでいます。Linux ではツールは ruby​​ です。

ルビー コードをネットワーク上のリモート NAS デバイスに配置し、NFS v3 を使用して作業中の組み込みシステムにマウントします。私のプロジェクト シナリオは次のようなものです: 1. nfs 共有をマウントするオールインワンの自動スターターがあります。2. マウントされたディレクトリで webrick ruby​​ コードを開始し、3. マウントされたディレクトリで他の biz-logic 関連の ruby​​ コードを再度開始します。 dir, 4. いくつかの基本的なログ記録などを行うローカル ファイル システムで ruby​​ コードを開始します...開始操作が失敗したときに再試行するループに各ステップを入れます (開始操作はシステム 'ruby XXXX' または popen3 によって行われます)。呼び出します)。このスターターを実行するとどうなるか: ステップ 1 は成功、ステップ 2 は失敗、ステップ 3 は失敗、ステップ 4 は成功、次にステップ 2 と 3 が再試行され、両方とも2 回目の試行で常に正常に開始されます。(開始されたコードは独立していることを追加したいので、どちらが最初に開始されても問題なく、開始順序を変更しても違いはありませんでした)。

この問題を調べたところ、シェルから手動で開始し、次のようにフィルター処理したときにも発生することがわかりました: 私の webrick コードは、それ自体と同じディレクトリにある .rb ファイルをロードし、NFS マウントのサブディレクトリを使用するいくつかの FileHandlers を持っています。また、私のビジネス ロジックは nfs マウントから .rb ファイルも読み込みます。そして、これが私の問題の原因だと思います(「/mnt/myMount/myLib.rb」のような絶対パスとFile.Joinの両方を使用してこれらのファイルをロードしようとしましたが、どちらも違いはありませんでした)。

また、 Webrick ファイル ハンドラーもこのシナリオでは非常に奇妙な動作をします。ファイル サイズに関係なく、ファイルの最初の要求で常に失敗し、2 番目の要求で成功します。

要約すると、タイトルが示すように、NFS マウント上の Ruby コードが同じマウント上の別のファイルを使用すると、ruby は EIO (Input Output Error) を返します。私の環境では、上記のシナリオで説明したように、単純な .rb ファイル (ファイル名を出力するだけ) を使用してこの問題を再現できました (ただし、通常の PC では試していません)。これを解決するにはどうすればよいですか。ロード/要求メソッドに指定されたパスについてですか、それとも何ですか?

私の作業環境: 私が使用しているデバイスは、組み込みの Linux アーム ベースのコンピューターを搭載したインテリジェント RFID リーダーです。唯一の API/言語メーカーが (ライセンス条項を無視して) 許可および提供しているのは ruby​​ であり、余分なもののインストールをサポートしておらず、デバイスのカーネルをカスタマイズして、何かをインストール/コンパイルするのをできるだけ難しくしています。可能。.rb lib ファイルであれば追加の ruby​​ を使用できます。つまり、コードに簡単に含めることができますが、コンパイルが必要なものは何でも構いません。また、このシステムにはgemがありません。

0 投票する
2 に答える
1779 参照

encoding - NFSファイル名はASCII標準外の文字ですか?

自分のNFSサーバーを実装しましたが、すべてが正常に機能していますが、ASCII標準の一部ではない文字をエンコードするにはどうすればよいですか?XDR RFCによると、文字列はASCIIとしてエンコードされ、ASCII以外の文字はすべて削除されますか?しかし、私が書いたことがないnfsサーバーを起動すると、それらの文字がサポートされているようです...

「hejåäö」という名前のフォルダーを作成しようとしましたが、nfsクライアントに正しく表示されます。WireSharkで送信されたデータを見ると、文字列「hej \ 345 \ 344\366」または16進数の「68656a20e5e4f6」が表示されます。これは?

また、「hej 1 + 1=2」をエンコードしてみてください。

edUTF-7を試してみてください。åäöではうまく機能しましたが、+では機能しなかったため、UTF-7ではありません。

0 投票する
2 に答える
941 参照

c# - NFSを介したC#経由でのUNIXファイルプロパティの読み取り

私は2台のサーバーを持っています。

  1. solaris10はNFSサーバーとして機能します
  2. UNIX/NFS拡張機能がインストールされたWin2003ernterpriseサーバーはNFSクライアントとして機能します

Win 2003サーバーは、Solarisシステムの1つのシェアをマウントしました。-rw-r--r--NFS共有にあるリモートファイルの元のUNIXファイルプロパティ(例:)を(C#経由で)確認するにはどうすればよいですか?

0 投票する
7 に答える
44465 参照

linux - 古いNFSマウントを検出する良い方法はありますか

いくつかのテストが正常に完了した場合にのみ開始したい手順があります。

私が必要とする1つのテストは、すべてのNFSマウントが正常に機能していることです。

力ずくのアプローチよりもうまくやることはできますか?


これは、コマンドをバックグラウンドで実行し、制限時間より前にコマンドがキャッチされなかった場合に一定時間後にコマンドを強制終了し、明らかな方法で成功/失敗を返すユーティリティtimeoutです。SIGCHLD


英語:の出力を解析し、mountすべてのNFSマウントポイントをチェックします(タイムアウトによって制限されます)。オプションで(上記のコードにはありません)最初の古いマウントで壊れます。

0 投票する
2 に答える
3572 参照

apache - マウント済みで利用できない NFS マウントからの Apache の回復

NFS マウントを使用して Web ヘッド間でリソース (通常は静的アセット ファイル) を共有するいくつかの Web アプリケーションを運用しています。NFS マウントが利用できなくなった場合、Apache はアクセスできないファイルを要求してハングし、カーネルは次のログを記録します。

Nov 2 14:21:20 server2 kernel: nfs: server server1 not responding, still trying

NFS v3 と Apache 2.2.3 を実行している RHEL5 での動作を再現しました。

  1. Server1 に NFS マウントを作成します (私の /etc/exports の内容)

    /srv/test_share server2(rw)

  2. Server2 に NFS 共有をマウントします (私の /etc/fstab の内容)

    server1:/srv/test_share /mnt/test_share nfs defaults 0 0

  3. NFS共有に保存されたイメージファイルを参照する単純なHTMLファイルを使用して、Apacheで仮想ホストをセットアップします

  4. サイトをロードすると、html ファイルと画像ファイルはすべて 200 を返します

  5. NFS 共有をアンマウントし、ページをロードすると、参照されているイメージに対して 404 が返されます

  6. NFS 共有を再マウントする

  7. Server1 で NFS をオフにして、NFS クラッシュをシミュレートします。サイトをリロードすると、参照ファイルの取得中にハングします。

これまでのインターネット検索では、適切な解決策が見つかりませんでした。基本的に、Web サーバーが 404 を返し、NFS マウントが回復するまでハングしないことが望ましい動作です。

乾杯、

ベン

0 投票する
5 に答える
11695 参照

java - NFSマウントを介したJavaI/ O

XMLファイルをNFSマウントされたファイルシステムに出力するJavaコードが少しあります。ファイルシステムがSamba共有としてマウントされている別のサーバーでは、30秒ごとに新しいXMLファイルをポーリングするプロセスが実行されています。新しいファイルが見つかった場合、そのファイルは処理され、バックアップファイルとして名前が変更されます。99%の確率で、ファイルは問題なく書き込まれます。ただし、バックアップファイルに部分的に書き込まれたファイルが含まれる場合があります。

他の人と話し合った結果、外部サーバーで実行されているプロセスが、ファイルの読み取り時にJava出力ストリームに干渉していると推測しました。彼らは、最初にタイプ.tempのファイルを作成し、ファイルの書き込みが完了した後に.xmlに名前を変更することを提案しました。一般的な業界慣行。変更後、名前の変更は毎回失敗します。

一部の調査では、NFSマウントされたファイルシステムで作業する場合、JavaファイルI/Oにバグがあることが判明しました。

Javaの達人を助けてください!この問題を解決するにはどうすればよいですか?

関連する情報は次のとおりです。

  • 私のプロセスは、Solaris10で実行されているJava1.6.0_16です。
  • マウントされたファイルシステムはNASです
  • ポーリングプロセスを備えたサーバーは、Windows Server 2003 R2 Standard、ServicePack2です。

これが私のコードのサンプルです:

0 投票する
1 に答える
1697 参照

c - CのNFSv4を介したファイルロックリース

NFS v4の派手なファイルロック機能の使い方を知っている人はいますか?(たとえば、NFSプロトコルについて(下にスクロール)で説明されています)。おそらくNFSv4は、45秒のライフタイムでファイルロックリースをサポートしています。Linuxカーネル(私はgentoo 2.6.30を使用しています)がこれらの詳細を問題なく処理していると信じたいのですが、私は使用できfcntl()、すべてが洗い流されています。しかし、ロックリースを取得、維持、解放するには、なんらかの特別なことをしなければならないと思います。すべての助けに感謝します。