开发者社区> 苍雪明南> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

“饮水机”形象比喻 教你什么是RAID

简介: 问题1:什么是RAID?它是由什么组成的?  RAID的中文名字为磁盘冗余阵列,顾名思义他是由磁盘组成阵列而成的。因此RAID需要至少两块硬盘组成。RAID的基本想法就是把多个便宜的小磁盘组合到一起,成为一个磁盘组, 使性能达到或超过一个容量巨大、价格昂贵的磁盘。
+关注继续查看

问题1:什么是RAID?它是由什么组成的?
  RAID的中文名字为磁盘冗余阵列,顾名思义他是由磁盘组成阵列而成的。因此RAID需要至少两块硬盘组成。RAID的基本想法就是把多个便宜的小磁盘组合到一起,成为一个磁盘组, 使性能达到或超过一个容量巨大、价格昂贵的磁盘。
  早期的RAID诞生初衷并不是为了数据的安全,而是为了提高硬盘的读写速度。RAID 0和RAID 1就是为了这个目的而定义的。
  问题2:什么情况需要使用RAID?
  根据不同的实际情况作为网络管理员的我们应该为服务器采取不同的RAID种类。目前最流行的是RAID 0,RAID 1,RAID 5。其中RAID1和RAID 5过多的用于保证数据的安全,最大程度的防止磁盘意外坏掉而丢失数据情况的发生。而RAID 0则是为了提高磁盘读取的速度,他不提供任何数据备份和保障功能。知道了不同RAID应用的情况我们根据实际情况进行选择即可。
  当然那些需要在硬盘上保存大量数据的人采用 RAID 技术将会很方便。主要表现在以下几个方面——
  (1)增强了速度 ,服务器可以在同一时间从多个硬盘上读取数据。
  (2)扩容了存储能力,多个硬盘组成更大的空间提供给服务器使用。
  (3)可高效恢复磁盘,RAID提供了相当高的数据冗余功能,我们可以保证数据的完整无缺。

问题3: RAID都有哪些种类呢?希望可以使用直观容易懂的语言来描述。
  对于RAID种类恐怕很多文章都介绍过,这里我就不详细说明理论东西了。恰巧笔者看到了一个外国描述RAID各个级别的图片,感觉很多地方定义得非常准确,而且通过看图了解RAID效果会更加显著。(如图1)
img_6bf213fe1a9e73632b91742d7fb6c1bb.jpg

(1)先为大家讲解第一个小图,也就是标记着standalone的饮水机,该图主要是通过矿泉水桶为饮水机提供水源这个现实例子来比喻RAID各个种类的区别。两个饮水机的出水孔相当于读取数据的接口,而矿泉水桶里的水则是宝贵的数据。这些数据正是通过出水孔这个数据接口而被用户读取的,相应的一个矿泉水对应着一块硬盘

img_21def98a0e60684074c17df00b685f8b.jpg
  正常情况下我们的计算机(例如家的里计算机而不是服务器)是只有一个硬盘的,这时我们要喝水(读取硬盘数据)都是由这一个矿泉水桶提供水源的。(如图2)

(2)接下来看第二个小图,也就是标记着cluster的图。(如图3)所谓cluster就是集群的意思,集群就是用多台服务器合并为一台,所有服务器提供的服务和数据都是一样的。就像图中显示的有两台饮水机,说明有两台服务器,这两台服务器都可以提供用户数据(水源)。 用户可以到左边的饮水机来取得数据,也可以到右边的饮水机来获得数据,这样无形中就提供了用户获得水(数据)的效率。但是这种cluster集群有一个缺点,那就是需要多台服务器的硬件支持,在一定程度上造成了浪费。一般来说中小企业是不可能让多台服务器提供同样数据和同样服务的。
img_f668a94b995a7ef19b1903de26497c1c.jpg
(3)第三个小图标记着Hot swap,(如图4)他是热交换的意思。概念上有点类似于热备份。即一台饮水机(服务器),和第一个图一样他有一个硬盘,出水量也和standalone一样。但是当饮水机上的矿泉水桶出现问题时,例如水没了或者桶破了,这时马上采取热交换技术,将旁边的矿泉水桶替代出问题的桶放到饮水机上,从而继续提供服务。但是这种方法也存在一个缺点,那就是需要一个桶做备份,而且仅仅在原来桶出问题的情况下该桶才派上用场。另外换桶过程是需要时间的,无形中影响了服务的提供。
img_95a91998436f8196fd67016663c77fd2.jpg
(4)第四个图就是RAID中的老大了,这里说他是老大因为他是最早的RAID。Level 0即RAID 0级,通常称为带区,是利用带区数据映射技巧的特定性能。也就是说,当数据写入磁盘组的时候,被分成带区,交错写入磁盘组的磁盘中。这带来了高I/O性能,低开销,但不提供任何冗余。磁盘组的存储量等于总的各磁盘容量之和。 (如图5)
img_7aa7938a83af053bf43c7d4c88b2adcc.jpg
当饮水机上的两个桶中任何一个出问题时用户都不能通过出水孔获得宝贵的数据(水源),因此他不提供冗余功能。当然在获得水源的过程中用户是通过两个矿泉水桶同时获得的,自然在出水量等多方面比只使用一个桶有优势。提高了数据读写的速度是RAID 0的最大特色。
  小提示:
  可能有的读者会问在RAID 0图中最上面的那个桶出了问题不是一样可以出水吗?其实这个图仅仅是方便大家记忆和理解RAID,不可能通过简单的图就能100%准确的反映出只有进行理论描述才能说清楚的RAID种类。因此大家在理解图片的过程中也不要太过于拘泥。  
      (5)第五个图也是RAID中比较常用的,Level 1即RAID 1级,他就是常常提到的镜像RAID,(如图6)相比其他各级别RAID来说,这个级别使用的时间较长。RAID 1通过把同样的数据写到磁盘组的每一个磁盘上,将"镜像"复制到每个磁盘上,来提供数据冗余。镜像由于它的简单实现和数据的高可信度而一直很受欢迎。
img_f7f89b14aecb7e825cfe45ea519132f8.jpg
1级在读数据操作时,并行处理2个或更多的磁盘,因此数据传输速率高, 但是其他的操作时无法提供高速的I/O传输速率。
  1级提供了非常好的数据的高可信度,并且改善了读数据操作的性能,但是耗费很大。要求组成磁盘组的各磁盘规格相同,而组成后磁盘组的容量仅仅等于一块磁盘的容量。  
      正如图中显示的一样,有两个矿泉水桶放在饮水机上,这样当其中一个出了问题,例如破坏或没水时并不会影响用户使用矿泉水,因为另一个桶将会完好的提供水源。当然由于出水口没有出现任何扩大,所以出水量和使用一个矿泉水桶是一样的。因此出水速度没有变化却多加了一个桶使得RAID 1虽然可以提供最大程度的冗余,但是无法提高读取速度。
小提示:
  有一个细节需要各位的读者特别注意,在RAID 1的图片中是两个矿泉水桶共用一个供水口,自然出水量没有什么变化。而下面的RAID 5则不同。稍后会详细讲解。
  (6)第六个图是服务器最常用的RAID级别,即RAID 5。(如图7)笔者所在公司购买的服务器不管是DELL的还是IBM或者曙光服务器都是使用这个最常用的RAID类型。该级别的RAID是通过把奇偶校验分布到磁盘组中的一些或所有磁盘上,5级常使用缓冲技术来降低性能的不对称性。如果组成磁盘组的各磁盘规格相同,磁盘组容量等于磁盘的总容量,减去一块磁盘的容量。

img_80d9a167be351cf1d02516f35f973f1c.jpg
上面提到了RAID 1只是使用了一个供水口,没有提高出水速度。然而在RAID 5中我们会发现图7中三个矿泉水桶分别安装在了三个进水口中,这样我们就可以同时由三个水桶为用户提供水源了,自然在出水速度上得到了大幅度提高。同样三个矿泉水桶有一个出现问题也没有关系,不会影响到饮用水源。
  小提示:
  有两点是图中没有表现出来的,这里再说明下方便读者有一个清晰的认识。
  (1)图7中只显示了三个水桶,实际上在现实工作中只要我们有三个以上的硬盘(水桶)就都可以配置RAID5了。四个,五个甚至更多的硬盘来配置RAID 5也是没有问题的。
  (2)在我们配置RAID 5后如果出现两个以上硬盘出现问题时,数据是不能得到有效的保护的。也就是说RAID 5只能在其中一块硬盘出问题时保证数据完好。
  (3)最后一个图实际上是前面介绍的RAID 0和RAID 1的组合,只要大家对RAID 0和RAID 1有了清晰的认识,这个图理解起来就简单得多了,他实际上就是先配置为RAID 0然后在配置RAID 1,相应的发挥了RAID 0和1的所有优点,避免了他们的所有缺点。鉴于篇幅关系这里就不详细介绍了,毕竟RAID 0+1在实际工作中使用的机会没有前面介绍的RAID 5多。
  总结:
  对于服务器不是很熟悉的读者来说,掌握RAID的概念是最最基本的。他是我们进入服务器知识领域的敲门砖,希望本篇文章中的饮水机图可以帮助大家理解各种RAID和数据冗余类别。最后再重申一下图片仅仅是为了方便大家理解和记忆,对于RAID这样理论的东西很多细节和特点是无法通过简单的图片所表现出来的,图片描述有不完整的地方还请各位多多包涵,毕竟本篇文章是写给那些RAID知识门外汉的读者的。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C#编程-118:写入文件StreamWriter类
C#编程-118:写入文件StreamWriter类
8 0
SLS数据加工完成Log到Metric的转换
简介: # 使用数据加工将Log转成Metric ## 云原生时代的可观察性 我们关注应用运行起来后的运行时数据,主要有Log、Trace和Metric 这3大类。 Log是离散的事件,Trace可以认为是带请求追踪的事件,Metric是带统计量的事件。
116 0
什么是 SAP Fiori Tools
SAP Fiori tools is an extension pack available for Visual Studio Code and SAP Business Application Studio that is designed to increase the efficiency of SAP Fiori elements app development.
44 0
C#编程-118:写入文件StreamWriter类
C#编程-118:写入文件StreamWriter类
84 0
【RAC】 RAC For W2K8R2 安装--grid的安装(四)
【RAC】 RAC For W2K8R2 安装--grid的安装(四) 一.1  BLOG文档结构图       一.
1231 0
什么是托管元数据?
什么是托管元数据? 托管元数据是一种允许管理员创建的垂直分级术语的集合,可以在文档库和列表中作为栏使用,但是只在SharePoint 2010 Server中支持。
434 0
+关注
苍雪明南
主流数据库:Oracle、MySQL、DB2 编程语言:Java、Python、shell 大数据工具:ZooKeeper、kafka
412
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载