人人妻人人澡人人爽人人精品av_精品乱码一区内射人妻无码_老司机午夜福利视频_精品成品国色天香摄像头_99精品福利国产在线导航_野花社区在线观看视频_大地资源在线影视播放_东北高大肥胖丰满熟女_金门瓶马车内剧烈运动

首頁>國內(nèi) > 正文

通過 Docker-compose 快速部署 MinIO 保姆級教程-今日報(bào)

2023-06-26 18:20:26來源:大數(shù)據(jù)與云原生技術(shù)分享

一、概述

MinIO是一個(gè)開源的對象存儲(chǔ)服務(wù)器,它兼容Amazon S3(Simple Storage Service)API。它被設(shè)計(jì)用于構(gòu)建分布式存儲(chǔ)架構(gòu),提供高可用性、高性能和可擴(kuò)展的對象存儲(chǔ)解決方案。

下面是MinIO的一些主要特點(diǎn)和功能:

對象存儲(chǔ):MinIO以對象為基本存儲(chǔ)單元,可以存儲(chǔ)和管理任意大小的文件、數(shù)據(jù)對象。它提供了標(biāo)準(zhǔn)的對象存儲(chǔ)操作,如上傳、下載、刪除和元數(shù)據(jù)管理。分布式架構(gòu):MinIO采用分布式架構(gòu),可以在多個(gè)節(jié)點(diǎn)上部署,并將數(shù)據(jù)分布和復(fù)制在不同的節(jié)點(diǎn)上。這提供了高可用性和數(shù)據(jù)冗余,確保數(shù)據(jù)的持久性和可靠性。高性能:MinIO通過并行處理和分布式架構(gòu)實(shí)現(xiàn)高性能的數(shù)據(jù)存取。它利用現(xiàn)代硬件和網(wǎng)絡(luò)技術(shù),充分利用多核處理器和高帶寬網(wǎng)絡(luò),以實(shí)現(xiàn)快速的數(shù)據(jù)傳輸和處理。水平擴(kuò)展:MinIO可以水平擴(kuò)展,通過添加更多的節(jié)點(diǎn)來增加存儲(chǔ)容量和吞吐量。它支持自動(dòng)數(shù)據(jù)分片和負(fù)載均衡,確保數(shù)據(jù)在各個(gè)節(jié)點(diǎn)上均勻分布和訪問的負(fù)載均衡。數(shù)據(jù)保護(hù):MinIO提供了多種數(shù)據(jù)保護(hù)機(jī)制,包括數(shù)據(jù)冗余、故障轉(zhuǎn)移和數(shù)據(jù)校驗(yàn)。它可以在不同的節(jié)點(diǎn)之間復(fù)制數(shù)據(jù),以應(yīng)對節(jié)點(diǎn)故障和數(shù)據(jù)損壞的情況。安全性:MinIO支持?jǐn)?shù)據(jù)加密和訪問控制,保護(hù)存儲(chǔ)在其中的數(shù)據(jù)的安全性和隱私性。它提供了傳輸層加密(TLS/SSL)和服務(wù)器端加密選項(xiàng),以及身份驗(yàn)證和訪問控制機(jī)制。

總的來說,MinIO是一個(gè)開源的高性能對象存儲(chǔ)服務(wù)器,適用于構(gòu)建分布式存儲(chǔ)系統(tǒng)。它具有高可用性、可擴(kuò)展性和數(shù)據(jù)保護(hù)機(jī)制,兼容Amazon S3 API,使其與現(xiàn)有的S3生態(tài)系統(tǒng)和工具集成無縫。MinIO在大數(shù)據(jù)、云計(jì)算和容器化環(huán)境中廣泛應(yīng)用,為應(yīng)用程序提供了可靠、高效的對象存儲(chǔ)服務(wù)。


(相關(guān)資料圖)

這里主要側(cè)重使用docker快速部署環(huán)境,想了解更多,可以參考我以下幾篇文章:

高性能分布式對象存儲(chǔ)——MinIO(環(huán)境部署)高性能分布式對象存儲(chǔ)——MinIO實(shí)戰(zhàn)操作(MinIO擴(kuò)容)【云原生】Minio on k8s 講解與實(shí)戰(zhàn)操作【云原生】鏡像倉庫Harbor對接MinIO對象存儲(chǔ)

官方文檔:https://docs.min.io/中文文檔:http://docs.minio.org.cn/docs/

二、MinIO 與 Ceph 對比

MinIO和Ceph都是流行的開源存儲(chǔ)解決方案,它們在對象存儲(chǔ)領(lǐng)域有不同的特點(diǎn)和適用場景。下面是MinIO和Ceph的對比:

1)架構(gòu)設(shè)計(jì)對比MinIO:MinIO采用分布式架構(gòu),以水平擴(kuò)展為基礎(chǔ)。它通過多個(gè)獨(dú)立的MinIO節(jié)點(diǎn)組成集群,每個(gè)節(jié)點(diǎn)都是獨(dú)立的對象存儲(chǔ)服務(wù)器。MinIO專注于提供簡單、輕量級的對象存儲(chǔ)服務(wù),適用于小型到中等規(guī)模的部署。Ceph:Ceph是一個(gè)分布式存儲(chǔ)系統(tǒng),由對象存儲(chǔ)、塊存儲(chǔ)和文件系統(tǒng)組成。它使用RADOS(Reliable Autonomic Distributed Object Store)作為底層存儲(chǔ)系統(tǒng),提供高可用性和數(shù)據(jù)冗余。Ceph適用于大規(guī)模的企業(yè)級部署,具有復(fù)雜的架構(gòu)和豐富的功能。2)數(shù)據(jù)一致性對比MinIO:MinIO在默認(rèn)配置下提供最終一致性,即寫入操作返回成功后,數(shù)據(jù)可能會(huì)有一定的時(shí)間窗口內(nèi)的延遲才能完全一致。這適用于許多應(yīng)用場景,如數(shù)據(jù)備份、存檔等。Ceph:Ceph提供強(qiáng)一致性,即寫入操作在返回成功后,數(shù)據(jù)即刻就達(dá)到一致性。這對于需要強(qiáng)一致性保證的應(yīng)用場景非常重要,如數(shù)據(jù)庫和事務(wù)處理。3)部署和管理對比MinIO:MinIO的部署和管理相對簡單,可以通過單個(gè)二進(jìn)制文件或容器進(jìn)行快速安裝和配置。它提供了直觀的管理界面和易于使用的API,使得管理和監(jiān)控變得簡單。Ceph:Ceph的部署和管理相對復(fù)雜,涉及多個(gè)組件和配置。它需要更多的時(shí)間和專業(yè)知識來設(shè)置和維護(hù),需要熟悉Ceph的架構(gòu)和配置。4)生態(tài)系統(tǒng)和兼容性對比MinIO:MinIO與Amazon S3 API兼容,這意味著現(xiàn)有的S3工具和應(yīng)用程序可以無縫地與MinIO集成。它還有一個(gè)活躍的社區(qū),提供了各種客戶端庫和插件,擴(kuò)展了其功能和兼容性。Ceph:Ceph具有廣泛的生態(tài)系統(tǒng)和豐富的功能集。它可以與多個(gè)協(xié)議和接口(如RADOS、RBD、CephFS)進(jìn)行集成,提供塊存儲(chǔ)、文件系統(tǒng)和對象存儲(chǔ)的全面解決方案。

綜上所述,MinIO適用于簡單、輕量級的對象存儲(chǔ)需求,注重高性能和易用性。它適合中小規(guī)模部署,并且與Amazon S3兼容,易于與現(xiàn)有的S3生態(tài)系統(tǒng)集成。

Ceph則適用于大規(guī)模、復(fù)雜的企業(yè)級存儲(chǔ)需求。它提供強(qiáng)一致性和豐富的功能集,適合需要高可用性、數(shù)據(jù)冗余和復(fù)雜數(shù)據(jù)操作的場景。Ceph的部署和管理相對復(fù)雜,需要更多的配置和管理工作。選擇MinIO還是Ceph取決于具體的需求和場景。如果你需要一個(gè)簡單、易用、高性能的對象存儲(chǔ)解決方案,并與S3兼容,那么MinIO是一個(gè)不錯(cuò)的選擇。如果你需要一個(gè)功能強(qiáng)大、可擴(kuò)展、支持塊存儲(chǔ)和文件系統(tǒng)的分布式存儲(chǔ)系統(tǒng),且具備強(qiáng)一致性的要求,那么Ceph是更適合的選擇。

無論選擇MinIO還是Ceph,都需要仔細(xì)評估其與特定應(yīng)用和環(huán)境的兼容性、性能需求、管理復(fù)雜性和可擴(kuò)展性,以確保選擇的解決方案能夠滿足實(shí)際需求并提供可靠的存儲(chǔ)服務(wù)。

三、前期準(zhǔn)備1)部署 docker
# 安裝yum-config-manager配置工具yum -y install yum-utils# 建議使用阿里云yum源:(推薦)#yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repoyum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 安裝docker-ce版本yum install -y docker-ce# 啟動(dòng)并開機(jī)啟動(dòng)systemctl enable --now dockerdocker --version
2)部署 docker-compose
curl -SL https://github.com/docker/compose/releases/download/v2.16.0/docker-compose-linux-x86_64 -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composedocker-compose --version
四、創(chuàng)建網(wǎng)絡(luò)
# 創(chuàng)建,注意不能使用hadoop_network,要不然啟動(dòng)hs2服務(wù)的時(shí)候會(huì)有問題!??!docker network create hadoop-network# 查看docker network ls
五、MinIO 編排部署1)下載 MinIO 安裝包
wget https://dl.min.io/server/minio/release/linux-amd64/minio
2)配置

這里部署的是偽集群,但是需要的磁盤還是那么多,下面就是掛載磁盤的步驟:

### 1、格式化mkfs.ext4 /dev/sdbmkfs.ext4 /dev/sdcmkfs.ext4 /dev/sddmkfs.ext4 /dev/sdemkfs.ext4 /dev/sdfmkfs.ext4 /dev/sdgmkfs.ext4 /dev/sdhmkfs.ext4 /dev/sdimkfs.ext4 /dev/sdjmkfs.ext4 /dev/sdkmkfs.ext4 /dev/sdlmkfs.ext4 /dev/sdm### 2、創(chuàng)建掛載目錄mkdir /opt/apache/docker-compose-minio/data/minio-node{1..3}/data{1..4}### 3、掛載# minio-node1mount /dev/sdb /opt/apache/docker-compose-minio/data/minio-node1/data1mount /dev/sdc /opt/apache/docker-compose-minio/data/minio-node1/data2mount /dev/sdd /opt/apache/docker-compose-minio/data/minio-node1/data3mount /dev/sde /opt/apache/docker-compose-minio/data/minio-node1/data4# minio-node2mount /dev/sdf /opt/apache/docker-compose-minio/data/minio-node2/data1mount /dev/sdg /opt/apache/docker-compose-minio/data/minio-node2/data2mount /dev/sdh /opt/apache/docker-compose-minio/data/minio-node2/data3mount /dev/sdi /opt/apache/docker-compose-minio/data/minio-node2/data4# minio-node3mount /dev/sdj /opt/apache/docker-compose-minio/data/minio-node3/data1mount /dev/sdk /opt/apache/docker-compose-minio/data/minio-node3/data2mount /dev/sdl /opt/apache/docker-compose-minio/data/minio-node3/data3mount /dev/sdm /opt/apache/docker-compose-minio/data/minio-node3/data4### 4、持久化配置# minio-node1echo "/dev/sdb /opt/apache/docker-compose-minio/data/minio-node1/data1  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdc /opt/apache/docker-compose-minio/data/minio-node1/data2  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdd /opt/apache/docker-compose-minio/data/minio-node1/data3  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sde /opt/apache/docker-compose-minio/data/minio-node1/data4  ext4  defaults        0 0" >> /etc/fstab# minio-node2echo "/dev/sdf /opt/apache/docker-compose-minio/data/minio-node2/data1  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdg /opt/apache/docker-compose-minio/data/minio-node2/data2  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdh /opt/apache/docker-compose-minio/data/minio-node2/data3  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdi /opt/apache/docker-compose-minio/data/minio-node1/data4  ext4  defaults        0 0" >> /etc/fstab# minio-node3echo "/dev/sdj /opt/apache/docker-compose-minio/data/minio-node3/data1  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdk /opt/apache/docker-compose-minio/data/minio-node3/data2  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdl /opt/apache/docker-compose-minio/data/minio-node3/data3  ext4  defaults        0 0" >> /etc/fstabecho "/dev/sdm /opt/apache/docker-compose-minio/data/minio-node3/data4  ext4  defaults        0 0" >> /etc/fstab
3)啟動(dòng)腳本 bootstrap.sh
#!/bin/bashsource /etc/profile# 在三臺機(jī)器上都執(zhí)行該文件,即以分布式的方式啟動(dòng)了MINIO# --address "0.0.0.0:9000" 掛載9001端口為api端口(如Java客戶端)訪問的端口# --console-address ":9000" 掛載9000端口為web端口;/opt/apache/minio/minio server --address 0.0.0.0:9000 --console-address 0.0.0.0:9001 --config-dir /etc/minio \http://minio-node1/opt/apache/minio/data/export1 \http://minio-node1/opt/apache/minio/data/export2 \http://minio-node1/opt/apache/minio/data/export3 \http://minio-node1/opt/apache/minio/data/export4 \http://minio-node2/opt/apache/minio/data/export1 \http://minio-node2/opt/apache/minio/data/export2 \http://minio-node2/opt/apache/minio/data/export3 \http://minio-node2/opt/apache/minio/data/export4 \http://minio-node3/opt/apache/minio/data/export1 \http://minio-node3/opt/apache/minio/data/export2 \http://minio-node3/opt/apache/minio/data/export3 \http://minio-node3/opt/apache/minio/data/export4 >/opt/apache/minio/logs/minio_server.log &tail -f /opt/apache/minio/logs/minio_server.log

Minio默認(rèn)9000端口,在配置文件中加入–address “127.0.0.1:9029” 可更改端口

MINIO_ACCESS_KEY:用戶名,長度最小是5個(gè)字符MINIO_SECRET_KEY:密碼,密碼不能設(shè)置過于簡單,不然minio會(huì)啟動(dòng)失敗,長度最小是8個(gè)字符–config-dir:指定集群配置文件目錄–address:api的端口,默認(rèn)是9000--console-address:web端口,默認(rèn)隨機(jī)

【溫馨提示】磁盤大小必須>1G,這里我添加的是4*2G的盤

4)構(gòu)建鏡像 Dockerfile
FROM registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/centos-jdk:7.7.1908# 創(chuàng)建日志存儲(chǔ)目錄RUN mkdir -p /opt/apache/minio/logs# 分別在三個(gè)節(jié)點(diǎn)上創(chuàng)建存儲(chǔ)目錄RUN mkdir -p /opt/apache/minio/data/export{1..3}# 創(chuàng)建配置目錄RUN mkdir -p /etc/minio# 賬號密碼ENV MINIO_ROOT_USER=adminENV MINIO_ROOT_PASSWORD=admin123456# copy minioCOPY minio /opt/apache/minio/# copy minio client mcCOPY mc /opt/apache/minio/RUN ln -s /opt/apache/minio/mc /usr/local/sbin/mc# copy bootstrap.shCOPY bootstrap.sh /opt/apache/RUN chmod +x /opt/apache/bootstrap.shWORKDIR /opt/apache

開始構(gòu)建鏡像

docker build -t registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/minio:20230619 . --no-cache --progress=plain# 為了方便小伙伴下載即可使用,我這里將鏡像文件推送到阿里云的鏡像倉庫docker push registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/minio:20230619### 參數(shù)解釋# -t:指定鏡像名稱# . :當(dāng)前目錄Dockerfile# -f:指定Dockerfile路徑#  --no-cache:不緩存
5)編排 docker-compose.yaml
version: "3"services:  minio-node1:    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/minio:20230619    container_name: minio-node1    hostname: minio-node1    restart: always    privileged: true    env_file:      - .env    expose:      - "${MinIO_PORT}"    ports:      - "${MinIO_HTTP_PORT}"    volumes:      - /opt/apache/docker-compose-minio/data/minio-node1/data1:/opt/apache/minio/data/export1      - /opt/apache/docker-compose-minio/data/minio-node1/data2:/opt/apache/minio/data/export2      - /opt/apache/docker-compose-minio/data/minio-node1/data3:/opt/apache/minio/data/export3      - /opt/apache/docker-compose-minio/data/minio-node1/data4:/opt/apache/minio/data/export4    command: ["sh","-c","/opt/apache/bootstrap.sh"]    networks:      - hadoop-network    healthcheck:      test: ["CMD-SHELL", "netstat -tnlp|grep :${MinIO_PORT} || exit 1"]      interval: 10s      timeout: 10s      retries: 5  minio-node2:    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/minio:20230619    container_name: minio-node2    hostname: minio-node2    restart: always    privileged: true    env_file:      - .env    expose:      - "${MinIO_PORT}"    ports:      - "${MinIO_HTTP_PORT}"    volumes:      - /opt/apache/docker-compose-minio/data/minio-node2/data1:/opt/apache/minio/data/export1      - /opt/apache/docker-compose-minio/data/minio-node2/data2:/opt/apache/minio/data/export2      - /opt/apache/docker-compose-minio/data/minio-node2/data3:/opt/apache/minio/data/export3      - /opt/apache/docker-compose-minio/data/minio-node2/data4:/opt/apache/minio/data/export4    command: ["sh","-c","/opt/apache/bootstrap.sh"]    networks:      - hadoop-network    healthcheck:      test: ["CMD-SHELL", "netstat -tnlp|grep :${MinIO_PORT} || exit 1"]      interval: 10s      timeout: 10s      retries: 5  minio-node3:    image: registry.cn-hangzhou.aliyuncs.com/bigdata_cloudnative/minio:20230619    container_name: minio-node3    hostname: minio-node3    restart: always    privileged: true    env_file:      - .env    expose:      - "${MinIO_PORT}"    ports:      - "${MinIO_HTTP_PORT}"    volumes:      - /opt/apache/docker-compose-minio/data/minio-node3/data1:/opt/apache/minio/data/export1      - /opt/apache/docker-compose-minio/data/minio-node3/data2:/opt/apache/minio/data/export2      - /opt/apache/docker-compose-minio/data/minio-node3/data3:/opt/apache/minio/data/export3      - /opt/apache/docker-compose-minio/data/minio-node3/data4:/opt/apache/minio/data/export4    command: ["sh","-c","/opt/apache/bootstrap.sh"]    networks:      - hadoop-network    healthcheck:      test: ["CMD-SHELL", "netstat -tnlp|grep :${MinIO_PORT} || exit 1"]      interval: 10s      timeout: 10s      retries: 5# 連接外部網(wǎng)絡(luò)networks:  hadoop-network:    external: true

.env文件內(nèi)容

MinIO_PORT=9000MinIO_HTTP_PORT=9001
6)開始部署
# --project-name指定項(xiàng)目名稱,默認(rèn)是當(dāng)前目錄名稱docker-compose -f docker-compose.yaml up -d# 查看docker-compose -f docker-compose.yaml ps# 卸載docker-compose -f docker-compose.yaml down
7)簡單測試驗(yàn)證
# 登錄容器內(nèi)測試docker exec -it minio-node1 bash# 登錄,密文輸入(推薦)[root@minio-node1 apache]# mc config host add minio http://localhost:9000Enter Access Key: adminEnter Secret Key: 輸入密碼Added `minio` successfully.# 查看集群信息mc admin info minio

8)web 訪問

http://ip:port

docker-compose -f docker-compose.yaml ps

賬號/密碼:admin/admin123456

關(guān)鍵詞:

相關(guān)新聞

Copyright 2015-2020   三好網(wǎng)  版權(quán)所有 聯(lián)系郵箱:435 22 [email protected]  備案號: 京ICP備2022022245號-21