• 分布式MinIO快速入门


    官方文档地址:http://docs.minio.org.cn/docs/master/distributed-minio-quickstart-guide

    Minio服务基于命令行传入的参数自动切换成单机模式还是分布式模式。

    分布式Minio可以让你将多块硬盘(甚至在不同的机器上)组成一个对象存储服务。由于硬盘分布在不同的节点上,分布式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一致性模型。

    运行分布式Minio

    启动一个分布式Minio实例,你只需要把硬盘位置做为参数传给minio server命令即可,然后,你需要在所有其它节点运行同样的命令。

    注意:

    • 分布式Minio里所有的节点需要有同样的access秘钥和secret秘钥,这样这些节点才能建立联接。为了实现这个,你需要在执行minio server命令之前,先将access秘钥和secret秘钥export成环境变量。
    • 分布式Minio使用的磁盘里必须是干净的,里面没有数据。
    • 下面示例里的IP仅供示例参考,你需要改成你真实用到的IP和文件夹路径。
    • 分布式Minio里的节点时间差不能超过3秒,你可以使用NTP 来保证时间一致。
    • 在Windows下运行分布式Minio处于实验阶段,请悠着点使用。

    示例1: 启动分布式Minio实例,8个节点,每节点1块盘,需要在8个节点上都运行下面的命令。

    export MINIO_ACCESS_KEY=<ACCESS_KEY>
    export MINIO_SECRET_KEY=<SECRET_KEY>
    minio server http://192.168.1.11/export1 http://192.168.1.12/export2 \
                   http://192.168.1.13/export3 http://192.168.1.14/export4 \
                   http://192.168.1.15/export5 http://192.168.1.16/export6 \
                   http://192.168.1.17/export7 http://192.168.1.18/export8
    

    示例2: 启动分布式Minio实例,4节点,每节点4块盘,需要在4个节点上都运行下面的命令。

    export MINIO_ACCESS_KEY=<ACCESS_KEY>
    export MINIO_SECRET_KEY=<SECRET_KEY>
    minio server http://192.168.1.11/export1 http://192.168.1.11/export2 \
                   http://192.168.1.11/export3 http://192.168.1.11/export4 \
                   http://192.168.1.12/export1 http://192.168.1.12/export2 \
                   http://192.168.1.12/export3 http://192.168.1.12/export4 \
                   http://192.168.1.13/export1 http://192.168.1.13/export2 \
                   http://192.168.1.13/export3 http://192.168.1.13/export4 \
                   http://192.168.1.14/export1 http://192.168.1.14/export2 \
                   http://192.168.1.14/export3 http://192.168.1.14/export4
    

    扩展现有的分布式集群

    例如我们是通过区的方式启动MinIO集群,命令行如下:

    export MINIO_ACCESS_KEY=<ACCESS_KEY>
    export MINIO_SECRET_KEY=<SECRET_KEY>
    minio server http://host{1...32}/export{1...32}
    

    MinIO支持通过命令,指定新的集群来扩展现有集群(纠删码模式),命令行如下:

    export MINIO_ACCESS_KEY=<ACCESS_KEY>
    export MINIO_SECRET_KEY=<SECRET_KEY>
    minio server http://host{1...32}/export{1...32} http://host{33...64}/export{1...32}
    

    现在整个集群就扩展了1024个磁盘,总磁盘变为2048个,新的对象上传请求会自动分配到最少使用的集群上。通过以上扩展策略,您就可以按需扩展您的集群。重新配置后重启集群,会立即在集群中生效,并对现有集群无影响。如上命令中,我们可以把原来的集群看做一个区,新增集群看做另一个区,新对象按每个区域中的可用空间比例放置在区域中。在每个区域内,基于确定性哈希算法确定位置。

    说明: 您添加的每个区域必须具有与原始区域相同的磁盘数量(纠删码集)大小,以便维持相同的数据冗余SLA。 例如,第一个区有8个磁盘,您可以将集群扩展为16个、32个或1024个磁盘的区域,您只需确保部署的SLA是原始区域的倍数即可。

    多个节点的存储容量和就是分布式Minio的存储容量。

  • 相关阅读:
    linux下C++程序开发范例
    a list of compiler books — 汗牛充栋的编译器参考资料
    中国象棋将帅问题
    CPU利用率问题:操作系统原理和API
    算法性能分析
    MySQL时间分组查询
    在MongoDB的MapReduce上踩过的坑
    C++双缓冲多线程分析大文件词频
    MongoDB进行MapReduce的数据类型
    得到内网域管理员的5种常见方法<转>
  • 原文地址:https://www.cnblogs.com/sanduzxcvbnm/p/15981755.html
Copyright © 2020-2023  润新知