使用gcsfuse挂载时,无法从/向Google存储桶解压缩非常大的文件

问题描述 投票:1回答:1

在Google Cloud上,我有一个Linux计算引擎和一个存储桶。我已经使用gcsfuse将桶作为驱动器安装到CE - 正如Google推荐的那样 - 并且我不时地将一个大的7zip存档(数十GB)上传到存储桶。当我登录CE的终端时,转到已安装的存储桶文件夹并尝试使用以下命令解压缩文件(在同一位置):7z x myarchive.7z它将文件解压缩到100%(这需要几分钟),然后在结束它将失败:

ERROR: E_FAIL

Archives with Errors: 1

之后,如果我查看存储桶的内容,则存在解压缩的文件名,但它具有0 KB。

据我所知,E_FAIL通常与空间不足有关,但谷歌桶应该有无限的空间(限制单个文件大小)。例如,命令df -h表示安装的存储桶应该有1 PB的可用存储空间。

那里的人有类似的设置/问题吗?

google-cloud-platform google-cloud-storage 7zip gcsfuse
1个回答
2
投票

正如注释中所建议的那样,解压缩过程可能需要对本地文件系统进行一些特定操作,即使您从挂载目录发出命令也是如此。

实际上,由于GCS-fuse安装的文件系统不是传统的FS,因此某些操作可能需要传输到本地磁盘(例如,see the docs就是随机写入的情况):

随机写入是通过读取整个blob,在本地编辑并将整个修改后的blob写回云存储来完成的。对大文件的小写操作按预期工作,但速度慢且成本高。

要确保解压缩过程具有足够的可用大小,并假设可能在此过程中创建临时文件,则应增加本地磁盘的容量。

© www.soinside.com 2019 - 2024. All rights reserved.