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
留言