Minio è un popolare server di storage di oggetti open source, self-hosted e compatibile con Amazon S3 scritto in Go. È un'alternativa molto utile ad AWS S3 se hai bisogno di un maggiore controllo sul tuo server di storage degli oggetti. Ci consente di archiviare foto, video, file di registro, backup e immagini contenitore/VM. Fornisce un client a riga di comando, un'interfaccia browser e supporta anche AMQP. Puoi utilizzare Minio in una distribuzione su larga scala per la replica continua dei dati.
In questo articolo, ti mostrerò come installare il server Minio su Debian 11.
Prerequisiti
- Un server che esegue Debian 11.
- Sul server è configurata una password di root.
Installa Minio Server
Innanzitutto, scarica l'ultima versione di Minio binary usando il seguente comando:
wget https://dl.min.io/server/minio/release/linux-amd64/minio
Quindi, dai il permesso di esecuzione e sposta il binario Minio nel percorso di sistema:
chmod +x minio
mv minio /usr/local/bin/
Quindi, crea un utente dedicato per Minio con il seguente comando:
useradd -r minio -s /sbin/nologin
Quindi, cambia la proprietà del binario Minio in utente minio:
chown minio:minio /usr/local/bin/minio
Successivamente, verifica la versione installata di Minio con il seguente comando:
minio --version
Otterrai il seguente output:
minio version RELEASE.2022-02-26T02-54-46Z
Crea una partizione per l'archiviazione Minio
Successivamente, dovrai creare una partizione GPT su un disco separato. Innanzitutto, elenca tutti i dischi rigidi collegati utilizzando il seguente comando:
fdisk -l
Dovresti vedere tutti i dischi rigidi collegati nel seguente output:
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
Quindi, crea una partizione GPT sul disco /dev/sdb con il seguente comando:
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
Quindi, formatta la partizione usando il seguente comando:
mkfs.ext4 /dev/sdb1
Otterrai il seguente output:
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
Quindi, crea un punto di montaggio per il disco Minio.
mkdir /mnt/minio
Successivamente, aggiungi la voce in /etc/fstab file per montare la partizione sul punto di montaggio:
nano /etc/fstab
Aggiungi la seguente riga:
/dev/sdb1 /mnt/minio ext4 rw 0 0
Salva e chiudi il file, quindi monta la partizione utilizzando il seguente comando:
mount -a
Quindi, verifica il disco montato utilizzando il seguente comando:
df -h
Dovresti vedere il seguente output:
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
Quindi, cambia la proprietà della cavalcatura Minio in minio:
chown minio:minio /mnt/minio
Configura Minio
Quindi, crea una directory di configurazione di Minio usando il seguente comando:
mkdir /etc/minio
Quindi, cambia la proprietà della directory di configurazione di Minio:
chown minio:minio /etc/minio
Quindi, crea un file di configurazione di Minio:
nano /etc/default/minio
Aggiungi le seguenti righe:
MINIO_ACCESS_KEY="minioaccesskey" MINIO_VOLUMES="/mnt/minio" MINIO_OPTS="-C /etc/minio --address 0.0.0.0:9000" MINIO_SECRET_KEY="miniosecretkey"
Salva e chiudi il file, quindi scarica il file del servizio Minio con il seguente comando:
wget https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service
Quindi, modifica il file del servizio Minio con il seguente comando:
nano minio.service
Modifica il file come mostrato di seguito:
[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
Salva e chiudi il file, quindi copia il file del servizio Minio in /etc/systemd/system/.
mv minio.service /etc/systemd/system/
Quindi, ricarica il demone systemd per applicare le modifiche:
systemctl daemon-reload
Successivamente, avvia e abilita il servizio Minio con il seguente comando:
systemctl start minio
systemctl enable minio
Quindi, controlla il servizio Minio con il seguente comando:
systemctl status minio
Dovresti vedere il seguente output:
? 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>
Accedi al dashboard di Minio
Ora apri il tuo browser web e accedi all'interfaccia web di Minio utilizzando l'URL http://your-server-ip:9000 . Verrai reindirizzato alla pagina di accesso di Minio:
Quindi, utilizza la chiave di accesso e la chiave privata dal file di configurazione come nome utente e password, quindi fai clic su Accedi pulsante. Dovresti vedere la dashboard di Minio nella pagina seguente:
Fai clic su Crea Secchio pulsante. Dovresti vedere la seguente pagina:
Fornisci il nome del tuo bucket e fai clic su Crea Secchio pulsante. Dovresti vedere la seguente pagina:
Da qui puoi caricare e scaricare i tuoi file dal browser web.
Fai clic su Monitoraggio => Metriche pulsante. Dovresti vedere le metriche del tuo bucket nella pagina seguente:
Fai clic sui Registri pulsante. Dovresti vedere i registri del server Minio nella pagina seguente:
Conclusione
Congratulazioni! hai installato correttamente il server di archiviazione Minio su Debian 11. Ora non è necessario fare affidamento sullo storage AWS S3. Puoi creare il tuo server di archiviazione compatibile con S3 per la tua organizzazione. Sentiti libero di chiedermi se hai domande.