本文內容部分摘自https://www.cnblogs.com/luoyan01/p/9733837.html
minio分布式部署最少要求4個存儲,我的環境是三台存儲節點每台提供兩塊3.2T NVMe盤作為后端存儲
export MINIO_ACCESS_KEY=admin export MINIO_SECRET_KEY=admin123 ./minio server \ http://192.168.3.1/mount1 \ http://192.168.3.1/mount11 \ http://192.168.3.2/mount2 \ http://192.168.3.2/mount22 \ http://192.168.3.3/mount3 \ http://192.168.3.3/mount33 后台啟動 nohup ./minio server http://192.168.3.192/export2 http://192.168.3.193/export3 http://192.168.3.194/export4 http://192.168.3.195/export5 > /opt/data/minio/minio.log 2>&1 &
做成服務
mc 命令添加bucket連接
#要添加一個或多個與Amazon S3兼容的主機,請按照以下說明操作。mc將所有配置信息存儲在~/.mc/config.json文件中。
mc config host add <ALIAS> <YOUR-S3-ENDPOINT> <YOUR-ACCESS-KEY> <YOUR-SECRET-KEY> --api <API-SIGNATURE> --lookup <BUCKET-LOOKUP-TYPE>
<ALIAS>:別名,是雲存儲服務的簡稱,alias名稱可以隨意起
<YOUR-S3-ENDPOINT>:地址 minio服務的地址;本列是47.94.3.211:9000
<YOUR-ACCESS-KEY>:登陸AccessKey docker logs minio容器ID 可查看;
<YOUR-SECRET-KEY>:登陸SecretKey docker logs minio容器ID 可查看;
-- api <API-SIGNATURE>: 可選參數 默認情況下設置為S3v4;
--lookup <BUCKET-LOOKUP-TYPE>:可選參數,它用於指示服務器是否支持dns或路徑樣式url請求。它接受“dns”,“path”或“auto”作為有效值。
默認情況下,它設置為“auto“,SDK會自動確定要使用的URL查找類型。
本地使用的樣例:
mc config host add <alias> http://172.20.0.3:9000 admin admin123456 [--api S3v4] mc config host add lemon01 http://172.20.0.1:9000 admin admin123456 mc config host add lemon02 http://172.20.0.2:9000 admin admin123456 --api S3v4 mc config host add lemon03 http://172.20.0.3:9000 admin admin123456 --api S3v2 #查看lemon01的文件,會發現里面的桶文件內容一致 mc ls lemon01 mc ls lemon02 mc ls lemon03
雲存儲示例:
1、Minio雲存儲
mc config host add minio http://47.94.3.211:9000 OUVC1I8KN22SHXVP02IX Uf5HvAsZYwHeXA02z2mdTtVcssZCYCMKJCQOLQAW
2、Amazon S3雲存儲
mc config host add s3 http://47.94.3.211:9000 OUVC1I8KN22SHXVP02IX Uf5HvAsZYwHeXA02z2mdTtVcssZCYCMKJCQOLQAW
3、Google雲存儲
mc config host add gcs http://47.94.3.211:9000 OUVC1I8KN22SHXVP02IX Uf5HvAsZYwHeXA02z2mdTtVcssZCYCMKJCQOLQAW --api S3v2
注意:Google雲存儲僅支持舊版簽名版本2,因此您必須選擇 - S3v2
測試:
我用的是Minio雲存儲
1、列出所有存儲桶(bucket)
mc ls minio #mc ls 后接<alias>別名
2、創建bucket01桶
mc mb minio/bucket01 #在連接別名minio下創建bucket01桶
3、復制對象”
mc cp xxx minio/bucket01
mc policy set download lemon01/backup01 設置lemon01別名的backup01桶可下載屬性
mc policy set upload lemon01/backup01 設置lemon01別名的backup01桶可上傳屬性
掛載
掛載通過s3fs-fuser,來進行掛載
兩種方式都可以安裝s3fs-fuse
- 二進制安裝s3fs-fuse
yum install automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel git clone https://github.com/s3fs-fuse/s3fs-fuse.git cd s3fs-fuse ./autogen.sh ./configure make&&make install
- yum 安裝s3fs-fuse
yum install -y s3fs-fuse
如果服務器無法聯網需要搭建 yum 離線源
搭建yum離線安裝源
如果離線環境的話,需要下載依賴包來搭建離線yum源
創建repo倉庫文件目錄
mkdir -p /test1 yumdownloader --resolve --destdir /test1 automake fuse fuse-devel gcc-c++ git libcurl-devel libxml2-devel make openssl-devel s3fs-fuse
#下載依賴包到 /test1
tar -zcvf s3fs-fuse.tar.gz /test1
#打個包上傳到待裝機器上
rpm -ivh createrepo
createrepo /test1
s3fs安裝完成后,我們可以掛載backup01(bucket)桶作為本地存儲使用
echo "echo admin:admin123456" >> /etc/passwd-s3fs
#設置minio服務認證的用戶名密碼
s3fs -o passwd_file=/etc/passwd-s3fs -o use_path_request_style -o endpoint=us-east-1 -o url=http://172.20.0.1:9000 -o bucket=backup01 /test5
s3fs -o use_path_request_style -o endpoint=us-east-1 -o url=http://172.20.0.1:9000 -o bucket=bucket01 /test5
#省略passwd_file選項執行效果也是一樣的
s3fs -o use_path_request_style -o endpoint=us-east-1 -o url=http://172.20.0.3:9000 -o bucket=bucket01 /storage
passwd_file
# minio服務用戶名密碼文件,如果設置過了可以省略passwd_file參數,默認會從/etc/passwd-s3fs讀取用戶名密碼
url
# Minio節點的URL
bucket
#
桶名