您的位置:首页 > 编程语言 > Java开发

2010-04-03 13:32 Android开发环境搭建全程演示(jdk+eclipse+android sdk)

2012-06-23 00:43 477 查看
一、RAID简介 磁盘阵列,即Redundant Arrays of Inexpensive Disks(RAID),被称作容错廉价磁盘阵列。但由于磁盘成本的提高,也有人称RAID为Redundant Arrays of Independent Disks,独立冗余磁盘阵列。RAID的实现是通过软件或硬件的方式将多个磁盘整合成一个磁盘设备。并通过选择不同RAID的等级以及不同RAID的等级之间的组合使用,可以用来提高单一文件系统的容量,提升I/O性能,数据安全和可靠性。RAID等级有0 - 6,以及混合等级01和10,不同等级实现的功能不同。生产环境中几乎都是使用阵列卡硬件方式实现RAID,软件实现方式在稳定性和性能方面有极大限制,因此在生产环境中极度不建议软件方式,在下面不对软件方式实现进行讨论。 二、常用RAID等级(level)1、RAID-0 RAID-0被称为条带模式,stripe。数据在此种RAID等级是分散存储,每个磁盘放置所要存储数据的一部分,读写性能得到了提升,需要的磁盘数为多于或等于两块磁盘,磁盘可用空间为:磁盘数 X 最小磁盘的大小。

上图为,当数据写入RAID时,数据会被切割成一块一块,然后依序放到不同的磁盘。一方面读写性能得到了提升,但另一方面,由于数据切割分散存储于不同磁盘,但其中一块磁盘损坏,RAID上面所有数据都会损坏。因此,从数据安全方面考虑,重要数据不适合使用RAID-0。 2、RAID-1 RAID-1被称作镜像模式(mirror),此种模式是让同一份完整的数据在多块不同的磁盘上存储。如下图,当数据写入RAID时,把每一份数据复制成相同的两份,分别放入两块磁盘中存放。这种模式可以实现数据备份作用,当其中一块磁盘损坏时,数据不受影响。但此种模式需要复制多份数据到各个磁盘,在大量写入的情况下,写性能会降低;由于可以从不同磁盘读入数据,因此读性能会有略微提升。需要的磁盘数为多于或等于两块磁盘,磁盘可用空间为:磁盘数 X 最小磁盘的大小/ 2。

3、RAID-5 RAID-5对性能和数据备份进行了均衡考虑,实现方式是使用三块或三块以上磁盘组成磁盘阵列。数据写入方式类似于RAID-0,但区别是在每个循坏写入过程中,轮流在其中一块磁盘存储其他几个磁盘数据的同位校验码(parity),同位检验码为同位其他数据相与或所得,当其中任何一个磁盘损坏时,可通过其他磁盘的校验码来重建磁盘的数据。但当多于一块磁盘损坏时,数据则无法恢复。 RAID-5对读性能有较好的提升,由于写入时需要对数据进行同位校验码计算,所以写性能的提升较低于读性能的提升。磁盘可用空间为:(磁盘数 - 1) X 最小磁盘的大小。 另外,当其中一块磁盘损坏后,如果没有预备磁盘顶替,则每一次读取数据都需要经过数据校验计算出损坏磁盘的数据,RAID工作于降级状态,对性能有极大的影响。RAID 6在RAID 5的基础上增加多一块磁盘当校验盘,即支持两块磁盘做校验盘。



4、RAID 10 RAID 10为混合类型,即RAID 0 和RAID 1的组合,先把多个磁盘分组组成RAID 1,再把这些分组一起组成RAID 0,形式如下图所示。当数据写入时,先以RAID 0方式将数据分散到各个RAID 1组,再以RAID 1的方式复制多份数据在磁盘上完整存储。 由于工作方式既有RAID 0 又有RAID 1,所以 RAID 1+0 混合模式具有提升读写速度,又有数据备份功能,但同一RAID1分组中不允许同时坏两块。此种方式需要4块以上磁盘,磁盘可用空间为:磁盘数 X 最小磁盘的大小/2。

三、总结
RAID软件方式实现可通过模式化工具mdadm来实现。但生产环境中一般很少会用到软件方式实现。上面详细介绍的为常用的RAID 等级,还有RAID 2,RAID 3,RAID 4,RAID 6,RAID 01,但这些等级在性能和可靠性上不如常用的RAID等级,生产环境中比较少用到。RAID
10是较为推荐的等级,它可以实现性能的提升又可以提供数据的安全性,但浪费的磁盘空间比较多,成本较高。选择哪一种等级需要看业务的需求,从成本,性能,安全等方面综合考虑,选择适合的RAID等级。
本文出自 “学习天地” 博客,请务必保留此出处http://letitbe1028.blog.51cto.com/7901525/1689956
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: