三.minio 的分布式部署、单节点多磁盘、多节点模式
目录
1.概述
2.windows分布式部署
2.1单节点多磁盘
2.1.1.创建目录
2.1.2启动脚本
2.1.3测试
2.2.多节点
2.2.1目录结构
2.2.2脚本
2.2.3启动测试
2.2.4nginx负载均衡
2.2.5测试
3.linux分布式部署
3.1 单节点部署多磁盘
3.2 多节点部署
3.2.1 部署脚本
3.2.2 部署注意点
3.2.3 使用 nginx 负载均衡
gitee:https://gitee.com/pythonloser/springboot-minio/tree/master
一.minio安装与使用:一.minio安装与使用_xixiyuguang的博客-CSDN博客
二.minio整合springboot、文件上传下载、增删改查bucket和object:二.minio整合springboot、文件上传下载、增删改查bucket和object_xixiyuguang的博客-CSDN博客_minio修改bucket名称
三.minio 的分布式部署、单节点多磁盘、多节点模式:三.minio 的分布式部署、单节点多磁盘、多节点模式_xixiyuguang的博客-CSDN博客_minio多节点
四.minio前端获取签名地址直传minio文件服务器(前端直传):四.minio前端获取签名地址直传minio文件服务器(前端直传)_xixiyuguang的博客-CSDN博客_minio 直传
1.概述
分布式Minio可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式Minio避免了单点故障。
在大数据领域,通常的设计理念都是无中心和分布式。Minio分布式模式可以帮助你搭建一个高可用的对象存储服务,你可以使用这些存储设备,而不用考虑其真实物理位置。
数据保护
分布式Minio采用 纠删码来防范多个节点宕机和位衰减bit rot。
分布式Minio至少需要4个硬盘,使用分布式Minio自动引入了纠删码功能。
高可用
单机Minio服务存在单点故障,相反,如果是一个有N块硬盘的分布式Minio,只要有N/2硬盘在线,你的数据就是安全的。不过你需要至少有N/2+1个硬盘来创建新的对象。
例如,一个16节点的Minio集群,每个节点16块硬盘,就算8台服務器宕机,这个集群仍然是可读的,不过你需要9台服務器才能写数据。
注意,只要遵守分布式Minio的限制,你可以组合不同的节点和每个节点几块硬盘。比如,你可以使用2个节点,每个节点4块硬盘,也可以使用4个节点,每个节点两块硬盘,诸如此类。
一致性
Minio在分布式和单机模式下,所有读写操作都严格遵守read-after-write一致性模型。
2.windows分布式部署
2.1单节点多磁盘
2.1.1.创建目录
四个目录模拟四个不同的磁盘。
2.1.2启动脚本
set MINIO_ROOT_USER=admin
set MINIO_ROOT_PASSWORD=12345678
minio.exe server --console-address "127.0.0.1:9000" --address "127.0.0.1:9090" D:\minio\oneNodeManyData\data1 D:\minio\oneNodeManyData\data2 D:\minio\oneNodeManyData\data3 D:\minio\oneNodeManyData\data4
脚本解释:
首先设置临时环境变量,指定登录账号密码
--console-address "127.0.0.1:9000":代表管理页面的ip和端口
--address "127.0.0.1:9090":代表接口的ip和端口
然后跟四个目录
2.1.3测试
创建bucket,上传文件,发现data1、data2中均包含文件夹和文件
查看文件夹中的文件,发现是meta数据,
2.2.多节点
2.2.1目录结构
2.2.2脚本
解释:端口不同,数据盘目录均一致,需要执行四次
9001服务,api9091
set MINIO_ROOT_USER=admin
set MINIO_ROOT_PASSWORD=12345678
minio.exe server --console-address "127.0.0.1:9001" --address "127.0.0.1:9091" ^
http://127.0.0.1:9091/D:/minio/manyNodeManyData/data1 ^
http://127.0.0.1:9092/D:/minio/manyNodeManyData/data2 ^
http://127.0.0.1:9093/D:/minio/manyNodeManyData/data3 ^
http://127.0.0.1:9094/D:/minio/manyNodeManyData/data4
9002服务,api9092
set MINIO_ROOT_USER=admin
set MINIO_ROOT_PASSWORD=12345678
minio.exe server --console-address "127.0.0.1:9002" --address "127.0.0.1:9092" ^
http://127.0.0.1:9091/D:/minio/manyNodeManyData/data1 ^
http://127.0.0.1:9092/D:/minio/manyNodeManyData/data2 ^
http://127.0.0.1:9093/D:/minio/manyNodeManyData/data3 ^
http://127.0.0.1:9094/D:/minio/manyNodeManyData/data4
9003服务,api9093
set MINIO_ROOT_USER=admin
set MINIO_ROOT_PASSWORD=12345678
minio.exe server --console-address "127.0.0.1:9003" --address "127.0.0.1:9093" ^
http://127.0.0.1:9091/D:/minio/manyNodeManyData/data1 ^
http://127.0.0.1:9092/D:/minio/manyNodeManyData/data2 ^
http://127.0.0.1:9093/D:/minio/manyNodeManyData/data3 ^
http://127.0.0.1:9094/D:/minio/manyNodeManyData/data4
9004服务,api9094
set MINIO_ROOT_USER=admin
set MINIO_ROOT_PASSWORD=12345678
minio.exe server --console-address "127.0.0.1:9004" --address "127.0.0.1:9094" ^
http://127.0.0.1:9091/D:/minio/manyNodeManyData/data1 ^
http://127.0.0.1:9092/D:/minio/manyNodeManyData/data2 ^
http://127.0.0.1:9093/D:/minio/manyNodeManyData/data3 ^
http://127.0.0.1:9094/D:/minio/manyNodeManyData/data4
2.2.3启动测试
2.2.4nginx负载均衡
前面单独对每个节点进行访问显然不合理,通过使用 nginx 代理,进行负载均衡则很有必要。简单的配置如下:
server{
listen 8888;
server_name 127.0.0.1;
ignore_invalid_headers off;
client_max_body_size 0;
proxy_buffering off;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host:$server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header Host $http_host;
proxy_connect_timeout 300;
proxy_http_version 1.1;
chunked_transfer_encoding off;
proxy_ignore_client_abort on;
proxy_pass http://http_minio;
}
}
2.2.5测试
通过日志可以发现,轮循访问四个不同的节点
3.linux分布式部署
转载:MinIO 的分布式部署 - Mason技术记录 - 博客园
3.1 单节点部署多磁盘
在启动 MinIO 时,若传入参数是多个目录,则会以纠删码的形式运行,即具备高可靠性意义。即在一个服务器(单节点)上对,多个磁盘上运行 MinIO。
运行命令也很简单,参数传入多个目录即可:
MINIO_ACCESS_KEY=${ACCESS_KEY} MINIO_SECRET_KEY=${SECRET_KEY} nohup ${MINIO_HOME}/minio server --address "${MINIO_HOST}:${MINIO_PORT}" /opt/min-data1 /opt/min-data2 /opt/min-data3 /opt/min-data4 > ${MINIO_LOGFILE} 2>&1 &
注意替换命令中的变更,运行后输出信息如下:
可见 MinIO 会创建一个1个 set,set 中有4个 drive ,其中它会提示一个警告,提示一个节点的 set 中存在多于2个的drive,如果节点挂掉,则数据都不可用了,这与 EC 码的规则一致。
3.2 多节点部署
3.2.1 部署脚本
为了防止单点故障,分布式存储自然是需要多节点部署,以达到高可靠和高可用的能力。MinIO 对于多节点的部署,也是在启动时通过指定有 Host 和端口的目录地址,即可实现。下面在单台机器上,通过不同的端口模拟在4台机器节点上运行,存储目录依然是 min-data14,而对应的端口是90019004。脚本如下:
RUNNING_USER=root
MINIO_HOME=/opt/minio
MINIO_HOST=192.168.222.10
#accesskey and secretkey
ACCESS_KEY=minio
SECRET_KEY=minio123for i in {01..04}; doSTART_CMD="MINIO_ACCESS_KEY=${ACCESS_KEY} MINIO_SECRET_KEY=${SECRET_KEY} nohup ${MINIO_HOME}/minio server --address "${MINIO_HOST}:90${i}" http://${MINIO_HOST}:9001/opt/min-data1 http://${MINIO_HOST}:9002/opt/min-data2 http://${MINIO_HOST}:9003/opt/min-data3 http://${MINIO_HOST}:9004/opt/min-data4 > ${MINIO_HOME}/minio-90${i}.log 2>&1 &"su - ${RUNNING_USER} -c "${START_CMD}"
done
本示例中,minio 的启动命令运行了4次,相当于在四台机器节点上都分别运行一个minio实例,从而模拟四个节点。运行结果如下:
查看进程ps -ef |grep minio
:
3.2.2 部署注意点
- 所有运行分布式 MinIO 的节点需要具有相同的访问密钥和秘密密钥才能连接。建议在执行 MINIO 服务器命令之前,将访问密钥作为环境变量,MINIO access key 和 MINIO secret key 导出到所有节点上 。
- Minio 创建4到16个驱动器的擦除编码集。
- Minio 选择最大的 EC 集大小,该集大小除以给定的驱动器总数。 例如,8个驱动器将用作一个大小为8的 EC 集,而不是两个大小为4的 EC 集 。
- 建议所有运行分布式 MinIO 设置的节点都是同构的,即相同的操作系统、相同数量的磁盘和相同的网络互连 。
- 运行分布式 MinIO 实例的服务器时间差不应超过15分钟。
运行起来后,使用 http://${MINIO_HOST}:9001
到http://${MINIO_HOST}:9004
均可以访问到 MinIO 的使用界面。
3.2.3 使用 nginx 负载均衡
前面单独对每个节点进行访问显然不合理,通过使用 nginx 代理,进行负载均衡则很有必要。简单的配置如下:
upstream http_minio {server 192.168.222.10:9001;server 192.168.222.10:9002;server 192.168.222.10:9003;server 192.168.222.10:9004;
}server{listen 8888;server_name 192.168.222.10;ignore_invalid_headers off;client_max_body_size 0;proxy_buffering off;location / {proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-Host $host:$server_port;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;proxy_set_header Host $http_host;proxy_connect_timeout 300;proxy_http_version 1.1;chunked_transfer_encoding off;proxy_ignore_client_abort on;proxy_pass http://http_minio;}
}
其中主要是 upstream 及 proxy_pass 的配置。如此,即可使用http://${MINIO_HOST}:8888
进行访问。
三.minio 的分布式部署、单节点多磁盘、多节点模式相关推荐
- hp unix oracle rac节点一磁盘损坏,节点修复
oracle 10g rac用的service guide 作为集群基础的软件 相关目录信息: ORA_CRS_HOME=$ORACLE_BASE/10.2/crs Ocr信息: /dev/vgdat ...
- hpunix oracle rac,hp unix oracle rac节点一磁盘损坏,节点修复
oracle 10g rac用的service guide 作为集群基础的软件 相关目录信息: ORA_CRS_HOME=$ORACLE_BASE/10.2/crs Ocr信息: /dev/vgdat ...
- 一致性哈希 php redis,使用一致性哈希实现Redis分布式部署
像Memcache以及其它一些内存K/V数据库一样,Redis本身不提供分布式支持,所以在部署多台Redis服务器时,就需要解决如何把数据分散到各个服务器的问题,并且在服务器数量变化时,能做到最大程度 ...
- 离线使用OBD本地部署单节点OceanBase
离线使用OBD本地部署单副本单节点社区版OceanBase 一:检查软硬件的要求 软件资源介绍: OceanBase 数据库是一个分布式集群产品,在生产环境中至少要求三台机器,学习环境可以部署单机版本 ...
- 【重要】kubernetes二进制部署单master节点
目录 1.安装要求 2.安装规划 3.1.分步骤操作 3.2.一键执行脚本 4.1.安装cfssl证书生成工具 4.2.创建认证中心(根CA中心) 4.3.使用自签CA签发Etcd证书 4.4.部署E ...
- kubernetes二进制部署单master节点
目录 1.安装要求 2.安装规划 3.1.分步骤操作 3.2.一键执行脚本 4.1.安装cfssl证书生成工具 4.2.创建认证中心(根CA中心) 4.3.使用自签CA签发Etcd证书 4.4.部署E ...
- minio单点及分布式部署
minio官网 minio 单节点部署 192.168.3.202 cd /opt/minio wget https://dl.min.io/server/minio/release/linux-am ...
- 【MinIO】MinIO分布式部署
MinIO分布式部署 MinIO简介 MinIO是一款高性能的分布式对象存储服务器,专为大规模私有云基础框架而设计. MinIO是一个分布式对象存储服务器,Amazon S3兼容,用Go编写,在Apa ...
- Apache Spark探秘:三种分布式部署方式比较
2019独角兽企业重金招聘Python工程师标准>>> 目前Apache Spark支持三种分布式部署方式,分别是standalone.spark on mesos和 spark o ...
- spark on yarn 完全分布式_Apache Spark探秘:三种分布式部署方式比较
[本文详细介绍了Spark的三种部署方式及其比较,欢迎读者朋友们阅读.转发和收藏!] 目前Apache Spark支持三种分布式部署方式,分别是 standalone . spark on mesos ...
最新文章
- 在闲鱼传疯了,某大厂P8面试题库泄漏!
- 高仿书旗小说 Flutter版,支持iOS、Android
- c语言变量在头文件定义变量吗,在头文件C中声明变量
- 图解VC++开发ActiveX控件C#调用
- HAProxy的日志配置以及ACL规则实现负载均衡
- 一个极其高效的虚拟机内存冗余消除机制:UKSM
- 解决方案_环网柜监测解决方案
- body 没有被撑开_父div没有被撑开,该怎么解决?_html/css_WEB-ITnose
- 如何使用CommitMonitor工具监控 SVN
- Python机器学习:逻辑回归算法以及多类分类
- 如何对物联网数据进行大数据分析
- 2018:视频标准混战的元年序幕
- 时装连连看,基于MindSpore实现FashionMNIST图像分类
- linux网络协议栈ip_rcv
- 手机怎么提高图片分辨率?手机怎么改照片分辨率dpi?
- 00后必看:如何在互联网就业寒冬和疫情的双面夹击下找到心仪工作
- 【嵌入式Linux应用开发】温湿度监控系统——绘制温湿度折线图
- 三国群英传霸业之王服务器维护,《三国群英传2网络版》掌上助手APP曝光,三国群英传霸业之王...
- 微信小程序scroll-into-view实现页面定位
- [转载]我的老师唐圭璋先生(王兆鹏)_RWERWERWE_96921_新浪博客
热门文章
- azure mysql on vnet_管理 VNet 终结点 - Azure CLI - Azure Database for MySQL | Microsoft Docs
- GOP和帧率、码率的关系
- IOS 设备越狱原理
- Cinnamon 任务栏网速
- 统计学的Python实现-015:调和平均数
- 制作u盘winpe启动盘_U启大师U盘启动盘制作教程(装机版)
- 码农枪击了 4 名同事后被警方击毙!后附“程序员保命指南”
- [MATLAB]代数/常微分求解(solve/dsolve)
- unity入门——实现一个简单的跑酷游戏(准备工作)
- 【黑帽SEO案例分析】10天爱站从0到6