Ubuntu 16.04 cria ext4: sistema de arquivos de 500 TB

Ubuntu 16.04 cria ext4: sistema de arquivos de 500 TB

O padrão ext4 sugere que é possível criar um sistema de arquivos de até 1 EB.

Meu objetivo é criar 500 TB de sistema de arquivos ext4 no Ubuntu 16.0.4. Verifique meu comando de criação fs:

sudo mkfs.ext4 -m 0 -J device=/dev/md125p1 /dev/md125p2 -b 4096 -E stride=128,stripe-width=6400,lazy_itable_init=0,lazy_journal_init=0

Com este comando recebo o seguinte erro:

Não é possível criar um sistema de arquivos com o número solicitado de inodes ao configurar o superbloco

Tentei definir o valor de bytes por inode para um número muito alto usando a opção -i em mkfs.ext4, mas ainda sem sorte.

Estou ciente de que o RHEL recomenda no máximo 50 TB de sistema de arquivos ext4. Ainda é possível criar 500 TB de sistema de arquivos com ext4?

Responder1

Isso deve funcionar. Usando uma versão moderna de mke2fs:

% mkfs.ext4 /tmp/test.img 500T
mke2fs 1.45.4 (23-Sep-2019)
Creating regular file /tmp/test.img
Creating filesystem with 134217728000 4k blocks and 4259840000 inodes
Filesystem UUID: 00257d43-0298-4aaf-8cca-37e34f3d1bb8
Superblock backups stored on blocks: 
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
    4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
    102400000, 214990848, 512000000, 550731776, 644972544, 1934917632, 
    2560000000, 3855122432, 5804752896, 12800000000, 17414258688, 
    26985857024, 52242776064, 64000000000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

O número de inodes é limitado (2**32)-1automaticamente, portanto a preocupação expressa na outra resposta não é um problema.

Além disso, o uso de um tamanho de bloco > 4k não é suportado no x86, devido à limitação do Linux que exige que o tamanho do bloco não possa ser maior que o tamanho da página da VM. Portanto, você pode usar um tamanho de bloco de até 64k no PowerPC, já que ele tem um tamanho de página de 64k.

Também direi que se você estiver usando sistemas de arquivos realmente grandes, recomendo fortemente que você use a versão mais recente do e2fsprogs, e não a versão obsoleta fornecida no Ubuntu 16.04. Houve muitas correções de bugs nos últimos 3 anos, incluindo algumas relacionadas a sistemas de arquivos muito grandes.

Responder2

De acordo com minha pesquisa, o ext4 pode não suportar 500 TB para blocos de 4K.

Uma partição padrão de EXT3/EXT4 tem uma proporção de bytes por inode de um inode a cada 16.384 bytes (16 Kb).
Assim temos:

500 GB = 500 * 1024 * 1024 * 1024 * 1024 = 549 755 813 888 000 bytes
549 755 813 888 000 bytes / 16384 = 33 554 432 000 inodes

O número de inodes é um número de 32 bits, portanto, o número máximo possível de inodes em qualquer sistema de arquivos ext2/3/4 é 2 ^ 32-1 ou 4.294.967.295 inodes.

Como 33.554.432.000 é muito maior que 4.294.967.295, alocar esse número de inodes é impossível. Você precisará de 8 vezes mais que o número máximo de inodes.

Suas opções, como vejo, são:

  • Tente forçar um limite de inode:-N 4294967295
  • Use blocos de 8x4 = 32 KB, o que é um desperdício se seus arquivos forem pequenos
  • Use outro sistema de arquivos que não o ext4. Tenho visto relatórios que dizem que o XFS pode suportar esse sistema de arquivos, mas não posso afirmar por experiência própria.

informação relacionada