Come funzionano le dimensioni del blocco del file system?


11

Tutti i file system Linux hanno una dimensione di blocco di 4kb. Diciamo che ho 10 MB di spazio sul disco rigido. Ciò significa che ho 2560 blocchi disponibili e diciamo che ho copiato 2560 file ciascuno con dimensioni di 1kb. Ogni blocco da 1 kb occuperà 1 blocco sebbene non riempia l'intero blocco.

Quindi il mio intero disco è ora pieno ma ho ancora 2560x3kb di spazio libero. Se voglio archiviare un altro file, ad esempio 1mb, il file system me lo consentirà? Scriverà nello spazio libero rimasto nei singoli blocchi? C'è qualche concetto che affronta questo problema?

Gradirei qualche chiarimento. Grazie in anticipo


OK, 2560 file, ognuno è 1kb, ovvero 2560 * 0,001 mb = 2,56 mb. Ogni file da 1kb dovrebbe occupare circa 1/4 del blocco, perché 1000 * 4 = 4000, giusto? E la dimensione del blocco è 4096, quindi sono necessari 4 file per riempire il blocco. Il file 1mb, quindi, ti costerà 1000000/4096 = 244 blocchi.
Sergiy Kolodyazhnyy,

Risposte:


3

La dimensione del blocco predefinita era 512 byte dal primo Linux in assoluto. Tranne che fino a poco tempo fa, le dimensioni dei blocchi 4k sono state introdotte per soddisfare le dimensioni sempre crescenti dei dischi. Questo in realtà è persino quasi dettato dall'hardware del disco (vedi di più: /unix/178899/optimizing-logical-sector-size-for-physical-sector-size-4096-hdd ).

Eppure per la tua domanda specifica: hai ragione sul fatto che tutti i file sprecano i byte non utilizzati dell'ultimo blocco su molti tipi di file system, il che è particolarmente dispendioso per i file di piccole dimensioni. Ma btfrs e reiserfs sembrano essere in grado di farcela, secondo https://en.m.wikipedia.org/wiki/Block_suballocation


1
  1. I file system possono avere dimensioni di blocco da 512 a (solitamente) 65536 byte. La dimensione del blocco può essere specificata come opzione mkfs.xxx. Il blocco predefinito nella maggior parte dei filesystem Linux - 4096 byte.

  2. Alcuni filesystem supportano l'allocazione della coda e / o del sottoblocco. ext2 / 3/4 - fa, xfs - no. Se si prevede di riempire una partizione con diversi file di piccole dimensioni, è possibile ridurre lo spazio "coda" sprecato riducendo la dimensione dei blocchi a 512 o 1024.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.