开源系统应用RAID保护企业数据安全(下)

日期: 2012-04-10 作者:羽扇纶巾 来源:TechTarget中国

二、根据具体情况使用磁盘阵列

表1对各类RAID产品的优缺点进行了详细说明,用户可以在实际的应用中选择使用:

表1 各类RAID产品比较

RAID级别

可靠性

性能

使用成本

RAID0

差,任何成员磁盘失效将导致数据丢失

读写性能优于单个磁盘

低,没有其他额外开销

RAID1

镜像冗余,可靠性高。在某些情况下具有多磁盘容错能力

好,无需作校验计算

成本高,需要50%左右的额外开销

RAID2

可靠性很高。在某些情况下具有多磁盘容错能力

使用位操作,性能较差

成本很高,没有商业产品

RAID3

可靠性较高,有单磁盘容错能力

并行访问,读写性能优于单个磁盘

额外开销小,只需要一个校验盘

RAID4

 

可靠性较高,有单磁盘容错能力

读操作优于单个磁盘,写操作及扩展性受校验盘瓶颈限制,

额外开销小,也只需要一个校验盘

RAID5

可靠性较高,有单磁盘容错能力

读操作优于单个磁盘,写操作优于RAID4

额外开销小,也只需要一个校验盘

RAID6

可靠性很高,有多磁盘容错能力

多重校验和控制其算法复杂影响系统性能

额外开销高,需多个校验盘,实现成本高

RAID7

可靠性很高,有多磁盘容错能力

好,实现复杂

额外开销高,实现成本大

RAID10

镜像冗余,可靠性高。在某些情况下具有多磁盘容错能力

性能高

额外开销高,实现成本大

RAID53

可靠性较高,有单磁盘容错能力

性能高

额外开销大,价格昂贵

值得注意的是:上述介绍的0,1,2等RAID类型并不代表技术的高低(比如RAID2并没有商业产品,相对于RAID1说较差),而只代表不同的技术型号。所以在实际应用中选择某种RAID产品需要根据应用环境和资金等情况而定。

实现RAID可以采用两种方法,硬RAID和软RAID:

硬RAID:采用专门的控制器来完成,也就是常说的RAID卡;通过磁盘阵列控制卡(RAID Controller Card)提供磁盘阵列的功能。要使用硬件的磁盘阵列,必须采购支持Linux的磁盘阵列控制卡,一般需要正确安装驱动程序,才能让Linux系统正常使用设备。

软RAID:采用软件的方法来实现。用户无须安装额外的硬设备,只要保证Linux内核有支持,就可以直接使用。

由于硬件磁盘阵列的功能是由磁盘阵列控制卡提供计算工作的,因而效率大大高于由Linux内核的软件磁盘阵列;但硬件磁盘阵列得购买额外的设备,因此其使用成本比软件磁盘阵列高得多。过去RAID一直是高端服务器才应用的设备,与高档SCSI硬盘配合使用。SCSI RAID稳定性好、速度快,但SCSI硬盘和SCSI接口RAID卡价格高昂,往往只在高档服务器上使用。近来随着技术的发展和产品成本的不断下降,IDE硬盘和SATA硬盘的性能都有了很大提升,加之RAID芯片的普及,使得RAID技术也广泛应用到了IDE硬盘和SATA硬盘上。

三、开源系统Linux下构建磁盘阵列的具体方法

目前,Linux能够较好地支持RAID0、RAID1、RAID4、RAID5这四种磁盘阵列模式。在4种模式中,RAID4和RAID5运行方式较为接近。

1.创建RAID1磁盘阵列

RAID1磁盘阵列的基本工作方式是通过数据镜像实现数据冗余,在两对分离的磁盘上产生互为备份的数据,也就是说每一块磁盘所存储的数据是完全相同的。所以,要创建RAID1磁盘阵列,至少需要2块硬盘,每一块硬盘最好大小一致。这是因为每一个硬盘存储相同的数据,因此有一个硬盘比其他的容量大时,磁盘阵列也无法使用多出来的硬盘空间。本例采用2个硬盘的分区(hda1和hdb1)来创建RAID1类型磁盘阵列。

基本步骤如下:

1)编辑磁盘阵列的配置文件/etc/raidtab如下:

raiddev                     /dev/md0             

raid-level                  1

nr-raid-disks               2

nr-spare-disks              0

chunk-size                  4

persistent-superblock       1

device                      /dev/hda1

raid-disk                   0

device                      /dev/sdb1

raid-disk                   1   

上述文件中每项的含义如下所示:

raiddev:指定磁盘阵列的设备名称;

raid-level:指定采用的RAID模式,例中为RAID1;

nr-raid-disks:指定磁盘阵列的硬盘个数,例中RAID为2个硬盘组成;

nr-spare-disks:指定磁盘阵列备用磁盘数目,例中为0;

chunk-size:指定数据写入磁盘阵列时,每个写入区块的大小,其单位为KB,且大小必须为2的幂次方。一般说来,此设置值的大小会影响磁盘阵列的读写效率,不过理想的设置值,则随着计算机的使用情况而异,所以并无绝对的结果;

persistent-superblock:配置是否要写入磁盘的超级块(superblock),配置成“1”表示写入,配置“0”不写入;

device     /dev/hda1:根据实际情况,指定第一个硬盘分区的名称,此处第一个硬盘分区为hda1;

raid-disk  0:配置上述的分区是此磁盘阵列所使用的第一个硬盘,编号从0开始;

device     /dev/hdb1:同上,按实际情况,指定第二块硬盘分区的名称;

raid-disk  1:配置上述的分区是此磁盘阵列所使用的第一个硬盘,编号为1。

2)格式化并加载磁盘阵列,命令如下所示:

//建立磁盘

#mkraid /dev/md0

//使用ext3文件系统格式化

#mke3fs /dev/md0

//将md0磁盘阵列加载到目录/mnt/md0下

#mount -t ext3 /dev/md0 mnt/md0

3)启动磁盘阵列

#raidstart  /dev/md0

4)使用过程中查看磁盘阵列的使用状态

#more /proc/mdstat

5)停止和卸载磁盘阵列

//首先停止磁盘阵列

#raidstop  /dev/md0

//然后卸下装载的磁盘阵列

#umount  /dev/md0

6)删除磁盘阵列:首先使用第5)步停止磁盘阵列,然后删除/etc/raidtab文档即可。

2.创建RAID5磁盘阵列

上面介绍了RAID0的创建方式,下面介绍如何创建RAID5磁盘阵列。有了上面的基础后,对于RAID5的创建也就不那么困难了。简单地说,RAID5是在RAID0和RAI1中取得折衷,既具备容错能力,也不会浪费太多硬盘空间,并有助于提高磁盘的I/O性能。由于RAID5需要存储同位校验码,因此要创建此模式的磁盘阵列,至少需要3块或以上的硬盘。因此,本例以hda、hdb、hdc三块磁盘的分区(hda1、hdb1和hdc1)来组成RAID5磁盘。当然,也可以指定三块磁盘的其他分区,这个可以根据实际磁盘分区的使用情况选定,并不是固定的。

基本操作步骤如下:

1)编辑磁盘阵列的配置文件/etc/raidtab如下:

raiddev                     /dev/md0

raid-level                  5

nr-raid-disks               3

nr-spare-disks              0

chunk-size                  32

persistent-superblock       1

parity-algorithm            left-symmetric

device                      /dev/hda1

raid-disk                   0

device                      /dev/hdb1

raid-disk                   1

device                      /dev/hdc1

raid-disk                   2

同理,上述文件中每项的含义如下所示:

raiddev:指定磁盘阵列名称;

raid-level:指定使用的RAID5磁盘阵列;

nr-raid-disks:此磁盘阵列由3个硬盘所组成;

nr-spare-disks :指定/此磁盘阵列的备用硬盘数目;

chunk-size:当数据要写入磁盘阵列时,每个写入的大小(单位为KB,且必须为2的幂次方)。此设置值的大小,会影响磁盘阵列的读写效率,不过理想的设置值,则按每台计算机的使用情况而异,并无绝对的结果;

persistent-superblock:设置是否要写入磁盘的superblock:设成1表示写入,否则设成0。若将此参数设成1,则当磁盘阵列中有硬盘损坏时,系统仍可继续启动;若有备用硬盘,也会同时启用备用硬盘;

parity-algorithm:指定要用哪一种算法计算同位校验吗,可使用的算法有left-symmetric、left-asymmetric、right-symmetric及right-asymmetric等4种。一般采用left-symmetric能有最好的存取效率;

device     /dev/hda1:指定所有使用的第1个硬盘分区名称;

raid-disk  0:设置上述的分区是此磁盘阵列所使用的第1个硬盘(编号由0开始);

device     /dev/hdb1:指定所要使用的第2个硬盘分区名称;

raid-disk  1:设置上述的分区是此磁盘阵列所使用的第2个硬盘;

device     /dev/hdc1       :指定所要使用的第3个硬盘分区名称;

raid-disk  2:设置上述的分区是此磁盘阵列所使用的第3个硬盘。

2)格式化并加载磁盘阵列,命令如下所示:

//建立磁盘

#mkraid /dev/md0

//使用ext3文件系统格式化

#mke3fs /dev/md0

//将md0磁盘阵列加载到目录/mnt/md0下

#mount -t ext3 /dev/md0 mnt/md0

3)启动磁盘阵列

#raidstart  /dev/md0

4)使用过程中查看磁盘阵列的使用状态

#more /proc/mdstat   

5)停止和卸载磁盘阵列

//首先停止磁盘阵列

#raidstop  /dev/md0

//然后卸下装载的磁盘阵列

#umount  /dev/md0

6)删除磁盘阵列:首先使用第5)步停止磁盘阵列,然后删除/etc/raidtab文档即可。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

羽扇纶巾
羽扇纶巾

自由撰稿人。

相关推荐

  • RAID类型详解

    RAID可以实现更好的存储性能,带来更高的可用性。市场上有许多种不同的RAID类型,阅读本篇RAID各类型的详解有助于了解其最适合的场景领域。

  • 无硬件的软件复制

    在灾难恢复解决方案中,数据复制是其中一个关键的影响因子。基于磁盘阵列的数据复制一直以来大行其道。然而,如今应用部署方式的改变意味着可以从另一方面达成数据保护。

  • 并非所有的闪存阵列都是相同的

    全闪存阵列都有一个共同的特征——速度飞快——但是除了速度以外,还有很多其他的要素需要考虑。

  • 让数据迁移变得轻松

    磁盘阵列间的数据移动一直以来都是很困难的工作,但是新的技术和技巧让数据迁移变的容易了。