Kennisbank › Objectopslag › Wat MinIO doet
objectopslag starter 08 September 2026

Wat MinIO doet

MinIO is objectopslag die de S3-API van Amazon spreekt, maar op jouw eigen hardware draait. Dit artikel legt uit wat MinIO is, hoe je het opzet en waarom je

MinIO is objectopslag die de S3-API van Amazon spreekt, maar op jouw eigen hardware draait. Dit artikel legt uit wat MinIO is, hoe je het opzet en waarom je het zou willen — voor wie geen zin heeft in een cloudprovider die zijn prijzen verhoogt zodra je data er eenmaal staat.

Vereisten

  • Een Linux-server (Ubuntu 22.04 of recenter, Debian 12, of een andere distro met systemd)
  • MinIO Server `RELEASE.2025-04-22T22-12-26Z` of nieuwer
  • MinIO Client (`mc`) — los binary, geen package manager nodig
  • Een vrije poort (standaard `9000` voor de API, `9001` voor de webinterface)
  • Root-toegang of sudo

Wat MinIO doet

MinIO slaat gegevens op als objecten, niet als bestanden in mappen. Elk object heeft een unieke identifier, metadata en de data zelf. Dat model schaalt horizontaal: wil je meer ruimte, dan voeg je een node toe in plaats van een disk te vervangen.

De kern is S3-compatibiliteit. Omdat MinIO dezelfde API spreekt als Amazon S3, werken bestaande S3-tools, SDK's en scripts zonder aanpassingen. Dat is de reden dat MinIO in 2025 door miljoenen gebruikers draait — van een ontwikkelaar met één disk tot clusters die AI/ML-workloads voeden.

De oprichters — Anand Babu Periasamy, Garima Kapoor en Harshavardhana — lanceerden het project in november 2014 vanuit Palo Alto. Het bedrijf, MinIO, Inc., zit inmiddels in Redwood City en heeft investeringen opgehaald bij onder meer Intel Capital, SoftBank Vision Fund 2 en Dell Technologies Capital. Die namen doen er voor jou weinig toe, behalve dit: MinIO wordt niet van de ene op de andere dag gestopt.

Waarom niet gewoon S3 gebruiken

De vraag is legitiem. Amazon S3 is een uitstekend product met een extreem lage prijs per gigabyte. Wat niet laag is, zijn de egress-kosten — wat je betaalt om je data er weer uit te krijgen. En zodra je data in een bucket staat, is weggaan een operatie die je liever niet doet.

MinIO draait op hardware die jij controleert. Geen vendor lock-in, geen datacenter dat bepaalt wat je opslag kost. Het nadeel: jij bent verantwoordelijk voor backups, updates en beschikbaarheid. Zelf hosten klinkt prachtig, tot er iets omvalt op zondagavond half twaalf. Dan ben je geen klant die op de helpdesk wacht. Dan bén je de helpdesk.

Stap 1: MinIO Server installeren

Download het binary en zet het op een plek in je `PATH`. MinIO levert geen package repository voor alle distro's, dus je haalt het rechtstreeks van de downloads pagina.

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/

Controleer of de binary werkt:

minio --version

Je zou een versienummer moeten zien dat begint met `RELEASE.2025-`. Staat er niks, dan heb je het verkeerde binary gedownload of ontbreekt er een dependency.

Stap 2: Opslagdirectory aanmaken

MinIO slaat objecten op in een directory die je bij het starten opgeeft. Maak een dedicated directory aan, niet je home directory:

sudo mkdir -p /data/minio
sudo useradd -r minio-user -s /sbin/nologin
sudo chown -R minio-user:minio-user /data/minio

De dedicated user is geen formaliteit. MinIO draait als root wanneer je het niet tegenhoudt, en dat wil je niet voor een service die over het netwerk bereikbaar is.

Stap 3: Server starten

De eenvoudigste manier om MinIO te starten is direct vanaf de commandoregel:

minio server /data/minio --address ":9000" --console-address ":9001"

De eerste keer genereert MinIO een root-gebruiker en -wachtwoord en print die naar de terminal. Noteer ze — je hebt ze nodig voor de webinterface en de client.

Voor een productieomgeving wil je dit als systemd-service draaien. Maak `/etc/systemd/system/minio.service` aan met deze inhoud:

[Unit]
Description=MinIO Object Storage
After=network.target</p><p>[Service]
User=minio-user
Group=minio-user
ExecStart=/usr/local/bin/minio server /data/minio --address ":9000" --console-address ":9001"
Restart=always
LimitNOFILE=65536</p><p>[Install]
WantedBy=multi-user.target

Daarna activeer je de service:

sudo systemctl daemon-reload
sudo systemctl enable minio
sudo systemctl start minio

Stap 4: Client installeren

De MinIO Client (`mc`) is een apart binary. Het is een commandoregelinterface die niet alleen met MinIO werkt, maar met elke S3-compatibele service — AWS S3, Cloudflare R2, noem maar op.

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/

Controleer:

mc --version

Stap 5: Verbinding configureren

Voordat `mc` iets kan doen, moet het weten waar je server staat en met welke credentials. Het `alias set`-commando slaat die verbinding op in het configuratiebestand van `mc`:

mc alias set mijnminio http://localhost:9000 MIJN_ROOT_GEBRUIKER MIJN_ROOT_WACHTWOORD

Vervang `MIJN_ROOT_GEBRUIKER` en `MIJN_ROOT_WACHTWOORD` door de credentials die MinIO bij de eerste start genereerde. Staat de server op een andere machine, vervang dan `localhost` door het IP-adres of de hostnaam.

Stap 6: Bucket aanmaken en testen

Een bucket is de container waarin objecten leven. Maak er een aan met `mc`:

mc mb mijnminio/testbucket

Upload een bestand:

mc cp /etc/hostname mijnminio/testbucket/

Lijst de inhoud van de bucket:

mc ls mijnminio/testbucket

Je zou `hostname` in de output moeten zien. Dat betekent dat de hele keten werkt: client → API → server → disk.

Stap 7: Toegang via de webinterface

MinIO's webinterface draait op poort `9001`. Open in je browser:

http://localhost:9001

Log in met dezelfde root-credentials. De interface biedt bucketbeheer, toegangsbeleid en een objectbrowser. Voor dagelijks beheer is `mc` sneller, maar de webinterface is handig voor wie geen terminal bij de hand heeft.

Stap 8: Toegangsbeleid instellen (optioneel)

Root-credentials voor elke applicatie delen is een slecht idee. Maak een aparte gebruiker aan met beperkte rechten:

mc admin user add mijnminio appuser eenlangwachtwoord
mc admin policy attach mijnminio readwrite --user appuser

Het beleid `readwrite` geeft volledige toegang tot alle buckets. Wil je een gebruiker die alleen bij één bucket kan, dan moet je een custom policy schrijven. Dat kost tijd, maar het voorkomt dat een gecompromitteerde applicatie je hele opslag kan wissen.

Verificatie

Controleer of alles werkt met een paar commando's:

mc ls mijnminio
mc admin info mijnminio

`mc ls` toont je buckets. `mc admin info` toont de status van de server — hoeveel disks er actief zijn, hoeveel ruimte er vrij is, en of er problemen zijn. Beide commando's moeten zonder foutmelding terugkomen.

Veelgestelde problemen

MinIO start niet en meldt een poortconflict. Poort `9000` of `9001` is al bezet. Check met `sudo ss -tulpn | grep 9000` welk proces de poort gebruikt, en kies een andere poort in je systemd-unit of commandoregel.

`mc` kan geen verbinding maken met de server. De server luistert mogelijk alleen op `localhost`. Controleer of MinIO draait met `sudo systemctl status minio`, en of de firewall poort `9000` openzet: `sudo ufw allow 9000`. Staat MinIO op een andere machine, controleer dan of de server op alle interfaces luistert — het `--address ":9000"`-vlag doet dat standaard.

Root-wachtwoord kwijtgeraakt. MinIO slaat credentials op in de configdirectory die je bij het starten opgaf. Stop de service, verplaats de configdirectory en start opnieuw — MinIO genereert dan nieuwe credentials. Je bestaande objecten blijven behouden, maar alle toegangsbeleid die je had ingesteld vervalt.

Waar MinIO niet voor is

MinIO is geen vervanging van je bestandssysteem. Het is geen NFS- of SMB-share waar je applicaties direct op kunnen schrijven. Objectopslag heeft een andere API, andere latency-eigenschappen en een ander consistentiemodel.

Wat MinIO wél is: een S3-compatibele opslaglaag voor applicaties die daarvoor zijn gebouwd. Ente server gebruikt het om versleutelde foto's op te slaan. Docker Buildx kan er buildcaches in kwijt voor snellere CI/CD-pipelines. Grafische clients zoals Crabdrop en S3Drive geven je een bestandsbeheerder bovenop de S3-API.

De grens is duidelijk. Voor bestaande S3-workloads die je naar eigen hardware wilt halen, is MinIO een van de weinige volwassen open source opties. Voor wie gewoon een map wil delen over het netwerk, zijn er betere tools.

De vraag is niet of MinIO goed is. De vraag is of je de operatie eromheen wilt draaien.

← Terug naar kennisbank
← Terug naar kennisbank