問題タブ [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.
linux - gcsfuse 入出力エラー
Linux (Ubuntu 15.10) ディレクトリにマウントされた Google クラウド ストレージ バケットにディレクトリまたはファイルを作成しようとすると、入出力エラーが発生します。
私が行った手順:
- transfer という名前のユーザーを作成しました
/mnt/backups
ディレクトリを作成して実行しましたchown -R transfer /mnt/backups
- ユーザー転送として、 を実行しまし
gcsfuse --implicit-dir backup01-bucket /mnt/backups
た。ファイルシステムは正常にマウントされます - 実行
mkdir test
してエラーを取得するmkdir: cannot create directory test: Input/output error
私が逃したものはありますか?私がやろうとしているのは、ファイルをサーバーに ftp して、ローカル ストレージではなく Google ストレージ バケットに保存できるようにすることです。
更新 デバッグ情報を取得するようにコマンドを変更しました。
次にmkdir /mnt/backups/test
、transfer
ユーザーとして実行しました。
以下のベダグ情報が出てきました。
注: Web コンソールでディレクトリを作成すると、ディレクトリが正常に表示されます。
git - ファイル共有またはマウントされたフォルダーと一緒に Jupyter を使用する
jupyter サービスと他のサービス (Google Cloud Storage または git リポジトリ) の間でノートブックを同期するにはどうすればよいですか?
この質問の背景:
現在、Google の Datalab から独自のコンテナに移行中です。私の動機は、現在の Tensorflow バージョンを使用したいので、データ リージョン (Datalab ベータ版は米国でのみ提供) とパッケージをより詳細に制御することです。
Google のアイデア ( github を参照) に基づいて、独自の Docker イメージを構築し、それを Google コンテナー エンジンの Kubernetes クラスターで実行します。以前に説明したように、GCP パッケージをインストールできます。Google はnode.js サーバーを使用して GITを datalab インスタンスと同期します。
2 回目の試行はGCSFuse ドライバーでした。これは、Kubernetes v1.0 および Google Container Engine の時点で、非特権コンテナーでは機能しません。だから完全停止。
私の Docker ファイル (Google の GCE Datalab イメージに基づく):
google-cloud-storage - Google Cloud Storage FUSE - gcsfuse を使用するとローカル インスタンス メモリがいっぱいになる
数週間 gcsfuse (FUSE) を使用していますが、インスタンス ディスク (10GB) がどこからともなくいっぱいになるまで、すべてがスムーズに実行されていました。
原因を特定していくつかの一時ファイルを消去しようとしていたところ、バケットをアンマウントすると問題が解決することがわかりました。
クラウドにアップロードするはずですよね?では、ローカル インスタンス スペースとしてカウントされているかのようにスペースを占有しているのはなぜでしょうか?
助けてくれてありがとう。
google-cloud-storage - バケット ストレージにフォルダが表示されない
したがって、私の問題は、マウント時にいくつかのファイルが gcsfuse に表示されないことです。それらはオンライン コンソールに表示され、gsutils で「ls」すると表示されます。また、バケットにフォルダを手動で作成すると、その中のファイルが表示されますが、最初に作成する必要があります。助言がありますか?
gs://mybucket/
dir1/
ok.txt
dir2
lafu.txt
mybucket を gcsfuse でマウントして「ls」を実行すると、dir1/ok.txt のみが返されます。次に、マウント ポイントのルートにある dir1 内にフォルダー dir2 を作成すると、突然「lafu.txt」が表示されます。
google-cloud-storage - 実行された PHP スクリプトが GCE 上の GCS マウント ドライブにアクセスできない
以下のコマンドラインを使用して、Google Cloud Storage をマウントできました。
gcsfuse -o allow_other -file-mode=660 -dir-mode=770 --uid=<uid> --gid=<gid> testbucket /path/to/domain/folder
このグループには、ユーザーapacheが含まれます。Apache は、次のようにマウントされたドライブに書き込むことができます。
sudo -u apache echo 'Some Test Text' > /path/to/domain/folder/hello.txt
hello.txtが期待どおりバケットに表示されます。ただし、以下の php スクリプトを実行すると、エラーが発生します。
<?php file_put_contents('/path/to/domain/folder/hello.txt', 'Some Test Text');
PHP エラー:ストリームを開けませんでした: 権限が拒否されました
echo exec('whoami');
Apache を返します
これは gcsfuse またはこれに類似したものでマウントするための一般的な使用法であると想定しましたが、この問題を抱えているのはインターネット上で私だけのようです。マウント方法の問題なのか、httpdのサービスセキュリティの問題なのかわかりません。
gcsfuse - gcsfuse でマウントされたバケットを同じマシン上の他のユーザーと共有する
数時間から取り組んでいますが、うまくいきません。
実行中のインスタンスに既存の GCS バケット (my-bucket) を正常にマウントしました。my_user を使用して、マウントされたバケットからファイルを一覧表示およびコピーできます。同じマシン上の別のユーザーが、マウントされた同じバケットからファイルを一覧表示してコピーする必要がありますが、「権限が拒否されました」というエラー メッセージが表示されます。
ここでアクセス許可のセクションを読みました。だから私は次のようにしてみました:
- 「bucket-users」という名前のグループを作成しました: sudo groupadd bucket-users
- 既存のユーザーを追加: sudo useradd -G bucket-users user_name
- --gid オプションを使用してバケットをマウントしました: gcsfuse --gid 1008 my-bucket /mnt/my-bucket
- 正常にマウントされました:
$ ls -ltr $ drwxr-xr-x 1 my_user bucket-users 0 Sep 16 09:11 my-bucket
結果: 私はバケットで作業できますが、グループ「bucket-users」の他のユーザーは作業できません。
ここでどこが間違っていますか?
ありがとう!