0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MinIO的基礎(chǔ)概念和環(huán)境部署

馬哥Linux運(yùn)維 ? 來源:馬哥Linux運(yùn)維 ? 作者:馬哥Linux運(yùn)維 ? 2022-08-29 10:07 ? 次閱讀

一、前言

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,重新連接即可
26adc018-26d9-11ed-ba43-dac502259ad0.png

2)查看 mc 版本

mc--version
26c002dc-26d9-11ed-ba43-dac502259ad0.png

3)列出來自https://play.min.io的所有存儲桶

mclsplay
#json格式
mc--jsonlsplay
26cd0fa4-26d9-11ed-ba43-dac502259ad0.png

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

26e048a8-26d9-11ed-ba43-dac502259ad0.png
web 訪問:http://local-168-182-110:19001
26ec1b24-26d9-11ed-ba43-dac502259ad0.png

5)復(fù)制文件到 MinIO

cp命令將數(shù)據(jù)從一個(gè)或多個(gè)源復(fù)制到目標(biāo)。

mccpwget-logminio/mybucket
#查看
mclswget-logminio/mybucket
270967ce-26d9-11ed-ba43-dac502259ad0.png

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

271909a4-26d9-11ed-ba43-dac502259ad0.png
27291eca-26d9-11ed-ba43-dac502259ad0.png

2)全局選項(xiàng)

1、選項(xiàng) [--debug]

【示例】顯示 info 命令的詳細(xì)調(diào)試輸出

mcadmininfo--debugminio
273adb92-26d9-11ed-ba43-dac502259ad0.png

2、選項(xiàng) [--json]

JSON 選項(xiàng)啟用 JSON 行格式的可解析輸出。
【示例】MinIO 服務(wù)器信息

mcadmin--jsoninfominio
27603ea0-26d9-11ed-ba43-dac502259ad0.png

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
2775a5a6-26d9-11ed-ba43-dac502259ad0.png

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
279c69ac-26d9-11ed-ba43-dac502259ad0.png

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

這里列出了常用的命令,想了解更多,可以查看官方文檔: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
27af3500-26d9-11ed-ba43-dac502259ad0.png

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

27c01bb8-26d9-11ed-ba43-dac502259ad0.png

27d65bb2-26d9-11ed-ba43-dac502259ad0.png
27e8e5c0-26d9-11ed-ba43-dac502259ad0.png

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
27f5a3c8-26d9-11ed-ba43-dac502259ad0.png
到這里就完成了對等擴(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)如下圖所示:

2807e8bc-26d9-11ed-ba43-dac502259ad0.png

其中,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
281465e2-26d9-11ed-ba43-dac502259ad0.png

查看 etcd 版本

ln-s/opt/bigdata/etcd/etcd-v3.4.20-linux-amd64/etcd/usr/local/bin/etcd
etcd--version
2824ba82-26d9-11ed-ba43-dac502259ad0.png

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/
283b02b0-26d9-11ed-ba43-dac502259ad0.png

集群 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/
285ddd6c-26d9-11ed-ba43-dac502259ad0.png
配置 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/

287747ac-26d9-11ed-ba43-dac502259ad0.png
不同的客戶端訪問會顯示不同的節(jié)點(diǎn)信息

MinIO 的基本操作和 MinIO 擴(kuò)容實(shí)戰(zhàn)就到這里了,有疑問的小伙伴歡迎給我留言哦,后續(xù)會持續(xù)分享更多關(guān)于大數(shù)據(jù)的教程,請小伙伴耐心等待哦~

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 驅(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)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    【NanoPi NEO試用體驗(yàn)】開發(fā)環(huán)境部署

    開發(fā)環(huán)境部署這一開發(fā)板支持兩種開發(fā)環(huán)境,包括u-boot,UbuntuCore,這里建議大家跑UbuntuCore,跑u-boot的話感覺有點(diǎn)大材小用了首先要準(zhǔn)備一張SD卡,官方建議用Class10
    發(fā)表于 10-29 11:51

    Hadoop的集群環(huán)境部署說明

    或者是相同,指令多、步驟繁瑣。有的時(shí)候覺得不免覺得很奇怪,這些發(fā)行商為什么不對hadoop的集群環(huán)境部署做一下優(yōu)化呢?幸運(yùn)的是總算是讓我找到了一個(gè)hadoop發(fā)行版集群環(huán)境搭建簡單易用。這里使用的是一款
    發(fā)表于 10-12 15:51

    docker中java環(huán)境部署

    docker 部署java環(huán)境以及常用應(yīng)用(持續(xù)更新)
    發(fā)表于 05-24 15:44

    如何搭建DotNet Core 21自動化構(gòu)建和部署環(huán)境

    邊緣化搭建DotNet Core 21 自動化構(gòu)建和部署環(huán)境(上)
    發(fā)表于 04-23 14:53

    VSCode環(huán)境部署

    、VSCode環(huán)境部署四、工程編譯五、編譯清除一、程序安裝1、VSCode:好用到爆的文本編輯器,配合強(qiáng)大的插件,使你的開發(fā)效率大大提高。2、Java:
    發(fā)表于 08-24 07:58

    在嵌入式環(huán)境部署環(huán)境的相關(guān)資料分享

    在嵌入式環(huán)境部署環(huán)境:1.1 在linux中,當(dāng)文件系統(tǒng)初始化后,在vi/etc/profile中可以輸入一個(gè)命令,來配置系統(tǒng)的ip地址: ifconfig eth0 192.168.1.10這樣就能實(shí)現(xiàn),系統(tǒng)上電后的配置。.
    發(fā)表于 10-27 07:02

    Arduino環(huán)境下ESP32如何部署

    (包教必會)Arduino環(huán)境下ESP32部署指南Arduino IDE下載安裝Arduino IDE點(diǎn)擊此處訪問arduino官網(wǎng),選擇適合你電腦系統(tǒng)的版本進(jìn)行下載安裝ESP32的板管理打開
    發(fā)表于 12-03 06:02

    如何部署RK3399開發(fā)板的環(huán)境

    如何部署RK3399開發(fā)板的環(huán)境?
    發(fā)表于 03-07 07:30

    Python在web應(yīng)用實(shí)現(xiàn)部署的協(xié)議與實(shí)現(xiàn)協(xié)議的工具解析

    php的正式環(huán)境部署非常簡單,改幾個(gè)文件就OK,用FastCgi方式也是分分鐘的事情。相比起來,Python在web應(yīng)用上的部署就繁雜的多,主要是工具繁多,主流服務(wù)器支持不足,在了解Python的生產(chǎn)
    的頭像 發(fā)表于 02-09 09:26 ?5066次閱讀

    干貨:Centos 6.5部署nginx和php環(huán)境部署

    干貨:Centos 6.5部署nginx和php環(huán)境部署
    的頭像 發(fā)表于 06-28 10:00 ?2306次閱讀

    嵌入式環(huán)境部署

    在嵌入式環(huán)境部署環(huán)境:1.1 在linux中,當(dāng)文件系統(tǒng)初始化后,在vi /etc/profile中可以輸入一個(gè)命令,來配置系統(tǒng)的ip地址: ifconfig eth0 192.168.1.10這樣就能實(shí)現(xiàn),系統(tǒng)上電后的配置
    發(fā)表于 10-19 18:33 ?2次下載
    嵌入式<b class='flag-5'>環(huán)境</b><b class='flag-5'>部署</b>

    高性能對象存儲MinIO的基本概念環(huán)境部署

    MinIO 是在 GNU Affero 通用公共許可證 v3.0 下發(fā)布的高性能對象存儲。它與 Amazon S3 云存儲服務(wù) API 兼容。使用 MinIO 為機(jī)器學(xué)習(xí)、分析和應(yīng)用程序數(shù)據(jù)工作負(fù)載構(gòu)建高性能基礎(chǔ)架構(gòu)。
    發(fā)表于 08-29 10:54 ?3213次閱讀

    在手機(jī)端部署Autojs的開發(fā)環(huán)境

    我記得之前發(fā)布過一篇關(guān)于在Termux中部署code-server的文章, 不過是用proot安裝一個(gè)小型的linux系統(tǒng)來部署的, 之前的方式非常占用內(nèi)存和存儲空間,不太好用. 但是在termux
    的頭像 發(fā)表于 03-03 10:23 ?1807次閱讀
    在手機(jī)端<b class='flag-5'>部署</b>Autojs的開發(fā)<b class='flag-5'>環(huán)境</b>

    Minio為啥受歡迎呢?Minio有哪些優(yōu)勢?

    第一次接觸Minio,是我從上家公司新來的一位架構(gòu)師那聽來的,當(dāng)時(shí)簡單地了解了下它是否適合我們的應(yīng)用場景,并沒有過多深入研究。
    的頭像 發(fā)表于 08-02 14:14 ?5376次閱讀
    <b class='flag-5'>Minio</b>為啥受歡迎呢?<b class='flag-5'>Minio</b>有哪些優(yōu)勢?

    Helm部署MinIO集群

    Helm部署MinIO集群
    的頭像 發(fā)表于 12-03 09:44 ?826次閱讀
    Helm<b class='flag-5'>部署</b><b class='flag-5'>MinIO</b>集群