纠删编码的优势,劣势和要求
在决定是使用复制还是纠删编码来保护对象数据不会丢失之前,您应了解纠删编码的优点,缺点和要求。
纠删编码的优势
与复制相比,纠删编码可提高可靠性,可用性和存储效率。
-
* 可靠性 * :可靠性通过容错来衡量—即,在不丢失数据的情况下可以同时发生的故障数量。通过复制,多个相同的副本会存储在不同的节点上以及不同的站点上。通过纠删编码,对象会编码为数据和奇偶校验片段,并分布在多个节点和站点上。这种分散方式可同时提供站点和节点故障保护。与复制相比,纠删编码可提高可靠性,而存储成本相当。
-
* 可用性 * :可用性可定义为在存储节点出现故障或无法访问时检索对象的功能。与复制相比,纠删编码可以以相当的存储成本提高可用性。
-
* 存储效率 * :对于相似级别的可用性和可靠性,通过纠删编码保护的对象比通过复制保护的相同对象占用的磁盘空间更少。例如,复制到两个站点的 10 MB 对象会占用 20 MB 的磁盘空间(两个副本),而采用 6+3 纠删编码方案在三个站点之间进行纠删编码的对象只会占用 15 MB 的磁盘空间。
擦除编码对象的磁盘空间计算为对象大小加上存储开销。存储开销百分比是奇偶校验片段数除以数据片段数。
纠删编码的缺点
与复制相比,纠删编码具有以下缺点:
-
需要增加存储节点和站点的数量。例如,如果使用纠删编码方案 6+3 ,则必须在三个不同站点至少有三个存储节点。相比之下,如果只复制对象数据,则每个副本只需要一个存储节点。
-
存储扩展的成本和复杂性增加。要扩展使用复制的部署,只需在创建对象副本的每个位置添加存储容量即可。要扩展使用纠删编码的部署,您必须同时考虑使用的纠删编码方案以及现有存储节点的容量。例如,如果您等待现有节点达到 100% 全满,则必须至少添加 k+m 存储节点,但如果在现有节点达到 70% 全满时进行扩展,则可以为每个站点添加两个节点,同时仍可最大程度地提高可用存储容量。有关详细信息,请参见 为经过纠删编码的对象添加存储容量。
-
在分布在不同地理位置的站点之间使用纠删编码时,检索延迟会增加。与在本地复制并提供的对象(客户端连接的同一站点)相比,通过 WAN 连接检索经过纠删编码并分布在远程站点上的对象的对象片段所需时间更长。
-
在地理位置分散的站点之间使用纠删编码时,检索和修复的 WAN 网络流量使用率较高,尤其是频繁检索的对象或通过 WAN 网络连接进行对象修复。
-
当您在站点间使用纠删编码时,最大对象吞吐量会随着站点间网络延迟的增加而急剧下降。这一减少是由于 TCP 网络吞吐量相应减少,从而影响 StorageGRID 系统存储和检索对象片段的速度。
-
提高计算资源的利用率。
何时使用纠删编码
纠删编码最适合以下要求:
-
大于 1 MB 的对象。
纠删编码最适合大于 1 MB 的对象。请勿对小于 200 KB 的对象使用纠删编码,以避免管理极小的纠删编码片段所产生的开销。 -
长期或冷存储,用于存储不经常检索的内容。
-
高数据可用性和可靠性。
-
防止发生完整的站点和节点故障。
-
存储效率。
-
需要高效数据保护的单站点部署,只需一个纠删编码副本,而不是多个复制副本。
-
站点间延迟小于 100 毫秒的多站点部署。