De implementatie mislukt: "Er is geen ruimte meer op het apparaat". df -h toont 35% gratis op /var. Niemand kijkt naar df -i: 100% inodes gebruikt in storage/framework/sessions — 4 miljoen bestanden van 100 bytes.
Inodes zijn het onzichtbare plafond van kleine dossiers.
Inodes begrijpen
Elk bestand, symlink, socket = 1 inode (vereenvoudigd). Creatie onmogelijk als inode-tabel vol is, zelfs met gratis GB.
df -i vóór elk “spatie”-incident.
Diagnose
voor d in /*; doe echo $(vind $d -xdev | wc -l) $d; done — langzaam maar onthullend.
Sneller: vind /var/www -xdev -type f | knip -d/ -f1-5 | lot | uniq -c | sorteer -n.
Klassieke weboorzaken
Sessiebestandsstuurprogramma, gecompileerde weergavecache, mislukte wachtrijtaken, tijdelijk zip-extract, logboeken met meerdere bestanden per aanvraag.
| Repareren | Actie |
|---|---|
| Sessies | Redis/databasestuurprogramma |
| Cache | TTL + pruim gepland |
| Wachtrij mislukt | Horizon/opruimklus |
| Uploadtemperatuur | cron tmpwatch |
Opruimen zonder breuk
Stop met schrijven (onderhoudsmodus), gericht opschonen, niet blind rm -rf bij actieve sessies.
Controleer de wettelijke bewaarplicht/audit voordat u de logboeken opschoont.
Architectuur
Afzonderlijke /var/cache of sessies op een speciaal volume. Sharding van hash-submappen (aa/bb/bestand). Bewaak inode% als schijf%.
Continue preventie
Waarschuwingsinode 85% als schijf 85%. Cron Plum-cache elke nacht met metrische verwijderde bestanden.
Sessies: Redis migreren vóór een inode-incident – dringende retrofit kost meer.
Vermijd miljoenen platte bestanden: hash-submappen ab/cd/ef123.
Containers: limiet logboekrotatie driver json-file max-size.
Ondersteuning voor gedeelde quota-inode-tickets: vraag het cijfer aan vóór het upgradeplan – soms gratis.
Migratiesessiebestand → Redis
Plan: tijdelijke dual-write-sessies, flip-configuratie, bestandssessies opschonen na maximaal 24 uur TTL.
Meting inode voor/na – proof fix.
Framework-cachevoorvoegsel: versiecachesleutel (v2_) voor massaal veilig opschonen.
Maildir duizenden bestanden: migratie naar DB of object voor bijlagen - inode fix tijdelijke opschoning, niet duurzaam.
Lokale cache van CI-artefact: opschoning van verouderde filialen - elke vertakking = duizenden bestanden.
Diagnostische hulpmiddelen
Interactieve ncdu om door miljoenen kleine bestanden te bladeren. Alleen 'debugfs'-expert.
E-mailwachtrij exim/qmail: elk berichtenbestand: verwijder de wachtrij als er een spamaanval binnenkomt.
Plan capaciteit: aantal inodes bij mkfs bij het opnieuw opbouwen van FS — mkfs.ext4 -N afstemming.
Operationele samenvatting
Uitgeputte inodes duiden meer op een ongeschikt ontwerp (bestandssessies, onbeperkte cache) dan op een gebrek aan GB-ruimte. df -i systematisch op “geen spatie over”. Migratie van Redis-sessies, plum-cache, sharding van hash-mappen.
Containers en gedeeld: inode-paneelquota - ondersteuningsticket vóór verzadiging.
Herstelplan van 48 uur
Dag 1: bevestig df -i, zoek de bovenste map, schakel indien nodig onderhoud in, verwijder de cache-veilige subset. Dag 2: Redis-sessies migreren, cron prune implementeren, inode alert 85% toevoegen. Week: cachestrategie refactor, hash-submappen, capaciteitsbeoordeling met hostondersteuning.
Interne communicatie: inode-incident ≠ schijf vol – duidelijke boodschap vermijdt slechte financiële actie “koop Go”.
Houd een gedateerd runbook bij, voor/na-statistieken en beoordeling na incidenten: cumulatieve discipline voorkomt paniek op vrijdagavond.
Houd een gedateerd runbook bij, voor/na-statistieken en beoordeling na incidenten: cumulatieve discipline voorkomt paniek op vrijdagavond.
Houd een gedateerd runbook bij, voor/na-statistieken en beoordeling na incidenten: cumulatieve discipline voorkomt paniek op vrijdagavond.
Houd een gedateerd runbook bij, voor/na-statistieken en beoordeling na incidenten: cumulatieve discipline voorkomt paniek op vrijdagavond.
Houd een gedateerd runbook bij, voor/na-statistieken en beoordeling na incidenten: cumulatieve discipline voorkomt paniek op vrijdagavond.
Houd een gedateerd runbook bij, voor/na-statistieken en beoordeling na incidenten: cumulatieve discipline voorkomt paniek op vrijdagavond.
Inodepreventie
Waarschuw 85%. Redis-sessiemigratie. Hash-submappen. Cron-pruim. Ondersteuning van Inode-quota vóór het upgradeplan is niet nodig.
Training: inode ≠ gratis GB. Sjabloonopslagsessies Redis-standaard.
Containers en cache
json-bestand logboek maximale grootte. Cachevoorvoegsel versie v2 voor veilig opschonen.
Houd een gedateerd runbook bij, voor/na-statistieken en beoordeling na incidenten: cumulatieve discipline voorkomt paniek op vrijdagavond.
Beslis en ga vooruit zonder blinde vlek
- Bevestig met
df -i— niet verwarren met schijf vol in GB; duidelijke boodschap aan de financiering. - Lokaliseer de defecte directory — cachesessies, thumbnails, gefragmenteerde logs, miljoenen kleine bestanden.
- Migreer sessies naar Redis — indien mogelijk vóór het incident; Een dringende renovatie kost meer.
- Hash-submappen —
ab/cd/ef123in plaats van miljoenen platte bestanden. - Waarschuwingsinode op 85% — als schijf 85%; cron pruim nachtelijk met metrisch.
Vraag het inode-quotum aan bij gedeelde ondersteuning voordat u gaat upgraden - vergelijk via de overzicht en de vergelijker.
Veelgestelde vragen
Verschil schijfruimte en inodes?
De schijf kan vrije GB's weergeven terwijl het bestandssysteem geen inodes meer heeft om een bestand te maken - wat gebruikelijk is bij miljoenen kleine cachebestanden of sessies.
Wat moet u dringend doen?
Bevestig df -i, identificeer de bovenste map, wis de veilige cache of migreer sessies naar Redis. Koop geen extra GB; het probleem is niet de blokcapaciteit.
Als uw cache één bestand per verzoek schrijft, komt de inode-cap vóór de schijflimiet.
