it-swarm.it

Spazio riservato per root su un filesystem - perché?

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

tune2fs -m 1 /dev/sdXY

Ciò di cui sono curioso, tuttavia, è quale sia 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 costruito un archivio di 1 TB e non siamo riusciti a capire perché un df -h ci ha lasciato perdere il 5% della nostra capacità.

108
suitedupgeek

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 contro questo.

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

Se si imposta 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 semplicemente usando il filesystem per un archivio a lungo termine, dove i file non cambiano molto spesso (ad esempio un enorme negozio di mp3 o video), ovviamente non importa.

106
mattdm

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.

45
LawrenceC

Con i blocchi riservati ai tuoi 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 con cui lavorare quando gli utenti si lamentano che il disco è pieno o che i servizi iniziano a fallire perché il filesystem è 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 un lungo tempo, dal retro 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 l'opzione tune2fs Di -r Invece di -m. In entrambi i casi puoi dare un parametro di 0 per disattivare completamente la prenotazione - non lo farei per /, /tmp, /var E così via, ma tu potrebbe essere utile per un filesystem che agisce solo come memoria utente (diciamo una condivisione di file globale) o che contiene solo file di dimensioni fisse (come VM di dimensioni fisse) che cresceranno solo quando ne crei uno nuovo.

22
David Spillett

Il valore predefinito del 5% è pensato per le partizioni di sistema. Ad esempio, se lo spazio su disco si riempie, il sistema registra (/var/log) e la cassetta postale di root (/var/mail/root) può ancora ricevere informazioni importanti. Per un /home o partizione generale di archiviazione dei dati, non è necessario lasciare spazio per 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], ovvero frammentazione .