问题标签 [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 - 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
它仍然行不通。
有任何想法吗?
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 不会产生错误,但挂载的目录仍然是空的。呸!这里的解决方案是什么?
谢谢。
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 中提供更多存储空间?
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 进行身份验证?如果没有,我该如何自动化当前挂起的线路?
google-cloud-platform - 当 Gcloud 可以看到 GCSfuse “Unknown bucket”。服务帐户似乎正确
我正在尝试将存储桶挂载到我的 gcp 实例,但是新创建的存储桶和我现有的存储桶都失败了。我可以使用 gsutil ls 查看存储桶,并且可以使用 gsutil cp 将文件复制到其中。
但是,当我尝试使用 GCSFuse 进行挂载时,会发生以下情况:
权限似乎没问题。
此服务帐户被列为具有存储桶所有者访问权限的用户。对于该项目,帐户是 Editor 和 Storage Admin。
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 集群 其他挂载文件夹位置
gcloud - 存储桶上传的文件未在所有挂载的虚拟机中显示
我有一个使用 fstab 安装到 3 个虚拟机的 Google Cloud Storage Bucket。
当我使用 gsutil 命令将文件从另一台机器上传到谷歌存储桶时,上传的文件只能从 2 个虚拟机(Set A)访问。另一个 vm ( Set B ) 不显示新上传的文件。
用于挂载的fstab条目如下。
Set A中的/etc/mtab文件的内容如下。
Set B中的/etc/mtab文件的内容如下。
csv - 如何从 Google Cloud Storage CSV 读取并将其加载到 Google Data Store
请告诉我如何从 Google Storage (CSV) 文件读取到 Cloud Data Store。
我已经通过 App Engine 完成了 Java 代码,并且可以在调用时加载一行。同样,我想获得一些示例代码以一次性将批量(从 CSV 读取)加载到数据存储中。
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
挂载,我们可以通过创建目录占位符来显示文本文件: