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

Unix/Linux
Linux crontab定时执行任务 命令格式与详细例子
linux 查看用户及用户组的方法
让Linux系统有效防御ARP攻击的实用技巧
Linux 常用软件列表
linux wget 一个强大的下载命令
linux 常用脚本、命令
linux 磁盘配额 简单介绍
Linux服务器架设笔记 Squid服务器配置
ubuntu intel 集成显卡安装
ubuntu 9.04 X3100 显卡开启3D特效
Ubuntu 8.10 Server Ruby 的安装方法
Ubuntu root帐户密码修改
ubuntu下apt-get 命令参数
Ubuntu Linux下实现QQ的三种方式
Ubuntu 8.04中建立PHP+MySQL环境
Ubuntu常用软件大全
Ubuntu系统下安装Aircrack-ng
Ubuntu实现FTP功能
ubuntu 字体美化实现方法
ubuntu下netbeans汉字显示残缺问题

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-01   浏览: 76 ::
收藏到网摘: 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).