Spazio riservato per root su un filesystem - perché?


105

Capisco che per impostazione predefinita, i filesystem appena creati verranno creati con il 5% dello spazio allocato per root. So anche che puoi cambiare lo spazio definito con:

tune2fs -m 1 /dev/sdXY

Ciò di cui sono curioso, tuttavia, è qual è lo scopo reale di questo spazio riservato. Serve a uno scopo pratico che meriterebbe più del 5% di spazio in alcune circostanze?

Il motivo per cui mi sono imbattuto in questa domanda è che recentemente abbiamo creato un archivio di 1 TB e non siamo riusciti a capire perché un df -h ci ha lasciato perdere il 5% della nostra capacità.


1
Bene, ora è un enorme spreco di spazio "non disponibile". Forse il 5% dovrebbe essere limitato a unità di dimensioni inferiori a X (ad es. 5% di spazio su disco fino a un massimo di 100 MB).
Tshepang,

3
Sul mio filesystem da 8 TB da 400 GB appena sparito - questo è il vero spreco di spazio !! :)
Ilia Rostovtsev,

Risposte:


102

Il risparmio di spazio per importanti processi di root (e possibili azioni di salvataggio) è uno dei motivi.

Ma ce n'è un altro. Ext3 è abbastanza bravo nell'evitare la frammentazione del filesystem, ma una volta superato il 95% circa, quel comportamento cade dalla scogliera e improvvisamente le prestazioni del filesystem diventano un disastro. Quindi lasciare riservato il 5% ti dà un buffer rispetto a questo.

Ext4 dovrebbe essere migliore in questo, come spiegato dallo sviluppatore / guru del filesystem Linux Theodore Ts'o :

Se imposti il ​​conteggio dei blocchi riservati su zero, ciò non influirà molto sulle prestazioni, tranne se eseguito per lunghi periodi di tempo (con molte creazioni ed eliminazioni di file) mentre il filesystem è quasi pieno (vale a dire, diciamo sopra il 95%), a quel punto sarai soggetto a problemi di frammentazione. L'allocatore multi-blocco di Ext4 è molto più resistente alla frammentazione, perché fa molto più difficile trovare blocchi contigui, quindi anche se non abiliti le altre funzionalità ext4, vedrai risultati migliori semplicemente montando un filesystem ext3 usando ext4 prima del filesystem diventa completamente pieno.

Se stai solo usando il filesystem per un archivio a lungo termine, dove i file non cambiano molto spesso (ad es. Un enorme negozio di mp3 o video), ovviamente non importa.


3
Come osservato su superuser.com/a/1257550/38062 , questi dati "90%" e "95%" hanno origine nelle misurazioni effettuate contro Berkeley FFS negli anni '80. Nei decenni successivi, altre persone hanno sfidato questa saggezza ricevuta spesso ripetuta.
JdeBP

1
Non esiste alcuna riduzione delle prestazioni per gli utenti normali con questo spazio riservato. Semplicemente non avranno spazio sul dispositivo prima del previsto. Il root tuttavia avrà abbastanza spazio per risolvere qualunque problema stesse riempiendo il disco.
crististm,

44

Se si consente ad altri di accedere al proprio sistema, ad esempio tramite ssh, riservando questi blocchi del 5% si assicura che gli utenti esterni non possano riempire il disco. Anche se non si consente ad altri di accedere al proprio sistema, i blocchi riservati impediscono ai programmi che non vengono eseguiti come root di riempire il disco.


Grazie per questo, ha lottato sinceramente con quale risposta contrassegnare come corretta: la risposta è stata votata come prima e perfetta, mattdm è contrassegnato come corretto a causa dello sfondo e dei dettagli aggiuntivi che mi hanno aiutato a capire di più il "Perché".
adattoupgeek,

22

Con i blocchi riservati agli utenti e i servizi in esecuzione come utenti specifici anziché in esecuzione come root, non è possibile riempire un filesystsem e potenzialmente interrompere altre cose che devono scrivere su detto filesystem, anche se i servizi in esecuzione come root possono comunque renderlo completamente pieno ovviamente.

Ti dà anche un po 'di spazio su cui lavorare quando gli utenti lamentano che il disco è pieno o che i servizi iniziano a fallire perché il file system è pieno. Ad esempio, potresti archiviare alcuni file negli archivi zip / gz / 7zip prima di rimuoverli (anche se se il filesystem fosse completamente pieno, è probabile che tu abbia qualche altro filesystem disponibile in cui invece puoi creare il file di archivio).

Il 5% è stato il valore predefinito per molto tempo, da quando i dischi erano molto più piccoli (decine di megabyte anziché centinaia di gigabyte), quindi il 5% non era poi così tanto. Fortunatamente può essere facilmente sintonizzato su una percentuale minore come dici tu, o impostato su un numero specifico di blocchi se usi tune2fsl' -ropzione invece di -m. In entrambi i casi si può dare un parametro da 0 a girare la prenotazione fuori completamente - non vorrei fare questo per /, /tmp, /vare così via, ma si potrebbe desiderare di un file system che agisce solo come memoria utente (ad esempio un file-globale share) o uno che contiene solo file di dimensioni fisse (come VM di dimensioni fisse) che cresceranno solo quando ne crei uno nuovo.


22

Il valore predefinito del 5% è pensato per le partizioni di sistema. Ad esempio, se lo spazio su disco si riempie, i registri di sistema ( /var/log) e la cassetta postale di root ( /var/mail/root) possono comunque ricevere informazioni importanti. Per una /homeo una partizione generale di archiviazione dei dati, non è necessario lasciare spazio per il root. Per esigenze speciali, è possibile modificare l'utente che ottiene lo spazio di emergenza ( tune2fs -u 1234).

C'è un altro motivo per non consentire il pieno di un filesystem ext [234], che è la frammentazione .

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.