AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 766728
Accepted
ChennyStar
ChennyStar
Asked: 2024-01-12 13:56:06 +0800 CST2024-01-12 13:56:06 +0800 CST 2024-01-12 13:56:06 +0800 CST

EXT4 para arquivos muito grandes (> 1 GB): aumentar o tamanho do bloco, usar clusters de blocos ou ambos?

  • 772

Gostaria de formatar um HDD de 12 TB (não SSD) com EXT4 , para armazenar arquivos de vídeo grandes (cada arquivo tendo pelo menos 1 GiB de tamanho).

Estou trabalhando com um processador x86-64 (também conhecido como x64 ou amd64).

É claro que existe a -T largefile4opção mkfs.ext4, mas existem outras otimizações que podem ser feitas?

Em particular, pergunto-me:

  • Devo aumentar o tamanho do bloco ao máximo (64K, -b 65536)?
  • OU devo usar clusters de blocos e definir o tamanho do cluster para o máximo (256M, -C 268 435 456)
  • OU devo fazer as duas coisas?

Quais seriam os melhores parâmetros em termos de espaço em disco e otimização de desempenho?

ext4
  • 3 3 respostas
  • 93 Views

3 respostas

  • Voted
  1. Best Answer
    telcoM
    2024-01-12T15:08:22+08:002024-01-12T15:08:22+08:00

    O próprio documento que você vinculou diz (ênfase minha):

    No momento, o tamanho padrão de um bloco é 4KiB, que é um tamanho de página comumente suportado na maioria dos hardwares compatíveis com MMU. Isso é uma sorte, pois o código ext4 não está preparado para lidar com o caso em que o tamanho do bloco excede o tamanho da página .

    Das arquiteturas de processador conhecidas capazes de rodar Linux, apenas ARM, Alpha AXP, Itanium ou PowerPC têm/tiveram a capacidade de usar tamanhos de página além dos habituais 4 KiB.

    Embora os processadores AMD64/x86_64 possam usar páginas enormes, isso não é exatamente a mesma coisa - o tamanho básico da página do sistema ainda é de 4 KiB, páginas enormes apenas permitem atribuí-las em pacotes maiores para melhorar a eficiência do gerenciamento de memória em sistemas com memória grande. Isso não altera o requisito fundamental "tamanho do bloco ext4 <= tamanho da página da memória do sistema".

    Com processadores PowerPC ou ARM de 64 bits, o tamanho da página (o "tamanho do bloco" básico do gerenciamento de memória do sistema) pode ser aumentado em até 64 KiB, o que permite que o sistema de arquivos ext4 também aumente suas operações internas. No AMD64/x86_64, essa opção não está disponível, portanto, os clusters de blocos seriam a única maneira disponível de reduzir o espaço e o trabalho necessários para os metadados do sistema de arquivos.

    Usei um sistema que tinha um sistema de arquivos ext4 estendido para> 10 TB e executar uma verificação do sistema de arquivos não foi uma experiência agradável. É verdade que era um sistema antigo cujos sistemas de arquivos foram expandidos e reexpandidos sem nenhum ajuste cuidadoso, muito além dos limites da capacidade original projetada do sistema. (Também era um servidor de vídeo.)

    Mas com base nisso, eu diria que o ext4 definitivamente precisa de ajustes específicos para lidar com sucesso com sistemas de arquivos de dezenas de terabytes. Como Romeo Ninov nos comentários, recomendo que você reconsidere outros tipos de sistemas de arquivos, se possível: embora o ext4 possa ser usado com sistemas de arquivos muito maiores que 10 TB, acho que poucas dezenas de terabytes são o limite atual do que geralmente é prático fazer com isso.

    No entanto, se você essencialmente escrever o conteúdo do sistema de arquivos uma vez e depois mantê-lo somente leitura, quase nunca precisará executar uma verificação do sistema de arquivos nele, o que evitará um problema significativo.

    • 3
  2. LustreOne
    2024-01-13T18:06:01+08:002024-01-13T18:06:01+08:00

    Ext4 pode lidar razoavelmente bem com arquivos de até 16TiB e sistemas de arquivos de até 1PiB e é usado regularmente nesses tamanhos em alguns dos maiores sistemas de arquivos paralelos do mundo (consulte https://en.wikipedia.org/wiki/Lustre_(file_system) para detalhes). Não deve haver problemas com arquivos de 1GiB e um HDD de 12 TiB.

    Eu tenho algumas unidades de 10 TiB em meu servidor de arquivos doméstico com ext4. As opções padrão do mke2fs que habilitam extensões e outros recursos devem fornecer bom desempenho.

    Quanto à largefileopção, isso é razoável se você souber que a maioria dos arquivos será muito grande. No entanto, a economia geral de espaço não é enorme e pode não valer a pena. Acabei usando meu servidor de mídia também para backups, e isso criou uma tonelada de arquivos pequenos.

    • 2
  3. symcbean
    2024-01-14T03:38:23+08:002024-01-14T03:38:23+08:00

    Expandindo a resposta da TelcoM... se você quiser usar um tamanho de bloco diferente de 4Kb em x86[-64] então você precisará recompilar o kernel. Esta costumava ser a única maneira de suportar grandes sistemas de arquivos com kernels de 32 bits. Mas então veio o suporte a arquivos grandes e inodes de 64 bits. E hoje em dia (a menos que você ainda esteja rodando em 32 bits), você nem precisa dizer ao mount/fstab que um sistema de arquivos usa 64 bits. Mas ainda há muitas informações desatualizadas na internet (por exemplo, a documentação ATUAL do aws - https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/volume_constraints.html ).

    Os clusters de blocos no ext4 forneceram uma solução alternativa para inodes de 32 bits/tamanho de bloco de 4k.

    Mas isso não é mais relevante - inodes de 32 bits + tamanhos de bloco de 4K limitam o tamanho total de um dispositivo de bloco a 16 TB e você só tem 12.

    Existem razões para usar blocos de tamanhos diferentes (ou clusters de blocos). IIRC, tanto Oracle quanto MySQL usam um tamanho de bloco de 8k internamente - e combinar isso no sistema de arquivos proporciona um aumento significativo no rendimento.

    Então... não, você não precisa fazer nada inteligente (além de usar GPT em vez de MBR se estiver particionando).

    • 2

relate perguntas

  • ext4 montado em / e tmp consumindo espaço em disco

  • Como desfragmentar arquivos com tamanho inferior a 100 MB apenas no sistema de arquivos ext4

  • rmdir falhou ao remover o diretório vazio

  • Mover milhões de arquivos pequenos resulta em erro "falta de espaço"

  • "VFS: Não é possível encontrar o sistema de arquivos ext4" no disco ZFS

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve