问题标签 [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.

0 投票
1 回答
919 浏览

google-cloud-platform - ModuleNotFoundError:没有名为“保险丝”的模块

我已经使用 Google Cloud 上的 AI 平台设置了 GPU Jupyter Notebook VM。服务器运行 Debian stretch。

我想将我创建的存储桶挂载example到名为/home/jupyter/transfer. 我一直按照此处概述的说明进行操作,但是当我运行时gsfuse example /home/jupyter/transfer出现错误:

我已经安装fuse了:

sudo apt-get install fuse

这是成功的,但gsfuse代码仍然没有运行。然后我安装了 pip 包:

pip install fuse-python

它仍然行不通。

有任何想法吗?

0 投票
2 回答
2156 浏览

kubernetes - 是否可以在 GCP kubernetes 内不使用特权模式运行 gcsfuse?

按照本指南,我正在尝试在 GKE 的 pod 内运行 gcsfuse。下面是我正在使用的部署清单:

但是,我想在我的 GKE 集群中不使用特权模式运行 gcsfuse。我认为(由于 SO 上的这些问题)可以使用某些标志运行 docker 映像,并且无需在特权模式下运行它。

GKE 中有什么方法可以在不以特权模式运行容器的情况下运行 gcsfuse 吗?

0 投票
0 回答
458 浏览

google-cloud-platform - Terraform:自动进行身份验证以将 GCP 存储桶挂载到 VM

我可以使用 Terraform 启动 VM,如果我从 GCP Web UI 向该 VM 发送 shell,我可以通过以下方式手动进行身份验证:

然后我可以手动将 GCP 存储桶挂载到虚拟机:

但我不能从 Terraform 启动脚本自动执行此操作。当然,身份验证命令本质上是非常手动的,包括跳转到浏览器以获取密钥等。而且 gcsfuse 命令在没有身份验证的情况下显然会失败,因此将其放入启动脚本中是行不通的;正如预期的那样,它会产生权限错误。

我已经在 GCP 中拥有各种服务和应用程序帐户,并且我已经下载了相关的 json 密钥文件,但我不明白如何从 Terraform 自动验证新 VM 以挂载存储桶。我怀疑这与 google_service_account 和 google_service_account_key 有关,但我还没有弄清楚该怎么做。我只是不知道如何将 json 密钥文件硬塞到 Terraform 配置中,以便 VM 上的 root 用户运行启动脚本可以挂载存储桶。

其他人建议这也可能与 fstab 有关。我已经在启动脚本中添加了以下内容:

而且我可以从 shell 中看到 echo 命令有效(fstab 也相应地改变了),但我仍然无法挂载存储桶。我还尝试使用 mount 而不是 gcsfuse 进行安装:

但这也行不通。mount 不会产生错误,但挂载的目录仍然是空的。呸!这里的解决方案是什么?

谢谢。

0 投票
4 回答
1839 浏览

google-cloud-platform - 我可以将 Cloud Shell 与超过 5 GB 的持久存储一起使用吗?

根据文档

Cloud Shell 预置 5 GB 的免费永久磁盘存储作为您$HOME在虚拟机实例上的目录。

我需要更多(付费)存储空间,尽管我可以从 Cloud Shell 环境访问并且在我的会话中保持不变。它主要用于存储 git 存储库和图像的本地克隆。我将是唯一可以访问这些文件的人。

似乎 5 GB 存储空间是一个硬限制,因此它不会动态扩展并为超出的金额向我收费。可以使用增强模式,但这不会影响存储大小。而且我也无法使用自定义 Cloud Shell 环境配置更多存储空间。我不知道是否可以将另一个 GCE 永久磁盘安装到我的$HOME. 我正在考虑按照this answer中的建议考虑gcs-fuse ,但我不确定它是否适合git repos。

有什么方法可以在 Cloud Shell 中提供更多存储空间?

0 投票
2 回答
4536 浏览

google-cloud-platform - 如何在 AI Platform 上的自定义 Docker 映像中挂载 GCS 存储桶?

我正在使用 Google 的 AI 平台使用自定义 Docker 映像来训练机器学习模型。要在不修改的情况下运行现有代码,我想在容器内安装一个 GCS 存储桶。

我认为实现这一点的一种方法是安装gcloud到身份验证并gcsfuse安装在容器中。我的 Dockerfile 看起来像这样:

在入口点脚本中,我尝试使用 Google 云进行身份验证并挂载存储桶。我的entrypoint.sh样子是这样的:

然后我构建容器并在本地运行它以进行测试或在 AI 平台上远程运行以进行完整的训练运行:

无论是在本地还是在 AI Platform 上,entrypoint.sh脚本都会挂在 行gcloud auth login,可能是因为它等待用户输入。有没有更好的方法在容器内使用 Google Cloud 进行身份验证?如果没有,我该如何自动化当前挂起的线路?

0 投票
1 回答
1503 浏览

google-cloud-platform - 当 Gcloud 可以看到 GCSfuse “Unknown bucket”。服务帐户似乎正确

我正在尝试将存储桶挂载到我的 gcp 实例,但是新创建的存储桶和我现有的存储桶都失败了。我可以使用 gsutil ls 查看存储桶,并且可以使用 gsutil cp 将文件复制到其中。

但是,当我尝试使用 GCSFuse 进行挂载时,会发生以下情况:

权限似乎没问题。

此服务帐户被列为具有存储桶所有者访问权限的用户。对于该项目,帐户是 Editor 和 Storage Admin。

0 投票
0 回答
289 浏览

docker - Gcsfuse 与 kubernetes 冲突?

我正在运行一个烧瓶应用程序,该应用程序提供一个 ML 模型,该模型加载到 k8s 上的 wordembeddings 文件 (2GB) 中。该文件正在使用 gcsfuse 加载,我们的应用程序运行了大约 2 年。

由于最近重新启动了 pod,此设置不再起作用,而我们的代码/部署设置没有任何变化。在调试时,我注意到我们甚至遇到了以下 dockerfile 甚至不使用 python 脚本的问题:

Dockerfile:

更奇怪的是,我们还有其他使用相同设置的部署,它们可以重新启动并且仍然可以工作。

日志显示以下错误:

在此处输入图像描述

通过 --foreground --debug_invariants --debug_http --debug_gcs --debug_fuse 我们得到以下信息:

在此处输入图像描述

在此处输入图像描述

到目前为止我检查过的内容:

服务帐号权限没问题

到目前为止我已经尝试过:

不同的存储桶 gcsfuse 命令与 Implicit-dirs, -o allow_other 不同的 kubernetes 集群 其他挂载文件夹位置

0 投票
1 回答
97 浏览

gcloud - 存储桶上传的文件未在所有挂载的虚拟机中显示

我有一个使用 fstab 安装到 3 个虚拟机的 Google Cloud Storage Bucket。

当我使用 gsutil 命令将文件从另一台机器上传到谷歌存储桶时,上传的文件只能从 2 个虚拟机(Set A)访问。另一个 vm ( Set B ) 不显示新上传的文件。

用于挂载的fstab条目如下。

Set A中的/etc/mtab文件的内容如下。

Set B中的/etc/mtab文件的内容如下。

0 投票
1 回答
1129 浏览

csv - 如何从 Google Cloud Storage CSV 读取并将其加载到 Google Data Store

请告诉我如何从 Google Storage (CSV) 文件读取到 Cloud Data Store。

我已经通过 App Engine 完成了 Java 代码,并且可以在调用时加载一行。同样,我想获得一些示例代码以一次性将批量(从 CSV 读取)加载到数据存储中。

0 投票
1 回答
149 浏览

google-cloud-storage - gsutil 可以创建加速 gcsfuse 所需的伪目录条目吗?

尽管 Google Cloud Storage 是一个不需要目录条目的平面对象存储,但添加伪目录占位符(名称以 结尾的空条目/会使 gcsfuse 更快。您可以省略 gcsfuse --implicit-dirs选项并以非常可行的性能浏览您的 GCS 目录,如果没有占位符则情况并非如此。

问:有没有办法向gsutil发出命令,这样gsutil cp -r your_directory gs://your-bucket/会在上传文件时创建目录占位符?

另一种方法是调用 GCS API,但 gsutil 有很多有用的功能,包括并行上传和重试处理。

例子

制作本地树:

gsutil将其复制到 GCS:

请注意,gsutil只创建了 2 个对象(blob)——文本文件。它没有创建目录占位符 blobyour_directory/your_directory/subdir/.

gcsfuse your-bucket your-bucket坐骑中:

gcsfuse --implicit-dirs your-bucket your-bucket坐骑中:

慢慢地。

回到gcsfuse your-bucket your-bucket挂载,我们可以通过创建目录占位符来显示文本文件: