RAID 如何实现Linux的软件磁盘阵列

;;;如果你想实现一个;Linux;的软件磁盘阵列(以下简称;RAID;或;raid),;那么在开始前,;下面的这个最重要的网点是你应该首先去涉猎的:;

Linas;Vepsta;的;raid;主页:;http://linas.org/linux/raid.html;

本文发表的时间是;1998年10月29日,;目前已有的文档还不全,;比较混乱.;这篇文章就是;澄清一些当你在实现;raid0;和;raid1;时会遇到的问题.;(译者注:;raid0;--;是指将数据散布在不同的硬盘上操作,;无冗余数据,;读写都可以并行操作,;速度快,;英文简称为;striping,;以下译作"分散读写";;raid1;--;是指磁盘镜像,;英文为;mirroring.);

我想实现基于分散读写模式(striping)的镜像模式(mirroring).;分散读写模式具备优异;的读写性能,;而镜像模式带来备份和读的性能增强.;

我使用一个;2.0.30;的内核,;实现了;raid0(striping).;然后我将内核升级到;2.0.35,;这下笑话开始了.;在同;raid0;做了一番争斗后(译者注:;可能未成功),;我开始处理;raid1.;然后,;你猜怎样,;扔掉你所知道所有的;raid;知识,;从打草稿开始!;(因此)一个简化工作;的好主意是,;首先使;raid0;能用,;之后增加;raid1.;故事是这样的:;

工作于内核;2.0.30;下的;Raid0;(striping)
从;2.x;版本开始,;内核已经实现了线性和;raid0(striping);模式.;你必须重新编译内核;以带有多设备界面支持(multiple;devices).;我强烈建议将它编译到内核中.;如果你是;使用模块方式,;你将会吃尽苦头.;
检查是否多设备界面(multiple;devices)已经安装.;dmesg;|more;然后检查是否;存在;md;驱动器(md;driver)和;raid0;已经注册(raid0;registered)的信息(想不起精确的;词语;-;"夜太深";;-(;);

或敲入;cat;/proc/mdstat;查看你的;md;驱动器的状态.;你应该看到;/dev/md0;到;/dev/md3;处于非激活状态.;

奇怪的是,;内核工具;mdtools-0.35;通常并不随销售包提供.;那里面有建立,;运行和使;raid;停止的工具.;

你在;Slackware;的销售包中可以找到它(;大小为;23k;);

http://sunsite.unc.edu/pub/Linux/distributions/slackware/slakware/ap1/md.tgz;

下载到;/usr/local/src;然后:;


cd;/;
tar;-zxvf;/usr/local/src/md.tgz
它将把文件放在正确的位置.;
sbin/mdadd
sbin/mdcreate
usr/etc/mdtab
install/doinst.sh
usr/man/man5/mdtab.5.gz
usr/man/man8/mdadd.8.gz
usr/man/man8/mdcreate.8.gz
usr/doc/md/COPYING
usr/doc/md/ChangeLog
usr/doc/md/README
usr/doc/md/md_FAQ
通读;README;文件(毫无疑问,;忽略警告们).;这份文档极适合于内核版本;2.0.30;和;线性(linear)/raid0;模式.;Linux;日报(Linux;Journal)(1998年六月或七月刊)中有一篇精采的介绍怎样实现;raid0(striping);的文章.;它增强了我的兴趣.;
Linux;公报(LG);中有另一篇文章,;也有所帮助:;
http://www.ssc.com/lg/issue17/raid.html;

你应该在;fsck;-a;之前开始启动;raid;阵列,;在;Slackware;中它(fsck)通常;位于;/etc/rc.d/rc.s;文件中,;而在;/etc/rc.d/rc.0;和;rc.6;中停止;raid;阵列.;(BTW:;既然在;slackware;中这两个文件相同,;我们能不能做一个软联结,;然后只需;修改一个?);

为了检查它是否工作,;敲入;cat;/proc/mdstat,;它(输出的信息)将指示;md;设备的情况.;(/dev/md0;raid0;using;/dev/sda1;and;/dev/sdb1).;

测试,;测试,;再测试你的;raid.;关机,;上电,;看看它是否如你所愿地工作.;

我曾做过有趣的拷贝,;使用;cp;-rap;开关将全部目录结构拷入;raid;阵列中.;(测试完成)然后修改;/etc/fstab;以包括新的驱动器(指;raid).;

交换分区不需要分块操作.;当一个优先级启用时,;他们将自动这样做.;阅读;Software-RAID-mini-HOWTO;和傻瓜问题一段可知详情.;这出乎意料地简单.;

现在使用;UPS!
如果(运行中)掉电了,;你将失去你的;raid;和上面的所有数据!;你应该使用一个;UPS;后备电源.;UPS;的作用是让你的系统在灯火管制或电源失败时能够保持运行一小段时间.;UPS;能够在电源失败时通过一个串口通知你的系统.;在后台,;有一个精灵程序在运行监控这个串口.;当它被通知电源失败时,;它将在发出关机命令前等待一段预定时间;(通常是;5;分钟).;如此的工作原理是如果;5;分钟内还是无电,;那么将持续很长时间.;

推荐阅读