廖老师--中国IT实验室-技术工程师 服务器技术交流QQ群:42667154 (加入要求有服务器维护经验者)        本人有多年Windows/Linux服务器维护管理经验,如有兼职或服务器解决方案需求可与我联系!

有空多吹水.一吹几桶水就懂RAID技术

上一篇 / 下一篇  2007-08-13 16:48:22 / 个人分类:技术经验

查看( 4724 ) / 评论( 144 )
这么教你一定能懂!用饮水机教你什么是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)

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



TAG: 磁盘 技术 RAID

廖老师 技术工程师 QQ:5145454 口觜亻尔 发布于2007-08-13 16:48:41
正常情况下我们的计算机(例如家的里计算机而不是服务器)是只有一个硬盘的,这时我们要喝水(读取硬盘数据)都是由这一个矿泉水桶提供水源的。(如图2)

  (2)接下来看第二个小图,也就是标记着cluster的图。(如图3)所谓cluster就是集群的意思,集群就是用多台服务器合并为一台,所有服务器提供的服务和数据都是一样的。就像图中显示的有两台饮水机,说明有两台服务器,这两台服务器都可以提供用户数据(水源)。
      用户可以到左边的饮水机来取得数据,也可以到右边的饮水机来获得数据,这样无形中就提供了用户获得水(数据)的效率。但是这种cluster集群有一个缺点,那就是需要多台服务器的硬件支持,在一定程度上造成了浪费。一般来说中小企业是不可能让多台服务器提供同样数据和同样服务的。

  (3)第三个小图标记着Hot swap,(如图4)他是热交换的意思。概念上有点类似于热备份。即一台饮水机(服务器),和第一个图一样他有一个硬盘,出水量也和standalone一样。但是当饮水机上的矿泉水桶出现问题时,例如水没了或者桶破了,这时马上采取热交换技术,将旁边的矿泉水桶替代出问题的桶放到饮水机上,从而继续提供服务。但是这种方法也存在一个缺点,那就是需要一个桶做备份,而且仅仅在原来桶出问题的情况下该桶才派上用场。另外换桶过程是需要时间的,无形中影响了服务的提供。

  (4)第四个图就是RAID中的老大了,这里说他是老大因为他是最早的RAID。Level 0即RAID 0级,通常称为带区,是利用带区数据映射技巧的特定性能。也就是说,当数据写入磁盘组的时候,被分成带区,交错写入磁盘组的磁盘中。这带来了高I/O性能,低开销,但不提供任何冗余。磁盘组的存储量等于总的各磁盘容量之和。 (如图5)

  当饮水机上的两个桶中任何一个出问题时用户都不能通过出水孔获得宝贵的数据(水源),因此他不提供冗余功能。当然在获得水源的过程中用户是通过两个矿泉水桶同时获得的,自然在出水量等多方面比只使用一个桶有优势。提高了数据读写的速度是RAID 0的最大特色。


[ 本帖最后由 口觜亻尔 于 2007-8-13 16:49 编辑 ]
廖老师 技术工程师 QQ:5145454 口觜亻尔 发布于2007-08-13 16:50:35
小提示:
  可能有的读者会问在RAID 0图中最上面的那个桶出了问题不是一样可以出水吗?其实这个图仅仅是方便大家记忆和理解RAID,不可能通过简单的图就能100%准确的反映出只有进行理论描述才能说清楚的RAID种类。因此大家在理解图片的过程中也不要太过于拘泥。
  (5)第五个图也是RAID中比较常用的,Level 1即RAID 1级,他就是常常提到的镜像RAID,(如图6)相比其他各级别RAID来说,这个级别使用的时间较长。RAID 1通过把同样的数据写到磁盘组的每一个磁盘上,将"镜像"复制到每个磁盘上,来提供数据冗余。镜像由于它的简单实现和数据的高可信度而一直很受欢迎。

     1级在读数据操作时,并行处理2个或更多的磁盘,因此数据传输速率高, 但是其他的操作时无法提供高速的I/O传输速率。1级提供了非常好的数据的高可信度,并且改善了读数据操作的性能,但是耗费很大。要求组成磁盘组的各磁盘规格相同,而组成后磁盘组的容量仅仅等于一块磁盘的容量。
  正如图中显示的一样,有两个矿泉水桶放在饮水机上,这样当其中一个出了问题,例如破坏或没水时并不会影响用户使用矿泉水,因为另一个桶将会完好的提供水源。当然由于出水口没有出现任何扩大,所以出水量和使用一个矿泉水桶是一样的。因此出水速度没有变化却多加了一个桶使得RAID 1虽然可以提供最大程度的冗余,但是无法提高读取速度。
  
小提示:
  有一个细节需要各位的读者特别注意,在RAID 1的图片中是两个矿泉水桶共用一个供水口,自然出水量没有什么变化。而下面的RAID 5则不同。稍后会详细讲解。
  (6)第六个图是服务器最常用的RAID级别,即RAID 5。(如图7)笔者所在公司购买的服务器不管是DELL的还是IBM或者曙光服务器都是使用这个最常用的RAID类型。该级别的RAID是通过把奇偶校验分布到磁盘组中的一些或所有磁盘上,5级常使用缓冲技术来降低性能的不对称性。如果组成磁盘组的各磁盘规格相同,磁盘组容量等于磁盘的总容量,减去一块磁盘的容量。

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

======================

继续看楼下.有Raid模拟器提供下载!



[ 本帖最后由 口觜亻尔 于 2007-8-13 17:02 编辑 ]
廖老师 技术工程师 QQ:5145454 口觜亻尔 发布于2007-08-13 16:54:56
有兄弟出来吹吹水不?...嘻嘻....
rainlangzi rainlangzi 发布于2007-08-13 16:57:03
哈哈,这个不错
廖老师 技术工程师 QQ:5145454 口觜亻尔 发布于2007-08-13 17:03:43
RAID的模拟器

其实在论坛中,提到有关磁盘阵列配置的网友远不止上面这一位,针对这种情况,笔者就以一款服务器的磁盘阵列配置实例向大家介绍磁盘阵列的具体配置方法。当然,不同的阵列控制器的具体配置方法可能不完全一样,但基本步骤绝大部分是相同的,完全可以参考。

说到磁盘阵列(RAID,Redundant Array of Independent Disks)
,现在几乎成了网管员所必须掌握的一门技术之一,特别是中小型企业,因为磁盘阵列应用非常广泛,它是当前数据备份的主要方案之一。然而,许多网管员只是在各种媒体上看到相关的理论知识介绍,却并没有看到一些实际的磁盘阵列配置方法,所以仍只是一知半解,到自己真正配置时,却无从下手。本文要以一个具体的磁盘阵列配置方法为例向大家介绍磁盘阵列的一些基本配置方法,给出一些关键界面,使各位对磁盘阵列的配置有一个理性认识。当然为了使各位对磁盘阵列有一个较全面的介绍,还是先来简要回顾一下有关磁盘阵列的理论知识,这样可以为实际的配置找到理论依据。
一、磁盘阵列实现方式

磁盘阵列有两种方式可以实现,那就是“软件阵列”与“硬件阵列”。
软件阵列是指通过网络操作系统自身提供的磁盘管理功能将连接的普通SCSI卡上的多块硬盘配置成逻辑盘,组成阵列。如微软的Windows NT/2000 Server/Server 2003和NetVoll的NetWare两种操作系统都可以提供软件阵列功能,其中Windows NT/2000 Server/Server 2003可以提供RAID 0、RAID 1、RAID 5;NetWare操作系统可以实现RAID 1功能。软件阵列可以提供数据冗余功能,但是磁盘子系统的性能会有所降低,有的降代还比较大,达30%左右。
硬件阵列是使用专门的磁盘阵列卡来实现的,这就是本文要介绍的对象。现在的非入门级服务器几乎都提供磁盘阵列卡,不管是集成在主板上或非集成的都能轻松实现阵列功能。硬件阵列能够提供在线扩容、动态修改阵列级别、自动数据恢复、驱动器漫游、超高速缓冲等功能。它能提供性能、数据保护、可靠性、可用性和可管理性的解决方案。磁盘阵列卡拥有一个专门的处理器,如Intel的I960芯片,HPT370A/372 、Silicon Image SIL3112A等,还拥有专门的存贮器,用于高速缓冲数据。这样一来,服务器对磁盘的操作就直接通过磁盘阵列卡来进行处理,因此不需要大量的CPU及系统内存资源,不会降低磁盘子系统的性能。阵列卡专用的处理单元来进行操作,它的性能要远远高于常规非阵列硬盘,并且更安全更稳定。
二、几种磁盘阵列技术
RAID技术是一种工业标准,各厂商对RAID级别的定义也不尽相同。目前对RAID级别的定义可以获得业界广泛认同的有4种,RAID 0、RAID 1、RAID 0+1和RAID 5。
RAID 0是无数据冗余的存储空间条带化,具有成本低、读写性能极高、存储空间利用率高等特点,适用于音、视频信号存储、临时文件的转储等对速度要求极其严格的特殊应用。但由于没有数据冗余,其安全性大大降低,构成阵列的任何一块硬盘的损坏都将带来灾难性的数据损失。这种方式其实没有冗余功能,没有安全保护,只是提高了磁盘读写性能和整个服务器的磁盘容量。一般只适用磁盘数较少、磁盘容易比较紧缺的应用环境中,如果在RAID 0中配置4块以上的硬盘,对于一般应用来说是不明智的。
RAID 1是两块硬盘数据完全镜像,安全性好,技术简单,管理方便,读写性能均好。因为它是一一对应的,所以它无法单块硬盘扩展,要扩展,必须同时对镜像的双方进行同容量的扩展。因为这种冗余方式为了安全起见,实际上只利用了一半的磁盘容量,数据空间浪费大。
RAID 0+1综合了RAID 0和RAID 1的特点,独立磁盘配置成RAID 0,两套完整的RAID 0互相镜像。它的读写性能出色,安全性高,但构建阵列的成本投入大,数据空间利用率低。
RAID 5是目前应用最广泛的RAID技术。各块独立硬盘进行条带化分割,相同的条带区进行奇偶校验(异或运算),校验数据平均分布在每块硬盘上。以n块硬盘构建的RAID 5阵列可以有n-1块硬盘的容量,存储空间利用率非常高。任何一块硬盘上的数据丢失,均可以通过校验数据推算出来。它和RAID 3最大的区别在于校验数据是否平均分布到各块硬盘上。RAID 5具有数据安全、读写速度快,空间利用率高等优点,应用非常广泛,但不足之处是如果1块硬盘出现故障以后,整个系统的性能将大大降低。
RAID 1、RAID 0+1、RAID 5阵列配合热插拔(也称热可替换)技术,可以实现数据的在线恢复,即当RAID阵列中的任何一块硬盘损坏时,不需要用户关机或停止应用服务,就可以更换故障硬盘,修复系统,恢复数据,对实现高可用系统具有重要的意义。
三、磁盘阵列配置实例

当硬盘连接到阵列卡(RAID)上时,操作系统将不能直接看到物理的硬盘,因此需要创建成一个一个的被设置为RAID0、1或者5等的逻辑磁盘(也叫容器),这样系统才能够正确识别它。当然,逻辑磁盘(Logic Drive)、容器(Container)或虚拟磁盘(Virtual Drive)均表示一个意思,只是不同阵列卡产商的不同叫法。可参见以下配置的服务器有Dell Power Edge 7x0系列和Dell PowerEdge 1650服务器。
磁盘阵列的配置通常是利用磁盘阵列卡的BIOS工具进行的,也有使用第三方提供的配置工具软件去实现对阵列卡的管理,如Dell Array Manager。本文要介绍的是在DELL服务器中如何利用阵列卡的BIOS工具进行磁盘阵列配置的方法。
如果在您的DELL服务器中采用的是Adaptec磁盘阵列控制器(PERC2、PERC2/SI、PERC3/SI和PERC3/DI),在系统开机自检时将看到以下信息:
Dell PowerEdge Expandable RAID Controller 3/Di, BIOS V2.7-x [Build xxxx](c) 1998-2002 Adaptec, Inc. All Rights Reserved.   <<< Press CTRL+A for Configuration Utility! >>>
如果您的DELL服务器配置的是一块AMI/LSI磁盘阵列控制器(PERC2/SC、PERC2/DC、PERC3/SC、PERC3/DC、PERC4/DI和PERC4/DC),则在系统开机自检的时候将看到以下信息:
Dell PowerEdge Expandable RAID Controller BIOS X.XX Jun 26.2001 Copyright (C) AMERICAN MEGATRENDS INC.
  Press CTRL+M to Run Configuration Utility or Press  CTRL+H for WebBios或者
  PowerEdge Expandable RAID Controller BIOS X.XX Feb 03,2003 Copyright (C) LSI Logic Corp.
  Press CTRL+M to Run Configuration Utility or Press CTRL+H for WebBios

下面对以上两种情况分别予以介绍。
1. 在Adaptec磁盘阵列控制器上创建Raid(容器)

在这种阵列卡上创建容器的步骤如下(注意:请预先备份您服务器上的数据,配置磁盘阵列的过程将会删除服务器硬盘上的所有数据!):
第1步,首先当系统在自检的过程中出现如(图1)提示时,同时按下“Ctrl+A”组合键。进入如(图2)所示的磁盘阵列卡的配置程序界面。

图1



[url=http://publish.it168.com/bangong/showBigPic.asp?cDocid=20040614000701&PICID=186468.JPG]
图2

[/url]

[url=http://publish.it168.com/bangong/showBigPic.asp?cDocid=20040614000701&PICID=186468.JPG]
图2

[/url]
第2步,然后选择“Container configuration utility”,进入如(图3)所示配置界面。

图3


第3步,选择“Initialize Drivers“选项去对新的或是需要重新创建容器的硬盘进行初始化(注意: 初始话硬盘将删去当前硬盘上的所有数据),按回车后进入如(图4)所示界面。在这个界面中出现了RAID卡的通道和连接到该通道上的硬盘,使用“Insert”键选中需要被初始化的硬盘(具体的使用方法参见界面底部的提示,下同)。

图4


第4步,全部选择完成所需加入阵列的磁盘后,按加车键,系统键弹出如(图5)所示警告提示框。提示框中提示进行初始化操作将全部删除所选硬盘中的数据,并中断所有正在使用这些硬盘的用户。

图5


第5步,按“Y”键确认即可,进入如(图6)所示配置主菜单(Main Menu)界面。硬盘初始化后就可以根据您的需要,创建相应阵列级别(RAID1,RAID0等)的容器了。这里我们以RAID5为例进行说明。在主菜单界面中选择“Create container”选项。

图6


第6步,按回车键后进入如(图7)所示配置界面,用“insert”键选中需要用于创建Container(容器)的硬盘到右边的列表中去。然后按回车键。在弹出来的如(图8)所示配置界面中用回车选择RAID级别,输入Container的卷标和大小。其它均保持默认不变。然后在“Done”按钮上单击确认即可。

图7



[url=http://publish.it168.com/bangong/showBigPic.asp?cDocid=20040614000701&PICID=186576.JPG]
图8

[/url]

[url=http://publish.it168.com/bangong/showBigPic.asp?cDocid=20040614000701&PICID=186576.JPG]
图8

[/url]
第7步,这是系统会出现如(图9)所示提示,提示告诉用户当所创建的容器没有被成功完成“Scrub(清除)”之前,这个容器是没有冗余功能的。

图9


第8步,单击回车后返回到如(图6)所示主菜单配置界面,选中“Manage containers”选项,单击回车后即弹出当前的容器配置状态,如(图10)所示。选中相应的容器,检查这个容器的“Container Status”选项中的“Scrub”进程百分比。当它变为“Ok”后,这个新创建的Container便具有了冗余功能。

图10


第9步,容不得器创建好后,使用“ESC”键退出磁盘阵列配置界面,并重新启动计算机即可。

图10

图9

图7

图6

图5

图4

图3

图1


RAID的模拟器.rar
(2007-08-13 17:03:43, Size: 76.6 KB, Downloads: 171)

ITISIT ITISIT 发布于2007-08-13 23:45:39
就算你不用饮水机,也一样容易理解,楼主真是辛苦了!!
廖老师 技术工程师 QQ:5145454 口觜亻尔 发布于2007-08-14 09:27:41
楼上的..你看.就算我们会喝水会吹水.别人也不愿意出来分水!
Lonely_Dog sunbobadboy 发布于2007-08-14 09:33:36
我只发现你的饮水机造型那是相当滴
廖老师 技术工程师 QQ:5145454 口觜亻尔 发布于2007-09-10 16:41:42

QUOTE:

原帖由 sunbobadboy 于 2007-8-14 09:33 发表
我只发现你的饮水机造型那是相当滴
是不是帅到掉扎!
zwq92 zwq92 发布于2007-09-11 11:37:17
搂主辛苦啦 太好了
我来说两句

(可选)

Open Toolbar