Se eu atualizar um ext3 fs para ext4, ele aumentará automaticamente a quantidade máxima de diretórios por diretório?

3

Devido a uma situação externa inevitável *, eu preciso ter mais de 32k diretórios em um diretório (mas, até onde eu sei, menos de 64k). Eu estou atingindo o limite de ext3. Eu presumo que o servidor original estava executando o ReiserFS. O backup é armazenado no S3.

Minha solução é atualizar para o ext4, que segundo a Wikipedia:

In ext3 a directory can have at most 32,000 subdirectories. In ext4 this limit increased to 64,000.

Minha pergunta é: a montagem do fs como ext4 aumentará automaticamente esse limite? terei que executar algum comando para ativar novos recursos? tenho que recriar o diretório?

* restaurando um backup para converter as informações em um novo e melhor sistema que escrevemos

    
por pupeno 27.02.2013 / 15:48

4 respostas

3

A resposta curta: sim. A conversão do ext3 para o ext4 resolve o problema.

A resposta longa:

Veja como eu trabalhei em torno disso:

Eu tenho uma matriz RAID de 5 terabytes que atingiu esse limite com cerca de 4 TB de dados na partição. Então eu:

Executei o seguinte para convertê-lo do ext3 para o ext4:

tune2fs -O extents,uninit_bg,dir_index /dev/DEV

onde / dev / DEV para mim era algo como / dev / sdb1

Então eu corri:

e2fsck -fDC0 /dev/DEV

Isso levou aproximadamente 8 horas para ser executado em 4 TB de dados.

Então eu modifiquei o / etc / fstab para dizer para montar a partição como ext4.

Então eu corri

mount /big

onde / big é o nome da minha partição. E funcionou perfeitamente.

Então, para responder à sua pergunta, sim, a conversão para o ext4 realmente resolve o problema.

Leia estes antes de fazer esta conversão: link

link

    
por 22.03.2014 / 19:56
1

Não, alterar o tipo de fs e montá-lo como ext4 não aumentaria o número de inodes. Isso é ditado na hora da criação do sistema de arquivos e não pode ser alterado imediatamente no ext * fs.

Além disso, não é uma abordagem muito limpa e recomendada ir para o ext4 apenas desmontando e montando-o. O ext3 é baseado em blocos e o ext4 é baseado em extensão, e mesmo se você montar o ext3 como ext4, ele permanecerá baseado em blocos. Portanto, você não obterá os principais benefícios do ext4.

Se você tem um sistema de teste, você pode tentar fazer a conversão e assistir a saída dumpe2fs.

Verificou rapidamente a fonte. É codificado.

/*
 * Maximal count of links to a file
*/
#define EXT3_LINK_MAX           32000

/*

De include/linux/ext3_fs.h

    
por 27.02.2013 / 15:52
0

Uma soluo alternativa para o problema original pode ser: parar o processo de restaurao em intervalos de alguns minutos e verificar se existem, e. 10000 subdiretórios. Se assim for, crie um novo diretório (talvez nem mesmo neste), mova os diretórios 10000 para lá e crie links simbólicos para eles. Dessa forma, você obtém a estrutura esperada sem atingir o limite de FS.

    
por 27.02.2013 / 16:51
0

Eu não tenho a resposta completa, mas isso é o mais próximo que posso das experiências que eu faço. Depois de executar este comando em um sistema de arquivos:

tune2fs -O extents,uninit_bg,dir_index /dev/DEV

você pode criar mais de 32k diretórios em um diretório.

A parte que eu não sei (e não consigo encontrar agora) é se montá-lo como ext4, mas com menos recursos ativados, vamos criar mais de 32k diretórios.

    
por 28.02.2013 / 13:28