Wie installiere ich MinIO Object Storage Server unter Debian 11

Minio ist ein beliebter, in Go geschriebener, selbst gehosteter und mit Amazon S3 kompatibler Objektspeicher-Server. Er ist eine sehr nützliche Alternative zu AWS S3, wenn du mehr Kontrolle über deinen Objektspeicher-Server brauchst. Mit ihm können wir Fotos, Videos, Logdateien, Backups und Container/VM-Images speichern. Er bietet einen Kommandozeilen-Client, eine Browser-Schnittstelle und unterstützt auch AMQP. Du kannst Minio im großen Maßstab für die kontinuierliche Datenreplikation einsetzen.

In diesem Artikel zeige ich dir, wie du den Minio-Server unter Debian 11 installierst.

Voraussetzungen

  • Ein Server, auf dem Debian 11 läuft.
  • Ein Root-Passwort ist auf dem Server eingerichtet.

Minio Server installieren

Lade zunächst die neueste Version von Minio Binary mit dem folgenden Befehl herunter:

wget https://dl.min.io/server/minio/release/linux-amd64/minio

Erteile die Ausführungserlaubnis und verschiebe die Minio-Binärdatei in den Systempfad:

chmod +x minio
mv minio /usr/local/bin/

Als Nächstes erstellst du mit dem folgenden Befehl einen eigenen Benutzer für Minio:

useradd -r minio -s /sbin/nologin

Als Nächstes änderst du den Eigentümer der Minio-Binärdatei in den Benutzer minio:

chown minio:minio /usr/local/bin/minio

Als Nächstes überprüfst du die installierte Version von Minio mit dem folgenden Befehl:

minio --version

Du erhältst die folgende Ausgabe:

minio version RELEASE.2022-02-26T02-54-46Z

Eine Partition für Minio-Speicher erstellen

Als Nächstes musst du eine GPT-Partition auf einer separaten Festplatte erstellen. Liste zunächst alle angeschlossenen Festplatten mit dem folgenden Befehl auf:

fdisk -l

Du solltest alle angeschlossenen Festplatten in der folgenden Ausgabe sehen:

Disk /dev/sda: 50 GiB, 53687091200 bytes, 104857600 sectors
Disk model: QEMU HARDDISK   
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x7d36ef95

Device     Boot Start       End   Sectors Size Id Type
/dev/sda1        2048 104855552 104853505  50G 83 Linux


Disk /dev/sdb: 50 GiB, 53687091200 bytes, 104857600 sectors
Disk model: Volume          
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Als Nächstes erstellst du eine GPT-Partition auf der Festplatte /dev/sdb mit dem folgenden Befehl:

parted -s -a optimal -- /dev/sdb mklabel gpt
parted -s -a optimal -- /dev/sdb mkpart primary 0% 100%
parted -s -- /dev/sdb align-check optimal 1

Anschließend formatierst du die Partition mit dem folgenden Befehl:

mkfs.ext4 /dev/sdb1

Du erhältst die folgende Ausgabe:

mke2fs 1.46.2 (28-Feb-2021)
Discarding device blocks: done                            
Creating filesystem with 13106688 4k blocks and 3276800 inodes
Filesystem UUID: bd18a11d-a9d9-44a2-a381-f30ba0798661
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
	4096000, 7962624, 11239424

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (65536 blocks): done
Writing superblocks and filesystem accounting information: done   

Als Nächstes erstellst du einen Einhängepunkt für die Minio-Festplatte.

mkdir /mnt/minio

Füge den Eintrag in der Datei /etc/fstab hinzu, um die Partition in den Einhängepunkt einzuhängen:

nano /etc/fstab

Füge die folgende Zeile hinzu:

/dev/sdb1 /mnt/minio ext4 rw 0 0

Speichere und schließe die Datei und hänge die Partition mit dem folgenden Befehl ein:

mount -a

Überprüfe die gemountete Festplatte mit folgendem Befehl:

df -h

Du solltest die folgende Ausgabe sehen:

Filesystem      Size  Used Avail Use% Mounted on
udev            976M     0  976M   0% /dev
tmpfs           199M  388K  198M   1% /run
/dev/sda1        50G  1.6G   46G   4% /
tmpfs           992M     0  992M   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           199M     0  199M   0% /run/user/0
/dev/sdb1        49G   24K   47G   1% /mnt/minio

Als Nächstes änderst du die Eigentümerschaft des Minio-Mounts in minio:

chown minio:minio /mnt/minio

Minio konfigurieren

Als Nächstes erstellst du mit dem folgenden Befehl ein Minio-Konfigurationsverzeichnis:

mkdir /etc/minio

Ändere als Nächstes die Eigentümerschaft des Minio-Konfigurationsverzeichnisses:

chown minio:minio /etc/minio

Als Nächstes erstellst du eine Minio-Konfigurationsdatei:

nano /etc/default/minio

Füge die folgenden Zeilen hinzu:

MINIO_ACCESS_KEY="minioaccesskey"
MINIO_VOLUMES="/mnt/minio"
MINIO_OPTS="-C /etc/minio --address 0.0.0.0:9000"
MINIO_SECRET_KEY="miniosecretkey"

Speichere und schließe das Feld und lade dann die Minio-Dienstdatei mit dem folgenden Befehl herunter:

wget https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service

Als Nächstes bearbeitest du die Minio-Dienstdatei mit dem folgenden Befehl:

nano minio.service

Ändere die Datei wie unten gezeigt:

[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio

[Service]
WorkingDirectory=/usr/local/

User=minio
Group=minio
ProtectProc=invisible

EnvironmentFile=/etc/default/minio
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/default/minio\"; exit 1; fi"
ExecStart=/usr/local/bin/minio server $MINIO_OPTS $MINIO_VOLUMES

# Let systemd restart this service always
Restart=always

# Specifies the maximum file descriptor number that can be opened by this process
LimitNOFILE=1048576

# Specifies the maximum number of threads this process can create
TasksMax=infinity

# Disable timeout logic and wait until process is stopped
TimeoutStopSec=infinity
SendSIGKILL=no

[Install]
WantedBy=multi-user.target

Speichere und schließe die Datei und kopiere die Minio-Dienstdatei nach /etc/systemd/system/.

mv minio.service /etc/systemd/system/

Als Nächstes lädst du den systemd-Daemon neu, um die Änderungen zu übernehmen:

systemctl daemon-reload

Starte und aktiviere den Minio-Dienst mit dem folgenden Befehl:

systemctl start minio
systemctl enable minio

Als Nächstes überprüfst du den Minio-Dienst mit dem folgenden Befehl:

systemctl status minio

Du solltest die folgende Ausgabe sehen:

? minio.service - MinIO
     Loaded: loaded (/etc/systemd/system/minio.service; disabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-02-28 02:18:31 UTC; 4s ago
       Docs: https://docs.min.io
    Process: 861 ExecStartPre=/bin/bash -c if [ -z "${MINIO_VOLUMES}" ]; then echo "Variable MINIO_VOLUMES not set in /etc/default/minio"; ex>
   Main PID: 862 (minio)
      Tasks: 7
     Memory: 55.2M
        CPU: 759ms
     CGroup: /system.slice/minio.service
             ??862 /usr/local/bin/minio server -C /etc/minio --address 0.0.0.0:9000 /mnt/minio

Feb 28 02:18:31 debian11 systemd[1]: Starting MinIO...
Feb 28 02:18:31 debian11 systemd[1]: Started MinIO.
Feb 28 02:18:32 debian11 minio[862]: WARNING: MINIO_ACCESS_KEY and MINIO_SECRET_KEY are deprecated.
Feb 28 02:18:32 debian11 minio[862]:          Please use MINIO_ROOT_USER and MINIO_ROOT_PASSWORD
Feb 28 02:18:32 debian11 minio[862]: API: http://0.0.0.0:9000
Feb 28 02:18:32 debian11 minio[862]: Console: http://209.208.97.78:42459 http://127.0.0.1:42459
Feb 28 02:18:32 debian11 minio[862]: Documentation: https://docs.min.io
Feb 28 02:18:32 debian11 minio[862]: WARNING: Console endpoint is listening on a dynamic port (42459), please use --console-address ":PORT" t>

Zugriff auf Minio Dashboard

Öffne nun deinen Webbrowser und rufe die Minio-Weboberfläche über die URL http://your-server-ip:9000 auf. Du wirst auf die Anmeldeseite von Minio weitergeleitet:

MinIO Login

Als Nächstes gibst du den Zugangsschlüssel und den privaten Schlüssel aus der Konfigurationsdatei als Benutzernamen und Passwort ein und klickst auf die Schaltfläche Anmelden. Auf der folgenden Seite solltest du das Minio-Dashboard sehen:

MinIO Dashboard

Klicke auf die Schaltfläche Bucket erstellen. Du solltest die folgende Seite sehen:

Eigenschaften

Gib deinen Bucket-Namen ein und klicke auf die Schaltfläche Bucket erstellen. Du solltest die folgende Seite sehen:

MinIO-Backup

Von hier aus kannst du deine Dateien über den Webbrowser hoch- und herunterladen.

Klicke auf die Schaltfläche Überwachung => Metriken. Auf der folgenden Seite solltest du die Metriken deines Buckets sehen:

MinIO-Metriken

Klicke auf die Schaltfläche Logs. Auf der folgenden Seite solltest du die Logs des Minio-Servers sehen:

MinIO Logs

Fazit

Glückwunsch! Du hast den Minio Storage Server erfolgreich unter Debian 11 installiert. Jetzt bist du nicht mehr auf den AWS S3-Speicher angewiesen. Du kannst deinen eigenen S3-kompatiblen Speicherserver für dein Unternehmen erstellen. Wenn du noch Fragen hast, kannst du dich gerne an mich wenden.

Das könnte dich auch interessieren …