Archive for the ‘MinIO S3 Storage’ Category
MinIO – collect MinIO Metrics using Prometheus
Sonntag, Dezember 26th, 2021Restic 0.12.1 – is a modern backup program that can back up your data into MinIO Server
Samstag, Dezember 25th, 2021Velero 1.6 – is an open source tool to safely backup into MinIO Server and restore perform disaster recovery and migrate Kubernetes cluster resources and persistent volumes
Samstag, Dezember 25th, 2021Banana Pi BPI-M1 – use a bucket „worm-with-versioning-and-retention“ with an S3-compatible object storage server with MinIO on Armbian Bullseye
Samstag, Dezember 25th, 2021

root@bpi-iot-jsho-minio-02:~# ./mc ls –versions worm-with-versioning-and-retention myminio
[2021-12-22 16:14:35 CET] 0B worm-with-versioning-and-retention/
[2021-12-23 14:23:12 CET] 726KiB c04488c9-76c0-4326-8ccd-7c9e30b79b26 v3 PUT worm-with-versioning-and-retention/Josef(1).jpg
[2021-12-23 14:19:53 CET] 0B ce25fdb8-aa92-4764-b4b4-e17e2156f368 v2 DEL worm-with-versioning-and-retention/Josef(1).jpg
[2021-12-23 14:18:48 CET] 726KiB dfb28b1d-e018-4a32-884e-f0862d0af370 v1 PUT worm-with-versioning-and-retention/Josef(1).jpg
[2021-12-23 14:23:12 CET] 292KiB 3a5ca8e6-4922-47ce-9729-366d187cb35e v3 PUT worm-with-versioning-and-retention/Josef(2).jpg
[2021-12-23 14:19:53 CET] 0B 26c97018-67c5-4453-b089-333afb1eecb3 v2 DEL worm-with-versioning-and-retention/Josef(2).jpg
[2021-12-23 14:18:48 CET] 292KiB 766c45a3-1f08-4228-93c1-4a8ca34a246d v1 PUT worm-with-versioning-and-retention/Josef(2).jpg
root@bpi-iot-jsho-minio-02:~#
root@bpi-iot-jsho-minio-02:~# ./mc cp /var/log/syslog myminio/worm-with-versioning-and-retention/syslog
/var/log/syslog: 73.32 KiB / 73.32 KiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 218.06 KiB/s 0s
root@bpi-iot-jsho-minio-02:~# ./mc cp /var/log/syslog myminio/worm-with-versioning-and-retention/syslog
/var/log/syslog: 73.32 KiB / 73.32 KiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 257.35 KiB/s 0s
root@bpi-iot-jsho-minio-02:~# ./mc cp /var/log/syslog myminio/worm-with-versioning-and-retention/syslog
/var/log/syslog: 73.32 KiB / 73.32 KiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 155.06 KiB/s 0s
root@bpi-iot-jsho-minio-02:~#
root@bpi-iot-jsho-minio-02:~# ./mc ls –versions myminio/worm-with-versioning-and-retention/syslog
[2021-12-23 14:38:27 CET] 73KiB 7aee1ca1-357e-4ec0-a89a-b5e64d13fa66 v3 PUT syslog
[2021-12-23 14:38:23 CET] 73KiB 65eea9d6-18fa-4a6d-9f21-34cf69912bec v2 PUT syslog
[2021-12-23 14:37:10 CET] 73KiB 547c6528-b12a-4b60-8fa9-ca42717cdb5c v1 PUT syslog
root@bpi-iot-jsho-minio-02:~#

root@bpi-iot-jsho-minio-02:~# ./mc tree myminio
myminio
└─ worm-with-versioning-and-retention
root@bpi-iot-jsho-minio-02:~#
root@bpi-iot-jsho-minio-02:~# ./mc –debug tree myminio/worm-with-versioning-and -retention/syslog
mc: <DEBUG> GET /worm-with-versioning-and-retention/?location= HTTP/1.1
Host: 192.168.1.168:9000
User-Agent: MinIO (linux; arm) minio-go/v7.0.18 mc/RELEASE.2021-12-20T23-43-34Z
Authorization: AWS4-HMAC-SHA256 Credential=admin/20211223/us-east-1/s3/aws4_requ est, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=**REDACTED**
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b78 52b855
X-Amz-Date: 20211223T160316Z
Accept-Encoding: gzip
mc: <DEBUG> HTTP/1.1 200 OK
Content-Length: 128
Accept-Ranges: bytes
Content-Security-Policy: block-all-mixed-content
Content-Type: application/xml
Date: Thu, 23 Dec 2021 16:03:16 GMT
Server: MinIO
Strict-Transport-Security: max-age=31536000; includeSubDomains
Vary: Origin
Vary: Accept-Encoding
X-Amz-Request-Id: 16C36DC843781CA1
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block
mc: <DEBUG> Response Time: 14.362826ms
mc: <DEBUG> HEAD /worm-with-versioning-and-retention/syslog HTTP/1.1
Host: 192.168.1.168:9000
User-Agent: MinIO (linux; arm) minio-go/v7.0.18 mc/RELEASE.2021-12-20T23-43-34Z
Authorization: AWS4-HMAC-SHA256 Credential=admin/20211223/us-east-1/s3/aws4_requ est, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=**REDACTED**
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b78 52b855
X-Amz-Date: 20211223T160316Z
mc: <DEBUG> HTTP/1.1 200 OK
Content-Length: 76811
Accept-Ranges: bytes
Content-Security-Policy: block-all-mixed-content
Content-Type: application/octet-stream
Date: Thu, 23 Dec 2021 16:03:16 GMT
Etag: „8c0127092d695309799ef1b79723756d“
Last-Modified: Thu, 23 Dec 2021 13:55:30 GMT
Server: MinIO
Strict-Transport-Security: max-age=31536000; includeSubDomains
Vary: Origin
Vary: Accept-Encoding
X-Amz-Object-Lock-Mode: COMPLIANCE
X-Amz-Object-Lock-Retain-Until-Date: 2021-12-30T13:55:30.843Z
X-Amz-Request-Id: 16C36DC8443002D4
X-Amz-Version-Id: 059b1c13-ea74-4901-8821-e36b6766097f
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block
mc: <DEBUG> Response Time: 14.528064ms
mc: <DEBUG> GET /worm-with-versioning-and-retention/?delimiter=%2F&encoding-type =url&fetch-owner=true&list-type=2&prefix=syslog%2F HTTP/1.1
Host: 192.168.1.168:9000
User-Agent: MinIO (linux; arm) minio-go/v7.0.18 mc/RELEASE.2021-12-20T23-43-34Z
Authorization: AWS4-HMAC-SHA256 Credential=admin/20211223/us-east-1/s3/aws4_requ est, SignedHeaders=host;x-amz-content-sha256;x-amz-date, Signature=**REDACTED**
X-Amz-Content-Sha256: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b78 52b855
X-Amz-Date: 20211223T160316Z
Accept-Encoding: gzip
mc: <DEBUG> HTTP/1.1 200 OK
Content-Length: 328
Accept-Ranges: bytes
Content-Security-Policy: block-all-mixed-content
Content-Type: application/xml
Date: Thu, 23 Dec 2021 16:03:16 GMT
Server: MinIO
Strict-Transport-Security: max-age=31536000; includeSubDomains
Vary: Origin
Vary: Accept-Encoding
X-Amz-Request-Id: 16C36DC84564FEA0
X-Content-Type-Options: nosniff
X-Xss-Protection: 1; mode=block
mc: <DEBUG> Response Time: 39.46744ms
root@bpi-iot-jsho-minio-02:~#
root@bpi-iot-jsho-minio-02:~# ./mc rm –r myminio/worm-with-versioning-and-retention/syslog
mc: <ERROR> Removal requires –force flag. This operation is *IRREVERSIBLE*. Please review carefully before performing this *DANGEROUS* operation.
root@bpi-iot-jsho-minio-02:~# ./mc rm –r –force myminio/worm-with-versioning-and-retention/syslog
Removing `myminio/worm-with-versioning-and-retention/syslog`.
root@bpi-iot-jsho-minio-02:~# ./mc cp /var/log/syslog myminio/worm-with-versioning-and-retention/syslog
/var/log/syslog: 33.62 KiB / 33.62 KiB┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃144.31 KiB/s 0s
root@bpi-iot-jsho-minio-02:~# ./mc ls –versions myminio/worm-with-versioning-and-retention/syslog
[2021-12-24 10:43:45 CET] 34KiB 290fefa5-d34b-4ca7-93e1-83fb229cf93d v8 PUT syslog
[2021-12-24 10:42:06 CET] 0B 32002e56-3c3a-4fb2-9bf0-edda868eccc8 v7 DEL syslog
[2021-12-24 10:36:57 CET] 33KiB 5e1cdeae-a184-4ea3-9289-441f39f5a278 v6 PUT syslog
[2021-12-23 18:08:57 CET] 89KiB 670bb05a-79d8-4f33-8f73-4087725d330b v5 PUT syslog
[2021-12-23 14:55:30 CET] 75KiB 059b1c13-ea74-4901-8821-e36b6766097f v4 PUT syslog
[2021-12-23 14:38:27 CET] 73KiB 7aee1ca1-357e-4ec0-a89a-b5e64d13fa66 v3 PUT syslog
[2021-12-23 14:38:23 CET] 73KiB 65eea9d6-18fa-4a6d-9f21-34cf69912bec v2 PUT syslog
[2021-12-23 14:37:10 CET] 73KiB 547c6528-b12a-4b60-8fa9-ca42717cdb5c v1 PUT syslog
root@bpi-iot-jsho-minio-02:~#

root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# ./mc mirror /var/lib/motioneye myminio/worm-with-versioning-and-retention/motioneye
…2021-12-24/13-15-46.jpg: 1004.48 MiB / 1004.48 MiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 1.56 MiB/s 10m42s
root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# ./mc mirror /var/lib/motioneye myminio/worm-with-versioning-and-retention/motioneye
…2021-12-24/14-23-01.jpg: 1.82 MiB / 1.82 MiB ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 75.18 KiB/s 24s
root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# ./mc mirror –overwrite –remove /var/lib/motioneye myminio/worm-with-versioning-and-retention/motioneye
0 B / ? ┃▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓┃ 8s
root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# ./mc mirror –json –overwrite –remove /var/lib/motioneye myminio/worm-with-versioning-and-retention/motioneye
{
„status“: „success“,
„total“: 0,
„transferred“: 0,
„speed“: 0
}
root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# vi MinioMotioneyeBackup.sh
#!/bin/bash
#FileName: MinioMotioneyeBackup.sh
LocalBackupPath=“/var/lib/motioneye“
MinioBucket=“myminio/worm-with-versioning-and-retention/motioneye“
MCPATH=“/root/mc“
$MCPATH mirror –json –overwrite –remove –preserve $LocalBackupPath $MinioBucket
root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# crontab -e
00 * * * * /root/MinioMotioneyeBackup.sh >> /dev/null 2>&1

root@rpi-iot-jsho-cam-02:~# ./mc du myminio/worm-with-versioning-and-retention/motioneye
1.1GiB worm-with-versioning-and-retention/motioneye
root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# ./MinioMotioneyeBackup.sh
{
„status“: „success“,
„source“: „/var/lib/motioneye/Camera1/2021-12-25/17-01-05.jpg“,
„target“: „myminio/worm-with-versioning-and-retention/motioneye/Camera1/2021-12-25/17-01-05.jpg“,
„size“: 211233,
„totalCount“: 1,
„totalSize“: 211233
}
….
{
„status“: „success“,
„source“: „/var/lib/motioneye/Camera2/2021-12-25/17-13-00.jpg“,
„target“: „myminio/worm-with-versioning-and-retention/motioneye/Camera2/2021-12-25/17-13-00.jpg“,
„size“: 312672,
„totalCount“: 89,
„totalSize“: 45260177
}
{
„status“: „success“,
„total“: 0,
„transferred“: 45936360,
„speed“: 1387106.8842925804
}
root@rpi-iot-jsho-cam-02:~#
root@rpi-iot-jsho-cam-02:~# ./mc admin info myminio
● 192.168.1.168:9000
Uptime: 7 hours
Version: 2021-12-20T22:07:16Z
Network: 1/1 OK
Drives: 4/4 OK
1.1 GiB Used, 1 Bucket, 4,840 Objects
4 drives online, 0 drives offline
root@rpi-iot-jsho-cam-02:~#
MinIO server allows WORM for specific objects or by configuring a bucket with default object lock configuration that applies default retention mode and retention duration to all objects this makes objects in the bucket immutable i.e. delete of the version are not allowed until an expiry specified in the bucket’s object lock configuration or object retention
root@rpi-iot-jsho-cam-02:~# ./mc ls -versions myminio/worm-with-versioning-and-retention/motioneye/Camera2/2021-12-18
[2021-12-25 14:41:00 CET] 0B 9cb78fe9-87f4-493b-9b8c-978769c6625d v2 DEL 07-59-36.jpg
[2021-12-25 11:24:35 CET] 299KiB 013be4d8-cc10-41da-a0ff-e22e9283e546 v1 PUT 07-59-36.jpg
[2021-12-25 14:41:00 CET] 0B 2b20f53a-da56-4118-bf06-db8ce5949a49 v2 DEL 07-59-37.jpg
[2021-12-25 11:24:35 CET] 303KiB 9aed82e1-860e-4986-a1b2-7968fc3524cb v1 PUT 07-59-37.jpg
[2021-12-25 14:41:00 CET] 0B 44f6b086-686a-499f-af45-08c3a0513ced v2 DEL 07-59-38.jpg
[2021-12-25 11:24:35 CET] 321KiB a61455bc-a850-41aa-9414-5436d6a90bc2 v1 PUT 07-59-38.jpg
[2021-12-25 14:41:00 CET] 0B 1dfd6551-4442-473b-aeba-b5cb89f4278d v2 DEL 07-59-39.jpg
[2021-12-25 11:24:36 CET] 339KiB 1b262328-5d83-4d39-ac57-f37e50d60c27 v1 PUT 07-59-39.jpg
[2021-12-25 14:41:00 CET] 0B 3a21cfd4-c48b-4544-9585-c3b57f17fc4a v2 DEL 07-59-40.jpg
[2021-12-25 11:24:36 CET] 345KiB fc2cfcc4-edc6-42f7-bad0-361b33811f3b v1 PUT 07-59-40.jpg
root@rpi-iot-jsho-cam-02:~# ./mc ls -versions myminio/worm-with-versioning-and-retention/motioneye/Camera2/2021-12-19
[2021-12-25 11:25:28 CET] 299KiB 0dff7189-e714-4afa-9690-77a9c656863b v1 PUT 07-57-10.jpg
[2021-12-25 11:25:28 CET] 305KiB ce3bd5d0-b3fb-4612-b325-5d20e49f752a v1 PUT 07-57-11.jpg
[2021-12-25 11:25:28 CET] 323KiB 5f00792a-6362-435f-aa5d-13e6d6212a37 v1 PUT 07-57-12.jpg
[2021-12-25 11:25:28 CET] 332KiB 9f027135-11db-40fe-98c8-969bf467e4e5 v1 PUT 07-57-13.jpg
[2021-12-25 11:25:28 CET] 333KiB 7f48915e-19ee-4108-9c9b-e1cf123ab0ae v1 PUT 07-57-14.jpg
root@rpi-iot-jsho-cam-02:~#
MinIO – Erasure Code Puzzle
Mittwoch, Dezember 22nd, 2021Banana Pi BPI-M1 – create bucket „worm-with-versioning-and-retention“ with an S3-compatible object storage server with MinIO on Armbian Bullseye
Mittwoch, Dezember 22nd, 2021


Banana Pi BPI-M1 – upgrade an S3-compatible object storage server with MinIO on Armbian Bullseye
Mittwoch, Dezember 22nd, 2021
root@bpi-iot-jsho-minio-02:~# ./mc admin info myminio
● 192.168.1.168:9000
Uptime: 34 minutes
Version: 2021-11-24T23:19:33Z
Network: 1/1 OK
Drives: 4/4 OK
4 drives online, 0 drives offline
root@bpi-iot-jsho-minio-02:~#
root@bpi-iot-jsho-minio-02:~# ./mc admin update myminio
Server `myminio` updated successfully from 2021-11-24T23:19:33Z to 2021-12-20T22-07-16Z
root@bpi-iot-jsho-minio-02:~#
root@bpi-iot-jsho-minio-02:~# ./mc admin info myminio
● 192.168.1.168:9000
Uptime: 10 minutes
Version: 2021-12-20T22:07:16Z
Network: 1/1 OK
Drives: 4/4 OK
4 drives online, 0 drives offline
root@bpi-iot-jsho-minio-02:~#

MinIO – High Performance Object Storage in 30 Minutes
Dienstag, Dezember 21st, 2021Banana Pi BPI-M1 – uncomplicated firewall (ufw) for an S3-compatible object storage server with MinIO on Armbian Bullseye
Freitag, Dezember 17th, 2021root@bpi-iot-jsho-minio-01:~# apt-get install ufw
Paketlisten werden gelesen… Fertig
Abh▒ngigkeitsbaum wird aufgebaut… Fertig
Statusinformationen werden eingelesen… Fertig
Die folgenden NEUEN Pakete werden installiert:
ufw
0 aktualisiert, 1 neu installiert, 0 zu entfernen und 0 nicht aktualisiert.
Es m▒ssen 167 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 857 kB Plattenplatz zus▒tzlich benutzt.
Holen:1 http://deb.debian.org/debian bullseye/main armhf ufw all 0.36-7.1 [167 k B]
Es wurden 167 kB in 0 s geholt (456 kB/s).
Preconfiguring packages …
Vormals nicht ausgew▒hltes Paket ufw wird gew▒hlt.
(Lese Datenbank … 39605 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von …/archives/ufw_0.36-7.1_all.deb …
Entpacken von ufw (0.36-7.1) …
ufw (0.36-7.1) wird eingerichtet …
Creating config file /etc/ufw/before.rules with new version
Creating config file /etc/ufw/before6.rules with new version
Creating config file /etc/ufw/after.rules with new version
Creating config file /etc/ufw/after6.rules with new version
Created symlink /etc/systemd/system/multi-user.target.wants/ufw.service -> /lib/systemd/system/ufw.service.
Trigger f▒r rsyslog (8.2102.0-2) werden verarbeitet …
Trigger f▒r man-db (2.9.4-2) werden verarbeitet …
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# ufw allow 22
Rules updated
Rules updated (v6)
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
— —— —-
22 ALLOW IN Anywhere
22 (v6) ALLOW IN Anywhere (v6)
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# cat /proc/sys/net/ipv4/ip_local_port_range
32768 60999
root@bpi-iot-jsho-minio-01:~# ufw allow proto tcp from 192.168.1.0/24 to any port 9000:9010
Rule added
root@bpi-iot-jsho-minio-01:~# ufw allow proto tcp from 192.168.1.0/24 to any port 32768:60999
Rule added
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
To Action From
— —— —-
22 ALLOW IN Anywhere
32768:60999/tcp ALLOW IN 192.168.1.0/24
9000:9010/tcp ALLOW IN 192.168.1.0/24
22 (v6) ALLOW IN Anywhere (v6)
root@bpi-iot-jsho-minio-01:~#
Banana Pi BPI-M1 – start&stop script (workaround) for an S3-compatible object storage server with MinIO on Armbian Bullseye
Donnerstag, Dezember 16th, 2021root@bpi-iot-jsho-minio-01:~# systemctl stop minio
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# tree /usr/local/bin
/usr/local/bin
`– minio
`– minio
1 directory, 1 file
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# ls -la /usr/local/bin
insgesamt 12
drwxr-xr-x 3 root root 4096 16. Dez 13:55 .
drwxr-xr-x 10 root root 4096 21. Aug 14:54 ..
drwxr-xr-x 2 minio-user minio-user 4096 16. Dez 13:59 minio
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:/usr/local/bin# ls -la minio
insgesamt 100748
drwxr-xr-x 2 minio-user minio-user 4096 16. Dez 13:59 .
drwxr-xr-x 3 root root 4096 16. Dez 13:55 ..
-rwxr-xr-x 1 minio-user minio-user 103153664 16. Dez 13:59 minio
root@bpi-iot-jsho-minio-01:/usr/local/bin#
root@bpi-iot-jsho-minio-01:~# cd /etc/systemd/system
root@bpi-iot-jsho-minio-01:/etc/systemd/system# vi minio.service
[Unit]
Description=MinIO
Documentation=https://docs.min.io
Wants=network-online.target
After=network-online.target
AssertFileIsExecutable=/usr/local/bin/minio/minio
[Service]
WorkingDirectory=/usr/local/
User=minio-user
Group=minio-user
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/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=65536
# 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
# Built for ${project.name}-${project.version} (${project.name})
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# systemctl daemon-reload
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# systemctl start minio
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# systemctl status minio
* minio.service – MinIO
Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-12-21 14:13:33 CET; 32s ago
Docs: https://docs.min.io
Process: 1555 ExecStartPre=/bin/bash -c if [ -z „${MINIO_VOLUMES}“ ]; then echo „Variable MINIO_VOLUMES not set in /etc/default/minio“; exit 1; fi (code=exited, status=0/SUCCE>
Main PID: 1556 (minio)
Tasks: 10
Memory: 50.1M
CPU: 5.139s
CGroup: /system.slice/minio.service
`-1556 /usr/local/bin/minio/minio server –console-address :9001 /usr/local/share/minio/
Dez 21 14:13:33 bpi-iot-jsho-minio-01 systemd[1]: Starting MinIO…
Dez 21 14:13:33 bpi-iot-jsho-minio-01 systemd[1]: Started MinIO.
Dez 21 14:14:01 bpi-iot-jsho-minio-01 minio[1556]: You are running an older version of MinIO released 3 weeks ago
Dez 21 14:14:01 bpi-iot-jsho-minio-01 minio[1556]: Update: Run `mc admin update`
Dez 21 14:14:01 bpi-iot-jsho-minio-01 minio[1556]: API: http://192.168.1.168:9000 http://127.0.0.1:9000
Dez 21 14:14:01 bpi-iot-jsho-minio-01 minio[1556]: Console: http://192.168.1.168:9001 http://127.0.0.1:9001
Dez 21 14:14:01 bpi-iot-jsho-minio-01 minio[1556]: Documentation: https://docs.min.io
root@bpi-iot-jsho-minio-01:~# ./mc admin update myminio/
Server `myminio/` updated successfully from 2021-11-24T23:19:33Z to 2021-12-10T23-03-39Z
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# ./mc admin update myminio/
Server `myminio/` already running the most recent version 2021-12-10T23:03:39Z of MinIO
root@bpi-iot-jsho-minio-01:~#
MinIO Gateway – adds Amazon S3 compatibility to NAS storage
Samstag, Dezember 11th, 2021C:\>set MINIO_ACCESS_KEY=admin
C:\>set MINIO_SECRET_KEY=<password>
C:\>minio gateway nas L:/

MinIO – earns Immutability badge from the Veeam Ready Program
Freitag, Dezember 10th, 2021Banana Pi BPI-M1 – installation start&stop script and speedtest for an S3-compatible object storage server with MinIO on Armbian Bullseye
Donnerstag, Dezember 9th, 2021root@bpi-iot-jsho-minio-01:~# apt-get update -y
root@bpi-iot-jsho-minio-01:~# apt-get full-upgrade -y
root@bpi-iot-jsho-minio-01:~# apt-get autoremove
root@bpi-iot-jsho-minio-01:~# wget https://dl.minio.io/server/minio/release/linux-arm/minio
–2021-12-06 15:39:38– https://dl.minio.io/server/minio/release/linux-arm/minio
Auflösen des Hostnamens dl.minio.io (dl.minio.io)… 178.128.69.202, 138.68.11.125
Verbindungsaufbau zu dl.minio.io (dl.minio.io)|178.128.69.202|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 96468992 (92M) [application/octet-stream]
Wird in „minio“ gespeichert.
minio 100%[===================>] 92,00M 1,80MB/s in 5m 7s
2021-12-06 15:44:46 (307 KB/s) – „minio“ gespeichert [96468992/96468992]
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# chmod +x minio
root@bpi-iot-jsho-minio-01:~# mv minio /usr/local/bin
root@bpi-iot-jsho-minio-01:~# /usr/local/bin/minio –version
minio version RELEASE.2021-11-24T23-19-33Z
root@bpi-iot-jsho-minio-01:~# useradd -r minio-user -s /sbin/nologin
root@bpi-iot-jsho-minio-01:~# chown minio-user:minio-user /usr/local/bin/minio
root@bpi-iot-jsho-minio-01:~# ls -la /usr/local/bin
insgesamt 94216
drwxr-xr-x 2 root root 4096 6. Dez 15:47 .
drwxr-xr-x 10 root root 4096 21. Aug 14:54 ..
-rwxr-xr-x 1 minio-user minio-user 96468992 25. Nov 08:10 minio
root@bpi-iot-jsho-minio-01:~# mkdir /usr/local/share/minio
root@bpi-iot-jsho-minio-01:~# chown minio-user:minio-user /usr/local/share/minio
root@bpi-iot-jsho-minio-01:~# ls -la /usr/local/share/minio
insgesamt 8
drwxr-xr-x 2 minio-user minio-user 4096 6. Dez 15:55 .
drwxr-xr-x 6 root root 4096 6. Dez 15:55 ..
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# mkdir /etc/minio
root@bpi-iot-jsho-minio-01:~# chown minio-user:minio-user /etc/minio
root@bpi-iot-jsho-minio-01:~# ls -la /etc/minio
insgesamt 8
drwxr-xr-x 2 minio-user minio-user 4096 6. Dez 15:58 .
drwxr-xr-x 92 root root 4096 6. Dez 15:58 ..
root@bpi-iot-jsho-minio-01:~#
root@bpi-iot-jsho-minio-01:~# vi /etc/default/minio
MINIO_ROOT_USER=“admin“
MINIO_VOLUMES=“/usr/local/share/minio/data{1…4}“
MINIO_OPTS=“–console-address :9001″
MINIO_ROOT_PASSWORD=“<password>“
root@bpi-iot-jsho-minio-01:~# curl -O https://raw.githubusercontent.com/minio/minio-service/master/linux-systemd/minio.service
root@bpi-iot-jsho-minio-01:~# mv minio.service /etc/systemd/system
root@bpi-iot-jsho-minio-01:~# systemctl daemon-reload
root@bpi-iot-jsho-minio-01:~# systemctl enable minio
Created symlink /etc/systemd/system/multi-user.target.wants/minio.service -> /etc/systemd/system/minio.service.
root@bpi-iot-jsho-minio-01:~# systemctl start minio
root@bpi-iot-jsho-minio-01:/etc/default# systemctl status minio
* minio.service – MinIO
Loaded: loaded (/etc/systemd/system/minio.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-12-21 13:56:32 CET; 56s ago
Docs: https://docs.min.io
Process: 1470 ExecStartPre=/bin/bash -c if [ -z „${MINIO_VOLUMES}“ ]; then echo „Variable MINIO_VOLUMES not set in /etc/default/minio“; exit 1; fi (code=exited, status=0/SUCCE>
Main PID: 1471 (minio)
Tasks: 8
Memory: 56.5M
CPU: 6.068s
CGroup: /system.slice/minio.service
`-1471 /usr/local/bin/minio server –console-address :9001 /usr/local/share/minio/
Dez 21 13:56:31 bpi-iot-jsho-minio-01 systemd[1]: Starting MinIO…
Dez 21 13:56:32 bpi-iot-jsho-minio-01 systemd[1]: Started MinIO.
Dez 21 13:56:39 bpi-iot-jsho-minio-01 minio[1471]: You are running an older version of MinIO released 3 weeks ago
Dez 21 13:56:39 bpi-iot-jsho-minio-01 minio[1471]: Update: Run `mc admin update`
Dez 21 13:56:40 bpi-iot-jsho-minio-01 minio[1471]: API: http://192.168.1.168:9000 http://127.0.0.1:9000
Dez 21 13:56:40 bpi-iot-jsho-minio-01 minio[1471]: Console: http://192.168.1.168:9001 http://127.0.0.1:9001
Dez 21 13:56:40 bpi-iot-jsho-minio-01 minio[1471]: Documentation: https://docs.min.io
root@bpi-iot-jsho-minio-01:~#
http://192.168.1.168:9001

root@bpi-iot-jsho-minio-01:~# ./mc admin speedtest –duration 60s –size 2MiB –concurrent 4 myminio
⠼ Running speedtest (With 2.0 MiB object size, 4 concurrency) PUT: 5.3 MiB/s GET: 20 MiB/s
MinIO 2021-11-24T23:19:33Z, 1 servers, 4 drives
PUT: 5.3 MiB/s, 2 objs/s
GET: 20 MiB/s, 9 objs/s
root@bpi-iot-jsho-minio-01:~#
http://192.168.1.168:9001

The minio-user should have write permissions on /usr/local/bin for the update to work
root@bpi-iot-jsho-minio-01:~# ./mc admin update myminio/
Server `myminio/` updated successfully from 2021-11-24T23:19:33Z to 2021-12-10T23-03-39Z
root@bpi-iot-jsho-minio-01:~#
OSSperf – is a lightweight command-line tool for analyzing the performance and data integrity of storage services that implement the S3 API
Montag, Dezember 6th, 2021ossperf.sh -n files -s size [-b <bucket>] [-u] [-a] [-m <alias>] [-z] [-g] [-w] [-l <location>] [-d <url>] [-k] [-p] [-o]
This script analyzes the performance and data integrity of S3-compatible storage services
Arguments:
-h : show this message on screen
-n : number of files to be created
-s : size of the files to be created in bytes (max 16777216 = 16 MB)
-b : ossperf will create per default a new bucket ossperf-testbucket (or OSSPERF-TESTBUCKET, in case the argument -u is set). This is not a problem when private cloud deployments are investigated, but for public cloud scenarios it may become a problem, because object-based storage services implement a global bucket namespace. This means that all bucket names must be unique. With the argument -b <bucket> the users of ossperf have the freedom to specify the bucket name
-u : use upper-case letters for the bucket name (this is required for Nimbus Cumulus and S3ninja)
-a : use the Swift API and not the S3 API (this requires the python client for the Swift API and the environment variables ST_AUTH, ST_USER and ST_KEY)
-m : use the S3 API with the Minio Client (mc) instead of s3cmd. It is required to provide the alias of the mc configuration that shall be used
-z : use the Azure CLI instead of the S3 API (this requires the python client for the Azure CLI and the environment variables AZURE_STORAGE_ACCOUNT and AZURE_STORAGE_ACCESS_KEY)
-g : use the Google Cloud Storage CLI instead of the s3cmd (this requires the python client for the Google API)
-w : use the AWS CLI instead of the s3cmd (this requires the installation and configuration of the aws cli client)
-l : use a specific site (location) for the bucket. This is supported e.g. by the AWS S3 and Google Cloud Storage
-d : If the aws cli shall be used with an S3-compatible non-Amazon service, please specify with this parameter the endpoint-url
-k : keep the local files and the directory afterwards (do not clean up)
-p : upload and download the files in parallel
-o : appended the results to a local file results.csv
Example: ./ossperf.sh -n 5 -s 1048576 -b ossperf-testbucket -p -m minio
Banana Pi BPI-M1 – installing an S3-compatible object storage server with MinIO on Armbian Bullseye
Sonntag, Dezember 5th, 2021root@bpi-iot-jsho-tools-01:~# wget https://dl.minio.io/server/minio/release/linux-arm/minio
–2021-11-30 14:25:14– https://dl.minio.io/server/minio/release/linux-arm/minio
Auflösen des Hostnamens dl.minio.io (dl.minio.io)… 178.128.69.202
Verbindungsaufbau zu dl.minio.io (dl.minio.io)|178.128.69.202|:443 … verbunden.
HTTP-Anforderung gesendet, auf Antwort wird gewartet … 200 OK
Länge: 96468992 (92M) [application/octet-stream]
Wird in „minio“ gespeichert.
minio 100%[================================================================>] 92,00M 5,53MB/s in 5m 5s
2021-11-30 14:30:25 (309 KB/s) – „minio“ gespeichert [96468992/96468992]
root@bpi-iot-jsho-tools-01:~# mkdir /data
root@bpi-iot-jsho-tools-01:~# chmod +x minio
root@bpi-iot-jsho-tools-01:~# MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=<password> ./minio server /data –console-address „:9001“ &
Console: http://192.168.1.168:9001 http://172.17.0.1:9001 http://127.0.0.1:9001
RootUser: admin
RootPass: <password>
Command-line: https://docs.min.io/docs/minio-client-quickstart-guide
$ mc alias set myminio http://192.168.1.168:9000 admin <password>
Documentation: https://docs.min.io
root@bpi-iot-jsho-tools-01:~#
http://192.168.1.168:9001


root@bpi-iot-jsho-tools-01:~# wget https://dl.min.io/client/mc/release/linux-arm/mc
–2021-12-04 14:30:46– https://dl.min.io/client/mc/release/linux-arm/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: 19070976 (18M) [application/octet-stream]
Wird in „mc“ gespeichert.
mc 100%[===================>] 18,19M 5,60MB/s in 4,1s
2021-12-04 14:30:51 (4,46 MB/s) – „mc“ gespeichert [19070976/19070976]
root@bpi-iot-jsho-tools-01:~# chmod +x ./mc
root@bpi-iot-jsho-tools-01:~# ./mc alias set myminio http://192.168.1.168:9000 admin <password>
Added `myminio` successfully.
root@bpi-iot-jsho-tools-01:~# ./mc admin info myminio
● 192.168.1.168:9000
Uptime: 4 minutes
Version: 2021-11-24T23:19:33Z
Network: 1/1 OK
root@bpi-iot-jsho-tools-01:~# ./mc admin service restart myminio
Restarting on service signal
Restart command successfully sent to `myminio`. Type Ctrl-C to quit or wait to follow the status of the restart process.
….API: http://192.168.1.168:9000 http://172.17.0.1:9000 http://127.0.0.1:9000
RootUser: admin
RootPass: <password>
Console: http://192.168.1.168:9001 http://172.17.0.1:9001 http://127.0.0.1:9001
RootUser: admin
RootPass: <password>
Command-line: https://docs.min.io/docs/minio-client-quickstart-guide
$ mc alias set myminio http://192.168.1.168:9000 admin <password>
Documentation: https://docs.min.io
Restarted `myminio` successfully.
root@bpi-iot-jsho-tools-01:~#
root@bpi-iot-jsho-tools-01:~# ./mc admin update myminio
Server `myminio` already running the most recent version 2021-11-24T23:19:33Z of MinIO
root@bpi-iot-jsho-tools-01:~#
root@bpi-iot-jsho-tools-01:~# ./mc admin service stop myminio
Stopping on service signal
Stopped `myminio` successfully.
root@bpi-iot-jsho-tools-01:~# MINIO_ROOT_USER=admin MINIO_ROOT_PASSWORD=<password> ./minio server /data{1…4} –console-address „:9001“ &
[1] 1757
root@bpi-iot-jsho-tools-01:~# Formatting 1st pool, 1 set(s), 4 drives per set.
WARNING: Host local has more than 2 drives of set. A host failure will result in data becoming unavailable.
Automatically configured API requests per node based on available memory on the system: 13
Status: 4 Online, 0 Offline.
API: http://192.168.1.168:9000 http://172.17.0.1:9000 http://127.0.0.1:9000
RootUser: admin
RootPass: <password>
Console: http://192.168.1.168:9001 http://172.17.0.1:9001 http://127.0.0.1:9001
RootUser: admin
RootPass: <password>
Command-line: https://docs.min.io/docs/minio-client-quickstart-guide
$ mc alias set myminio http://192.168.1.168:9000 admin <password>
Documentation: https://docs.min.io
root@bpi-iot-jsho-tools-01:~#
root@bpi-iot-jsho-tools-01:~# ./mc admin info myminio
● 192.168.1.168:9000
Uptime: 35 seconds
Version: 2021-11-24T23:19:33Z
Network: 1/1 OK
Drives: 4/4 OK
4 drives online, 0 drives offline
root@bpi-iot-jsho-tools-01:~#
http://192.168.1.168:9001


root@bpi-iot-jsho-tools-01:~# ./mc ls myminio
[2021-12-04 17:09:49 CET] 0B picture/
root@bpi-iot-jsho-tools-01:~#
root@bpi-iot-jsho-tools-01:~# ./mc admin heal myminio
Server status:
==============
Pool 1:
localhost:
+ /data1 : OK
|__ Capacity: 1.6 GiB/57 GiB
+ /data2 : OK
|__ Capacity: 1.6 GiB/57 GiB
+ /data3 : OK
|__ Capacity: 1.6 GiB/57 GiB
+ /data4 : OK
|__ Capacity: 1.6 GiB/57 GiB
Summary:
=======
No ongoing active healing.
root@bpi-iot-jsho-tools-01:~#
root@bpi-iot-jsho-tools-01:~# ./mc admin –json info play
{
„status“: „success“,
„info“: {
„mode“: „online“,
„domain“: [
„play.min.io“,
„play.minio.io“
],
„region“: „us-east-1“,
„sqsARN“: [
„arn:minio:sqs:us-east-1:_:webhook“,
„arn:minio:sqs:us-east-1:1:webhook“
],
…
}
}
root@bpi-iot-jsho-tools-01:~#
root@bpi-iot-jsho-tools-01:~# ./mc admin trace myminio
2021-12-05T17:27:50:000 [200 OK] sts.AssumeRole 192.168.1.168:9000/ 192.168.1.168 73.435ms ↑ 126 B ↓ 1.1 KiB
2021-12-05T17:28:14:000 [200 OK] s3.GetBucketLocation 192.168.1.168:9000/picture/?location= 192.168.1.168 5.247ms ↑ 98 B ↓ 444 B
2021-12-05T17:28:14:000 [200 OK] s3.GetBucketLocation 192.168.1.168:9000/picture/?location= 192.168.1.168 6.781ms ↑ 98 B ↓ 444 B
2021-12-05T17:28:14:000 [200 OK] s3.GetBucketVersioning 192.168.1.168:9000/picture/?versioning= 192.168.1.168 5.496ms ↑ 98 B ↓ 439 B
2021-12-05T17:28:14:000 [200 OK] s3.ListObjectsV2 192.168.1.168:9000/picture/?delimiter=%2F&encoding-type=url&fetch-owner=true&list-type=2&prefix= 192.168.1.168 17.523ms ↑ 98 B ↓ 610 B
2021-12-05T17:28:14:000 [200 OK] s3.GetBucketLocation 192.168.1.168:9000/picture/?location= 192.168.1.168 4.592ms ↑ 98 B ↓ 444 B
2021-12-05T17:28:14:000 [404 Not Found] s3.GetBucketPolicy 192.168.1.168:9000/picture/?policy= 192.168.1.168 4.13ms ↑ 98 B ↓ 613 B
2021-12-05T17:28:14:000 [404 Not Found] s3.GetBucketTagging 192.168.1.168:9000/picture/?tagging= 192.168.1.168 3.803ms ↑ 98 B ↓ 600 B
2021-12-05T17:28:36:000 [200 OK] s3.GetBucketLocation 192.168.1.168:9000/picture/?location= 192.168.1.168 4.451ms ↑ 98 B ↓ 444 B
2021-12-05T17:28:36:000 [200 OK] s3.PutObject 192.168.1.168:9000/picture/Josef(1).jpg 192.168.1.168 422.608ms ↑ 727 KiB ↓ 380 B
2021-12-05T17:28:37:000 [200 OK] s3.GetBucketLocation 192.168.1.168:9000/picture/?location= 192.168.1.168 4.397ms ↑ 98 B ↓ 444 B
2021-12-05T17:28:37:000 [200 OK] s3.ListObjectsV2 192.168.1.168:9000/picture/?delimiter=%2F&encoding-type=url&fetch-owner=true&list-type=2&prefix= 192.168.1.168 13.537ms ↑ 98 B ↓ 942 B
2021-12-05T17:28:48:000 [200 OK] s3.GetBucketLocation 192.168.1.168:9000/picture/?location= 192.168.1.168 4.368ms ↑ 98 B ↓ 444 B
2021-12-05T17:28:48:000 [200 OK] s3.PutObject 192.168.1.168:9000/picture/Josef(2).jpg 192.168.1.168 263.048ms ↑ 292 KiB ↓ 380 B
2021-12-05T17:28:48:000 [200 OK] s3.GetBucketLocation 192.168.1.168:9000/picture/?location= 192.168.1.168 4.273ms ↑ 98 B ↓ 444 B
2021-12-05T17:28:48:000 [200 OK] s3.ListObjectsV2 192.168.1.168:9000/picture/?delimiter=%2F&encoding-type=url&fetch-owner=true&list-type=2&prefix= 192.168.1.168 14.022ms ↑ 98 B ↓ 1.2 KiB
^C
root@bpi-iot-jsho-tools-01:~#



