一、Linux單機部署
二、Linux集群部署
簡介:分布式MinIO可以將多塊硬盤(分布在多台機器上)組成一個對象存儲服務,從而避免了單點故障,還確保完整的數據保護,MinIO在分布式和單機模式下,所有的讀寫操作都遵守read-after-write模型。
1. 基礎知識點
A. 數據保護是采用糾刪碼來防范多個節點宕機和位衰減,MinIO將對象拆分為N/2數據和N/2奇偶檢驗塊;
B. 單機MinIO服務存在單點故障,集群至少需要4個節點,如果搭建N個節點的MinIO集群,只要用N/2節點在線服務,數據就是安全的,但至少需要N/2+1個節點來創建新的對象;
C. 存放數據目錄需要是新目錄,分布式MinIO節點服務器之間的間隔應小於15分鍾,可以使用NYP服務來確保時間相同;
三、Linux Docker單機部署
1. 拉取鏡像:docker pull minio/minio;
2. 部署文件docker-compose.yml
version: "3.8"
services:
# minio文件系統
minio:
image: minio/minio:latest
ports:
- "9000:9000"
volumes:
- "/var/minio/data:/data"
- "/var/minio/config:/root/.minio"
environment:
MINIO_ACCESS_KEY: "root"
MINIO_SECRET_KEY: "root@123456"
command: server /data
四、Linux Docker集群部署
簡介:至少4台機器,擴容需要偶數台機器遞增
# MinIO文件服務集群
minio-1:
image: minio/minio:latest
hostname: minio-1
command: server http://minio-{1...4}/export
deploy:
mode: global
placement:
constraints:
- node.labels.minio-1 == true
restart_policy:
delay: 10s
max_attempts: 10
window: 60s
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:9000/minio/health/live"]
interval: 30s
timeout: 20s
retries: 3
networks:
- rws-mp
volumes:
- minio-1-data:/export
minio-2:
image: minio/minio:latest
hostname: minio-2
command: server http://minio-{1...4}/export
deploy:
mode: global
placement:
constraints:
- node.labels.minio-2 == true
networks:
- rws-mp
volumes:
- minio-2-data:/export
minio-3:
image: minio/minio:latest
hostname: minio-3
command: server http://minio-{1...4}/export
deploy:
mode: global
placement:
constraints:
- node.labels.minio-3 == true
networks:
- rws-mp
volumes:
- minio-3-data:/export
minio-4:
image: minio/minio:latest
hostname: minio-4
command: server http://minio-{1...4}/export
deploy:
mode: global
placement:
constraints:
- node.labels.minio-4 == true
networks:
- rws-mp
volumes:
- minio-4-data:/export
五、FAQ
1. 修改密碼:找到安裝的minio文件路徑.minio.sys/config
A. 打開config.json文件,更改access_key 和 secret_key的值即可;
B. 刪除config.json和iam文件,重新設置;
可參考:MinIO分布式集群搭建

