免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 659 | 回复: 0
打印 上一主题 下一主题

Linux软RAID [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-02-24 10:28 |只看该作者 |倒序浏览
一、引言
     RAID的全称叫“冗余磁盘阵列”,更多的人叫它“廉价磁盘阵列。这种技术可以使多块磁盘协同工作,为系统提供更高的磁盘访问速度或更好的可靠性。最常用的RAID有三种:RAID0、RAID1、RAID5。详细的不多说,网上介绍性的资料多得是。
     关于磁盘阵列的实际意义,我们可以打个比方。你有个皮包,里面是你积攒了好几年的钱,有那么一天,这个皮包忽然丢了,这时候你最心疼的,会是那个包吗?那个包就好比硬盘,包里的就钱好比硬盘上的数据。这个比方能让你很容易明白磁盘阵列的实际意义。
     很多服务器软件,都可以在PC机上运行,但PC上运行服务器软件,却很少有成功的例子,因为PC的可靠性不佳,数据很容易毁掉。而购买专用服务器,成本又太高,我们学校的服务器,仅一块RAID卡的价格就相当于一台不错的PC。
     过高的成本,使得服务器应用很难在基层单位推广。那么有没有低成本,高可靠性的磁盘阵列可用呢?答案是肯定的,我家里就有一个磁盘阵列,有18G的RAID5空间和30G的非RAID空间,因为大部分是旧零件,包括电脑在内,成本仅为千元上下。磁盘阵列搬回家的说法,绝对不是开玩笑!
    在PC上做磁盘阵列,很多时候可以替代部门级服务器,给单位节约一大笔费用,这才是它的价值所在。
     二、制定配置方案
     我是在LINUX上做的软RAID。使用RAID,首先要制定RAID配置方案。我在这里提供些一般化的配置原则和方法,具体的配置,要看你手里的硬盘情况,你对性能和可靠性的要求,最终才能拿出适合自己的方案。
     1、RAID0
     如果你需要高性能,对可靠性没什么要求,建议用RAID0。RAID0适合做单位内部的大容量媒体服务器,用两块PC硬盘做的RAID0,性能比服务器上的RAID5阵列好得多。PC硬盘做RAID0,两块硬盘时性能提升较明显,但三块硬盘时,和两块硬盘相比,性能提升不大。需要注意的是,三块硬盘的RAID0,可靠性仅为单块硬盘的三分之一,所以使用RAID0是有风险的,建议用两块硬盘做RAID0,分别接到两个IDE或SATA接口上,速度、容量两者可以兼得。
     2、RAID1
     RAID1的读盘速度和RAID0相当,但写盘速度和单块硬盘硬盘相当。尽管它的性能不是最高的,但已经不逊色于服务器上的RAID5阵列。PC上用RAID1,是一种低成本,高可靠性的解决方案。两块120G硬盘大约是一千二百元左右,可以提供120G的RAID1空间,平均每个G仅10元。而RAID5的服务器空间,每个G大约要高出五倍,而性能要低很多,两者可靠性上大致相当。服务器上的东西,不仅硬盘贵,RAID卡也不便宜,仅一块RAID5的阵列卡,就够买台不错的PC了。如果你需要更大的容量,可以买更大容量的PC硬盘,这时,平均每G成本还可以进一步降低。服务器上很少用RAID1,因为服务器硬盘实在太贵了,但PC上用RAID1,成本上就可以承受。
     3、RAID5。
     RAID5用起来的确很方便,坏掉一块硬盘,数据很容易恢复,但性能上较差,比单硬盘低不少。那么,什么情况适合用RAID5呢?一般是硬盘容量较小,又需要较大存储空间,对可靠性也有一定需求,但对性能上没什么要求。说白了,新旧硬盘搭配时,RAID5就很有用。我家里的磁盘阵列,是用一块40G硬盘和两块10G硬盘做的。我需要备份一些资料,10G空间经常不够。
    单位用户,建议用大硬盘做RAID1,但RAID5也不是没用。可以从闲置或者旧电脑上拆下硬盘,做RAID5阵列,资金紧张而又急需数据备份时,RAID5也是很不错的选择。
     三、可靠性分析
     高端服务器硬盘的平均无故障时间可达140万小时,现在市场上卖的PC硬盘,基本都可达到50万小时以上,质量好的,可以达到100万小时。PC硬盘的可靠性也是很不错的。PC硬盘的故障率约为服务器的一半。
     设服务器硬盘的故障率为1/n,那么PC硬盘应为2/n。两块PC硬盘做RAID1,系统损毁的概率为n的平方分之四。而三块服务器硬盘做RAID5,系统损毁的概率为n的平方分之六。也就是说,PC用RAID1,可靠性不逊色于服务器上用RAID5。而实际使用中,PC硬盘还有维修时间短的优势,实际的可靠性可进一步提高。
     对比性能,已知服务器的RAID5性能不高于单块PC硬盘,PC硬盘做RAID1性能还会有较大提升,所以性能上PC上的RAID1占优势。这就是我推荐在PC上用RAID1的原因所在。
     四、阵列配置及数据恢复
     这里仅给出LINUX上软RAID1模式的配置方法。实验中我用了两块10G硬盘。
     两块硬盘跳线都设成master,分别用两根硬盘线接到两个IDE口上。这种接法可以最大限度利用IDE接口带宽。
     LINUX运行需要三个分区,/boot分区、根分区和交换分区。注意:最好不要在/boot分区上使用阵列,不然坏了第一块硬盘,恢复会很麻烦,容易造成误操作而导致数据全毁。
     两块硬盘的分区分别是hda1、hda2、hda3和hdc1、hdc2、hdc3。hda2和hdc2配置成md0,做根分区。hda3和hdc3配置成md1,做交换分区。hda1为/boot分区,hdc1为/boot-bak分区。
     安装好系统后,把hda1克隆到hdc1,记得克隆完了改一下hdc1卷标,不然启动时会报错。把hdc1的引导标志激活。最后,备份分区表。
     测试的时候,我模拟了hda硬盘损坏的情况,在BIOS中禁用了ide0端口,重启动。系统能启动,但会进入单用户模式,为什么呢?因为/boot分区在hda上,系统找不到/boot分区。别急,修改hdc1的卷标或者/etc/fstab,最后是将hdc1设成可启动的。改好后重启动就可以了,系统会引导成功。
     然后该模拟更换新硬盘了。因为我们模拟的是hda损坏的情况,进BIOS打开IDE0端口的时候,要把启动硬盘设置成IDE1,也就是从hdc引导。
     用备份的分区表文件恢复hda分区,然后分别hotadd hda2和hda3。同步的过程需要一段时间,因为要进行硬盘复制。
     最后,克隆hdc1到hda1,克隆之后别忘了改卷标。这两个分区的卷标不能相同,否则启动时报错,你有附加的文件系统,也会挂不上来。至于以后从hda1还是从hdc1启动,只要改一下BIOS就可以了。为稳妥起见,每次更换硬盘后,应在BIOS中设置ide0为第一引导设备。
     四、其它
     现在电脑功率都大,仅仅一块P4芯片,功率几乎可以和老式电脑的整个主机相当。所以,近年生产的ATX机箱,通风孔面积都非常大,而电源风扇的尺寸和功率基本没什么改变,这就造成硬盘附近空气流量大大减少,使得硬盘温度过高,寿命和可靠性大大降低。
     做磁盘阵列的时候,我特意改善了硬盘通风。找了个大号风扇,在机箱前面板上切开一个大方孔,将那个大风扇固定在大方孔上,盖上护网(因为家里有猫),然后外面罩上一层口罩布,用来防尘。
    大多数服务器都是为局网电脑提供服务。这种环境极少需要服务器提供24*7的不间断服务,软RAID可以做为一种廉价的部门级服务器解决方案。很多服务器应用环境中,都可以用廉价的PC机替代昂贵的服务器。
    WINDOWS SERVER也支持软RAID,有人做过软RAID0,说性能提升不大,估计原因是他操作系统所在的分区没有RAID。如果在WINDOWS SERVER上用RAID,建议买带集成RAID的主板,这种主板用起来更方便。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/10578/showart_77917.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP