確保Ubuntu系統為18.04及以上版本,具備root權限或sudo權限;系統已聯網,防火墻開啟9000端口(MinIO默認端口)。
# 導入MinIO官方GPG密鑰
wget -qO - https://dl.min.io/server/minio/release/linux/amd64/minio-release.gpg | sudo apt-key add -
# 添加MinIO APT倉庫
sudo add-apt-repository "deb https://dl.min.io/server/minio/release/ubuntu $(lsb_release -cs) main"
# 更新包列表并安裝MinIO
sudo apt update && sudo apt install minio -y
# 驗證安裝
minio --version
# 安裝Snap(若未安裝)
sudo apt install snapd
# 通過Snap安裝MinIO
sudo snap install minio --classic
# 啟動并設置開機自啟
sudo systemctl start minio
sudo systemctl enable minio
# 下載MinIO二進制文件
wget https://dl.min.io/server/minio/release/linux/amd64/minio
# 賦予執行權限并移動至系統路徑
chmod +x minio
sudo mv minio /usr/local/bin/
# 創建數據目錄并啟動服務
sudo mkdir -p /data/minio
sudo chown -R $USER:$USER /data/minio
# 啟動MinIO(前臺模式,生產環境建議用systemd)
minio server /data/minio
若使用手動安裝,需創建systemd服務文件實現開機自啟:
sudo nano /etc/systemd/system/minio.service
添加以下內容(替換/data/minio
為你的數據目錄):
[Unit]
Description=MinIO Server
After=network.target
[Service]
ExecStart=/usr/local/bin/minio server /data/minio
Restart=always
User=minio
Group=minio
[Install]
WantedBy=multi-user.target
保存后加載服務并啟動:
sudo systemctl daemon-reload
sudo systemctl start minio
sudo systemctl enable minio
MinIO客戶端用于管理存儲桶和數據傳輸:
# 下載并安裝mc
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/
# 配置mc別名(替換為你的MinIO服務器地址、Access Key、Secret Key)
mc alias set myminio http://localhost:9000 YOUR_ACCESS_KEY YOUR_SECRET_KEY
# 測試連接
mc ls myminio/
mc是MinIO官方提供的命令行工具,支持增量/全量備份,操作簡單:
# 備份單個存儲桶到本地目錄(遞歸復制所有對象)
mc cp -r myminio/mybucket /path/to/backup/location
# 備份所有存儲桶到指定目錄
mc find myminio/ --name "*" | xargs -I {} mc cp -r myminio/{} /path/to/backup/location
rsync適合備份MinIO數據目錄(需停止MinIO服務以保證數據一致性):
# 停止MinIO服務
sudo systemctl stop minio
# 同步數據目錄到備份位置(保留文件屬性)
rsync -avz --progress /data/minio/ /path/to/backup/location/
# 啟動MinIO服務
sudo systemctl start minio
若MinIO通過Docker部署,可通過卷備份數據:
# 停止MinIO容器
docker stop minio-container
# 備份數據卷(假設數據卷掛載在容器的/data目錄)
docker cp minio-container:/data /path/to/backup/location
# 啟動MinIO容器
docker start minio-container
通過MinIO REST API編寫腳本(如Bash+curl),實現自動化備份:
#!/bin/bash
ENDPOINT="http://localhost:9000"
ACCESS_KEY="YOUR_ACCESS_KEY"
SECRET_KEY="YOUR_SECRET_KEY"
BUCKET_NAME="mybucket"
BACKUP_DIR="/path/to/backup/location"
# 創建備份目錄
mkdir -p $BACKUP_DIR
# 獲取桶中所有對象(遞歸)
OBJECTS=$(curl -s -u $ACCESS_KEY:$SECRET_KEY "$ENDPOINT/$BUCKET_NAME/?recursive=true" | jq -r '.Contents[].Key')
# 下載每個對象
for OBJECT in $OBJECTS; do
curl -o "$BACKUP_DIR/$OBJECT" -u $ACCESS_KEY:$SECRET_KEY "$ENDPOINT/$BUCKET_NAME/$OBJECT"
done
restic支持增量備份和加密,適合長期存儲:
# 安裝restic
sudo apt install restic -y
# 初始化備份倉庫
restic init --repo /path/to/restic/repo
restic login
# 備份MinIO數據(需先通過mc/rsync將數據復制到本地/tmp/minio-backup)
restic backup /tmp/minio-backup
從備份位置恢復數據到MinIO存儲桶:
# 恢復單個存儲桶(遞歸復制所有對象)
mc cp -r /path/to/backup/location/mybucket myminio/
# 恢復單個對象
mc cp /path/to/backup/location/mybucket/object.txt myminio/mybucket/
若存儲桶中存在損壞對象,可使用heal命令修復:
# 修復指定存儲桶(遞歸檢查所有對象)
mc admin heal myminio/mybucket
# 檢查存儲桶健康狀態
mc admin info myminio/mybucket
若MinIO配置了快照(如通過跨區域復制或第三方工具),可從快照恢復:
# 查看可用快照(需在MinIO控制臺或通過API獲?。?/span>
# 假設快照標簽為"snapshot-20250101",倉庫名為"myrepo"
mc admin restore myminio/mybucket snapshot-20250101 myrepo
若MinIO節點硬件故障,替換新節點后啟動服務即可自動恢復:
# 替換新節點(確保硬件配置與原節點一致)
# 啟動MinIO服務(使用原集群的配置文件和數據目錄)
minio server /data/minio
# 監控恢復進度(使用mc命令)
mc admin heal myminio/