标签: gcsfuse

在谷歌计算实例上使用 gcsfuse 作为非 root 用户的权限错误

我们目前正在尝试为一些需要大量存储的工作负载演示谷歌云平台。我们正在尝试使用谷歌云存储,但在使用 gcsfuse 安装存储桶时遇到问题。我目前能够以 root 用户身份挂载我的测试桶(设置了 allow_other 选项),但非 root 用户只有读取权限。

我尝试过和检查过的事情:

  • 将挂载点设置为 777。挂载存储桶时会覆盖 Perms。
  • 显示的用户gcloud config list | grep account已获得此存储分区的所有者访问权限
  • 我正在测试的 VM 具有对所有 Google Cloud 服务的完整 API 访问权限

这是控制台输出 - Catting and touching animal.txt 以更新时间戳。

root@vm-00 cloud]# grep bucket /etc/fstab
test_bucket_00 /data/cloud/tb-00 gcsfuse  rw,allow_other
[root@vm-00 cloud]# mount tb-00
Calling gcsfuse with arguments: -o rw -o allow_other test_bucket_00 /data/cloud/tb-00
Using mount point: /data/cloud/tb-00
Opening GCS connection...
Opening bucket...
Mounting file system...
File system has been successfully mounted.
[root@vm-00 cloud]# mount …
Run Code Online (Sandbox Code Playgroud)

fuse google-cloud-storage google-cloud-platform gcsfuse

10
推荐指数
1
解决办法
1万
查看次数

fusionmount:未找到熔断器设备,请先尝试“modprobe熔断器”

我正在 gcloud 计算引擎上运行一个实例。我需要将 Google 存储桶(属于不同的项目)安装到我的实例中。该实例在 Debian Wheezy 上运行。我已经安装了gcc、fuse、gcsfuse。但是当我尝试安装桶时:

$ gcsfuse 存储桶名称 /mnt/存储桶名称

我收到错误: stderr:fusermount:未找到熔丝设备,请先尝试“modprobe熔丝”

尝试“modprobe熔断器”,我收到错误: -bash:modprobe:找不到命令

有谁知道可能是什么问题,或者有人遇到过同样的问题吗?任何想法、评论、帮助将不胜感激。提前致谢!

fuse debian-wheezy gcsfuse

6
推荐指数
1
解决办法
2万
查看次数

Alpine Docker 上的 gcsfuse

我尝试使用 gcsfuse 将应用程序源代码存储在 GCP 存储桶上,这是我的 Dockerfile:

ARG VERSION

FROM golang:1.12.5-alpine3.9 as gcsfuse-builder

ENV GOPATH /go

RUN apk --update add git=2.20.1-r0 fuse=2.9.8-r2 fuse-dev=2.9.8-r2 \
    && go get -u github.com/googlecloudplatform/gcsfuse

FROM php:$VERSION as base

ARG REVISION

ENV APP_DIR=/srv/app \
    APP_ENV=prod \
    APP_FRONT_CONTROLLER=index.php \
    APP_LOCALE=fr \
    APP_USER=test-user \
    APP_USER_GROUP=test \
    APP_PORT=8080 \
    COMPOSER_ALLOW_SUPERUSER=1 \
    NGINX_DIR=/etc/nginx \
    NGINX_VERSION=1.14.2-r1 \
    PHP_FPM_CONF_DIR=/usr/local/etc/php-fpm.d/ \
    SUPERVISORD_CONF_DIR=/etc/supervisor \
    SUPERVISOR_VERSION=3.3.4-r1 \
    BUILD_SCRIPTS_DIR=/build-scripts \
    GOOGLE_APPLICATION_CREDENTIALS=/srv/app/bucket.json

# Supervisord conf to be copied at the end.
COPY docker/prod/php/scripts/*.sh $BUILD_SCRIPTS_DIR/

# Core dependencies installation …
Run Code Online (Sandbox Code Playgroud)

docker google-cloud-platform gcsfuse alpine

5
推荐指数
1
解决办法
6161
查看次数

gcsfuse 是否将所有数据同步到它所安装的系统?

场景:

  • 我已将 gcsfuse 驱动器安装到我的 docker 容器,以便我可以从 Google Cloud Storage 存储和读取数据
  • docker 容器只有少量存储空间,但我可能在 Google Cloud Sorage 中有 TB 级的数据

问题:

gcsfuse 是从 Google Cloud Storage 下载所有数据,还是仅在我尝试读取文件时检索文件?相反,一旦我将数据写入已安装的驱动器,该数据是保留在本地存储,还是发送到 GCS 并从本地存储中删除

总体关注,以防我问错了问题

我担心 gcsfuse 安装的驱动器可能会导致所有容器存储被用完,即使数据实际上存储在 Google Cloud 上。我正在尝试评估这是否是一个合理的问题,或者 gcsfuse 是否是为处理此类情况而构建的。

对于那些要告诉我“只需阅读文档”的人

是的,我试过了。如果这些信息在文件中,那么它被埋得足够深或足够模糊,这可能值得在这里提出作为一个问题。

docker google-cloud-storage google-cloud-platform gcsfuse

3
推荐指数
1
解决办法
885
查看次数