Upgrade der MinIO Community Edition auf AIStor Free

Diese Schritt-für-Schritt Anleitung baut direkt auf die vorherige „MinIO Community Edition Object Storage auf Ubuntu installieren“ auf und beschreibt das In-Place-Upgrade auf dem bestehenden Ubuntu 22.04 Lab-Server (minio.demo.lab).

MinIO Community Edition vs. AIStor Free

Technisch gesehen ist AIStor Free der direkte Nachfolger der Community Edition für Single-Node-Installationen. Alle existierenden Befehle, das S3-Protokoll, Buckets, Policies und Access Keys funktionieren weiterhin. Das gilt auch für die Zugriffe auf existierende Buckets von außen. Der größte und positivste Unterschied ist, dass die Web-Konsole wieder die notwendigen Admin-Funktionen (Benutzerverwaltung, Policies, Access Keys, Monitoring) enthält, die in der Community Edition entfernt worden waren.

Upgrade Hinweis

Das Upgrade ist nicht rückführbar. Laut der offiziellen MinIO-Dokumentation gilt: „Upgrading from MinIO Community Edition to AIStor is permanent and cannot be reversed. Once upgraded, the cluster cannot be reverted to MinIO Community Edition.“

Das liegt daran, dass beim ersten Start das interne Metadaten-Format in dem Ordner /opt/minio/data/.minio.sys aktualisiert wird. Die Struktur, in der Benutzer, Richtlinien und Bucket-Konfigurationen gespeichert werden, wird migriert. Das alte MinIO-Binary kann dieses aktualisierte Format nicht mehr lesen. Deswegen ist ein VM-Snapshot sehr hilfreich.

Was bleibt erhalten und was wird ersetzt?

Folgende Komponenten werden nicht verändert und funktionieren nach dem Upgrade wie vorher:

  • TLS-Zertifikate unter /etc/minio/certs/ (public.crt, private.key, CAs/)
  • mc Client (deine bestehende Version funktioniert weiterhin)
  • Alle Daten unter /opt/minio/data/ (Buckets, Objekte)
  • Benutzer, Policies und Access Keys (IAM-Metadaten)
  • mc-Aliase (~/.mc/config.json)

Es wird nur das MinIO-Server-Binary unter /usr/local/bin/minio durch die AIStor-Version ersetzt und eine Lizenzdatei hinterlegt.

Aktuelle Version prüfen

Dieser Schritt ist optional und dient eher der Dokumentation als realer Notwendigkeit. Installierte Version anzeigen:

minio --version

Erwartetes Ergebnis:

minio version RELEASE.2025-09-07T16-13-09Z 
Runtime: go1.24.6 linux/amd64
License: GNU AGPLv3 - https://www.gnu.org/licenses/agpl-3.0.html
Copyright: 2015-2025 MinIO, Inc.

Installierte Version der Management Console anzeigen:

mc --version

Erwartetes Ergebnis:

mc version RELEASE.2025-08-13T08-35-41Z
Runtime: go1.24.6 linux/amd64

Der folgende Befehl zeigt die allgemeine Systemübersicht: aktuelle Uptime, die genaue Version, die Netzwerkauslastung sowie die Belegung deiner Festplatten an:

mc admin info myminio

Erwartetes Ergebnis:

  minio.demo.lab:9000
   Uptime: 1 day
   Version: 2025-09-07T16:13:09Z
   Network: 1/1 OK
   Drives: 1/1 OK
   Pool: 1

+------+------------------------+----------------------+--------------+
| Pool | Drives Usage           | Erasure stripe size  | Erasure sets |
| 1st  | 17.3% (total: 46 GiB)  | 1                    | 1            |
+------+------------------------+----------------------+--------------+

Metadaten sichern

Die Konfiguration, Bucket-Metadaten und IAM-Daten (Benutzer, Policies, Access Keys) werden exportiert. Diese Schritte ist eine Vorsichtsmaßnahme, falls beim Upgrade etwas schiefgeht. AIStor wird diese Backup-Dateien nicht eingelesen, sondern einfach die bestehenden Daten weiterverwendet. Wie ober bereit erwähnt, ist die Konfigurationen (Benutzer, Policies, Access Keys, Bucket-Metadaten) in dem Ordner /opt/minio/data/.minio.sys/ gespeichert.

Die grundlegenden Server-Einstellungen in eine Textdatei exportieren.

mc admin config export myminio > minio-config-backup.txt

Die Konfiguration aller Buckets, inklusive ihrer speziellen Zugriffsrechte (Policies), Lebenszyklen (Lifecycle) und Quotas exportieren:

mc admin cluster bucket export myminio

Erwartetes Ergebnis:

mc: Bucket metadata successfully downloaded as myminio-bucket-metadata.zip

Die gesamte Identitätsverwaltung, also alle angelegten Benutzer, Service-Accounts, Gruppen und deren zugewiesene Berechtigungen sichern:

mc admin cluster iam export myminio

Erwartetes Ergebnis:

mc: IAM info successfully downloaded as myminio-iam-info.zip

Erwartetes Ergebnis: Es werden drei Dateien im aktuellen Verzeichnis abgelegt. In der produktiven Umgebung wäre es sinnvoll, diese an einem sicheren Ort aufzubewahren, für den Fall, dass der Server selbst ausfällt.

MinIO-Dienst stoppen

Der laufende minio-Dienst wird gestoppt, bevor das Binary ersetzt wird.

sudo systemctl stop minio
sudo systemctl status minio

Altes Binary sichern

Vorsichtshalber wird die alte Binary nicht gelöscht, sondern umbenannt, für den Fall, dass doch etwas schiefgeht 😉

sudo mv /usr/local/bin/minio /usr/local/bin/minio.community.bak

AIStor-Binary herunterladen und installieren

Das neue AIStor-Binary wird von der offiziellen Quelle heruntergeladen, die Berechtigung wird angepasst und die geladene Datei (wie man sieht, es ist immer noch „minio“) an dieselbe Stelle wie die MinIO Community Edition kopiert.

curl --progress-bar -L https://dl.min.io/aistor/minio/release/linux-amd64/minio -o minio
chmod +x minio
sudo mv minio /usr/local/bin/minio

Version prüfen:

minio --version

Erwartetes Ergebnis:

minio version RELEASE.2026-03-12T15-15-27Z
Runtime: go1.26.1 linux/amd64
License: MinIO AIStor License
Copyright: 2015-2026 MinIO, Inc.

Lizenzdatei hinterlegen

Zuerst muss man den Lizenzschlüssel beantragen: Request License Key

Die Schritte sind mehr als einfach: Vorname, Nachname, E-Mail-Adresse eintragen und die „MinIO AIStor Free Tier License Agreement“ zustimmen.

Die heruntergeladene Lizenzdatei wird auf den MinIO-Server kopiert und mit den richtigen Berechtigungen versehen.

sudo cp minio.license /opt/minio/minio.license 
sudo chown minio-user:minio-user /opt/minio/minio.license

Die Lizenz liegt nun als Datei auf dem Server und wird beim Service-Start eingelesen.

Konfiguration-Datei erstellen/anpassen

Im Gegensatz zu MinIO, die eine Datei /etc/systemd/system/minio.service für die Konfiguration beinhaltete, wird in AIStor die Konfiguration auf zwei Dateien aufgeteilt. Diese Trennung entspricht der Linux Best Practice und hat den Vorteil, dass man Konfigurationswerte anpassen kann, ohne die Systemd-Datei anfassen zu müssen. Der Befehl sudo systemctl daemon-reload“ entfällt in diesem Fall bei Änderungen der Variablen.

/etc/default/minio — enthält die Umgebungsvariablen (Credentials, Lizenzpfad, Datenverzeichnis). Das wäre die „Was“-Konfiguration.

/etc/systemd/system/minio.service — enthält nur noch den Dienst-Start (ExecStart, User, Ports, Certs). Das wäre die „Wie“-Konfiguration. Die Service-Datei liest die Variablen über EnvironmentFile=/etc/default/minio ein.

Environment-Datei erstellen

AIStor liest die Konfiguration aus /etc/default/minio. Diese Datei ersetzt einige Environment-Zeilen aus der Systemd-Service-Datei.

sudo nano /etc/default/minio

Inhalt der Datei:

# AIStor Free Lizenz
MINIO_LICENSE="/opt/minio/minio.license"

# Root-Zugangsdaten (haben sich in unserem Fall nicht geändert)
MINIO_ROOT_USER=admin
MINIO_ROOT_PASSWORD=Test12345!

# Datenverzeichnis (Single-Node Single-Drive)
MINIO_VOLUMES="/opt/minio/data"

Systemd-Service-Datei anpassen

In der Service-Datei werden die Environment-Zeilen entfernt, da diese jetzt in /etc/default/minio stehen. Der EnvironmentFile-Eintrag wird hinzugefügt.

sudo nano /etc/systemd/system/minio.service

So sieht die angepasste Service-Datei aus:

[Unit]
Description=MinIO AIStor Object Storage
Wants=network-online.target
After=network-online.target

[Service]
User=minio-user
Group=minio-user
EnvironmentFile=/etc/default/minio
ExecStart=/usr/local/bin/minio server ${MINIO_VOLUMES} \
  --console-address ":9001" \
  --address ":9000" \
  --certs-dir /etc/minio/certs
Restart=always
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target

Dienst neu starten

Nach dem Reload der Systemd-Konfiguration wird MinIO AIStor gestartet.

sudo systemctl daemon-reload
sudo systemctl restart minio
sudo systemctl status minio

Erwartetes Ergebnis: „MinIO Enterprise AIStor Server“ statt „MinIO Object Storage Server“.

minio.service - MinIO AIStor Object Storage
   Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2026-03-15 12:48:02 UTC; 7s ago

So können die Logs überprüft werden:  sudo journalctl -u minio –no-pager -n 10

Upgrade prüfen

Der schnellste Test ist der Start der Webkonsole: https://minio.demo.lab:9001

Die Web-Konsole zeigt jetzt deutlich mehr als bei der Community Edition: Summary, Encryption, Quota, Lifecycle, Notifications, Replication, Tags. Das sind genau die Admin-Features, die vorher fehlten.

Und nur aus reinem Interesse, könnte man die Konfiguration auch mit mc-Befehlen überprüfen:

# Server-Info und Version anzeigen lassen:
mc admin info myminio

# Sind die Buckets vorhanden?
mc ls myminio

# Sind Benutzer und Policies vorhanden?
mc admin user list myminio
mc admin policy list myminio

# Zugriffskontrolle testen (als bonn-user):
mc ls testaccount/projekt-bonn
mc ls testaccount/projekt-koeln

# rclone vom Windows-Client testen:
.\rclone.exe ls myminio:projekt-bonn

Installierte Version anzeigen:

minio --version

Erwartetes Ergebnis:

minio version RELEASE.2026-03-12T15-15-27Z
Runtime: go1.26.1 linux/amd64
License: MinIO AIStor License
Copyright: 2015-2026 MinIO, Inc.

Service Accounts / Access Keys und Bucket-Policies

Das Hauptziel der vorherigen Installation ist eigentlich die Notwendigkeit gewesen zu verifizieren, wie man eine Verbindung zum S3 Bucket per „Token“ initiiert.

Die AIStor ermöglicht mittlerweile die Erstellung von Service Accounts / Access Keys wie bisher „mc admin accesskey create“ und auch direkt auf der Konsole.

Die gleiche Situation betrifft auch die Erstellung der Policies. Alles, was man bisher mühsam über mc machen musste, geht jetzt auch über die Konsole.

Anstelle des Fazits…

Auch wenn die Einstellung des Projekts aus Sicht der Open-Source-Community ein schwerer Schlag ist, wäre sie aus Sicht der Kleinkunden, die mit Single-Node zufrieden sind, eine Verbesserung.

Die kostenfreie Lizenz erlaubt die Nutzung ausschließlich im Standalone-Modus (Single-Node), also ohne verteiltes Clustering oder Hochverfügbarkeit. Innerhalb dieser Einschränkung ist aber jede Nutzung erlaubt, sei es eine kommerzielle Produktionsumgebung oder Homelabs, Forschung, Bildung und Backups.

Ja, AIStor Free ist keine Open-Source-Software mehr. Die Software darf nicht verändert, dekompiliert, weiterverteilt oder unterlizenziert werden. MinIO behält alle Eigentumsrechte, und die Lizenz kann jederzeit geändert oder widerrufen werden. Außerdem gibt es keine Garantie oder Gewährleistung. Was die Support-Frage betrifft, so bietet AIStor Free Self-Service-Support über die Community, Slack und die Dokumentation.

Und werde ich denn schon morgen nach einer Alternative suchen oder bereits gefundene (Garage) evaluieren? Nein, aber „übermorgen“ vielleicht…

 


Optional: mc Client aktualisieren

Der bestehende mc Client funktioniert weiterhin, kann aber auf die AIStor-Version aktualisiert werden.

wget https://dl.min.io/aistor/mc/release/linux-amd64/mc -O mc-new
chmod +x mc-new
sudo mv mc-new /usr/local/bin/mc
mc –version

Erwartetes Ergebnis:

mc version RELEASE.2026-03-12T04-18-55Z
Runtime: go1.26.1 linux/amd64
Copyright (c) 2015-2026 MinIO, Inc.
MinIO Enterprise License