如何实现SSD系统级的可靠性?

本文涉及的产品
数据安全中心,免费版
简介: 前传中讲到的Read disturb与Program disturb 属于架构级的可靠性,Data Retention与P/E Endurance属于物理级的可靠性,这些基本可以归纳为NAND闪存相关的可靠性。看完前传,咱们进入正传,介绍一下SSD系统级可靠性的实现手段。



也许你有个疑问:SSD中存放数据的部分不就是NAND闪存吗?直接优化NAND闪存就可以提高SSD的可靠性了啊,那为什么还要优化SSD系统级的可靠性?

如果只是针对我们个人电脑的应用,只有一个块SSD,而且对数据安全的要求也不是太苛刻,也就没有了系统级优化的概念了。

但是在企业级数据中心,不单单是一块SSD,而是一个庞大的SSD阵列,并且对数据安全性要求很严格,这个时候系统级可靠性的优化显得灰常重要。

目前SSD系统级可靠性的优化主要有两个手段:RAID系统 和 高速缓存(Caching)。

其中,RAID=Redundant Arrays of independent Disks,中文含义为“独立磁盘冗余数组”,简称“磁盘数组”。

1. RAID系统
RAID技术在基于HDD机械硬盘发展起来的,RAID技术主要实现把数据分散存储在不同的硬盘,增加磁盘数组对失效信息的容忍度。把RAID技术移植到SSD阵列中同样适用。

虽然SSD内部的Wear-leveling和ECC技术已经可以解决大部分的失效信息,但是只能局限于属于NAND相关的失效信息。如果是系统造成的失效信息呢?这就需要RAID这个大神出场了。

根据对数据安全性能不同要求,RAID也可以分为不同的级别:

(1) RAID0级别
RAID 0 是速度最快的一种 RAID 模式。它需要至少两个驱动器,并且会将数据分条到每个磁盘。所有磁盘的可用容量合在一起,成为计算机上的一个逻辑卷。


一旦阵列中有一个物理磁盘发生故障,所有磁盘的数据都将不可访问,因为有部分数据已被写入所有磁盘。

RAID 0 是要求最高速度和最大容量的用户的理想选择。要处理超大型文件的视频编缉人员可以使用 RAID 0 来编辑视频的多个流,以达到最佳播放效果。RAID 0 阵列更适于在频繁的文件处理(例如视频编辑)中使用,不宜用作唯一的存储备份解决方案,也不宜在关键任务系统中使用。

(2) RAID1级别
RAID 1 是一种安全的 RAID 模式,它至少需要两个驱动器,并且驱动器成对工作。计算机上将安装一个逻辑卷,两个驱动器合并后的可用容量限制为不超过最小磁盘的容量。如果其中一个物理磁盘出现故障,可以立即从第二个磁盘上获取数据。即使一个磁盘出现故障,也不会丢失任何数据。

在一个磁盘出现故障时,RAID 1 可提供最高的数据安全性,但由于数据需写入两次,因此在写入时性能会略有下降。在更注重安全性而非速度的情况下,RAID 1 是理想选择。


(3) RAID2级别
与RAID3相似,都是将数据条块化分布于不同硬盘上,条块单位为位或字节。使用一定的编码技术提供错误检索及恢复。由于海明码的特点,它可以在数据发生错误的情况下将错误校正,以保证输出的正确。数据传送速率相当高。


天下没有免费的午餐,要利用海明码,必须要付出数据冗余的代价。输出数据的速率与驱动器组中速度最慢的相等。


RAID2还有个致命的缺点就是需要多个磁盘存放检查及恢复信息,使得RAID2技术实施更复杂。因此在商业环境中很少使用。


(4) RAID3级别
RAID 3 使用字节级别的条带化技术,并采用专用的奇偶校验磁盘(下图中的磁盘 4),因此计算机上会安装一个卷。RAID 3 阵列能在一个磁盘出现故障的情况下确保数据不丢失。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。如果数据尚未重建到更换驱动器上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。

RAID 3 在要读取连续的长文件(如视频文件)的环境中可提供良好的数据安全性。由于数据是从奇偶校验块中读取,因此磁盘故障不会导致服务中断。


RAID 3 适用于那些追求性能并要求持续访问数据的用户(如视频编辑人员)。对于密集使用不连续文件的用户来说,RAID 3 并非理想之选,因为专用的奇偶校验磁盘会影响随机读取性能。


(5) RAID4级别
RAID4与RAID3类似,不同的是,它对数据的访问是按数据块进行的,也就是按磁盘进行的,每次是一个盘。


缺点就是在失败恢复时,它的难度比RAID3大得多,控制器的设计难度也要大许多,而且访问数据的效率不怎么好。


(6) RAID5级别
RAID 5 综合了 RAID 0 的条带化技术以及阵列数据冗余技术(阵列最少包括三个磁盘)。

RAID 3 和 RAID 5 之间的区别在于,RAID 3 配置提供的性能更高,但总容量略低。数据会在所有磁盘之间分条,并且每个数据块的奇偶校验块 (P) 写入到同一条带上。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。单个磁盘出现故障时,数据不会丢失,但如果数据尚未重建到更换驱动器上,而此时又有一个磁盘出现故障,那么阵列中的所有数据都将丢失。


RAID 5 综合考虑了数据安全和磁盘空间充分利用这两方面的因素。由于数据是从奇偶校验块中读取,因此磁盘故障不会导致服务中断。RAID 5 适用于归档,且适合那些追求性能并要求持续访问数据的用户(如视频编辑人员)使用。


(7) RAID6级别
在 RAID 6 中,数据会在所有磁盘(最少四个)间进行分条,并且每个数据块的两个奇偶校验块(如下图中的 p 和 q)写入到同一条带上。如果一个物理磁盘出现故障,该磁盘上的数据可以重建到更换磁盘上。这种 RAID 模式最多允许两个磁盘出故障而不丢失数据,而且它能更快地重建故障磁盘上的数据。

在驱动器出现故障时,RAID 6 能进行有效的重建,确保了数据的可靠性。为此,安全性要求较高,而性能要求不高的用户可以选择 RAID 6。

2. 高速缓存(Caching)
这个部分的高速缓存与SSD中的DRAM作用是一样的,在Host发送一小笔数据时,不会马上写到NAND闪存,尽量减少对NAND的操作,增加NAND的寿命。

相关文章
|
缓存 NoSQL 关系型数据库
如何设计一个高并发系统?
如何设计一个高并发系统?
140 0
|
存储 监控 算法
|
4月前
|
存储 消息中间件 缓存
|
5月前
|
存储 监控 Linux
充分利用服务器的磁盘资源,提高系统的稳定性和可维护性
充分利用服务器的磁盘资源,提高系统的稳定性和可维护性
70 0
|
7月前
|
运维 负载均衡 监控
确保网络设计中的冗余和高可用性
【8月更文挑战第24天】
606 0
|
8月前
|
存储 缓存 监控
如何设计一个高可靠性的分布式缓存系统?
如何设计一个高可靠性的分布式缓存系统?
|
弹性计算 负载均衡 前端开发
如何设计一个百万级TPS分布式系统架构?
如何设计一个百万级TPS分布式系统架构?
278 2
|
SQL 存储 缓存
高并发读写优化方案
系统优化方案与高并发读写优化方案,及其优缺点。
644 0
|
存储 SQL 监控
【可靠性架构】可靠性架构第3部分:高可用性体系结构
在本节中,我们将回顾一个示例应用程序,并阐述部署架构如何因不同的可用性目标而变化。示例应用程序是一个典型的web应用程序,它具有反向代理、S3中的静态内容、应用程序服务器和SQL数据库。无论我们在容器还是虚拟机中部署它们,可用性设计都保持不变。
|
存储 固态存储 大数据
你知道企业级SSD与消费级SSD的区别吗?
【引语】 前两天,一位从事大数据工作的好朋友问我: “企业级SSD与消费级SSD的区别是什么?” “大数据中心能否采用消费级SSD?” 我想,大部分朋友应该都知道SSD分为企业级和消费级,但是这两者之间的区别,也许并不十分清楚。