it-swarm-eu.dev

Vyhrazený prostor pro root v souborovém systému - proč?

Chápu, že ve výchozím nastavení budou nově vytvořené souborové systémy vytvořeny s 5% prostoru vyhrazeného pro root. Vím také, že můžete definovaný prostor změnit pomocí:

tune2fs -m 1 /dev/sdXY

Zajímalo by mě však, jaký je skutečný účel tohoto vyhrazeného prostoru. Slouží praktickému účelu, který by si za určitých okolností zasloužil více než 5% prostoru?

Důvod, proč jsem narazil na tuto otázku, je ten, že jsme nedávno postavili 1TB filestore a nemohli jsme úplně zjistit, proč nám df -h nechal chybět 5% naší kapacity.

108
suitedupgeek

Jedním z důvodů je úspora místa pro důležité kořenové procesy (a možné záchranné akce).

Ale je tu další. Ext3 je docela dobrý v tom, jak se vyhnout fragmentaci souborového systému, ale jakmile se dostanete nad asi 95% plného, ​​toto chování spadne z útesu a najednou se výkon souborového systému stane nepořádkem. Takže ponechání 5% rezervovaných vám poskytne vyrovnávací paměť proti tomuto.

Ext4 by v tom měl být lepší, jak vysvětleno vývojářem/guru systému Linux Theodore Ts'o :

Pokud nastavíte počet rezervovaných bloků na nulu, nebude to mít velký vliv na výkon, s výjimkou případů, kdy běžíte po dlouhou dobu (se spoustou vytváření a mazání souborů), zatímco systém souborů je téměř plný (tj. Řekněme nad 95%), v tomto okamžiku budete vystaveni problémům fragmentace. Multi-block alokátor Ext4 je mnohem odolnější vůči fragmentaci, protože se snaží mnohem těžší najít sousedící bloky, takže i když nepovolíte další funkce ext4, uvidíte lepší výsledky jednoduše připojením souborového systému ext3 pomocí ext4 před souborový systém dostane se naplno.

Pokud právě používáte souborový systém pro dlouhodobý archiv, kde se soubory příliš nemění (tj. Obrovský obchod s mp3 nebo videem), na tom samozřejmě nebude záležet.

106
mattdm

Pokud ostatním povolíte přihlášení k systému, například pomocí ssh, pokud rezervujete těchto 5% bloků, zajistí to, že externí uživatelé nemohou disk zaplnit. I když nedovolíte ostatním přihlašovat se do systému, vyhrazené bloky zabrání programům, které nebudou spuštěny jako root, naplnit váš disk.

45
LawrenceC

S rezervovanými bloky nemohou vaši uživatelé a služby, které fungují spíše jako konkrétní uživatelé, než aby fungovaly jako root, nemohou zaplnit souborový systém a potenciálně narušit další věci, které je třeba zapisovat do uvedeného souborového systému - i když služby, které běží jako root, ho stále dokážou úplně vytvořit plné samozřejmě.

Také vám poskytuje prostor pro práci, když si uživatelé stěžují, že disk je plný, nebo když služby začnou selhávat, protože souborový systém je plný. Například byste mohli některé soubory archivovat do archivů Zip/gz/7Zip před jejich odstraněním (ačkoli pokud byl souborový systém zcela plný, je pravděpodobné, že máte k dispozici další souborový systém, který byste místo toho mohli vytvořit archivní soubor).

5% je výchozí hodnota dlouhá čas, od doby, kdy byly disky mnohem menší (desítky megabajtů spíše než stovky gigabajtů), takže 5% nebylo až tak moc. Naštěstí to lze snadno naladit na menší procento, jak říkáte, nebo nastavit na určitý počet bloků, pokud použijete tune2fs 's -r namísto -m. V obou případech můžete zadat parametr 0 pro úplné vypnutí rezervace - nedělal bych to pro /, /tmp, /var a tak dále, ale možná budete chtít pro souborový systém, který funguje pouze jako uživatelské úložiště (řekněme globální sdílení souborů), nebo takový, který uchovává pouze soubory s pevnou velikostí (jako VM s pevnou velikostí), které se budou rozvíjet pouze při vytváření nový.

22
David Spillett

Výchozí hodnota 5% je určena pro systémové oddíly. Pokud se například zaplní místo na disku, systém se přihlásí (/var/log) a rootova poštovní schránka (/var/mail/root) může stále dostávat důležité informace. Pro /home nebo obecný oddíl pro ukládání dat, není třeba ponechat žádný prostor pro root. Pro zvláštní potřeby můžete změnit uživatele, který získá pohotovostní prostor (tune2fs -u 1234).

Existuje další důvod, proč neumožnit plný souborový systém ext [234], což je fragmentace .