Cloud VPS 9 min lezen Door

VPS-schijf vol: besliskaart voordat je bestanden verwijdert

Een volle VPS-schijf vraagt om diagnose. Met deze besliskaart onderscheid je ruimte, inodes en open bestanden, met stopregels en een incidentbriefje.

Laptop, compacte server en leeg notitieblok op een bureau tijdens serverdiagnose

Is de schijf van je VPS vol? Controleer eerst het bestandssysteem waarop de fout ontstaat met df -h en df -i. Je kunt vrije gigabytes hebben terwijl er geen inodes meer beschikbaar zijn. Ook kan een verwijderd bestand ruimte blijven bezetten zolang een proces het openhoudt. Bestanden verwijderen voordat je dit onderscheid maakt, kan gegevens kosten zonder de storing op te lossen.

Deze besliskaart helpt je bepalen wat je zelf nog kunt onderzoeken en wanneer je het overdraagt. De commando's zijn bedoeld voor een Linux-server met GNU-tools. Ze inspecteren de situatie; verderop staan bewust geen algemene verwijdercommando's. Je hoeft als ondernemer geen databasebeheerder te worden om een bruikbare storingsmelding te maken.

Besliskaart: welke route past bij jouw fout?

Begin bij het pad waar de mislukte handeling schrijft. Een fout bij het opslaan van een upload kan een ander bestandssysteem raken dan een fout bij het maken van een back-up. De routes hieronder kunnen samen voorkomen.

Wat je vaststeltVolgende controleWat je nog niet doetWanneer overdragen
Weinig of geen vrije ruimte bij het betrokken pad in df -hZoek met du de grote mappen binnen dat bestandssysteem.Een onbekend groot bestand verwijderen omdat het veel ruimte oplevert.De grootste map bevat databases, mail, uploads of de enige back-up.
Vrije ruimte, maar geen vrije inodes in df -iOnderzoek welke mappen veel bestanden bevatten.Eén groot bestand verwijderen en aannemen dat de bestandsteller daarmee voldoende daalt.Je weet niet welke toepassing de vele kleine bestanden aanmaakt.
df en du lijken elkaar tegen te spreken, of de verwachte mount ontbreektControleer hetzelfde pad, je leesrechten en de werkelijk aangekoppelde opslag.Een mount loskoppelen of opslag uitbreiden om het verschil te verbergen.Data kan onder een mount verborgen liggen of de opslagindeling is onduidelijk.
Een verwijderd bestand staat nog open bij een procesIdentificeer de dienst en het bestand met lsof +L1.De hele VPS herstarten of een bestandsdescriptor leegmaken.De dienst verwerkt transacties of een gecontroleerde herstart is niet voorbereid.

Eerst meten op de plek waar schrijven mislukt

Noteer de foutmelding en het tijdstip voordat je iets wijzigt. Controleer dat je op de juiste server zit. Heb je geen beheerrechten, vraag de beheerder om deze metingen. Een extra SSH-sessie is geen garantie dat je een vastgelopen server nog kunt bereiken.

df -h
df -i

df -h toont ruimtegebruik en de mountpoints. df -i toont inodegebruik. Een inode bevat bestandsinformatie; veel kleine bestanden kunnen de beschikbare inodes uitputten zonder alle opslagruimte te gebruiken. Dat hangt af van het bestandssysteem. Kijk naar de regels die bij jouw fout horen, niet naar één totaalpercentage voor de server.

Je kunt een bestaand pad meegeven om het bijbehorende bestandssysteem op te vragen. Schrijft de toepassing naar /var/lib, dan helpt deze controle:

df -h /var/lib
df -i /var/lib

Vervang dit pad door de echte map. Gebruik de bestaande bovenliggende map als het bestand dat je wilt opslaan nog niet bestaat. Als een back-upschijf niet is aangekoppeld, kan een taak ongemerkt op de rootschijf schrijven. Hetzelfde mappad betekent dus niet altijd dezelfde opslag.

Zoek grote mappen zonder meteen op te ruimen

Onderzoek het mountpoint dat uit je meting komt. Het volgende voorbeeld gaat uit van een volle rootschijf. Is /var een apart bestandssysteem en juist dat vol, begin dan daar.

sudo du -x -h --max-depth=1 /

-x houdt de zoekactie binnen hetzelfde bestandssysteem. --max-depth=1 beperkt de getoonde resultaten tot één niveau; de onderliggende bestanden worden nog wel doorlopen. Een grote boom kan daarom flink wat schijf-I/O vragen. Stop de scan met Ctrl+C als die de storing verergert en overleg over een smaller zoekpad.

Lees de foutmeldingen mee. Bij Permission denied is de telling onvolledig. Verberg die meldingen niet om een net overzicht te krijgen. Heb je voldoende rechten en blijkt /var de grote map, onderzoek dan één niveau verder:

sudo du -x -h --max-depth=1 /var

Een grote map is een aanwijzing, geen verwijderadvies. Een database kan zowel gewone data als bestanden voor herstel bevatten. Een mailwachtrij bevat mogelijk nog af te leveren berichten. Een lokale back-up kan de laatste bruikbare kopie zijn. Bepaal eerst wie eigenaar is van de gegevens en hoe de toepassing ze beheert.

Veel kleine bestanden: tel inodes in plaats van gigabytes

Bij inode-uitputting kun je met GNU du zoeken naar mappen met veel bestanden en submappen. Ook deze scan kan belastend zijn:

sudo du --inodes -x --max-depth=1 /var

Dit voorbeeld past alleen als /var op het betrokken bestandssysteem staat. Heeft jouw versie deze optie niet, laat een beheerder een passende telling doen. Cachebestanden, sessies en wachtrijen vragen elk hun eigen bewaarbeleid. Een leeftijd van een paar dagen maakt een bestand niet automatisch overbodig.

Een verschil tussen df en du vraagt om uitleg

df rapporteert het bestandssysteem; du doorloopt bereikbare bestanden en mappen. Verwacht geen exact gelijke uitkomst. Rechten, veranderende bestanden en de manier waarop het bestandssysteem opslag bijhoudt kunnen verschillen veroorzaken. Vergelijk eerst dezelfde opslag en neem metingen kort na elkaar.

Blijft het verschil groot, onderzoek dan ook bestanden die zijn verwijderd maar nog openstaan:

sudo lsof +L1

Als lsof beschikbaar is, selecteert +L1 open bestanden waarvan de linktelling lager dan één is. De uitvoer kan gevoelige paden tonen. Deel die alleen via een passende supportroute. Zonder voldoende rechten of toegang tot de betrokken processen kan het overzicht onvolledig zijn.

Een verwijderde bestandsnaam is uit de map verdwenen, maar de inhoud kan blijven bestaan zolang een proces die via een open bestandsdescriptor of geheugenmapping gebruikt. Identificeer eerst de dienst. Soms kan die zijn logbestand gecontroleerd opnieuw openen; soms is een geplande herstart nodig. Welke actie klopt, hangt van de dienst af. Een blinde reboot onderbreekt ook processen die niets met de volle schijf te maken hebben.

Vind je geen verklaring, laat dan de mountindeling en eventuele verborgen data onderzoeken. Ga tijdens een productiestoring niet zelf mountpoints verplaatsen of een bestandssysteem opnieuw aanmaken.

Docker: controleer de loginstelling van de echte container

Draait Docker op je VPS, dan kunnen images, volumes en containerlogs ruimte innemen. Docker geeft met docker system df een eigen gebruiksoverzicht. Beschouw dat niet als een volledige telling van alle hostlogs of van het bestandssysteem.

docker info --format '{{.LoggingDriver}}'
docker inspect --format '{{json .HostConfig.LogConfig}}' mijn-container

Vervang mijn-container door de echte containernaam. Gebruik alleen geautoriseerde toegang tot Docker. Het eerste commando toont de daemonstandaard; het tweede de logconfiguratie die bij deze container is vastgelegd. Die kunnen verschillen.

De standaarddriver json-file heeft zonder ingestelde begrenzing geen automatische logrotatie. Docker beveelt voor veel andere situaties de local-driver aan, die standaard roteert. De keuze moet wel passen bij je bestaande logverwerking en bewaarplicht.

Een nieuwe daemonstandaard verandert bestaande containers niet. Om hun logconfiguratie te wijzigen moet je ze opnieuw aanmaken met de gewenste opties. Bereid dat per dienst voor: waar staat de persistente data, is de configuratie beschikbaar, welke back-up kun je herstellen en welke onderbreking is toegestaan? Kopieer geen algemene recreatieopdracht naar je hele productiestack.

Docker waarschuwt dat de bestanden van de json-file-driver uitsluitend door de daemon beheerd moeten worden. Ga die logbestanden niet handmatig leegmaken. Gebruik ook docker system prune --volumes niet als algemene noodoplossing: volumes kunnen gegevens bevatten die je nog nodig hebt.

Stopregels voordat een kleine storing dataverlies wordt

  • Verwijder geen databasebestanden, Docker-volumes of onderdelen van /var/lib/docker omdat hun naam je niets zegt.
  • Wis niet alle logs. Je kunt de aanwijzingen voor de oorzaak of een beveiligingsincident verliezen.
  • Schrijf een nieuwe lokale back-up niet naar hetzelfde volle bestandssysteem. Controleer eerst bestemming, vrije ruimte en consistentie van de gegevens.
  • Start een import, betaaltaak of herstelactie niet opnieuw zonder te controleren of dubbele verwerking mogelijk is.
  • Laat wijzigingen aan opslag, mounts en diensten over aan iemand die de omgeving en terugdraaimethode kent als je die zelf niet kunt beoordelen.

Het incidentbriefje voor je beheerder

Dit is een invulhulp voor dit artikel, geen klantverslag of vast PC Patrol-protocol. Je kunt hem gebruiken om een hulpvraag concreet te maken. Stuur geen wachtwoorden, tokens of volledige klantgegevens mee.

  • Server of omgeving: [herkenbare naam, via je veilige supportroute]
  • Eerste fout en tijdstip met tijdzone: [letterlijke melding]
  • Impact: [bijvoorbeeld uploads, checkout, database of back-up]
  • Betrokken schrijfpad en mountpoint: [pad en uitkomst van de controle]
  • Vrije ruimte en vrije inodes: [relevante regels uit df]
  • Grootste onderzochte map en leesfouten: [uitkomst du, of niet onderzocht]
  • Open-verwijderd bestand of containerconfiguratie: [bevinding, of onbekend]
  • Laatste wijziging en al uitgevoerde acties: [ook mislukte acties]
  • Beschikbare back-up en laatste gecontroleerde herstelmogelijkheid: [of onbekend]

Herstel betekent ook de toepassing opnieuw controleren

Controleer na een gerichte herstelactie opnieuw vrije ruimte én inodes op hetzelfde bestandssysteem. Test daarna de handeling die mislukte, met veilige testgegevens. Een bereikbare homepage bewijst niet dat uploads, databasewrites of een nachtelijke taak weer werken.

Leg de oorzaak vast en bepaal wie retentie en groei bewaakt. Onze uitleg over servermonitoring met Prometheus en Grafana gaat over die preventieve laag. Meer opslag kan passen bij echte datagroei, maar begrenst geen uit de hand gelopen log en herstelt geen verkeerde mount.

Zelf beheren of hulp bij serverbeheer

PC Patrol werkt vanuit Someren en bestaat sinds 2010. Je kunt bij ons een Cloud VPS met NVMe-opslag en root-toegang kiezen in een Duits datacenter. Bij self-managed zorg je zelf voor het beheer van je server en software.

Wil je updates, beveiliging en serverbewaking overdragen, bekijk dan Managed Cloud en de beheerniveaus. Root-toegang blijft ook op de beheerde niveaus beschikbaar. Back-ups zijn optioneel. Bespreek bij eigen Docker-software vooraf welke onderdelen onder het beheer vallen; serverbeheer betekent niet automatisch dat iedere eigen toepassing wordt onderhouden.

Kom je niet veilig verder?

Bespreek je volle VPS-schijf met PC Patrol en gebruik het incidentbriefje om de situatie toe te lichten. Voor een nieuwe server vind je de configuraties en bestelmogelijkheden op onze Cloud VPS-pagina. Kies eerst wie het beheer doet en beoordeel daarna of meer capaciteit nodig is.

Technische bronnen

De uitleg is gebaseerd op de documentatie van GNU df, GNU du, de POSIX-specificatie voor unlink en de lsof-handleiding. Voor Docker zijn de loggingconfiguratie, json-file-waarschuwingen en pruningdocumentatie geraadpleegd. Gecontroleerd op 13 oktober 2026.

Hulp nodig bij je eigen situatie?

Zelf hosten, zonder het serverbeheer erbij?

Een Cloud VPS met root-toegang, NVMe-opslag en AMD EPYC. Zelf inrichten als je dat wilt, of het beheer aan ons overlaten.

Vanaf € 8,78 p/m, excl. btw

Bekijk Cloud VPS 085 130 8931