本文介绍数据冗余的概念和 RS码技术。介绍如何利用RS码实现对象存储系统的数据余策略,并详细述即时修复的实现方式
数据冗余的概念
去重是帮助我们避免同一个对象在系统中到处都被保存一份副本,而冗余是在完全受我们控制的情况下增加这个对象数据的稳定性。
数据丢失和数据不可用
数据丢失是指信息在存储、传输或处理的过程中由于错误或遗漏而发生损失。
- 数据在传输过程中的丢失通常是由于网络不稳定导致的,对数据进行校验可以有效检测出传输过程中发生的数据丢失,然后服务端就可以拒绝接收有损的数据。
- 数据处理过程中的丢失则可能是由于软件或人为的错误而造成的。对于软件错误我们需要对其进行修复并重新部署。对于人为错误,我们需要制定严格的操作规范。
- 存储硬件损坏是数据在存储过程中丢失的最常见的原因,可能发生的硬件损坏从某个硬盘出现坏道到整个数据中心受灾等不一而足,使用数据备份以及灾难恢复可以在一定程度上弥补损失,但是这通常都会造成几小时到几天不等的停机时间,而且系统最后一次备份点之后加入的数据也依然是无法恢复的。
- 服务器的维护可能导致数据暂时的不可用,比如预先安排的服务器重启等。在服务器重启过程中如果恰好有用户需要对其上的对象进行访问,那么同样会表现成数据丢失。
- 数据降解。数据降解是由数据存储设备的非关键故障累积导致的数据逐渐损坏。即使在没有发生任何软件错误或硬件损坏的情况下,存储介质上的数据依然有可能随时间的推移而丢失。
为了保护用户的数据,在计算机存储领域,依靠数据冗余来对抗数据丢失。 数据冗余不仅可以在一定程度上克服数据丢失,而且在发生数据丢失的时候还可以帮助我们对其进行修复。
数据冗余
在计算机领域,数据冗余是指在存