使用 gcsfuse 挂载时无法解压缩非常大的文件 from/to google 个存储桶

Unable to unzip very big files from/to google buckets when mounted with gcsfuse

在 Google 云上,我有一个 linux 计算引擎和一个存储桶。我使用 gcsfuse 将存储桶作为驱动器安装到 CE - 按照 Google 的建议 - 并且我不时将一个大的 7zip 存档(数十 GB)上传到存储桶。 当我登录到 CE 的终端时,转到安装的存储桶文件夹并尝试使用以下命令解压缩文件(在同一位置): 7z x myarchive.7z 它会将文件解压缩到 100%(这需要几分钟),最后会失败:

ERROR: E_FAIL

Archives with Errors: 1

之后,如果我查看存储桶的内容,就会发现解压缩的文件名存在,但它只有 0 KB。

我知道 E_FAIL 通常与缺少 space 有关,但 Google 存储桶应该具有无限的 space(对单个文件大小有限制).例如,命令 df -h 表示已安装的存储桶应该具有 1 PB 的可用存储空间。

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

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

确实,由于GCS-fuse挂载的文件系统不是经典的FS,一些操作可能需要传输到本地磁盘(例如随机写入就是这种情况,see the docs):

Random writes are done by reading in the whole blob, editing it locally, and writing the whole modified blob back to Cloud Storage. Small writes to large files work as expected, but are slow and expensive.

为确保解压缩过程有足够的可用大小来工作,并假设在此过程中可能会创建临时文件,您应该增加本地磁盘的容量。