MINIO – Multi-Cloud Object Storage, S3 compatible object storage

MinIO 支援各大雲端服務, 在 K8s 、Docker 、 Linux、 Mac、Windows 平台上也都可以跑,

你可以單碟、多碟、單機,也可以多機分散管理

也支援 .NET、Golang、Java、 Javascript、Python 等 SDK

還可搭配 Prometheus 與 InfluxDB 作監控

可用 OpenID 、AD 、LADP 管理

允許資料加密,支援 ↓

restic 也支援 minio

安裝

wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/

設定

定義放設定檔的目錄 (預設會在 ~/.minio) (目前只看到放 SSL 憑證的東西)

mkdir /etc/minio/

指定要存放資料檔案的地方

mkdir /var/lib/myminio

執行

# 你可以簡單的跑
minio server /var/lib/myminio

# 或者自訂 ↓
export MINIO_ROOT_USER=admin
export MINIO_ROOT_PASSWORD=12345678
minio server -C /etc/minio --address :9000 --console-address :9090 /var/lib/myminio

它有 web 介面,所以有一組帳密,供 web 介面登入用

可以在網頁上新增 bucket 或是 新增使用者、access keys 等等

這時候就可以瀏覽網頁 http://10.10.10.137:9000

9000 port 是屬於 API 方面的,而 9090 port 是 web 管理介面,你連 9000 時是會導向 9090 的

minio 的多機方式是把 /var/lib/myminio 換成 http://1.1.1.1:9000 http://2.2.2.2:9000

而多碟就是 /var/lib/myminio /var/lib/myminio2,也可以 /var/lib/myminio{1…100}

以上是 server 端的

再來是 client 端

它提供一支程式下指令,可以建立 bucket 及傳資料用

安裝

wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/mc

別名

接下來只要直接指定 myminio 就可方便快速操作

mc alias set myminio http://10.10.10.137:9000 admin 12345678

# 也可以用 access key (在 web 介面裡產生) (access key + secret key)
mc alias set myminio2 http://10.10.10.137:9000 4q8AIpEemRUvhqkG OoMJb6208FU547kQcsUQooMBGszKk4tn

預設會將設定放在 ~/.mc/config.json 裡 (裡面記錄了主機資訊,如果你用雲端服務它是會記錄在這裡)

查看資訊

用剛剛的別名名稱

mc admin info myminio

結果

●  10.10.10.137:9000
   Uptime: 4 days 
   Version: 2022-11-08T05:27:07Z
   Network: 1/1 OK 
   Drives: 1/1 OK 
   Pool: 1

Pools:
   1st, Erasure sets: 1, Drives per erasure set: 1

1.1 KiB Used, 1 Bucket, 1 Object
1 drive online, 0 drives offline

建立 bucket

用來將資料放到裡面去 (類似資料夾)

mc mb myminio/testbucket

複製檔案

mc cp anaconda-ks.cfg myminio/testbucket

查看檔案

mc ls myminio/testbucket

結果

[2022-11-08 17:32:01 CST] 1.1KiB STANDARD anaconda-ks.cfg

 

minio 設定服務啟動

將 minio 設定可以在開機時自動啟動 (server 端)

建立使用者

useradd -d /var/lib/myminio/ -s /bin/false minio

chown -R minio:minio /var/lib/myminio/
chown -R minio:minio /etc/minio/certs

設定檔

vi /etc/minio.conf

MINIO_ROOT_USER="admin"
MINIO_ROOT_PASSWORD="12345678"
MINIO_VOLUMES="/var/lib/myminio"
MINIO_OPTS="-C /etc/minio --address :9000 --console-address :9090"

啟動檔

vi /etc/systemd/system/minio.service

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

[Service]
WorkingDirectory=/usr/local/

User=minio
Group=minio

EnvironmentFile=-/etc/minio.conf
ExecStartPre=/bin/bash -c "if [ -z \"${MINIO_VOLUMES}\" ]; then echo \"Variable MINIO_VOLUMES not set in /etc/minio.conf\"; 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=65536

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

[Install]
WantedBy=multi-user.target

啟用

systemctl start minio
systemctl enable minio

使用傳輸加密 (SSL)

只要在 /etc/minio/certs 裡放置 private.key 及 public.crt,再重啟就可以了 (只能連 https ,而 http 就不能連了)

或者要指定路徑,參數多加入 ↓

--certs-dir /etc/minio/certs/

minio 也有自簽工具  >>> /certgen

 

參考

MinIO High Performance Object Storage
How to Install MinIO Storage on Rocky Linux

 

Related posts 相關文章
MinIO 漏洞這麼簡單就把帳密洩漏出來了
More...
如果你有用 Azure Blob 可能有資料外洩
More...
58 個 opensource 儲存、備份系統
More...

作者

留言

撰寫回覆或留言

發佈留言必須填寫的電子郵件地址不會公開。