問題タブ [fuse]
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.
fuse - FUSE fseek direct_io での予期しない動作
ストリーミング可能な音楽を mp3 ファイルとして表示する FUSE ファイルシステムを作成しようとしています。ID3v1.1 タグだけが読み取られたときにオーディオのストリーミングを開始したくないので、ファイルシステムを direct_io および max_readahead=0 でマウントします。
しかし、これを行うと (これは libid3tag が行うことでもあります)、末尾からオフセット -2880 バイトの 2752 バイトの読み取りが取得されます。
どうしてこれなの?サイズ 10 で、最後から正確に 128 バイトのオフセットで read の呼び出しが行われることを期待しています。
読み取られるバイトの量は多少異なるようです。
c - FUSE ファイルシステムで Linux VFS キャッシュを使用することは可能ですか?
Linux VFS キャッシュは、デフォルトでは FUSE ファイルシステムでは機能しないようです。たとえば、「読み取り」呼び出しは、体系的に FUSE ファイルシステムに転送されるようです。
FUSE 固有のリモート ファイルシステムで作業しています。非常に積極的なキャッシュが必要です。
独自のページ キャッシュを実装する必要がありますか? または、この特定の FUSE ファイルシステムの Linux VFS キャッシュを有効にすることはできますか? または、誰かが優れたプロキシ/キャッシュ FUSE ファイルシステム (または車輪を再発明せずにそれを行うための一種の C ライブラリ) を知っていますか?
ボーナス質問:
独自のページ キャッシュを実装する必要がある場合は、REDIS デーモンを使用して LRU 処理を行うことを考えています。メタデータをキャッシュするための適切なオプションであるとほぼ確信しています。しかし、ページについては、単純なローカル ディレクトリ (VFS キャッシュを使用) や /dev/shm よりも優れているかどうかはわかりません。しかし、LRU 自動クリーニングが失われます。自動 LRU クリーニングを備えた一種の /dev/shm を知っている人はいますか?
追加情報: ファイルシステムは読み取り専用で、リモート側はほぼ不変です。リモート側には、ローカル ディレクトリにコピーできない非常に大きなファイルが含まれています。
fuse - 各リクエストをストリームにシリアル化するFUSEファイルシステムはすでにありますか?
コンセプト:
利点:
- 高水準言語でのサーバーの簡単な実装(JNIなどのアーチ依存のものは必要ありません)
- 箱から出してすぐに使えるシンプルなアドホックネットワークファイルシステム。
- 実際のFUSEなしのアクセシビリティ(アクセスできない場合):
FUSEメソッドの単純なRPCのように。プロトコルはIRCのように単純で、FUSEが処理できるすべてのものを処理する必要があります。
すでにそのようなものはありますか、それとも実装する必要がありますか?
linux - LinuxでのFUSEを使用した非同期ファイルシステムの実装
FUSEのメーリングリストで質問しようとしましたが、今のところ何の回答もありません...いくつか質問があります。低レベルのFUSEファイルシステムを実装し、fuse_chan
epollでの記述子を監視します。
ファイルシステム内のすべてのオブジェクトのiノードを偽造する必要がありますか?VFSでオブジェクトのiノードを選択するためのルールはありますか(たとえば、正の値のみを使用する必要がありますか、それとも特定の範囲の値を使用できますか)?
ヒューズちゃんの記述子をノンブロッキングにすることはできますか?はいの場合、リクエスト構造全体を
fuse_chan_recv()
/fuse_chan_send()
が受信/送信すると想定できるかどうか、または部分的な送受信を処理する関数でそれらをオーバーライドする必要があるかどうかを教えてください。どう
buffer size
ですか?fuse_loop()
呼び出しごとに新しいバッファが割り当てられていることがわかります。そのため、バッファサイズは固定されていないと思います。ただし、可能な最大バッファサイズはありますか?次に、より大きなバッファを割り当てて、メモリ割り当て操作を減らすことができます。
python - プロファイリングfuse-python
私は現在、fuse-pythonを使用してヒューズを書いています。それはすでにそれがすべきことをしている。ただし、数週間マウントした後は、著しく遅くなります。だから私はそれをプロファイリングしたかった。私はそれが最適化されることができるいくつかのポイントについて知っています。しかし、これらは犯人であってはなりません。
ただし、fuse-pythonは無限ループでハングします(ヒューズソースの733行目と757行目を参照)。(スイッチを使用して)デバッグモードでfuseを-d
実行すると、フォアグラウンドで実行されます。しかし、私はそれを止めることSIGINT
も、止めることもできませんCTRL+C
(とにかく同じです)。
signal
モジュールを使用して、メインスレッドでシグナルをトラップしようとしました。しかし、これも機能しません。興味深いことに、プロセスをで撃墜するとSIGKILL
、が表示KeyboardInterrupt
されstdout
ます。また、の後にSIGKILL
、シグナルハンドラーが期待どおりに実行されます。
これはプロファイリングに影響を及ぼします。プロセスが正常に終了することはcProfile
ないため、統計ファイルを保存する機会はありません。
何か案は?
amazon-s3 - s3fs(マウントされたAmazon S3バケット)のパスに直接PDFを生成する
誰かがAmazonS3のs3fsユーティリティを使用しましたか?
大きなPDFドキュメントをオンザフライで生成するスクリプトがいくつかあります。ほとんどは10MB以上の範囲ですが、おそらく2GBになるスクリプトもあります。
このような大きなファイルをs3fsドライブに直接生成する危険はありますか?
ありがとう、ブライアン
c - EclipseのUSErspaceでファイルシステムをコンパイルする
私の英語は上手ではないのでごめんなさい。ヒューズを使って自分のファイルシステムを構築したい。このプロジェクトをEclipseで実行することは可能ですか?それをやろうとすると、いくつか問題があります。「コンパイラ呼び出し引数」に追加pkg-config fuse --cflags --libs
しましたが、役に立ちませんでした。助けてください、クリス
c - ヒューズの使用-低レベルAPI
Fuse LowlevelAPIを使用して基本的なファイルシステムを実装しようとしています。基本的な読み取り/書き込み/mknod操作用。誰かがいくつかの例を指摘できればありがたいです、ヒューズの低レベルAPIに関するドキュメントはありません。
どんな助けでも大歓迎です!
c - ファイルを開くときに FUSE ファイル システムがクラッシュする (リリース モードのみ)
いくつかの問題があり、これの解決策が見つかりません:/ ヒューズ ファイルシステム内のテキスト ファイルを開く必要があります。デバッグではすべて正常に動作しますが、リリースではシステムがクラッシュしています。これで簡単な例を作りました。このコードの何が問題なのか、誰か教えていただけますか?
アップデート
わかりました、解決策を見つけました。パスは絶対ファイル パスである必要があります (これが適切な文かどうかはわかりません)。ただし、リリースとデバッグで動作するサンプル コードを次に示します。
filesystems - FUSEでマルチスレッド/ノンブロッキングreaddirを発行する方法
現在、readdir()
in FUSEはブロッキングメソッドです。つまり、いつでも1つのreaddir()操作しか呼び出すことができません。私のファイルシステムは、重い同時ディレクトリ操作をサポートする必要があるかもしれません。助言がありますか?
ありがとう