Alcance um arquivo muito grande diretamente para uma unidade

0

Eu estava executando meu código para baixar alguns dados na nuvem da Amazon. A instância que eu estava executando tinha um armazenamento de 8 GB que eu havia comprado com ela, além de 140 GB de armazenamento de instância extra (tipo de plug-in como um disco rígido). Agora baixei meus dados para esse armazenamento extra de 140 GB que está quase cheio.

Agora eu quero "tar" esses dados e colocar no Amazon S3 (armazenamento em nuvem - que já montei na minha instância) para que eu possa baixá-lo. Agora o problema é que o tar no Ubuntu (que é configurado naquela instância) cria alguns arquivos temporários no armazenamento de 8GB (que era a partição na qual o Ubuntu é instalado) e desde que não há espaço suficiente (mesmo para o arquivo tar) é cria um tar incompleto no S3. Você poderia me sugerir uma saída.

Eu tentei copiar o arquivo para o S3 e, em seguida, dividi-lo para que eu pudesse tar as pequenas peças (eu tenho outra instância e sei que posso tar cerca de 70GB). Mas mesmo o cp cria uma espécie de cópia temporária. Alguma saída?

user533550
fonte
Sua conexão de rede está estável o suficiente para que você não precise do arquivo tar no site da Amazon? Se estiver, você poderá usar o netcat para descompactar diretamente do tarball de origem em seu próprio sistema. (No final de recebimento, nc -l 4321 | tar -xf -(tar eXtract File, input std in e std in preenchido pelo netcat ouvindo na porta 4321.). E então no site de envio um netcat para a porta 4321 no seu host amazon. Algo line nc IP.IP.IP.IP 4321 < mytarball.tar).
Hennes
Não, não acho que tenha uma rede assim. Além disso, tenho 40 desses casos e não acho que isso seria possível para todos eles. Assim, preciso criar um tar do arquivo no S3. Obrigado pela sua ajuda btw. É possível que eu possa colocar metade do arquivo uma vez e a outra metade em outra iteração?
user533550
Você diz que o S3 é "montado" - então parece que você está usando o s3fs - e parece provável que o s3fs é o que usa arquivos temporários, não o tar e o cp. Se você ativou o cache de disco em s3fs, a primeira coisa óbvia a ser testada seria desativá-lo. Se não, então você precisa de uma abordagem diferente, algo que possa transmitir o tarball diretamente para o s3 em vez de usar o s3fs, se o s3fs sempre precisar de arquivos temporários, mesmo com o cache desativado. Ou monte um volume EBS ou outro disco temporário se você tiver um, para os arquivos temporários residirem enquanto você precisa deles.
Michael - sqlbot
Vou verificar com a desativação do cache de disco em s3fs. Enquanto isso, emprega uma solução ad hoc onde eu escrevi um código que quebra o arquivo maior em pedaços de ~ 4GB (como eu tinha em torno de 5Gb de espaço de instância à esquerda) e os grava em s3fs. Eu tive que encontrar uma solução rápida.
user533550