亚洲精品亚洲人成在线观看麻豆,在线欧美视频一区,亚洲国产精品一区二区动图,色综合久久丁香婷婷

              當(dāng)前位置:首頁 > IT技術(shù) > 其他 > 正文

              Minio 分布式集群部署
              2022-09-06 22:58:50


              Minio 分布式集群部署_nginx

              文章目錄

              分布式Minio可以讓你將多塊硬盤(甚至在不同的機(jī)器上)組成一個對象存儲服務(wù)。由于硬盤分布在不同的節(jié)點(diǎn)上,分布式Minio避免了單點(diǎn)故障。

              Minio 分布式集群部署_minio_02

              一、分布式存儲可靠性常用方法
              1. 概述

              分布式存儲,很關(guān)鍵的點(diǎn)在于數(shù)據(jù)的可靠性,即保證數(shù)據(jù)的完整,不丟失,不損壞。只有在可靠性實現(xiàn)的前提下,才有了追求一致性、高可用、高性能的基礎(chǔ)。而對于在存儲領(lǐng)域,一般對于保證數(shù)據(jù)可靠性的方法主要有兩類,一類是冗余法,一類是校驗法。

              2. 冗余

              冗余法最簡單直接,即對存儲的數(shù)據(jù)進(jìn)行副本備份,當(dāng)數(shù)據(jù)出現(xiàn)丟失,損壞,即可使用備份內(nèi)容進(jìn)行恢復(fù),而副本 備份的多少,決定了數(shù)據(jù)可靠性的高低。這其中會有成本的考量,副本數(shù)據(jù)越多,數(shù)據(jù)越可靠,但需要的設(shè)備就越多,成本就越高??煽啃允窃试S丟失其中一份數(shù)據(jù)。當(dāng)前已有很多分布式系統(tǒng)是采用此種方式實現(xiàn),如 Hadoop 的文件系統(tǒng)(3個副本),Redis 的集群,MySQL 的主備模式等。

              3. 校驗

              校驗法即通過校驗碼的數(shù)學(xué)計算的方式,對出現(xiàn)丟失、損壞的數(shù)據(jù)進(jìn)行校驗、還原。注意,這里有兩個作用,一個校驗,通過對數(shù)據(jù)進(jìn)行校驗和( checksum )進(jìn)行計算,可以檢查數(shù)據(jù)是否完整,有無損壞或更改,在數(shù)據(jù)傳輸和保存時經(jīng)常用到,如 TCP 協(xié)議;二是恢復(fù)還原,通過對數(shù)據(jù)結(jié)合校驗碼,通過數(shù)學(xué)計算,還原丟失或損壞的數(shù)據(jù),可以在保證數(shù)據(jù)可靠的前提下,降低冗余,如單機(jī)硬盤存儲中的 RAID技術(shù),糾刪碼(Erasure Code)技術(shù)等。MinIO 采用的就是糾刪碼技術(shù)。

              二、分布式Minio優(yōu)勢
              2.1. 數(shù)據(jù)保護(hù)

              分布式Minio采用 糾刪碼來防范多個節(jié)點(diǎn)宕機(jī)和位衰減 bit rot 。
              分布式Minio至少需要4個硬盤,使用分布式Minio自動引入了糾刪碼功能。

              2.2. 高可用

              單機(jī)Minio服務(wù)存在單點(diǎn)故障,相反,如果是一個有N塊硬盤的分布式Minio,只要有N/2硬盤在線,你的數(shù)據(jù)就是安全的。不過你需要至少有N/2+1個硬盤來創(chuàng)建新的對象。
              例如,一個16節(jié)點(diǎn)的Minio集群,每個節(jié)點(diǎn)16塊硬盤,就算8臺服務(wù)器宕機(jī),這個集群仍然是可讀的,不過你需要9臺服務(wù)器才能寫數(shù)據(jù)。

              2.3.一致性

              Minio在分布式和單機(jī)模式下,所有讀寫操作都嚴(yán)格遵守read-after-write一致性模型

              三、運(yùn)行分布式Minio
              3.1. 啟動方案簡述

              啟動一個分布式Minio實例,你只需要把硬盤位置做為參數(shù)傳給minio server命令即可,然后,你需要在所有其它節(jié)點(diǎn)運(yùn)行同樣的命令。

              • 分布式Minio里所有的節(jié)點(diǎn)需要有同樣的access秘鑰和secret秘鑰,這樣這些節(jié)點(diǎn)才能建立聯(lián)接。
                為了實現(xiàn)這個,你需要在執(zhí)行minio server命令之前,先將access秘鑰和secret秘鑰export成環(huán)境
                變量。新版本使用MINIO_ROOT_USER&MINIO_ROOT_PASSWORD。
              • 分布式Minio使用的磁盤里必須是干凈的,里面沒有數(shù)據(jù)。
              • 下面示例里的IP僅供示例參考,你需要改成你真實用到的IP和文件夾路徑。
              • 分布式Minio里的節(jié)點(diǎn)時間差不能超過3秒,你可以使用NTP 來保證時間一致。
              • 在Windows下運(yùn)行分布式Minio處于實驗階段,請悠著點(diǎn)使用。
              3.2. 案例說明

              8個節(jié)點(diǎn),每節(jié)點(diǎn)1塊盤
              啟動分布式Minio實例,8個節(jié)點(diǎn),每節(jié)點(diǎn)1塊盤,需要在8個節(jié)點(diǎn)上都運(yùn)行下面的命令:

              data MINIO_ROOT_USER=admin
              data MINIO_ROOT_PASSWORD=12345678
              MINIO_HOME=/root

              ${MINIO_HOME}/minio server --address ":9000" --console-address ":50000"
              http://192.168.92.101:9000/mnt/data1 http://192.168.92.102:9000/mnt/data2
              http://192.168.92.103:9000/mnt/data3 http://192.168.92.104:9000/mnt/data4
              http://192.168.92.105:9000/mnt/data5 http://192.168.92.106:9000/mnt/data6

              Minio 分布式集群部署_minio_03

              4節(jié)點(diǎn),每節(jié)點(diǎn)4塊盤
              啟動分布式Minio實例,4節(jié)點(diǎn),每節(jié)點(diǎn)4塊盤,需要在4個節(jié)點(diǎn)上都運(yùn)行下面的命令

              data MINIO_ROOT_USER=admin
              data MINIO_ROOT_PASSWORD=12345678
              MINIO_HOME=/root

              ${MINIO_HOME}/minio server --address ":9000" --console-address ":50000"
              http://192.168.92.101:9000/mnt/data1 http://192.168.92.101:9000/mnt/data2
              http://192.168.92.101:9000/mnt/data3 http://192.168.92.101:9000/mnt/data4
              http://192.168.92.102:9000/mnt/data1 http://192.168.92.102:9000/mnt/data2
              http://192.168.92.102:9000/mnt/data3 http://192.168.92.102:9000/mnt/data4
              http://192.168.92.103:9000/mnt/data1 http://192.168.92.103:9000/mnt/data2
              http://192.168.92.103:9000/mnt/data3 http://192.168.92.103:9000/mnt/data4
              http://192.168.92.104:9000/mnt/data1 http://192.168.92.104:9000/mnt/data2

              Minio 分布式集群部署_minio_04

              3.3. 制作分布式啟動腳本

              腳本演示:4個節(jié)點(diǎn),每個節(jié)點(diǎn)掛載4塊磁盤。在實際的服務(wù)器上依次執(zhí)行以下命令即可
              案例演示:偽分布式模式

              vim
              data MINIO_ROOT_USER=admin
              data MINIO_ROOT_PASSWORD=12345678
              MINIO_HOME=/root

              nohup ${MINIO_HOME}/minio server --address ":9000" --console-address ":50000"
              http://192.168.92.101:9000/mnt/data1 http://192.168.92.101:9000/mnt/data2
              http://192.168.92.101:9000/mnt/data3 http://192.168.92.101:9000/mnt/data4
              http://192.168.92.102:9000/mnt/data1 http://192.168.92.102:9000/mnt/data2
              http://192.168.92.102:9000/mnt/data3 http://192.168.92.102:9000/mnt/data4
              http://192.168.92.103:9000/mnt/data1 http://192.168.92.103:9000/mnt/data2
              http://192.168.92.103:9000/mnt/data3 http://192.168.92.103:9000/mnt/data4
              http://192.168.92.104:9000/mnt/data1 http://192.168.92.104:9000/mnt/data2
              http://192.168.92.104:9000/mnt/data3 http://192.168.92.104:9000/mnt/data4 > ${MINIO_HOME}/minio-9000.log 2>&1 &
              chmod
              3.4. 制作偽分布式啟動腳本

              案例演示:偽分布式模式案例

              vim
              export MINIO_ROOT_USER=admin
              export MINIO_ROOT_PASSWORD=12345678
              MINIO_HOME=/root
              MINIO_HOST=192.168.92.104

              for i in {01..04}; do
              nohup ${MINIO_HOME}/minio server --address ":90${i}" --console-address ":500${i}" http://${MINIO_HOST}:9001/mnt/data01 http://${MINIO_HOST}:9002/mnt/data02 http://${MINIO_HOST}:9003/mnt/data03 http://${MINIO_HOST}:9004/mnt/data04 > ${MINIO_HOME}/minio-90${i}.log 2>&1 &
              done
              chmod

              Minio 分布式集群部署_數(shù)據(jù)_05

              3.5. 登錄minio

              Minio 分布式集群部署_minio_06


              Minio 分布式集群部署_啟動腳本_07


              Minio 分布式集群部署_minio_08


              Minio 分布式集群部署_數(shù)據(jù)_09

              四、分布式Minio負(fù)載均衡
              4.1. nginx安裝


              4.2. 配置nginx
              cd
              worker_processes  1;
              events {
              worker_connections 1024;
              }

              http {
              include mime.types;
              default_type application/octet-stream;
              sendfile on;
              keepalive_timeout 65;

              upstream minio {
              server 192.168.92.104:9001;
              server 192.168.92.104:9002;
              server 192.168.92.104:9003;
              server 192.168.92.104:9004;
              }
              upstream console {
              ip_hash;
              server 192.168.92.104:50001;
              server 192.168.92.104:50002;
              server 192.168.92.104:50003;
              server 192.168.92.104:50004;
              }
              server {
              listen 9000;
              server_name localhost;
              ignore_invalid_headers off;
              client_max_body_size 0;
              proxy_buffering off;
              location / {
              proxy_set_header Host $http_host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
              proxy_connect_timeout 300;
              proxy_http_version 1.1;
              proxy_set_header Connection "";
              chunked_transfer_encoding off;
              proxy_pass http://minio;
              }
              }
              server {
              listen 50000;
              server_name localhost;
              ignore_invalid_headers off;
              client_max_body_size 0;
              proxy_buffering off;
              location / {
              proxy_set_header Host $http_host;
              proxy_set_header X-Real-IP $remote_addr;
              proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              proxy_set_header X-Forwarded-Proto $scheme;
              proxy_set_header X-NginX-Proxy true;
              proxy_connect_timeout 300;
              proxy_http_version 1.1;
              proxy_set_header Connection "";
              chunked_transfer_encoding off;`在這里插入代碼片`
              proxy_pass http://console;
              }
              }
              }
              4.3. 停止nginx服務(wù)
              ps -ef |grep nginx
              kill
              4.4. 重新啟動nginx
              /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
              4.5. 登錄monio

              真實后端控制臺端口:50001~5004,
              現(xiàn)在訪問50000自動負(fù)載到50001~5004的任意一個端口

              ??http://192.168.92.104:50000/??

              賬號密碼:admin/12345678

              Minio 分布式集群部署_nginx_10


              Minio 分布式集群部署_minio_11


              本文摘自 :https://blog.51cto.com/g

              開通會員,享受整站包年服務(wù)立即開通 >