这样清新脱俗讲解RAID技术的方式你见过咩?

企业动态
作为一款软件定义的存储产品,SC系列的功能是非常多的,并且依然在不断丰富中,满足您各种工作负载的需求,助您安全无忧的管理核心数据!

最近发现某国外网友制作的一张

RAID讲解图

不得不佩服这位网友的奇思妙想

几个饮水机和桶

就把复杂问题生动形象地化解了

▼▼▼

1.jpg

>>>>

1. Standalone:

第一张图很好理解,我们日常使用的PC就采用这样的数据读取方式。数据存放在一块硬盘里,且只有一块硬盘,那么自然我们的数据只能从该硬盘中读取。

>>>>

2. Hot swap:

第二张图也不难理解,看地上那个水桶。所谓Hot swap概念上来说类似于热备份。它的数据读取方式类似于Standalone,唯一不同的是,有一块备用的硬盘在时刻准备着。一旦正在使用的硬盘出现了问题,那么备用硬盘就要及时更换上,以免造成损失。但这样的方式也存在着一些弊端,比如硬盘更换需要时间,这对很多企业来说是致命的。

>>>>

3. Cluster:

第三个图是什么意思呢?Cluster是集群的意思。你可以看作两台独立的PC, 用户可以到左边的饮水机来取得数据,也可以到右边的饮水机来获得数据,但是这样比较浪费硬件资源,在企业级里不可能让多台服务器提供同样数据和同样服务的。

>>>>

4. RAID 0:

通常称为带区,是利用带区数据映射技巧的特定性能。它的优势就是数据的读写速度较快,但是没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。

>>>>

5. RAID 1:

是一种称为“磁盘镜像”的容错配置。数据在被写到其中一块硬盘的同时,也被复制到另一块硬盘中。这样的方式可以防止硬盘损坏带来的数据丢失,但是即使是2块硬盘,其存储的空间也相当于只有一块硬盘的大小。而且I/O传输速率却无法得到改善,也就是饮水机的出水口并没有变大或者变多。

>>>>

6. RAID 5:

分布式奇偶校验的独立磁盘结构,常使用缓冲技术来降低性能的不对称性。采取RAID 5的方式,I/O传输速率会得到大大的提高,而且一块硬盘坏了也没有关系,还有备用的其他硬盘。RAID 5的另一个好处是它允许“热插拔”,这意味着如果阵列中的某磁盘出现故障,该磁盘可以与新磁盘交换而无需关闭服务器或NAS,也不必中断正在访问服务器或NAS的用户。

>>>>

7. RAID 0+1:

这就是我们常说的RAID 10,也就是是RAID 1和0的组合。它结合了RAID 1的镜像和RAID 0的带区。可提供优性能,但也很昂贵,需要两倍于其他RAID级别的磁盘。

1

鱼还是熊掌?

传统用户的容量与性能烦恼

看完上面的图和讲解,有关RAID的概念是不是就一目了然了?其实除了上面这些,RAID还有其他一些形态,比如RAID 2、RAID 4、RAID 7等,不过经过这么多年的发展,RAID的形态已经基本固定了,主流的形式有这么几种:RAID 10、RAID 5、RAID 6(与RAID 5类似)

从性能的角度,由于写惩罚的影响,RAID 10 的写性能通常优于RAID 5和RAID 6,因此对于性能关键型应用,客户希望底层采用RAID 10的方式。然而从磁盘利用率的维度,RAID 10的可用容量只有50%,却也是不合算的(见下图)。

2.png

因此面对这种鱼和熊掌的难题,通常客户会采用以下办法:

➤ 假设客户一共购买了11块大小相同的硬盘(如600G 15K,标称随机 IOPS 180),为了获得更好的写入性能,取6块硬盘构建RAID10的组合,写入IOPS 540,挂载给数据库应用,容量利用率50%,也就是1.8TB(此处忽略1024和1000的磁盘容量计数差别)。剩下的5块硬盘构建RAID5的组,以获取更多的容量,写入IOPS 225,容量2.4TB,挂载给备份应用。

3.png

这种方式实现了性能与容量的平衡,但也有一些缺陷,由于切分了很多磁盘组,磁盘组之间的IO资源是无法共享的。因此作为应对方案出现了资源池化的技术。

4.png

池化RAID的优点显而易见。回到前面的例子,数据库可能在白天比较忙,备份通常在晚上工作,两者有一个时间差,但任何一个应用都可以使用11块硬盘的IOPS。即使采用空间利用率高的RAID5,也有495的随机IOPS,基本保证数据库应用。也有些用户希望追求极限IOPS,因为这个时候的延迟会较小,他们就采用RAID 10的策略,随机IOPS可以达到990,数据库应用跑的很爽,晚上跑备份也很快,只是容量会牺牲一些。

现在大家可以看到,磁盘块级虚拟化解决了数据孤岛的问题,均衡了所有的前端IO到磁盘。是不是看起来很完美?其实这种方式依然不能在性能和容量之间求得一个很好的平衡(无论RAID 5还是RAID 10还是会牺牲一些容量或性能)

//

而这个问题最终被戴尔易安信SC系列独创的RAID分层技术给有效解决了,鱼和熊掌可以得兼

//

5.jpg

2

RAID分层

让性能与容量齐飞

简而言之,RAID分层技术就是把来自主机的数据以RAID 10的方式写入磁盘,然后利用内部机制,在线完成数据到RAID 5的转换,实现实际占用空间的节约。

6.png

要知道,RAID 10和RAID 5在随机写方面性能差异明显,但读性能是基本相当的,采用这种技术,读写性能都能达到较优状态。另一方面,由于把磁盘空间从RAID 10转换为RAID 5,整体空间利用率有所提升,真正实现了容量和性能的平衡。

此时聪明的读者立马想到了一个问题,这样做好是好,但毕竟需要一个数据迁移的过程,会不会影响前端应用的性能呢?

答案是不会的,因为系统通常在比较空闲的时候去做这件事情,例如晚上。就算系统24小时都繁忙,这个任务的优先级也是比较低的,以不影响前端主机IO为前提,并且在极端情况下,客户还可以选择不采用这种策略,例如将某些卷设成读写均为RAID 10,并非都是强制的。

7.png

而且在RAID 10转化为RAID 5的过程中,系统还把另外两个重要功能实现了,数据保护与数据缩减。这是SC系列真正巧妙的地方,所谓一箭三雕。

3

一箭三雕

迁移的过程就把大事小事都办了

数据是企业重要的核心资产,却总是面临各种各样的风险,例如某些心态不好的员工恶意删除关键数据库资料,或者无意间在一个错误的路径下输入了一条rm -rf,都会对数据产生破坏,进而影响系统的正常运行,我们会在新闻里面看到类似的事件,还有类似勒索病毒让你的文件无法打开。

通常这个时候,我们都迫切希望有一个时光隧道,能够快速回到故障前的状态,重新找回原来的一切。SC存储天生就具有这种功能,称之为数据回放,默认的情况下至少保留7天,一旦发生故障,穿越到最近的时间点,就能找回你的数据。如果你的数据非常重要,还可以把回放的间隔设置的很短,并且结合指针调整的技术,做到细微的性能影响。

在进行数据分层,保存回放的同时,如果客户需要,SC存储还能做一件事情,数据去重与压缩。压缩和去重的好处大家都明白,但性能的疑虑又产生了,毕竟需要切片,计算特征值,比对等等一系列的事情。这点SC存储比较务实,去重压缩的目的是为了缩减空间,找一个空闲的时间慢慢做。数据先写入RAID 10,然后在转换成RAID 5的时候把这个事情一起做了

8.png

讲到这里大家都明白了,数据迁移是有开销,但如果在迁移的时候把数据保护,数据缩减这些功能一起实现了,那这点开销就会显得非常有价值。而且从SC存储十多年的客户沉淀看,并没有因此而导致任何的副作用。

回到刚开始我们的讨论,由于采用了独特的RAID技术,SC系列的旗舰产品SC9000能够在延迟小于1ms的情况下实现200万的IOPS;而且采用了RAID分层,压缩去重等数据缩减技术,又大大了节约了磁盘空间,降低了总体拥有成本。数据回放(快照)在性能影响小的情况下保留了用户的多个数据副本,保护了用户数据的逻辑故障。而且为了提升可用性,SC系列能够实现原生的存储双活,用存储节点冗余的方式避免了设备的单点故障。

9.jpg

此外,传统存储的扩容和升级换代也是一个让用户头疼的问题,很多情况下用户需要申请停机窗口,把老存储的数据迁移到新的存储上,再重新启动业务。而SC系列拥有的在线迁移的功能,能够在新老存储节点间在线迁移数据,而不影响前端的业务运行。在可管理性方面,SC系列存储有基于HTML5的Web管理方式,DSM软件专有管理方式,CloudIQ云管理方式,除了日常的维护之外,还能够提供咨询建议,实现人工智能的运维。

SC存储助您数据安全无忧

在我走访的SC客户时,经常会听到客户有这样的感慨:原来还有这样的功能啊,早知道上一次我们就不需要从备份里面恢复数据了

是的,作为一款软件定义的存储产品,SC系列的功能是非常多的,并且依然在不断丰富中,满足您各种工作负载的需求,助您安全无忧的管理核心数据!

▲点戴尔易安信SC系列

相关阅读推荐:三年多啦,那么多IT人还没有搞定这个问题

 

 

责任编辑:张燕妮 来源: 戴尔易安信解决方案
相关推荐

2023-01-04 11:35:21

预测模型预售

2021-03-12 11:50:08

项目组件 API

2022-07-08 16:10:55

线程安全对象

2018-06-22 08:13:21

2018-01-26 08:26:35

RAID阵列组成

2019-11-05 09:35:26

HDFSHadoopRAID

2017-12-20 11:55:38

RAID2.0传统方式

2018-06-28 08:40:23

Raid机械硬盘

2018-02-01 21:34:38

戴尔

2022-06-01 11:14:42

Java代码技巧

2020-10-23 06:58:48

HTTP状态码服务器

2019-01-22 15:04:04

vSAN硬件配置

2017-12-13 12:58:12

Raid工作原理

2011-05-12 11:01:26

HTML

2010-04-08 14:16:21

Linux

2011-04-13 10:48:33

算法程序员

2020-08-11 10:40:31

装饰者模式Java组件

2012-07-03 11:13:07

2022-05-09 08:37:43

IO模型Java

2018-04-17 13:15:26

Python模块
点赞
收藏

51CTO技术栈公众号