問題タブ [gcsfuse]
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.
google-cloud-platform - gcsfuse でマウントすると、非常に大きなファイルを Google バケットとの間で解凍できません
Google Cloud には、Linux Compute Engine とバケットがあります。Google の推奨に従って、gcsfuse を使用してバケットをドライブとして CE にマウントし、時々大きな 7zip アーカイブ (数十 GB) をバケットにアップロードしました。CE のターミナルにログインしたら、マウントされたバケット フォルダに移動し、次のコマンドを使用して (同じ場所にある) ファイルの解凍を試みます
7z x myarchive.7z
。次のように失敗します。
その後、バケットのコンテンツを見ると、解凍されたファイル名が存在しますが、0 KB です。
これは通常、スペース不足に関連していることは理解してE_FAIL
いますが、Google バケットには無制限のスペースがあるはずです (1 つのファイル サイズに制限があります)。df -h
たとえば、コマンドは、マウントされたバケットには 1 ペタバイトの使用可能なストレージがあると想定されていることを示しています。
同様の設定/問題を抱えている人はいますか?
google-cloud-storage - gcsfuse が GCS ストレージ バケットにライトスルー (フラッシュ) するのを待つにはどうすればよいですか?
Compute Engine ワーカー ノードがgcsfuseマウントされたローカル ディレクトリにファイルを書き込み、それらを閉じた後、他のワーカー ノードにすべてのファイルの準備ができたことを通知する前に、データを同期的に GCS にフラッシュする必要があります。これは、ワーカー間の同期を確保するためです。
Q. gcsfuse に GCS へのライトスルーを要求し、それが完了するのを待つにはどうすればよいですか?
アイデア:
- Linux
sync
コマンドを実行しますか? - ディレクトリをアンマウントしてから、その
fusermount
コマンドが戻るのを待ちますか? (ライトスルー時間の他に、アンマウントしてから次のワーカー タスクのために再マウントするのに 1 ~ 2 秒以上かかるでしょうか?) - このタスク内のすべてのプログラムが、
fsync()
すべての出力ファイルを呼び出すようにしますか? それは難しいでしょう。 - 追加のファイルを書き込んで、
flush()
それでfsync()
?
google-cloud-platform - GCP インスタンス メタデータがスコープを渡していない
gcsfuse とサービス アカウント認証を使用して GCP ストレージ バケットをマウントしようとしています。すべてが正常にマウントされますが、読み取り権限しかありません。以下を参照してください。
サービス アカウントに、ストレージ サービスに書き込むための完全なストレージ管理者権限があることを確認しました。
インスタンス メタデータ サービスがサービス アカウントを取得していることを確認しました
私が見る唯一の問題はscopes
、インスタンス メタデータ サービスからの呼び出しが「奇妙な」情報を返すように見えることです。https://www.googleapis.com/auth/cloud-platform
Key JSON 回避策を使用したくありません
質問:
これは既知の問題ですか?
私は何か間違ったことをしていますか?
どんな助けでも大歓迎です