一、前言
MinIO 的基礎(chǔ)概念和環(huán)境部署可以參考:
我之前的文章:高性能分布式對象存儲——MinIO(環(huán)境部署):https://www.cnblogs.com/liugp/p/16558869.html
二、客戶端操作 MinIO Client(mc)
官方文檔:https://docs.min.io/docs/minio-admin-complete-guide.html
MinIO Client (mc) 為 UNIX 命令(如 ls、cat、cp、mirror、diff、find 等)提供了現(xiàn)代替代方案。它支持文件系統(tǒng)和兼容 Amazon S3 的云存儲服務(wù)(AWS Signature v2 和 v4)。
aliasset,removeandlistaliasesinconfigurationfile lslistbucketsandobjects mbmakeabucket rbremoveabucket cpcopyobjects mirrorsynchronizeobject(s)toaremotesite catdisplayobjectcontents headdisplayfirst'n'linesofanobject pipestreamSTDINtoanobject sharegenerateURLfortemporaryaccesstoanobject findsearchforobjects sqlrunsqlqueriesonobjects statshowobjectmetadata mvmoveobjects treelistbucketsandobjectsinatreeformat dusummarizediskusagerecursively retentionsetretentionforobject(s) legalholdsetlegalholdforobject(s) difflistdifferencesinobjectname,size,anddatebetweentwobuckets rmremoveobjects encryptmanagebucketencryptionconfig eventmanageobjectnotifications watchlistenforobjectnotificationevents undoundoPUT/DELETEoperations policymanageanonymousaccesstobucketsandobjects tagmanagetagsforbucket(s)andobject(s) ilmmanagebucketlifecycle versionmanagebucketversioning replicateconfigureserversidebucketreplication adminmanageMinIOservers updateupdatemctolatestrelease
1)mc Shell 自動補(bǔ)全
如果您使用的是 bash、zsh 或 fish。Shell 補(bǔ)全默認(rèn)嵌入在 mc,安裝自動補(bǔ)全使用mc --autocompletion。重新啟動 shell,mc 將自動完成命令,如下所示。
#安裝 mc--autocompletion #重啟shell,即退出shell,重新連接即可
2)查看 mc 版本
mc--version
3)列出來自https://play.min.io的所有存儲桶
mclsplay #json格式 mc--jsonlsplay
4)創(chuàng)建桶
mb命令在對象存儲上創(chuàng)建一個(gè)新存儲桶。在文件系統(tǒng)上,它的行為類似于 mkdir -p 命令。Bucket 相當(dāng)于文件系統(tǒng)中的驅(qū)動器或掛載點(diǎn),不應(yīng)被視為文件夾。MinIO 對每個(gè)用戶創(chuàng)建的存儲桶數(shù)量沒有任何限制。
#添加MinIO存儲服務(wù) cd/opt/bigdata/minio ./mcconfighostaddminiohttp://local-168-182-110:19000adminadmin123456 #在自己部署的minio創(chuàng)建新存儲桶 mcmbminio/mybucket #查看所有桶 mclsminio
web 訪問:http://local-168-182-110:19001
5)復(fù)制文件到 MinIO
cp命令將數(shù)據(jù)從一個(gè)或多個(gè)源復(fù)制到目標(biāo)。
mccpwget-logminio/mybucket #查看 mclswget-logminio/mybucket
6)日常使用
您可以添加 shell 別名來覆蓋您常用的 Unix 工具。
aliasls='mcls' aliascp='mccp' aliascat='mccat' aliasmkdir='mcmb' aliaspipe='mcpipe' aliasfind='mcfind' aliastree='mctree'
7)MinIO 管理員操作
MinIO Client (mc) 提供 admin 子命令來對 MinIO 部署執(zhí)行管理任務(wù)。
servicerestartandstopallMinIOservers updateupdateallMinIOservers infodisplayMinIOserverinformation usermanageusers groupmanagegroups policymanagepoliciesdefinedintheMinIOserver replicatemanageMinIOsitereplication configmanageMinIOserverconfiguration decommission,decommanageMinIOserverpooldecommissioning healhealdisks,bucketsandobjectsonMinIOserver prometheusmanagesprometheusconfig kmsperformKMSmanagementoperations bucketmanagebucketsdefinedintheMinIOserver tiermanageremotetiertargetsforILMtransition topprovidetoplikestatisticsforMinIO traceshowhttptraceforMinIOserver consoleshowconsolelogsforMinIOserver
1)查看集群信息
mcadmininfominio #為了方便使用,可以設(shè)置別名 aliasminfo='mcadmininfo' minfominio
2)全局選項(xiàng)
1、選項(xiàng) [--debug]
【示例】顯示 info 命令的詳細(xì)調(diào)試輸出
mcadmininfo--debugminio
2、選項(xiàng) [--json]
JSON 選項(xiàng)啟用 JSON 行格式的可解析輸出。
【示例】MinIO 服務(wù)器信息
mcadmin--jsoninfominio
3)命令 service- 重啟和停止所有 MinIO 服務(wù)器
service 命令提供了一種重新啟動和停止所有 MinIO 服務(wù)器的方法。
【示例】
mcadminservicerestartminio
4)命令 policy- 管理預(yù)設(shè)策略
policy 添加、刪除、列出策略、獲取策略信息以及為 MinIO 服務(wù)器上的用戶設(shè)置策略的命令。
NAME: mcadminpolicy-managepolicies FLAGS: --help,-hshowhelp COMMANDS: addaddnewpolicy removeremovepolicy listlistallpolicies infoshowinfoonapolicy setsetIAMpolicyonauserorgroup
1、【示例】列出 MinIO 上的所有預(yù)設(shè)策略
mcadminpolicylistminio
2、【示例】在 MinIO 上添加新策略“l(fā)istbucketsonly”
策略來自 /tmp/listbucketsonly.json。當(dāng)此策略應(yīng)用于用戶時(shí),該用戶只能列出頂層存儲桶,但不能列出其他任何內(nèi)容,沒有前綴,沒有對象。
首先使用以下信息創(chuàng)建 json 文件 /tmp/listbucketsonly.json。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":[ "s3:ListAllMyBuckets" ], "Resource":[ "arns3:::*" ] } ] }
將策略作為“l(fā)istbucketsonly”添加到策略數(shù)據(jù)庫
mcadminpolicyaddminiolistbucketsonly/tmp/listbucketsonly.json #刪除MinIO上的策略“l(fā)istbucketsonly” mcadminpolicyremoveminiolistbucketsonly
3、【示例】在用戶或組上設(shè)置標(biāo)準(zhǔn)策略。'writeonly'
#添加一個(gè)新用戶“newuser”,密碼"newuser123" mcadminuseraddminionewusernewuser123 #給用戶添加策略 mcadminpolicysetminiowriteonlyuser=newuser #添加組“somegroup”,把用戶“newuser”添加到組 mcadmingroupaddminiosomegroupnewuser #給組添加策略 mcadminpolicysetminiowriteonlygroup=somegroup
5)命令 user- 管理用戶
1、【示例】在 MinIO 上添加一個(gè)新用戶“newuser”
#添加一個(gè)新用戶“newuser”,密碼"newuser123" mcadminuseraddminionewusernewuser123
2、【示例】在 MinIO 上禁用用戶“newuser”
mcadminuserdisableminionewuser
3、【示例】在 MinIO 上啟用用戶“newuser”
mcadminuserenableminionewuser
4、【示例】在 MinIO 上刪除用戶“newuser”
mcadminuserremoveminionewuser
5、【示例】列出 MinIO 上的所有用戶
mcadminuserlist--jsonminio
6、【示例】顯示用戶信息
mcadminuserinfominionewuser
6)命令 group- 管理組
group 在 MinIO 服務(wù)器上添加、刪除、信息、列出、啟用、禁用組的命令。
1、【示例】將用戶添加到 MinIO 上的組“somegroup”
#如果組不存在,則創(chuàng)建組。 mcadmingroupaddminiosomegroupnewuser
2、【示例】從 MinIO 上的組“somegroup”中刪除用戶
mcadmingroupremoveminiosomegroupnewuser
3、【示例】在 MinIO 上刪除一個(gè)組“somegroup”
僅在給定組為空時(shí)有效,非空組無法刪除
mcadmingroupremoveminiosomegroup
4、【示例】在 MinIO 上獲取組“somegroup”的信息
#添加組 mcadmingroupaddminiosomegroupnewuser #刪除 mcadmingroupinfominiosomegroup
5、【示例】列出 MinIO 上的所有組
mcadmingrouplistminio
6、【示例】在 MinIO 上啟用組“somegroup”
mcadmingroupenableminiosomegroup
7、【示例】在 MinIO 上禁用組“somegroup”
mcadmingroupdisableminiosomegroup
7)命令 config- 管理服務(wù)器配置
config命令來管理 MinIO 服務(wù)器配置。
1、【示例】獲取“etcd”子系統(tǒng)配置
#通過引入第三方組件etcd,在不動原有集群的基礎(chǔ)上實(shí)現(xiàn)動態(tài)擴(kuò)展方案 mcadminconfiggetminioetcd
2、【示例】在“etcd”子系統(tǒng)上設(shè)置特定設(shè)置
mcadminconfigsetminioetcdendpoints=http://[hostname|ip]:2379
3、【示例】獲取 MinIO 服務(wù)器/集群的整個(gè)服務(wù)器配置
mcadminconfigexportminio>/tmp/my-serverconfig
4、【示例】設(shè)置 MinIO 服務(wù)器/集群的整個(gè)服務(wù)器配置
mcadminconfigimportminio/tmp/my-serverconfig
這里列出了常用的命令,想了解更多,可以查看官方文檔:https://docs.min.io/docs/minio-admin-complete-guide.html
MinIO Client(mc)操作還是非常簡單的,但是更多的使用還是通過程序去調(diào)用 api 接口的,后續(xù)會講解~
三、MinIO 分布式集群擴(kuò)容
參考:https://docs.min.io/docs/distributed-minio-quickstart-guide.html
MinIO 集群擴(kuò)容方法:
常見的集群擴(kuò)容方法可分為兩類:水平擴(kuò)容和垂直擴(kuò)容。
水平擴(kuò)容,一般指通過增加節(jié)點(diǎn)數(shù)擴(kuò)展系統(tǒng)性能;
而垂直擴(kuò)容則指提升各節(jié)點(diǎn)自身的性能,例如增加節(jié)點(diǎn)的磁盤存儲空間。直接采用垂直擴(kuò)容方式擴(kuò)容 MinIO 集群的節(jié)點(diǎn)磁盤空間,會為集群運(yùn)行帶來若干問題,官方也并不推薦。因此本文主要介紹 MinIO 的兩種水平擴(kuò)容方式:對等擴(kuò)容和聯(lián)邦擴(kuò)容。
1)對等擴(kuò)容
首先,MinIO 的極簡設(shè)計(jì)理念使得 MinIO 分布式集群并不支持向集群中添加單個(gè)節(jié)點(diǎn)并進(jìn)行自動調(diào)節(jié)的擴(kuò)容方式,這是因?yàn)榧尤雴蝹€(gè)節(jié)點(diǎn)后所引發(fā)的數(shù)據(jù)均衡以及糾刪組劃分等問題會為整個(gè)集群帶來復(fù)雜的調(diào)度和處理過程,并不利于維護(hù)。因此,MinIO 提供了一種對等擴(kuò)容的方式,即要求增加的節(jié)點(diǎn)數(shù)和磁盤數(shù)均需與原集群保持對等。
例如原集群包含2 個(gè)節(jié)點(diǎn) 2 塊磁盤,則在擴(kuò)容時(shí)必須同樣增加 2 個(gè)節(jié)點(diǎn) 2 塊磁盤(或?yàn)槠浔稊?shù)),以便系統(tǒng)維持相同的數(shù)據(jù)冗余 SLA,從而極大地降低擴(kuò)容的復(fù)雜性;
如上例,在擴(kuò)容后,MinIO 集群并不會對全部的 4 個(gè)節(jié)點(diǎn)進(jìn)行完全的數(shù)據(jù)均衡,而是將原本的2 個(gè)節(jié)點(diǎn)視作一個(gè)區(qū)域,新加入的 2 節(jié)點(diǎn)視作另一區(qū)域;
當(dāng)有新對象上傳時(shí),集群將依據(jù)各區(qū)域的可用空間比例確定存放區(qū)域,在各區(qū)域內(nèi)仍舊通過哈希算法確定對應(yīng)的糾刪組進(jìn)行最終的存放。此外,集群進(jìn)行一次對等擴(kuò)容后,還可依據(jù)擴(kuò)容規(guī)則繼續(xù)進(jìn)行對等擴(kuò)容,但出于安全性考慮,集群的最大節(jié)點(diǎn)數(shù)一般不得超過 32 個(gè)。
對等擴(kuò)容的優(yōu)點(diǎn)在于配置操作簡單易行
通過一條命令即可完成擴(kuò)容(注意:推薦使用連續(xù)的節(jié)點(diǎn) IP,并參照 MinIO 官網(wǎng)在擴(kuò)容命令中使用{})。而對等擴(kuò)容的局限性在于:
擴(kuò)容需重啟;
擴(kuò)容存在限制,集群節(jié)點(diǎn)數(shù)一般不超過 32 個(gè),這是由于 MinIO 集群通過分布式鎖保證強(qiáng)一致性,若集群節(jié)點(diǎn)數(shù)過大,維護(hù)強(qiáng)一致性將帶來性能問題。
【溫馨提示】這里不沿用之前的集群進(jìn)行擴(kuò)容,這里重新部署 2 個(gè)節(jié)點(diǎn)的集群。具體部署,可以參考我之前的文章:高性能分布式對象存儲——MinIO(環(huán)境部署)
1、環(huán)境準(zhǔn)備
主機(jī)名 | IP | data | 備注 |
---|---|---|---|
local-168-182-110 | 192.168.182.110 | /opt/bigdata/minio/data/export{1,2} | 原始節(jié)點(diǎn) |
local-168-182-111 | 192.168.182.111 | /opt/bigdata/minio/data/export{1,2} | 原始節(jié)點(diǎn) |
local-168-182-112 | 192.168.182.112 | /opt/bigdata/minio/data/export{1,2} | 擴(kuò)容節(jié)點(diǎn) |
local-168-182-113 | 192.168.182.113 | /opt/bigdata/minio/data/export{1,2} | 擴(kuò)容節(jié)點(diǎn) |
啟動腳本
#!/bin/bash #創(chuàng)建日志存儲目錄 mkdir-p/opt/bigdata/minio/logs #分別在三個(gè)節(jié)點(diǎn)上創(chuàng)建存儲目錄 mkdir-p/opt/bigdata/minio/data/export{1,2,3,4} #創(chuàng)建配置目錄 mkdir-p/etc/minio exportMINIO_ROOT_USER=admin exportMINIO_ROOT_PASSWORD=admin123456 #所有節(jié)點(diǎn)都得修改重啟服務(wù) #--address"0.0.0.0:9000"掛載9001端口為api端口(如Java客戶端)訪問的端口 #--console-address ":9000"掛載9000端口為web端口; /opt/bigdata/minio/minioserver--address0.0.0.0:9000--console-address0.0.0.0:9001--config-dir/etc/minio http://192.168.182.11{0...1}/opt/bigdata/minio/data/export{1...2}>/opt/bigdata/minio/logs/minio_server.log
minio 初始集群信息
web 訪問:http://local-168-182-110:19001
1、將配置 copy 一份到要擴(kuò)容的節(jié)點(diǎn)
#在local-168-182-110執(zhí)行 cd/opt/bigdata/minio scp-r/opt/bigdata/miniolocal-168-182-113:/opt/bigdata/ scp-r/usr/lib/systemd/system/minio.servicelocal-168-182-113:/usr/lib/systemd/system/minio.service
2、添加磁盤
這里也添加 2 塊 2G 的磁盤
#不重啟,直接刷新磁盤數(shù)據(jù)總線,獲取新加的磁盤 forhostin$(ls/sys/class/scsi_host);doecho"---">/sys/class/scsi_host/$host/scan;done lsblk #格式化 mkfs.ext4/dev/sdb mkfs.ext4/dev/sdc mkfs.ext4/dev/sdd mkfs.ext4/dev/sde #先刪再創(chuàng)建掛載目錄,因?yàn)檫@里面有其它節(jié)點(diǎn)的數(shù)據(jù) rm-fr/opt/bigdata/minio/data/export{1..4} mkdir-p/opt/bigdata/minio/data/export{1..4} #掛載 mount/dev/sdb/opt/bigdata/minio/data/export1 mount/dev/sdc/opt/bigdata/minio/data/export2 mount/dev/sdd/opt/bigdata/minio/data/export3 mount/dev/sde/opt/bigdata/minio/data/export4
3、修改啟動腳本(run.sh)
#!/bin/bash #創(chuàng)建日志存儲目錄 mkdir-p/opt/bigdata/minio/logs #分別在三個(gè)節(jié)點(diǎn)上創(chuàng)建存儲目錄 mkdir-p/opt/bigdata/minio/data/export{1,2} #創(chuàng)建配置目錄 mkdir-p/etc/minio exportMINIO_ROOT_USER=admin exportMINIO_ROOT_PASSWORD=admin123456 #所有節(jié)點(diǎn)都得修改重啟服務(wù) #--address"0.0.0.0:9000"掛載9001端口為api端口(如Java客戶端)訪問的端口 #--console-address ":9000"掛載9000端口為web端口; #擴(kuò)容地址:http://192.168.182.11{2...3}/opt/bigdata/minio/data/export{1...2} /opt/bigdata/minio/minioserver--address0.0.0.0:9000--console-address0.0.0.0:9001--config-dir/etc/minio http://192.168.182.11{0...1}/opt/bigdata/minio/data/export{1...2} http://192.168.182.11{2...3}/opt/bigdata/minio/data/export{1...2}>/opt/bigdata/minio/logs/minio_server.log
可擴(kuò)容的方式,使用 MINIO 糾刪碼,如果想要擴(kuò)容,必須使用這種方式。注意上面是三個(gè)點(diǎn)。
下面的寫法多硬盤多節(jié)點(diǎn)部署是不可擴(kuò)容的方式,下面是官方示例:
exportMINIO_ACCESS_KEY=exportMINIO_SECRET_KEY= minioserverhttp://192.168.1.11/export1http://192.168.1.11/export2 http://192.168.1.11/export3http://192.168.1.11/export4 http://192.168.1.12/export1http://192.168.1.12/export2 http://192.168.1.12/export3http://192.168.1.12/export4 http://192.168.1.13/export1http://192.168.1.13/export2 http://192.168.1.13/export3http://192.168.1.13/export4 http://192.168.1.14/export1http://192.168.1.14/export2 http://192.168.1.14/export3http://192.168.1.14/export4
4、重啟服務(wù)
systemctlrestartminio
web 訪問:http://local-168-182-110:19001
到這里就完成了對等擴(kuò)容了。
2)聯(lián)邦擴(kuò)容
MinIO 官方提供了另一種擴(kuò)容機(jī)制——聯(lián)邦擴(kuò)容,即通過引入 etcd,將多個(gè) MinIO 分布式集群在邏輯上組成一個(gè)聯(lián)邦,對外以一個(gè)整體提供服務(wù),并提供統(tǒng)一的命名空間。MinIO 聯(lián)邦集群的架構(gòu)如下圖所示:
其中,etcd是一個(gè)開源的分布式鍵值存儲數(shù)據(jù)庫,在聯(lián)邦中用于記錄存儲桶 IP 地址。
聯(lián)邦內(nèi)的各個(gè)集群其數(shù)據(jù)存儲以及一致性維護(hù)仍由各集群自行管理,聯(lián)邦只是對外提供一個(gè)整體邏輯視圖。
通過連接到聯(lián)邦中任一集群的任一節(jié)點(diǎn),可以查詢并訪問聯(lián)邦內(nèi)所有集群的全部數(shù)據(jù),由此獲得了邏輯上的空間擴(kuò)大感。
但實(shí)際上,對于一個(gè)外部應(yīng)用訪問,聯(lián)邦需依賴 etcd 定位到存儲桶的實(shí)際存儲節(jié)點(diǎn),再進(jìn)行數(shù)據(jù)訪問,聯(lián)邦則對外屏蔽了桶 IP 查找和定位過程,從而在邏輯上對外形成了一個(gè)統(tǒng)一整體。因此,etcd 實(shí)際上起到了類似路由尋址的效果。
MinIO 聯(lián)邦集群的數(shù)據(jù)訪問機(jī)制具體如下:
客戶端應(yīng)用向聯(lián)邦集群發(fā)送創(chuàng)建存儲桶請求,桶名為 bucket1;
聯(lián)邦會將 bucket1 實(shí)際所在的集群節(jié)點(diǎn) IP 地址寫入 etcd 中,例如 bucket1 實(shí)際將存儲于聯(lián)邦中的集群 1 上,而集群 1 包含 2 個(gè)節(jié)點(diǎn),其節(jié)點(diǎn) IP 地址分別為 192.168.182.112 和 192.168.182.113,則 etcd 中將寫入如下兩條記錄:
1、部署 etcd
下載地址:https://github.com/etcd-io/etcd/releases
mkdir-p/opt/bigdata/etcd;cd/opt/bigdata/etcd wgethttps://github.com/etcd-io/etcd/releases/download/v3.4.20/etcd-v3.4.20-linux-amd64.tar.gz tar-xfetcd-v3.4.20-linux-amd64.tar.gz #創(chuàng)建存儲目錄 mkdir/opt/bigdata/etcd/data
創(chuàng)建配置文件 /usr/local/etcd/conf.yml,三個(gè)節(jié)點(diǎn)配置文件內(nèi)容分別如下:
etcd01:local-168-182-110
name:etcd01 data-dir:/opt/bigdata/etcd/data initial-advertise-peer-urls:http://192.168.182.110:2380 listen-peer-urls:http://192.168.182.110:2380 listen-client-urls:http://192.168.182.110:2379,http://127.0.0.1:2379 advertise-client-urls:http://192.168.182.110:2379 initial-cluster-token:etcd-cluster initial-cluster:etcd01=http://192.168.182.110:2380,etcd02=http://192.168.182.111:2380,etcd03=http://192.168.182.112:2380 initial-cluster-state:new
etcd02:local-168-182-111
name:etcd02 data-dir:/opt/bigdata/etcd/data initial-advertise-peer-urls:http://192.168.182.111:2380 listen-peer-urls:http://192.168.182.111:2380 listen-client-urls:http://192.168.182.111:2379,http://127.0.0.1:2379 advertise-client-urls:http://192.168.182.111:2379 initial-cluster-token:etcd-cluster initial-cluster:etcd01=http://192.168.182.110:2380,etcd02=http://192.168.182.111:2380,etcd03=http://192.168.182.112:2380 initial-cluster-state:new
etcd03:local-168-182-112
name:etcd03 data-dir:/opt/bigdata/etcd/data initial-advertise-peer-urls:http://192.168.182.112:2380 listen-peer-urls:http://192.168.182.112:2380 listen-client-urls:http://192.168.182.112:2379,http://127.0.0.1:2379 advertise-client-urls:http://192.168.182.112:2379 initial-cluster-token:etcd-cluster initial-cluster:etcd01=http://192.168.182.110:2380,etcd02=http://192.168.182.111:2380,etcd03=http://192.168.182.112:2380 initial-cluster-state:new
【溫馨提示】只能寫 IP,寫主機(jī)名會啟動失敗
配置參數(shù)解析:
name:當(dāng)前 etcd 節(jié)點(diǎn)名稱。
data-dir:數(shù)據(jù)存儲目錄。
initial-advertise-peer-urls:集群的其他節(jié)點(diǎn)通過該地址與當(dāng)前節(jié)點(diǎn)通信。
listen-peer-urls:當(dāng)前節(jié)點(diǎn)通過該地址監(jiān)聽集群其他節(jié)點(diǎn)發(fā)送的信息。
listen-client-urls:當(dāng)前節(jié)點(diǎn)通過該地址監(jiān)聽客戶端發(fā)送的信息。
advertise-client-urls:客戶端通過該地址與當(dāng)前節(jié)點(diǎn)通信
initial-cluster-token:用于區(qū)分不同的集群,同一集群的所有節(jié)點(diǎn)配置相同的值。
initial-cluster:當(dāng)前集群的所有節(jié)點(diǎn)信息,當(dāng)前節(jié)點(diǎn)根據(jù)此信息與其他節(jié)點(diǎn)取得聯(lián)系。
initial-cluster-state:本次是否為新建集群,有兩個(gè)取值:new 和 existing。
配置服務(wù)
cat>/usr/lib/systemd/system/etcd.service<
啟動服務(wù)
systemctldaemon-reload systemctlstartetcd.service
驗(yàn)證
#加軟連接 ln-s/opt/bigdata/etcd/etcd-v3.4.20-linux-amd64/etcdctl/usr/local/bin/etcdctl #查看集群成員列表 etcdctlmemberlist #查看集群成員健康情況 etcdctlendpointhealth--endpoints=http://192.168.182.110:2380,http://192.168.182.111:2380,http://192.168.182.112:2380
查看 etcd 版本
ln-s/opt/bigdata/etcd/etcd-v3.4.20-linux-amd64/etcd/usr/local/bin/etcd etcd--version
2、運(yùn)行多個(gè) MinIO 集群
集群 1
cd/opt/bigdata/minio exportMINIO_ETCD_ENDPOINTS="http://192.168.182.110:2380,http://192.168.182.111:2380,http://192.168.182.112:2380" mkdir-p/etc/minio exportMINIO_ROOT_USER=admin exportMINIO_ROOT_PASSWORD=admin123456 exportMINIO_PUBLIC_IPS=192.168.182.110,192.168.182.111 ./minioserver--address0.0.0.0:8000--console-address0.0.0.0:8001--config-dir/etc/miniohttp://192.168.182.11{0...1}/opt/bigdata/minio/data/export{3...4}
web 訪問:http://local-168-182-110:8001/
集群 2
cd/opt/bigdata/minio exportMINIO_ETCD_ENDPOINTS="http://192.168.182.110:2380,http://192.168.182.111:2380,http://192.168.182.112:2380" mkdir-p/etc/minio exportMINIO_ROOT_USER=admin exportMINIO_ROOT_PASSWORD=admin123456 exportMINIO_PUBLIC_IPS=192.168.182.112,192.168.182.113 ./minioserver--address0.0.0.0:8000--console-address0.0.0.0:8001--config-dir/etc/miniohttp://192.168.182.11{2...3}/opt/bigdata/minio/data/export{3...4}
web 訪問:http://local-168-182-112:8001/
配置 nginx
#/etc/nginx/conf.d/minio2.conf upstreamminio_api2{ ip_hash; server192.168.182.110:8000; server192.168.182.111:8000; server192.168.182.112:8000; server192.168.182.113:8000; } upstreamminio_console2{ ip_hash; server192.168.182.110:8001; server192.168.182.111:8001; server192.168.182.112:8001; server192.168.182.113:8001; } server{ listen18000; server_name192.168.182.110; ignore_invalid_headersoff; client_max_body_size0; proxy_bufferingoff; location/{ proxy_set_headerX-Forwarded-Proto$scheme; proxy_set_headerHost$http_host; proxy_set_headerX-Real-IP$remote_addr; proxy_connect_timeout300; proxy_http_version1.1; chunked_transfer_encodingoff; proxy_ignore_client_aborton; proxy_passhttp://minio_api2; } } server{ listen18001; server_name192.168.182.110; ignore_invalid_headersoff; client_max_body_size0; proxy_bufferingoff; location/{ proxy_set_headerX-Forwarded-Proto$scheme; proxy_set_headerHost$http_host; proxy_set_headerX-Real-IP$remote_addr; proxy_connect_timeout300; proxy_http_version1.1; chunked_transfer_encodingoff; proxy_ignore_client_aborton; proxy_passhttp://minio_console2; } }
重新加載 nginx 生效
systemctlreloadnginx
web 訪問:local-168-182-110:18001/
不同的客戶端訪問會顯示不同的節(jié)點(diǎn)信息MinIO 的基本操作和 MinIO 擴(kuò)容實(shí)戰(zhàn)就到這里了,有疑問的小伙伴歡迎給我留言哦,后續(xù)會持續(xù)分享更多關(guān)于大數(shù)據(jù)的教程,請小伙伴耐心等待哦~
審核編輯:彭靜
-
驅(qū)動器
+關(guān)注
關(guān)注
52文章
8237瀏覽量
146384 -
云存儲
+關(guān)注
關(guān)注
7文章
745瀏覽量
46051 -
文件系統(tǒng)
+關(guān)注
關(guān)注
0文章
284瀏覽量
19911
原文標(biāo)題:超詳細(xì)分布式對象存儲 MinIO 實(shí)戰(zhàn)教程
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論