赞
踩
官方网站:https://docs.min.io
中文网站:MinIO Quickstart Guide| Minio中文文档
中文网站版本落后不建议翻阅
1:高度可用
Minio服务器可以容忍分布式设置中高达(N / 2)-1节点故障。而且,您可以配置Minio服务器在Minio与任意Amazon S3兼容服务器之间存储数据。
2:Lambda计算
Minio服务器通过其兼容AWS SNS / SQS的事件通知服务触发Lambda功能。支持的目标是消息队列,如Kafka,NATS,AMQP,MQTT,Webhooks以及Elasticsearch,Redis,Postgres和MySQL等数据库。
3:加密和防篡改
Minio为加密数据提供了机密性,完整性和真实性保证,而且性能开销微乎其微。使用AES-256-GCM,ChaCha20-Poly1305和AES-CBC支持服务器端和客户端加密。加密的对象使用AEAD服务器端加密进行防篡改。
4:可对接后端存储
除了Minio自己的文件系统,还支持DAS、 JBODs、NAS、Google云存储和Azure Blob存储。
5:sdk支持
基于Minio轻量的特点,它得到类似Java、Python或Go等语言的sdk支持
6:部署简单
有安装包、docker、docker compose等方式都特别容易
7:辅助
有UI界面、minio mc
8:性能
是目前最快的对象存储服务器
在标准硬件上,对象存储的读/写速度最高可以达到183 GB/s和171 GB/s。关于fastDFS 测试写了20万个文件,总共200G,大约用时10个小时。总体上是很难达到MinIO“号称的”以G为单位的每秒读写速度。
一般情况下机械硬盘应该在10G/s左右,SSD硬盘在30-40G/s
部署环境:
MinIO 推荐操作系统 RHEL/CentOS 8.x 或更高版本,Ubuntu 18.04 LTS 或更高版本。 Linux内核4.x版本
不建议在windows上搭建
二进制方式:
下载:wget https://dl.min.io/server/minio/release/linux-amd64/minio
将下载的文件变成可执行 chmod +x minio
启动:./minio server /data 不设置密码就是默认 minioadmin/minioadmin
docker方式:
- docker run -d \
- -p 8900:9000 \
- -p 8901:9001 \
- --name minio2 \
- -v ~/var/local/environment/data:/data \
- -e "MINIO_ROOT_USER=root" \
- -e "MINIO_ROOT_PASSWORD=minio123456" \
- minio/minio server /data --console-address ":8901"
说明:
-p 端口映射
--name 容器名
-v 挂载
-e "MINIO_ROOT_USER=root" 账号
-e "MINIO_ROOT_PASSWORD=minio123456" 密码
server /data 指定磁盘
--console-address 暴露UI控制台
4个以上的盘才会开启EC码模式。
开启后会是这个样子的,分片存储,minio内部计算分配set集,将一个文件分成N份,N就是一个set中的磁盘数量,EC码模式开启后能够进行数据恢复,当然单机的EC码除非是真实的不同的物理磁盘,不然安全性和单机没什么区别(磁盘损坏),然后是可用性也和单机一样(服务器宕机)。
EC码模式,minio除了存储原数据还会分出一个奇偶校验驱动器,所以磁盘用量大概为原始数据的2倍。
笔记
所有运行分布式 MinIO 的节点都应该共享一个共同的根凭证,以便节点相互连接和信任。为此,建议在执行 MinIO 服务器命令之前,将 root 用户和 root 密码导出为环境变量,MINIO_ROOT_USER并在所有节点上导出。MINIO_ROOT_PASSWORD如果未导出,minioadmin/minioadmin则应使用默认凭据。
MinIO 创建每组2到16 个驱动器的纠删码集。您提供的驱动器总数必须是这些数字之一的倍数。
MinIO 选择最大的 EC 集大小,将其划分为给定的驱动器总数或节点总数 - 确保保持均匀分布,即每个节点参与每组相同数量的驱动器。
每个对象都写入单个 EC 集,因此分布在不超过 16 个驱动器上。
建议运行分布式 MinIO 设置的所有节点是同质的,即相同的操作系统、相同数量的磁盘和相同的网络互连。
MinIO 分布式模式需要新目录。如果需要,驱动器可以与其他应用程序共享。您可以通过使用 MinIO 独有的子目录来执行此操作。例如,如果您已将卷安装在 下/export,则将其作为参数传递/export/data给 MinIO 服务器。
下面的 IP 地址和驱动器路径仅用于演示目的,您需要将它们替换为实际的 IP 地址和驱动器路径/文件夹。
运行分布式 MinIO 实例的服务器之间的间隔应小于 15 分钟(之前是3s)。您可以启用NTP服务作为最佳实践,以确保跨服务器的时间相同。
MINIO_DOMAIN应为桶 DNS 样式支持定义和导出环境变量。
在Windows操作系统上运行分布式 MinIO被认为是实验性的。请谨慎行事。
使用上篇docker模拟centos环境方式准备 4台虚拟机CSDNhttps://mp.csdn.net/mp_blog/creation/editor/125653601运行镜像生成4个容器,注意两行为一条,不能换行
docker run -d --name minio10 -p 8200:22 -p 9000:9000 -p 9001:9001 -v /home/data5:/var/local/data1 miniosubc:2.0 /usr/sbin/sshd -D
docker run -d --name minio11 -p 8201:22 -p 9002:9000 -p 9003:9001 -v /home/data6:/var/local/data1 miniosubc:2.0 /usr/sbin/sshd -D
docker run -d --name minio12 -p 8202:22 -p 9004:9000 -p 9005:9001 -v /home/data7:/var/local/data1 miniosubc:2.0 /usr/sbin/sshd -D
docker run -d --name minio13 -p 8203:22 -p 9006:9000 -p 9007:9001 -v /home/data8:/var/local/data1 miniosubc:2.0 /usr/sbin/sshd -D
校验容器开启状态
- root 26592 13675 0 20:28 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9003 -container-ip 172.17.0.3 -container-port 9001
- root 26604 13675 0 20:28 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9002 -container-ip 172.17.0.3 -container-port 9000
- root 26616 13675 0 20:28 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8201 -container-ip 172.17.0.3 -container-port 22
- root 27713 13675 0 20:31 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9001 -container-ip 172.17.0.4 -container-port 9001
- root 27725 13675 0 20:31 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9000 -container-ip 172.17.0.4 -container-port 9000
- root 27737 13675 0 20:31 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8200 -container-ip 172.17.0.4 -container-port 22
- root 27942 13675 0 20:31 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9005 -container-ip 172.17.0.5 -container-port 9001
- root 27955 13675 0 20:31 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9004 -container-ip 172.17.0.5 -container-port 9000
- root 27967 13675 0 20:31 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8202 -container-ip 172.17.0.5 -container-port 22
- root 28202 13675 0 20:31 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9007 -container-ip 172.17.0.6 -container-port 9001
- root 28214 13675 0 20:31 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9006 -container-ip 172.17.0.6 -container-port 9000
- root 28226 13675 0 20:31 ? 00:00:00 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 8203 -container-ip 172.17.0.6 -container-port 22
使用ssh工具进入4个服务器,每个服务器都执行一遍,二进制文件执行方式
- export MINIO_ROOT_USER=root
- export MINIO_ROOT_PASSWORD=minio123456
- ./minio server --console-address :9001 --address :9000 \
- http://172.17.0.{3...6}/var/local/data1
只要有一个节点没有启动就会一直报那个连不上的节点错误。。。4个节点都执行上述命令后看还会不会报红。运行成功后会出现这个样式
- WARNING: Detected Linux kernel version older than 4.0.0 release, there are some known potential performance problems with this kernel version. MinIO recommends a minimum of 4.x.x linux kernel version for best performance
- Waiting for all MinIO sub-systems to be initialized.. lock acquired
- Automatically configured API requests per node based on available memory on the system: 100
- All MinIO sub-systems initialized successfully in 797.839383ms
- Waiting for all MinIO IAM sub-system to be initialized.. lock acquired
- MinIO Object Storage Server
- Copyright: 2015-2022 MinIO, Inc.
- License: GNU AGPLv3 <https://www.gnu.org/licenses/agpl-3.0.html>
- Version: RELEASE.2022-06-30T20-58-09Z (go1.18.3 linux/amd64)
-
- Status: 4 Online, 0 Offline.
- API: http://172.17.0.6:9000 http://127.0.0.1:9000
- RootUser: root
- RootPass: minio123456
- Console: http://172.17.0.6:9001 http://127.0.0.1:9001
- RootUser: root
- RootPass: minio123456
-
- Command-line: https://docs.min.io/docs/minio-client-quickstart-guide
- $ mc alias set myminio http://172.17.0.6:9000 root minio123456
-
- Documentation: https://docs.min.io
docker搭建方式:
- docker run -d --name minio \
- --restart=always \
- --net=host \
- -e MINIO_ACCESS_KEY=minio \
- -e MINIO_SECRET_KEY=minio123 \
- -v /data/minio/data1:/data1 \
- -v /data/minio/data2:/data2 \
- minio/minio server \
- http://minio-{1...2}/data{1...2}
docker compose方式: docker官网 Docker Documentation | Docker Documentation
1、docker compose插件安装
docker compose与docker对应版本
参考:docker-compose部署MinIO分布式集群_西瓜蓬蓬的博客-CSDN博客_docker部署minio集群
minio 搭建集群并动态扩容_llc的足迹的博客-CSDN博客_minio动态扩容
minio扩容:
参考:minio分布式集群扩容_freesharer的博客-CSDN博客_minio扩容
minio迁移:
方式:
rclone
mc-mirror
scp
把minio结构的文件复制到想要的服务器后,重新部署一个minio并指向存储路径,还可以继续使用
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。