分布式文件系统 -- Minio

Minio是什么?

MinIO 是一款高性能、分布式的对象存储系统. 它是一款软件产品, 可以100%的运行在标准硬件。即X86等低成本机器也能够很好的运行MinIO。

MinIO与传统的存储和其他的对象存储不同的是:它一开始就针对性能要求更高的私有云标准进行软件架构设计。因为MinIO一开始就只为对象存储而设计。所以他采用了更易用的方式进行设计,它能实现对象存储所需要的全部功能,在性能上也更加强劲,它不会为了更多的业务功能而妥协,失去MinIO的易用性、高效性。 这样的结果所带来的好处是:它能够更简单的实现局有弹性伸缩能力的原生对象存储服务。

MinIO在传统对象存储用例(例如辅助存储,灾难恢复和归档)方面表现出色。同时,它在机器学习、大数据、私有云、混合云等方面的存储技术上也独树一帜。当然,也不排除数据分析、高性能应用负载、原生云的支持。

为什么要使用Minio?

  • 高性能
    MinIO 是全球领先的对象存储先锋,目前在全世界有数百万的用户. 在标准硬件上,读/写速度上高达183 GB / 秒 和 171 GB / 秒。
  • 可扩展性
  • 部署简单
  • 云的原生支持
    MinIO 是在过去4年的时间内从0开始打造的一款软件 ,符合一切原生云计算的架构和构建过程,并且包含最新的云计算的全新的技术和概念。 其中包括支持Kubernetes 、微服和多租户的的容器技术。使对象存储对于 Kubernetes更加友好。

怎么使用Minio?

整体架构

分布式文件系统 -- Minio_第1张图片

环境要求

  • 分布式Minio至少需要4个节点
  • Centos 7.9
  • minio 安装包
  • 两台服务器,分别挂盘/data1,/data2

服务搭建

  1. 安装minio
yum install dnf
dnf install minio-20211109032145.0.0.x86_64.rpm
mkdir /data1/data
mkdir /data2/data
  1. 启动minio集群
[root@qamysql01 minio]# cat run.sh 
#!/bin/bash
export MINIO_ACCESS_KEY=Minio
export MINIO_SECRET_KEY=Test1234!

minio server --config-dir /usr/local/software/minio/conf http://192.168.5.160/data1/data http://192.168.5.160/data2/data http://192.168.5.161/data1/data http://192.168.5.161/data2/data
[root@qamysql01 minio]# nohup run.sh &
  1. 查看服务
    打开页面 http://192.168.5.160:9000 查看是否ok
    分布式文件系统 -- Minio_第2张图片

服务维护

扩容

  1. 扩容方案较差, 仅可用于数据量较小场景

常见的集群扩容方法可分为两类:水平扩容和垂直扩容。水平扩容,一般指通过增加节点数扩展系统性能;而垂直扩容则指提升各节点自身的性能,例如增加节点的磁盘存储空间。直接采用垂直扩容方式扩容MinIO集群的节点磁盘空间,会为集群运行带来若干问题,官方也并不推荐。因此本文主要介绍MinIO的两种水平扩容方式:对等扩容和联邦扩容。

1.1 对等扩容

首先,MinIO的极简设计理念使得MinIO分布式集群并不支持向集群中添加单个节点并进行自动调节的扩容方式,这是因为加入单个节点后所引发的数据均衡以及纠删组划分等问题会为整个集群带来复杂的调度和处理过程,并不利于维护。因此,MinIO提供了一种对等扩容的方式,即要求增加的节点数和磁盘数均需与原集群保持对等。

例如原集群包含4个节点4块磁盘,则在扩容时必须同样增加4个节点4块磁盘(或为其倍数),以便系统维持相同的数据冗余SLA,从而极大地降低扩容的复杂性。如上例,在扩容后,MinIO集群并不会对全部的8个节点进行完全的数据均衡,而是将原本的4个节点视作一个区域,新加入的4节点视作另一区域,当有新对象上传时,集群将依据各区域的可用空间比例确定存放区域,在各区域内仍旧通过哈希算法确定对应的纠删组进行最终的存放。此外,集群进行一次对等扩容后,还可依据扩容规则继续进行对等扩容,但出于安全性考虑,集群的最大节点数一般不得超过32个。

对等扩容的优点在于配置操作简单易行,通过一条命令即可完成扩容(注意:推荐使用连续的节点IP,并参照MinIO官网在扩容命令中使用{})。而对等扩容的局限性在于:①扩容需重启;②扩容存在限制,集群节点数一般不超过32个,这是由于MinIO集群通过分布式锁保证强一致性,若集群节点数过大,维护强一致性将带来性能问题。

1.2 联邦扩容

MinIO官方提供了另一种扩容机制——联邦扩容,即通过引入etcd,将多个MinIO分布式集群在逻辑上组成一个联邦,对外以一个整体提供服务,并提供统一的命名空间。

数据恢复

# 添加minio服务信息配置
[root@qamysql01 minio]# ./mc config host add myminio  http://192.168.5.160:9000 Minio Test1234!
Added `myminio` successfully.
# 恢复指定桶文件
[root@qamysql01 minio]# ./mc admin heal -r myminio/cloudoa

数据迁移

将4块盘依次重新挂载,服务正常运行. 具有数据自动恢复功能

总结

优点:

  1. 部署运维简单
  2. 支持S3, 有java端 js客户端
  3. 包含纠码功能, 支持数据恢复

缺点:

  1. 不支持动态扩容
  2. 增加节点方案不适合大型生产环境

你可能感兴趣的:(Linux,big,data,云计算,kubernetes)