当前位置: 首页 > 图文教程 > 操作系统 > Unix/Linux > 如何实现Linux的软件磁盘阵列(RAID)

Unix/Linux
mysql+httpd+gd+php+zend
automake 小回顾
unix黑客精神的最好诠释
www
sun t3存储的设置
RPM简明中文手册
Linux爱好者入门教程 序章 (持续更新)
第一章 Linux基础知识 (飘心)
linux下进程与线程
浅谈如何学习linux
第二章 Linux安装
硬件安装指南
Windows 2000 的桌面不見了的解決方法
部分的ADSL路由器默认帐号密码
如何设定安全log服务器呢?
iptables 规则速查
网友学习 Linux 的七点忠告
sniffer的含义及原理
Linux编程白皮书 第二章 内存管理
Linux编程白皮书 第二章 内存管理 2.1.1 请求调页 --2.1.5 访问控制

Unix/Linux 中的 如何实现Linux的软件磁盘阵列(RAID)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 210 ::
收藏到网摘: n/a

     如果你想实现一个 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).