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通常与空间不足有关,但 Google 存储桶应该有无限空间(限制单个文件大小)。例如,该命令df -h说挂载的存储桶应该有 1 PB 的可用存储空间。

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

4

1 回答 1

2

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

实际上,由于 GCS-fuse 挂载的文件系统不是经典的 FS,因此某些操作可能需要传输到本地磁盘(例如,随机写入就是这种情况,请参阅文档):

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

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

于 2019-04-16T11:32:09.633 回答