問題タブ [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.
django - Django ImageField を nfs にアップロードします。(ロックはありません)
Django ImageField を使用して nfs ストレージにアップロードしたいのですが、次のエラーが発生します。
[Errno 37] 利用可能なロックがありません
これは /etc/fstab/ にあります:
173.203.221.112:/home/user/project/media/uploads/ /home/user/project/media/uploads nfs rw,bg,hard,lock,intr,tcp,vers=3,wsize=8192,rsize=8192 0 0
また、lockf() の代わりに flock() を使用するように django にパッチを適用しようとしましたが、まだ機能していません。
http://code.djangoproject.com/ticket/9400
何が問題なのですか?
svn - 存在しないディレクトリ /home/.svn にアクセスしようとすると、svn commit が失敗する
次のエラーで svn commit に失敗しました:
さて、ここでの最初の問題は、svn が /home/user/.svn を探す必要があることです。存在しない /home/.svn をわざわざ探す理由がわかりません。
入出力エラーはsvnとは関係ありません
これは、NFS マウント システムの結果にすぎません。残念ながら、私はそれがどのように設定されているかをほとんど制御できません。
とにかく質問: .svn ファイルを探す場所を svn に明示的に伝えるにはどうすればよいですか? それが不可能な場合、どうすればこれを回避できますか?
svn バージョン: 1.6.5
performance - git ステータスのパフォーマンスを改善する方法
NFS 上にある Linux マシンに 10 GB のリポジトリがあります。初回git status
は36分、2回目以降git status
は8分。Git はファイルのキャッシュを OS に依存しているようです。、のような最初のgit
コマンドだけが、レポ全体をパック/再パックすることを含み、巨大なレポには非常に長い時間がかかります。このような大規模なリポジトリで使用したことがあるかどうかはわかりませんが、この問題に遭遇した人はいますか?commit
status
git status
git gc
、を試しましgit clean
たgit repack
が、所要時間はまだ/ほとんど同じです。
サブモジュールや、リポジトリをより小さなものに分割するなどの他の概念は役立ちますか? もしそうなら、より大きなレポを分割するのに最適なのはどれですか。大規模なレポで git コマンドにかかる時間を改善する他の方法はありますか?
nfs - NFSファイルをCコードで開く
nfsディレクトリに移動するパス名を使用してC/C ++ / Javaコードでファイルを開くと、NFSがステートレスですべての場合に読み取りおよび書き込み構文はどのように機能しますか?試しましたが、NFSマウントされたファイルにアクセスするサンプルコードが見つかりません。私の現在の理解では、状態を維持するのはNFSクライアントの仕事であり(読み取りおよび書き込みポインターなど)、アプリケーションは同じ構文を使用します。
関連する質問は、VFSとUFSに関するものです。現在のUNIXマシンのすべてのファイルは、最初にvnodeを介してアクセスされ、次に(ローカルとリモートに応じて)iノードまたはrnode構造にアクセスされますか?
svn - TortoiseSVN は、ネットワーク共有に保存された作業コピーで非常に遅いログを表示します
Samba ネットワーク共有に保存されている作業コピーを使用しています。うまくいくようです。を除外する...
Windows では、「svn log -l 100 -v」を実行できます。作業コピーで、1 秒未満で結果を取得します。ただし、TortiseSVN を使用して右クリックしてログを表示すると、30Mbps を超えるネットワーク帯域幅を使用しているときに数分間ハングします。
Tortise がネットワークに保存された作業コピーを処理するために必要な既知の問題や構成はありますか?
python - sqliteおよびNFSとの安全なファイル同期を確保する方法
最近、アプリケーションのワークスペースファイル形式をsqliteに変換しました。NFSでの堅牢な操作を保証するために、一般的な更新ポリシーを使用して、ローカルハードディスクの一時的な場所に保存されているコピーにすべての変更を加えます。保存する場合にのみ、元のファイルを一時ファイルと一緒にコピーして、元のファイル(NFS上にある可能性があります)を変更します。元のファイルを開いて排他ロックを維持するだけなので、他の誰かが開こうとすると、他の誰かがそれを使用していることが警告されます。
問題は次のとおりです。一時ファイルを元のファイルに保存し直すときは、元のファイルのロックを解除する必要があります。これにより、小さなウィンドウではありますが、他の誰かが元のファイルにアクセスして取得するためのウィンドウが提供されます。
私はこれを回避するいくつかの方法を考えることができます:
(1)sqlを使用して、一時の内容を元のファイルに単純にダンプします。つまり、元の、vacummの元にテーブルをドロップし、一時から選択して、元のファイルに挿入します。ただし、NFSに保存されているsqliteファイルに対してSQL操作を行うのは好きではありません。これは汚職の問題で私を怖がらせます。私はこのように考えるのは正しいですか?
(2)さまざまな追加ファイルを使用して、元のファイルに温度をコピーしているときに他のファイルが侵入するのを防ぐためのガードとして機能します。ミューテックスとしてファイルを使用することは、せいぜい問題があります。また、アプリケーションがクラッシュした場合に余分なファイルがぶら下がるという考えも好きではありません。
誰かがこれに対して別の解決策を持っているかどうか疑問に思います。他のアプリケーションが侵入して元のファイルを取得しないようにしながら、一時ファイルを元のファイルにコピーしますか?
私はpython2.5、sqlalchemy 0.6.6、sqlite3.6.20を使用しています
ありがとう、ディーン
linux - 2 つの NFS マウントが同じリモート ファイルシステム上にあるかどうかを確認する方法は?
私の Linux ベースのシステムは、NFS マウントされたファイルシステムの統計を次のように表示します。
それはうまくいきます。問題は、NFS サーバー上の同じファイルシステムがクライアントに 2 回マウントされている場合です。
server1
とは実際には同じファイルシステム上に/some/path/name
あり/some/path/name2
、100 GB の空き容量がありますが、誤ってそれらを合計して 200 GB の空き容量を報告しています。
それらが同じパーティション上にあることを検出する方法はありますか?
うまくいかないアプローチ:
- 「使用
statfs()
」: 「ファイル システム ID」フィールドを持つ をstatfs()
返します。残念ながら、これは未定義であり、NFS ではゼロに設定されます。struct statfs
f_fsid
- 「同じパーティションを複数回マウントしないでください。」これは私の管理外です。
- 「使用可能なスペースに基づくヒューリスティックを使用します。」メソッドは確実に機能する必要があります。また、
statfs()
出力をキャッシュするため、大規模なデータ移動に直面してこれを正しく取得することは困難です。
解決策がない場合は、サーバー側の潜在的なすべてのマウント ポイントで構成ファイルを生成する必要がありますが、それを回避するためのクリーンな方法があれば、はるかに優れています。
ありがとう!
architecture - 仮想ファイル システム ツリーの Web サービスと NFS
SQL で仮想ファイル システムを構築することを考えていました。SQL でファイル システムのような構造を実現する既知の方法がいくつかあります (具体化されたパス、隣接リストなど)。
しばらくして、NFS を使用してディレクトリ/ファイル構造を格納し、フラット キー値ストアを使用してカスタム属性を格納することを考えました。
NFS のディレクトリ/ファイル構造は、ID のみを格納します。
そして、次のようなフラット テーブル:
シンボリックリンク、マウントポイント、および UNIX パーミッションの恩恵を受けることができます。
そのようなアーキテクチャの短所は何ですか?
firefox - スクリプトを使用して Firefox プロファイル パスを変更しますか?
Mozilla プロファイルが NFS サーバー上にあるため、FF の起動に非常に多くの問題 (非常に遅い) があるため、私はハックのようなものに取り組んでいます。FF のスタートアップ スクリプトでデフォルト プロファイルを編集する方法はありますか?
私のハックのアイデアは、mozilla プロファイルをローカル ディレクトリに cp することです。これにより、すばやく開くことができ、変更が加えられたら rsync を実行できます。ほとんどの場合、現在、プロファイルのスクリプトを介してデフォルト パスを変更する方法を見つけることについて心配しています。同期などについての考えがあります。
提案をありがとう
java - JavaからNFS共有をポーリングすると、ファイルシステムが壊れます
NFSを介してそれぞれにディレクトリがマップされた2つのサーバーがあります。
サーバーAのプロセス(シェルスクリプト)は、ファイルをマップされたドライブに配置します。
サーバーBのJavaプロセスは、マップされたドライブを定期的にポーリングし、ファイルが見つかるとすぐに処理します。ファイルが処理された後-名前が変更されます(その後、サーバーAでcronされたプロセスによって削除されます)
このファイルは小さな.propertiesファイルです。すべてが2、3サイクルうまく機能します。その後、サーバーAとサーバーBは、マップされたドライブの内容を異なる方法で表示し始めます。NFSキャッシングと属性ルックアップを無効にしました。問題はまだあります。
ビューが壊れているサーバーに移動して実行すると、次のようになります。
停止したファイルが表示されます。しかし、もう一度やると、正しいファイルリストが出力されます。
この問題についてご協力いただければ幸いです。