Archive for the ‘MinIO S3 Storage’ Category

MinIO – why kubernetes needs object storage

Freitag, Oktober 28th, 2022

MinIO Training – how to install on Docker based systems

Donnerstag, Oktober 27th, 2022

MinIO – how to install on Red Hat Enterprise Linux based systems

Donnerstag, Oktober 27th, 2022

MinIO and Restic Pi – building a raspberry pi with an external hard drive to selfhost backups

Mittwoch, Oktober 26th, 2022

MinIO and Veeam Backup & Replication – joined forces to deliver a masterclass in designing high performance systems for backup/restore and ransomware use cases

Montag, Oktober 24th, 2022

Raspberry Pi – OpenSSL SSL how to use a private key and public certificate with an S3-compatible object storage server with MinIO on DietPi

Mittwoch, Oktober 19th, 2022
Create self-signed x509 certificates with Subject Alternative Names (SAN)
[v3_ca]
this is the value you specified on x509_extensions
subjectAltName:IP@
specifies an IP address in Internet Protocol version 4 (IPv4) format
root@dpi-iot-jsho-MinIO-02:~# cd /etc/ssl
root@dpi-iot-jsho-MinIO-02:/etc/ssl# vi openssl.cnf
[ v3_ca ]
subjectAltName = IP:192.168.1.175
root@dpi-iot-jsho-MinIO-02:~# mkdir -p .minio/certs
root@dpi-iot-jsho-MinIO-02:~/.minio/certs# openssl req -newkey rsa:4096 -x509 -sha256 -days 365 -nodes -out public.crt -keyout private.key
Generating a RSA private key
.++++
………………………………………………………………………………………………………………………++++
writing new private key to ‚private.key‘
—–
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‚.‘, the field will be left blank.
—–
Country Name (2 letter code) [AU]:DE
State or Province Name (full name) [Some-State]:Bavarian
Locality Name (eg, city) []:St.Wolfgang
Organization Name (eg, company) [Internet Widgits Pty Ltd]:jsho
Organizational Unit Name (eg, section) []:jsho
Common Name (e.g. server FQDN or YOUR name) []:dpi-iot-jsho-MinIO-02.fritz.box
Email Address []:josef.schuster@dpsolution.de
root@dpi-iot-jsho-MinIO-02:~/.minio/certs#
root@dpi-iot-jsho-MinIO-02:~#
root@dpi-iot-jsho-MinIO-02:~# ./minio server /mnt/USBStick/MinIO
MinIO Object Storage Server
Copyright: 2015-2022 MinIO, Inc.
License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
Version: RELEASE.2022-10-15T19-57-03Z (go1.18.7 linux/arm)
Status: 1 Online, 0 Offline.
API: https://192.168.1.175:9000 https://127.0.0.1:9000
RootUser: minioadmin
RootPass: minioadmin
Console: https://192.168.1.175:40403 https://127.0.0.1:40403
RootUser: minioadmin
RootPass: minioadmin
root@dpi-iot-jsho-MinIO-02:~#
root@dpi-iot-jsho-MinIO-02:~# ./mc alias set myminio https://192.168.1.175:9000 <…> <…>
Fingerprint of myminio public key: f3da8375f54838362aa10bbc03e6bf7c1df52f0a01106290079a9c18ae5a2f44
Confirm public key y/N: y
Added `myminio` successfully.
root@dpi-iot-jsho-MinIO-02:~#
https://dpi-iot-jsho-MinIO-02.fritz.box:9000

 

Microsoft Windows Server 2022 – einfache Installation Veeam Backup & Replication 11 Community Edition (CE) mit einem Fujitsu Futro S740

MinIO Client (mc) – the ‚mc ilm ls‘ command displays information on a MinIO server

Freitag, Oktober 14th, 2022
root@rpi-iot-jsho-cam-02:~# ./mc –json ilm ls myminio/worm-with-versioning-and-retention–day
{
„status“: „success“,
„target“: „myminio/worm-with-versioning-and-retention–day“,
„config“: {
„Rules“: [
{
„Expiration“: {
„Days“: 10
},
„ID“: „ccuhi9imc0l03bund8j0“,
„Status“: „Enabled“
},
{
„ID“: „ccuhieimc0l03bund8jg“,
„NoncurrentVersionExpiration“: {
„NoncurrentDays“: 3,
„NewerNoncurrentVersions“: 0
},
„Status“: „Enabled“
}
]
}
}

root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# ./mc –json ilm ls myminio/worm-with-versioning-and-retention–week
{
„status“: „success“,
„target“: „myminio/worm-with-versioning-and-retention–week“,
„config“: {
„Rules“: [
{
„Expiration“: {
„Days“: 24
},
„ID“: „ccuhj3amc0l03bund8k0“,
„Status“: „Enabled“
},
{
„ID“: „ccuhj72mc0l03bund8kg“,
„NoncurrentVersionExpiration“: {
„NoncurrentDays“: 3,
„NewerNoncurrentVersions“: 0
},
„Status“: „Enabled“
}
]
}
}
root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# ./mc –json ilm ls myminio/worm-with-versioning-and-retention–month
{
„status“: „success“,
„target“: „myminio/worm-with-versioning-and-retention–month“,
„config“: {
„Rules“: [
{
„Expiration“: {
„Days“: 93
},
„ID“: „ccuhjdqmc0l03bund8l0“,
„Status“: „Enabled“
},
{
„ID“: „ccuhji2mc0l03bund8lg“,
„NoncurrentVersionExpiration“: {
„NoncurrentDays“: 3,
„NewerNoncurrentVersions“: 0
},
„Status“: „Enabled“
}
]
}
}
root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# ./mc –json ilm ls myminio/worm-with-versioning-and-retention–year
{
„status“: „success“,
„target“: „myminio/worm-with-versioning-and-retention–year“,
„config“: {
„Rules“: [
{
„Expiration“: {
„Days“: 733
},
„ID“: „ccuhjpqmc0l03bund8m0“,
„Status“: „Enabled“
},
{
„ID“: „ccuhjuqmc0l03bund8mg“,
„NoncurrentVersionExpiration“: {
„NoncurrentDays“: 3,
„NewerNoncurrentVersions“: 0
},
„Status“: „Enabled“
}
]
}
}
root@rpi-iot-jsho-cam-02:~#

MinIO Client (mc) – the ‚mc retention info‘ command displays information on a MinIO server

Freitag, Oktober 14th, 2022
root@rpi-iot-jsho-cam-02:~# ./mc –json retention info myminio/worm-with-versioning-and-retention–day
{
„op“: „info“,
„enabled“: „Enabled“,
„mode“: „COMPLIANCE“,
„validity“: „7DAYS“,
„status“: „success“
}
root@rpi-iot-jsho-cam-02:~# ./mc –json retention info myminio/worm-with-versioning-and-retention–week
{
„op“: „info“,
„enabled“: „Enabled“,
„mode“: „COMPLIANCE“,
„validity“: „21DAYS“,
„status“: „success“
}
root@rpi-iot-jsho-cam-02:~# ./mc –jsonretention info myminio/worm-with-versioning-and-retention–month
{
„op“: „info“,
„enabled“: „Enabled“,
„mode“: „COMPLIANCE“,
„validity“: „90DAYS“,
„status“: „success“
}
root@rpi-iot-jsho-cam-02:~# ./mc –json retention info myminio/worm-with-versioning-and-retention–year
{
„op“: „info“,
„enabled“: „Enabled“,
„mode“: „COMPLIANCE“,
„validity“: „730DAYS“,
„status“: „success“
}
root@rpi-iot-jsho-cam-02:~#

MinIO Client (mc) – the ‚mc admin info‘ command displays information on a MinIO server

Donnerstag, Oktober 13th, 2022
root@rpi-iot-jsho-cam-02:~# ./mc admin info myminio
● 192.168.1.145:9000
Uptime: 18 hours
Version: 2022-10-08T20:11:00Z
Network: 1/1 OK
Drives: 1/1 OK
Pool: 1
Pools:
1st, Erasure sets: 1, Drives per erasure set: 1
3.1 GiB Used, 8 Buckets, 26,641 Objects, 37,197 Versions
1 drive online, 0 drives offline
root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# ./mc –json admin info myminio
{
„status“: „success“,
„info“: {
„mode“: „online“,
„deploymentID“: „3495641a-9c50-4fa9-bc47-0bbd693d1dc8“,
„buckets“: {
„count“: 8
},
„objects“: {
„count“: 22183
},
„versions“: {
„count“: 30430
},
„usage“: {
„size“: 3054404033
},
„services“: {
„kms“: {
„status“: „disabled“
},
„ldap“: {}
},
„backend“: {
„backendType“: „Erasure“,
„onlineDisks“: 1
},
„servers“: [
{
„state“: „online“,
„endpoint“: „192.168.1.145:9000“,
„uptime“: 28285,
„version“: „2022-10-08T20:11:00Z“,
„commitID“: „3c4ef4338fdfba4e2540a602abccc7f0f115c699“,
„network“: {
„192.168.1.145:9000“: „online“
},
„drives“: [
{
„endpoint“: „/mnt/476824cb-3b88-4363-9d52-5a42f7869fb8/minio-data“,
„path“: „/mnt/476824cb-3b88-4363-9d52-5a42f7869fb8/minio-data“,
„scanning“: true,
„state“: „ok“,
„uuid“: „f4fbb9ae-fe8c-4d6a-9019-646e4aec9288“,
„major“: 0,
„minor“: 0,
„totalspace“: 60777484288,
„usedspace“: 3378294784,
„availspace“: 57399189504,
„metrics“: {
„lastMinute“: {
„CreateFile“: {
„count“: 4,
„acc_time_ns“: 145899000
},
„ListVols“: {
„count“: 1,
„acc_time_ns“: 748000
},
„ReadVersion“: {
„count“: 8,
„acc_time_ns“: 80839000
},
„RenameData“: {
„count“: 4,
„acc_time_ns“: 162602000
},
„StatVol“: {
„count“: 4,
„acc_time_ns“: 1413000
}
},
„apiCalls“: {
„AppendFile“: 0,
„CheckParts“: 0,
„CreateFile“: 3762,
„Delete“: 0,
„DeleteVersion“: 12832,
„DeleteVersions“: 0,
„DeleteVol“: 0,
„ListDir“: 0,
„ListVols“: 390,
„MakeVol“: 0,
„MakeVolBulk“: 0,
„ReadAll“: 2,
„ReadFile“: 0,
„ReadFileStream“: 0,
„ReadMultiple“: 0,
„ReadVersion“: 16829,
„ReadXL“: 0,
„RenameData“: 4740,
„RenameFile“: 0,
„StatInfoFile“: 0,
„StatVol“: 4827,
„UpdateMetadata“: 0,
„VerifyFile“: 0,
„WalkDir“: 65,
„WriteAll“: 0,
„WriteMetadata“: 0
}
},
„free_inodes“: 3703958,
„pool_index“: 0,
„set_index“: 0,
„disk_index“: 0
}
],
„mem_stats“: {
„Alloc“: 210118952,
„TotalAlloc“: 15314082696,
„Mallocs“: 109814140,
„Frees“: 109648271,
„HeapAlloc“: 210118952
}
}
]
}
}
root@rpi-iot-jsho-cam-02:~#

MinIO Client (mc) – für eine Backup Strategie ‚ProtectIT‘ mit MinIO S3 Storage

Dienstag, Oktober 11th, 2022
#!/bin/bash
set -x

BackupDay=`date „+%Y-%m-%d“

BackupYesterday=`date „+%Y-%m-%d“ –date=‘-1 days’`
BackupTomorrow=`date „+%Y-%m-%d“ –date=’+1 days’`
BackupLastmonth=`date „+%Y-%m-%d“ –date=‘-1 months’`
BackupNextmonth=`date „+%Y-%m-%d“ –date=’+1 months’`

MinIO Client (mc) – allows creating rules for time or date based automatic transition or expiry of objects for backup strategy ‚ProtectIT‘

Donnerstag, Oktober 6th, 2022
root@ra-iot-jsho-dietpi-01:~#
root@ra-iot-jsho-dietpi-01:~# ./mc ilm add –expiry-days 15 myminio/worm-with-versioning-and-retention–day
Lifecycle configuration rule added with ID `ccvb6uvjgafto4pohe50` to myminio/worm-with-versioning-and-retention–day.
root@ra-iot-jsho-dietpi-01:~# ./mc ilm add –noncurrentversion-expiration-days 3 myminio/worm-with-versioning-and-retention–day
Lifecycle configuration rule added with ID `ccvb72vjgafto97cv9bg` to myminio/worm-with-versioning-and-retention–day.
root@ra-iot-jsho-dietpi-01:~#

 

root@ra-iot-jsho-dietpi-01:~#
root@ra-iot-jsho-dietpi-01:~# ./mc ilm export myminio/worm-with-versioning-and-retention–day
{
„Rules“: [
{
„Expiration“: {
„Days“: 15
},
„ID“: „ccvb9ifjgaftofga4sbg“,
„Status“: „Enabled“
},
{
„ID“: „ccvb9n7jgaftoc43s9g0“,
„NoncurrentVersionExpiration“: {
„NoncurrentDays“: 3,
„NewerNoncurrentVersions“: 0
},
„Status“: „Enabled“
}
]
}

root@ra-iot-jsho-dietpi-01:~#

MinIO Client (mc) – how to remove one or more buckets

Mittwoch, Oktober 5th, 2022

MinIO Client (mc)  – mc rb permanently deletes bucket(s) on the target deployment including any and all object versions and bucket configurations such as lifecycle management or replication


root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# ./mc rb –force –dangerous myminio/worm-with-versioning-and-retention-day
Removed `myminio/worm-with-versioning-and-retention-day` successfully.
root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# ./mc rb –force –dangerous myminio/worm-with-versioning-and-retention–day
mc: <ERROR> Failed to remove `myminio/worm-with-versioning-and-retention–day`. Object, ‚2022-10-04.tar (Version ID=cf57a320-eaf4-4cb3-ae7d-3070ce9fa92d)‘ is WORM protected and cannot be overwritten.
root@rpi-iot-jsho-cam-02:~#

DietPi 8.8.1 – Backup/Restore mittels MinIO Client (mc) mit zwei Fujitsu Futro S740 über ein 1 GBit/s Netzwerk

Sonntag, Oktober 2nd, 2022

root@ra-iot-jsho-dietpi-02:~#

root@ra-iot-jsho-dietpi-02:~# ./mc config host add myminio http://ra-iot-jsho-dietpi-01:9000 <AccessKey> <SecretKey>
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
Added `myminio` successfully.

root@ra-iot-jsho-dietpi-02:~#

root@ra-iot-jsho-dietpi-02:~#
root@ra-iot-jsho-dietpi-02:~# ./mc mirror /mnt/USB-Disk myminio/bigfiles
…_24.vma.zst: 25.05 GiB / 25.05 GiB ━━━━━━━━━━━━━━━━━━━━ 107.32 MiB/s 3m59s
root@ra-iot-jsho-dietpi-02:~# ./mc mirror myminio/bigfiles /mnt/USB-Disk/Restore
…_24.vma.zst: 25.05 GiB / 25.05 GiB ━━━━━━━━━━━━━━━━━━━━ 108.68 MiB/s 3m56s
root@ra-iot-jsho-dietpi-02:~#

MinIO Client (mc) – optimizes small object storage and adds .tar auto extraction

Mittwoch, September 28th, 2022
# mc mb play/mybucket
# mc cp <path-to-archive>.tar play/mybucket –disable-multipart –attr „X-Amz-Meta-Snowball-Auto-Extract=true“
# mc ls play/mybucket

DietPi 8.8.1 – einfache Installation MinIO Client (mc) mit einem Fujitsu Futro S740

Mittwoch, September 28th, 2022
root@ra-iot-jsho-dietpi-02:~#
root@ra-iot-jsho-dietpi-02:~# wget https://dl.min.io/client/mc/release/linux-amd64/mc
–2022-09-28 11:23:48– https://dl.min.io/client/mc/release/linux-amd64/mc
Auflösen des Hostnamens dl.min.io (dl.min.io)… 138.68.11.125, 178.128.69.202
Verbindungsaufbau zu dl.min.io (dl.min.io)|138.68.11.125|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 24158208 (23M) [application/octet-stream]
Wird in »mc« gespeichert.
mc 100%[==============================>] 23,04M 6,76MB/s in 3,7s
2022-09-28 11:23:57 (6,16 MB/s) – »mc« gespeichert [24158208/24158208]
root@ra-iot-jsho-dietpi-02:~#
root@ra-iot-jsho-dietpi-02:~# chmod +x ./mc
root@ra-iot-jsho-dietpi-02:~# ls -la
insgesamt 23620
drwx—— 4 root root 4096 28. Sep 11:23 .
drwxr-xr-x 18 root root 4096 24. Sep 23:14 ..
-rw——- 1 root root 181 28. Sep 11:12 .bash_history
-rw-r–r– 1 root root 571 10. Apr 2021 .bashrc
drwx—— 3 root root 4096 28. Sep 10:50 .config
-rwxr-xr-x 1 root root 24158208 17. Sep 10:51 mc
-rw-r–r– 1 root root 161 9. Jul 2019 .profile
drwxr-xr-x 2 root root 4096 28. Sep 10:47 .ssh
root@ra-iot-jsho-dietpi-02:~#
root@ra-iot-jsho-dietpi-02:~# ./mc config host add myminio http://192.168.1.160:9000 <AccessKey> <SecretKey>
mc: Configuration written to `/root/.mc/config.json`. Please update your access credentials.
mc: Successfully created `/root/.mc/share`.
mc: Initialized share uploads `/root/.mc/share/uploads.json` file.
mc: Initialized share downloads `/root/.mc/share/downloads.json` file.
Added `myminio` successfully.
root@ra-iot-jsho-dietpi-02:~#
root@ra-iot-jsho-dietpi-02:~# ./mc ls myminio
[2022-09-26 20:33:17 CEST] 0B bigfiles/
root@ra-iot-jsho-dietpi-02:~#
root@ra-iot-jsho-dietpi-02:~# ./mc mirror /mnt/USB-Disk/dump myminio/bigfiles
…-2021_06_22-16_28_24.vma.zst: 25.05 GiB / 25.05 GiB ━━━━━━━ 107.28 MiB/s 3m59s
root@ra-iot-jsho-dietpi-02:~#