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

Unix/Linux
linux查看内存的大小
在linux下写的代码,用的是utf-8,结果拿到XP下运行的时候,所有的中文都成乱码
linux su和sudo命令的区别
linux cron 下的定时执行工具使用技巧
linux 查找进程及终止进程操作的相关命令
redhat linux 安装 gcc编译器
Linux Mplayer播放各种格式的电影
一起回顾一下linux常用命令
Linux 网站项目发布要做哪些配置
linux SSH配合SecureCRT的密匙完美使用方法
GD 编译出错解决方法
Facebook Open Platform编译FAQ
Linux 系统硬盘 优化
linux 挂载详解
linux crontab定时命令
Linux 系统中确保访问三级域名畅通的方法
Linux 特权帐号VS普通帐号
确保Linux系统安全的前提条件 漏洞防护
Linux 监视系统资源使用率
Red Hat Linux上使用BIND建立DNS服务器

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


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