Armazenando 100 milhões de arquivos no mesmo “diretório” em armazenamento compatível com S3?

Armazenando 100 milhões de arquivos no mesmo “diretório” em armazenamento compatível com S3?

Tenho> 100 milhões de arquivos de imagem (capas de livros) como uma lista simples de arquivos em um único "diretório":

/images/000000093e7d1825b346e9fc01387c7e449e1ed7
/images/000000574c67d7b8c5726f7cfd7bb1c5b3ae2ddf
/images/0000005ae12097d69208f6548bf600bd7d270a6f
...

Há muito tempo, eles eram armazenados no Amazon S3 e agora estão no Backblaze B2 (que é compatível com S3).

Até agora, isso funcionou bem:

  • armazenar um novo arquivo é muito rápido;
  • recuperar um arquivo existente é muito rápido.

Estou migrando mais uma vez para o iDrive E2 (também compatível com S3).

Estou experimentando movê-los usandoclone, mas após 30 minutos de espera para rclone copyiniciar, percebi que o rclone não inicia a transferência de arquivos até receber toda a lista de arquivos.

O problema é:

  • uma rápida referência rclone lsno /images/diretório me diz que a transferência de toda a lista de arquivos levaria quase 10 horas
  • qualquer problema durante a transferência (que levará muitos dias) reiniciaria do zero, forçando o rclone a baixar toda a lista de arquivos novamente
  • listando arquivoscusta dinheirocom B2

Tentei configurar o rclone para copiar apenas um lote de arquivos:

  • rclone copy "backblaze:/images/0000*", com ou sem *, não encontra nenhum arquivo
  • rclone copy "backblaze:/images/" --include "/0000*"parece baixar toda a lista de arquivos também e filtrar no cliente

Estranhamente, parece que o rclone não tem problemas para recuperar do servidor uma lista de arquivos que estão em um determinado "diretório", por exemplo /images/, mas não pode fazer o mesmo com um prefixo, como /images/0000.

Achei que o S3 e, por extensão, todos os armazenamentos compatíveis com S3, armazenavam caminhos de arquivos como uma estrutura plana, e esse /era apenas um personagem como qualquer outro, e que você poderia facilmentelistar arquivos sob qualquer prefixo, terminando ou não com um/.

Estou enganado?

Eu meu próximo armazenamento (E2),devo armazenar arquivos em subdiretórios, como images/0/0/0/0/, images/0/0/0/1, etc., assim como fazíamos nos velhos tempos de armazenamento de arquivos em um sistema de arquivos tradicional?

Responder1

Percebi que o rclone não inicia a transferência de arquivos até receber toda a lista de arquivos.

Isso está me dizendo que seu problema é menos os provedores de armazenamento e mais o próprio rclone. Uma solução que iniciasse o fluxo de lista e depois fragmentasse os arquivos à medida que eles chegassem seria mais apropriada do que aquela que precisa de toda a lista de arquivos antes de operar.

Eu pensei que o S3 e, por extensão, todos os armazenamentos compatíveis com S3 armazenavam caminhos de arquivos como uma estrutura plana,

Definitivamente é assim que o S3 faz, o que quebrou meu cérebro de administrador de servidor de arquivos quando o encontrei pela primeira vez. Dado que os problemas aqui parecem estar relacionados aos metadados e não ao layout do arquivo, provavelmente não importa.

informação relacionada