MinIO服务器上的可配置数据和奇偶校验驱动器

MinIO服务器上的可配置数据和奇偶校验驱动器

擦除编码是一种可靠的方法,即使没有几个驱动器,也可以在多个驱动器上分片数据并将其取回。

MinIO服务器利用Reed Solomon擦除编码来确保多个磁盘部署中的数据冗余。直到最近,MinIO擦除编码中用于数据和奇偶校验的驱动器数量固定为每个N / 2(N是MinIO服务器使用的驱动器总数)。这是必须提供的最高冗余擦除编码。

您可能会丢失一半的驱动器,但仍然可以保证数据安全。

这仍然是我们建议的配置。

但是,高冗余度也意味着更高的存储使用率。在某些情况下,可能不希望使用如此高的奇偶校验计数并因此导致存储使用不足,例如:

  • 用户可能已部署了具有故障安全性的专用存储硬件。因此,他们并不期望频繁出现故障。

  • 与存储本身相比,存储的数据的重要性较低,价值较小。

  • MinIO存储中的数据正在备份到其他站点。

为了解决这些用例,我们最近在MinIO服务器中添加了对存储类的支持存储类提供两种模式,标准冗余和精简冗余,每种都有可配置的数据和奇偶校验驱动器。

在我们了解这些类各自的含义以及如何使用它们之前,让我解释一下数据和奇偶校验磁盘的各种组合以及相应的驱动器空间使用情况。

提高空间利用率

为了了解数据和奇偶校验驱动器的各种组合如何影响存储使用,让我们以在16个驱动器MinIO部署中存储的100 MiB文件为例。

如果使用8个数据驱动器和8个奇偶校验驱动器,则文件空间使用量将恰好是两倍,即100 MiB文件将占用200 MiB空间。但是,如果使用10个数据驱动器和6个奇偶校验驱动器,则相同的100 MiB文件将花费大约160 MiB。如果使用14个数据驱动器和2个奇偶校验驱动器,则100 MiB文件仅消耗约114 MiB。

但是,必须注意的是,随着减少奇偶校验驱动器的数量,您正在减少数据的冗余。例如,如果有14个数据驱动器和2个奇偶校验驱动器,则一个对象只能承受2个驱动器丢失,如果丢失第三个驱动器,则将丢失数据。因此,除非用于非关键数据,否则Min IO不建议使用此配置。+ ------------- + ------------- + --------------- + ----- ---------------- +
|总驱动器| 数据驱动器| 平价驱动器| 存储使用率|
+ ------------- + ------------- + --------------- + ----- ---------------- +
16 | 8 | 8 | 2.00 |
16 | 9 | 7 | 1.79 |
16 | 10 | 6 | 1.60 |
16 | 11 | 5 | 1.45 |
16 | 12 | 4 | 1.33 |
16 | 13 | 3 | 1.23 |
16 | 14 | 2 | 1.14 |
+ ------------- + ------------- + --------------- + ----- ---------------- +

该表总结了数据/奇偶校验驱动器和相应的存储空间。字段的占用率仅是擦除编码后文件使用的驱动器空间,除以实际文件大小。

您可以使用公式-总驱动器(N)/数据驱动器(D)计算近似的存储使用率。


下图显示了在4个节点上的数据和奇偶校验分片的示例分布,每个部署4个驱动器,同时启用了两种类型的存储类。


1_VUy9M5bFnsaLXFqHt0NIdQ.png
16使用两个存储类驱动分布式部署


MinIO存储类入门

当前支持两种存储类别,标准减少冗余。您可以使用以下方法设置这些类

  • 环境变量—设置环境变量,MINIO_STORAGE_CLASS_STANDARDMINIO_STORAGE_CLASS_RRS使用格式的值"EC:Parity"例如MINIO_STORAGE_CLASS_STANDARD="EC:5"

  • MinIO配置文件—storageclass像“存储类”这样设置字段:{“ standard”:“ EC:5”,“ rrs”:“ EC:3”}

然后以擦除代码模式启动MinIO服务器。
存储类别:具有STANDARD类别的对象可以承受[5]个驱动器故障。
REDUCED_REDUNDANCY类的对象可以承受[3]个驱动器故障。

有关更多详细信息,请参阅此处的存储类文档:https : //github.com/minio/minio/tree/master/docs/erasure/storage-class

标准存储等级

标准存储类是部署的默认存储类存储类。设置后,默认情况下,所有PutObject请求都将遵循标准存储类下设置的数据/奇偶校验配置。

例如,在10个驱动器的MinIO部署中,将标准存储类设置为6个数据和4个奇偶校验驱动器,所有发送到此MinIO部署的PutObject请求将以6个数据和4个奇偶校验配置存储对象。

这是标准存储类的其他一些有趣方面

  • 默认情况下,标准存储类数据和奇偶校验驱动器设置为N / 2(并且不能将其设置为更高的值)。

  • 您可以选择将对象元数据设置X-Amz-Storage-Class:STANDARD为启用STANDARD相应对象的存储类。

  • 如果将类别设置为,则Minio服务器不会在元数据字段中返回存储类别STANDARD这符合AWS S3 PutObject行为。

减少冗余存储类别

减少的冗余存储类别可以应用于不太重要的对象,从而需要较少的复制。要应用此类,请按照X-Amz-Storage-Class:REDUCED_REDUNDANCYPutObject(或多部分)请求中的设置对象元数据这表示MinIO服务器将存储具有减少冗余类定义的数据和奇偶校验的相应对象。

以下是减少冗余存储类别的一些有趣方面

  • 默认情况下,减少的冗余存储类奇偶校验驱动器设置为2(且不能设置为低于此值)。

  • 您需要设置X-Amz-Storage-Class:REDUCED_REDUNDANCY对象元数据,以减少服务器端的冗余。

  • 如果将类别设置为减少冗余,则MinIO服务器将在元数据字段中返回存储类别。


有了存储类支持,MinIO服务器现在可以对磁盘使用和冗余进行精细控制。现在,您可以权衡最适合您的用例,即可以通过在MinIO部署中正确设置存储类使用的值来优化以获得更好的冗余或更好的存储使用。


上一篇 下一篇