Como o tamanho do bloco do sistema de arquivos funciona?

11

Todos os sistemas de arquivos Linux têm tamanho de bloco de 4kb. Digamos que eu tenha 10mb de armazenamento em disco rígido. Isso significa que tenho 2560 blocos disponíveis e, digamos, copiei 2560 arquivos, cada um com 1 KB de tamanho. Cada bloco de 1 kb ocupará 1 bloco, embora não esteja preenchendo o bloco inteiro.

Portanto, agora todo o meu disco está cheio, mas ainda tenho 2560x3kb de espaço livre. Se eu quiser armazenar outro arquivo, digamos 1mb, o sistema de arquivos permitirá que eu armazene? Ele escreverá no espaço livre deixado nos blocos individuais? Existe algum conceito abordando esse problema?

Gostaria de receber alguns esclarecimentos. desde já, obrigado

Srimanth Duggineni
fonte
OK, 2560 arquivos, cada um com 1kb, ou seja, 2560 * 0,001 mb = 2,56 mb. Cada arquivo de 1kb deve ocupar aproximadamente 1/4 do bloco, porque 1000 * 4 = 4000, certo? E o tamanho do bloco é 4096, então você precisa de 4 arquivos para preencher o bloco. Um arquivo de 1mb custará 1000000/4096 = 244 blocos.
Sergiy Kolodyazhnyy

Respostas:

3

O tamanho padrão do bloco era 512 bytes desde o primeiro Linux. Exceto até recentemente, os tamanhos de bloco de 4k foram introduzidos para atender ao tamanho cada vez maior de discos. Na verdade, isso é quase ditado pelo hardware do disco (consulte mais em: /unix/178899/optimizing-logical-sector-size-for-physical-sector-size-4096-hdd ).

No entanto, para sua pergunta específica: você está certo de que todos os arquivos gastam os bytes não utilizados do último bloco em muitos tipos de sistemas de arquivos, o que é particularmente inútil para arquivos pequenos. Mas os btfrs e reiserfs parecem capazes de lidar, de acordo com https://en.m.wikipedia.org/wiki/Block_suballocation

Harald
fonte
1
  1. Os sistemas de arquivos podem ter tamanho de bloco de 512 a (normalmente) 65536 bytes. O tamanho do bloco pode ser especificado como opção mkfs.xxx. O tamanho do bloco padrão na maioria dos sistemas de arquivos Linux - 4096 bytes.

  2. Alguns sistemas de arquivos suportam alocação de empacotamento de cauda e / ou sub-bloco. ext2 / 3/4 - faz, xfs - não. Se você planeja preencher uma partição com vários arquivos pequenos, é possível reduzir o espaço "final" desperdiçado reduzindo o tamanho do bloco para 512 ou 1024.

Oleksandr Suvorov
fonte