前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >分布式存储MinIO Erasure Code 部署

分布式存储MinIO Erasure Code 部署

作者头像
xdd
发布2022-07-12 14:36:04
1.1K0
发布2022-07-12 14:36:04
举报
文章被收录于专栏:java技术鸡汤java技术鸡汤

本篇文章主要介绍分布式存储MinIO Erasure Code的部署方式

MinIO 使用Erasure Code和checksum保护数据免受硬件故障及数据损坏。使用最高级别的冗余,您可能会丢失多达一半 (N/2) 的驱动盘,但仍然能够恢复数据。

1、Erasure Code的概念

Erasure Code是一种用于重建丢失或损坏数据的数学算法。MinIO 使用 Reed-Solomon 将对象分片为可变数据和奇偶校验块。例如,在 12 个drivers设置中,可以将一个对象分片到所有drivers上的可变数量的数据和奇偶校验块 - 从六个数据和六个奇偶校验块到十个数据和两个奇偶校验块。

MinIO默认会将对象分片N/2到数据drivers、N/2到奇偶校验drivers。

官方推荐 N/2 个数据块和N/2个奇偶校验块,因为它可以确保对drivers故障提供最佳保护。

在上面的 12 个驱动器示例中,在默认配置下运行 MinIO 服务器时,您可能会丢失六个驱动器中的任何一个,但仍然可以从剩余驱动器中可靠地重建数据。

2、Bit Rot保护策略介绍

bit rot,也称为data rot或无声数据损坏,是当今磁盘驱动器面临的数据丢失问题。驱动器上的数据可能会悄无声息地损坏,而不会发出错误信号,这使得bit rot比永久性硬盘驱动器故障更危险。

MinIO 的erasure code使用高速 HighwayHash 校验和来防止 Bit Rot。

HighwayHash介绍链接:https://github.com/minio/highwayhash

3、drivers是如何用于Erasure Code的?

MinIO将你提供的drives划分为4~16个erasure-coding set。因此,你提供的驱动器数量必须是这些数字之一的倍数。每个对象都被写入一个单独的erasure code set。

Minio 使用最大可能的 EC set大小,它分为给定数量的dirve。比如:18个drives被配置为2个set、每个set均为9个drives;如果是24个drives被配置为2个set,每个set均为12个drives。适用于部署单机版的MinIO Erasure Code方式。

所有的drives的大小应该尽量保持相同的规模。

执行以下命令:

代码语言:javascript
复制
podman run \
  -p 9000:9000 \
  -p 9001:9001 \
  --name minio \
  -v /mnt/data1:/data1 \
  -v /mnt/data2:/data2 \
  -v /mnt/data3:/data3 \
  -v /mnt/data4:/data4 \
  -v /mnt/data5:/data5 \
  -v /mnt/data6:/data6 \
  -v /mnt/data7:/data7 \
  -v /mnt/data8:/data8 \
  quay.io/minio/minio server /data{1...8} --console-address ":9001"

如果文中有不恰当之处,恳请指正。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 java技术鸡汤 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档