Невозможно распаковать очень большие файлы из / в корзины Google при монтировании с помощью gcsfuse - PullRequest
1 голос
/ 15 апреля 2019

В Google Cloud у меня есть Linux Compute Engine и ведро. Я установил ведро как диск в CE с помощью gcsfuse - как рекомендовано Google - и время от времени я загружал большой архив размером в 7zip (десятки ГБ) в корзину. Когда я войду в терминал CE, перейдите в папку смонтированных корзин и попытайтесь разархивировать файл (в том же месте), используя команду: 7z x myarchive.7z разархивирует файл до 100% (что занимает пару минут), а в конце произойдет сбой:

ERROR: E_FAIL

Archives with Errors: 1

После этого, если я просматриваю содержимое корзины, появляется имя разархивированного файла, однако оно имеет 0 КБ.

Я понимаю, что E_FAIL обычно ассоциируется с нехваткой места, но в корзине Google должно быть неограниченное пространство (с ограничениями на один размер файла). Например, команда df -h сообщает, что смонтированное ведро должно иметь 1 петабайт доступного хранилища.

Кто-нибудь с подобной настройкой / проблемой?

1 Ответ

2 голосов
/ 16 апреля 2019

Как предлагается в комментариях, процесс разархивирования может потребовать некоторых специфических операций в локальной файловой системе, даже если вы вводите команду из смонтированного каталога.

Действительно, поскольку файловая система, смонтированная на предохранителе GCS, не является классической ФС, для некоторых операций может потребоваться перенос на локальный диск (например, в случае случайной записи см. Документы ):

Произвольные записи выполняются путем чтения всего большого двоичного объекта, его локального редактирования и записи всего измененного большого двоичного объекта обратно в облачное хранилище. Мелкие операции записи в большие файлы работают, как ожидается, но медленные и дорогие.

Чтобы процесс разархивирования имел достаточно доступного размера для работы, и предполагая, что временные файлы, вероятно, создаются во время процесса, вам следует увеличить емкость вашего локального диска.

...