如何实现Linux的软件磁盘阵列RAID电子版本.doc

上传人:1595****071 文档编号:52373961 上传时间:2022-10-22 格式:DOC 页数:4 大小:214KB
返回 下载 相关 举报
如何实现Linux的软件磁盘阵列RAID电子版本.doc_第1页
第1页 / 共4页
如何实现Linux的软件磁盘阵列RAID电子版本.doc_第2页
第2页 / 共4页
点击查看更多>>
资源描述

《如何实现Linux的软件磁盘阵列RAID电子版本.doc》由会员分享,可在线阅读,更多相关《如何实现Linux的软件磁盘阵列RAID电子版本.doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Good is good, but better carries it.精益求精,善益求善。如何实现Linux的软件磁盘阵列RAID-如果你想实现一个Linux的软件磁盘阵列(以下简称RAID或raid),那么在开始前,下面的这个最重要的网点是你应该首先去涉猎的:LinasVepsta的raid主页:http:/linas.org/linux/raid.html本文发表的时间是1998年10月29日,目前已有的文档还不全,比较混乱.这篇文章就是澄清一些当你在实现raid0和raid1时会遇到的问题.(译者注:raid0-是指将数据散布在不同的硬盘上操作,无冗余数据,读写都可以并行操作,速度快,

2、英文简称为striping,以下译作分散读写;raid1-是指磁盘镜像,英文为mirroring.)我想实现基于分散读写模式(striping)的镜像模式(mirroring).分散读写模式具备优异的读写性能,而镜像模式带来备份和读的性能增强.我使用一个2.0.30的内核,实现了raid0(striping).然后我将内核升级到2.0.35,这下笑话开始了.在同raid0做了一番争斗后(译者注:可能未成功),我开始处理raid1.然后,你猜怎样,扔掉你所知道所有的raid知识,从打草稿开始!(因此)一个简化工作的好主意是,首先使raid0能用,之后增加raid1.故事是这样的:工作于内核2.0

3、.30下的Raid0(striping)从2.x版本开始,内核已经实现了线性和raid0(striping)模式.你必须重新编译内核以带有多设备界面支持(multipledevices).我强烈建议将它编译到内核中.如果你是使用模块方式,你将会吃尽苦头.检查是否多设备界面(multipledevices)已经安装.dmesg|more然后检查是否存在md驱动器(mddriver)和raid0已经注册(raid0registered)的信息(想不起精确的词语-夜太深;-()或敲入cat/proc/mdstat查看你的md驱动器的状态.你应该看到/dev/md0到/dev/md3处于非激活状态.奇

4、怪的是,内核工具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/mdaddsbin/mdcreateusr/etc/mdtabinstall/doinst.shusr/man/man5/mdtab.5.gzusr

5、/man/man8/mdadd.8.gzusr/man/man8/mdcreate.8.gzusr/doc/md/COPYINGusr/doc/md/ChangeLogusr/doc/md/READMEusr/doc/md/md_FAQ通读README文件(毫无疑问,忽略警告们).这份文档极适合于内核版本2.0.30和线性(linear)/raid0模式.Linux日报(LinuxJournal)(1998年六月或七月刊)中有一篇精采的介绍怎样实现raid0(striping)的文章.它增强了我的兴趣.Linux公报(LG)中有另一篇文章,也有所帮助:你应该在fsck-a之前开始启动raid阵

6、列,在Slackware中它(fsck)通常位于/etc/rc.d/rc.s文件中,而在/etc/rc.d/rc.0和rc.6中停止raid阵列.(BTW:既然在slackware中这两个文件相同,我们能不能做一个软联结,然后只需修改一个?)为了检查它是否工作,敲入cat/proc/mdstat,它(输出的信息)将指示md设备的情况.(/dev/md0raid0using/dev/sda1and/dev/sdb1).测试,测试,再测试你的raid.关机,上电,看看它是否如你所愿地工作.我曾做过有趣的拷贝,使用cp-rap开关将全部目录结构拷入raid阵列中.(测试完成)然后修改/etc/fst

7、ab以包括新的驱动器(指raid).交换分区不需要分块操作.当一个优先级启用时,他们将自动这样做.阅读Software-RAID-mini-HOWTO和傻瓜问题一段可知详情.这出乎意料地简单.现在使用UPS!如果(运行中)掉电了,你将失去你的raid和上面的所有数据!你应该使用一个UPS后备电源.UPS的作用是让你的系统在灯火管制或电源失败时能够保持运行一小段时间.UPS能够在电源失败时通过一个串口通知你的系统.在后台,有一个精灵程序在运行监控这个串口.当它被通知电源失败时,它将在发出关机命令前等待一段预定时间(通常是5分钟).如此的工作原理是如果5分钟内还是无电,那么将持续很长时间.大多数L

8、inux销售包带有基本的UPS电源精灵程序.使用manpowerd可以得到更多信息.这是一个简单的精灵程序,它在/etc/inittab中.从根本上来说,一个哑UPS,只是在串口保持一个接力联结.powerd检测这个联结是否已经断掉.一旦联结断掉,它将在预定时间后将PC关闭.警告用户,并且向root发一封邮件.我使用一台APC智能UPS,它通过串口通讯.有一个称作apcupsd的卓越精灵如有神助般地工作.它在这儿.请阅读布告,赞同作者,他完成了一项优异工作(作者的光荣!).安装工作如同魔法,文档也十分优秀.http:/www.dyer.vanderbilt.edu/server/apcupsd

9、/RAID0基于2.0.31to2.0.34没有尝试过.因为我直接从2.0.30升级到2.0.35,一个最新的稳定版本.RAID0基于核心版本2.0.35mdtools在我家中的机器上编译地很顺利(运行2.0.30),但在我的工作机上不能编译(已经升级到2.0.35).我不断地得到一个关于MD_Version(记不住确切的名称)没有定义的错误.经过大量挠头的搜索,我发现在/usr/src/include/md.h中有md驱动器的版本号.在版本2.0.30中,它是0.35;而在2.0.35中它是0.36.如果你使用mdadd-V它将指示mdadd可以工作的md的版本号.所以我取得了错误的mdto

10、ols版本.这里是正确版本的位置:ftp:/ftp.kernel.org/pub/linux/daemons/raid/raidtools-0.41.tar.gz下载到/usr/local/src然后tar-zxvfraidtools-0.41.tar.gz将生成一个新目录/usr/local/src/raidtools-0.41进入新目录,阅读INSTALL文件,然后./configure我记不清之后是否必须做make和makeinstall.我不能复现这一过程,因为我已经为raid打了一个新补丁.你应该有一个新的mkraid和mdadd的运行文件(binary).敲入mdadd-V以检查是

11、否你的运行码已经更新了.它应该显示一些像mdadd0.3dcompiledforraidtools-0.41的信息.然后阅读QuickStart.RAID获得最新信息.对于raid0,比以前版本没有多少改变.RAID1基于内核2.0.35若想使用raid1,4或5,你必须为内核打一个补丁,它位于ftp:/ftp.kernel.org/pub/linux/daemons/raid/alpha/raid0145-19981005-c-2.0.35.tz拷贝到/usr/srcdirectory,将补丁解压缩:tar-zxvfraid0145-19981005-c-2.0.35.tz注意补丁将搜索/u

12、sr/src/linux-2.0.35目录.如果你将2.0.35的源码安装在目录/usr/src/linux下,你需要mv/usr/src/linux/usr/src/linux-2.0.35,然后做一个符号联结ln-s/usr/src/linux-2.0.35/usr/src/linux为了使用这个补丁,进入目录/usr/src:patch-p0(在我的系统中有些地方小写的c会变成大写的C吗?也许在解压后?)你现在可以去重新编译内核.当你选择多设备(选项)时,你将看到有选择raid1,4和5.依次步骤是makemenuconfig(orconfigorxconfig)makecleanmak

13、edepmakezImagemakemodules(如果你使用了模块)makemodules_install将新内核拷到你系统中适当的地方(/或/boot).我建议你同时拥有一个无raid的内核和一个有raid的内核.你能够通过修改lilo.conf来确定使用那一个内核启动.这根本不困难,尽管初看起来有些恐怖.查看/usr/lib/lilo的例子和文档.(译者注:可能为Slackware中的目录,Redhat5.1中无)查看dmesg|more的输出内容确定md驱动器已经装载,raid0&1已经注册.敲入cat/proc/mdstat看看你是否有了新的md驱动器.你应该看到16个md驱动器而不

14、是4个.你将必须升级你的raidtools.mdadd,/etc/mdtab和mdcreate是旧的,新工具应该是raidstart,/etc/raidtab和mkraid.从这一点上来说,(当前的)文档的确是过时了.ftp:/ftp.kernel.org/pub/linux/daemons/raid/alpha/raidtools-19981005-B-0.90.tar.gz下载到/usr/local/src然后tar-zxvfraidtools-19981005-B-0.90.tar.gz这将产生一个新目录/usr/local/src/raidtools-0.90.进入这个目录作./con

15、figure又一次,我记不起是否该接着做make和makeinstall.一个较简单的方式完成内核2.0.35下的RAID0使用两个scsi设备/dev/sda1和/dev/sdb1完成一个raid0阵列的步骤:将/dev/sda1和/dev/sdb1分区,让他们有相同的块大小.将分区的类型设为0xfd.这是用来让新内核在启动时自动识别raid.按下面例子修改/etc/raidtab文件(随raidtools提供的例子缺少一些重要的信息):#Stripingexample#/dev/md0using/dev/sda1and/dev/sdb1raiddev/dev/md0raid-level0n

16、r-raid-disks2persistent-superblocks1nr-spare-disks0chunk-size32device/dev/sda1raid-disk0device/dev/sdb1raid-disk1敲入mkraid-f/dev/md0一定注意-阅读错误信息,明确方向!cat/proc/mdstat检查输出信息,确定md设备是否正确地做好.使用mke2fs-c/dev/md0格式化新raid设备.产生一个安装目录(例如/raidtest)以测试它是否工作.mount/dev/md0/raidtest看你是否能将一个文件拷贝到/raidtest.如果你的硬盘设备有各自独

17、立的LED灯,你能够看到两个设备都在工作.重启动,检查内核是否自动将raid设备md0关闭.会有一些信息滚过屏幕.(有谁知道如何使用dmesg读取关机信息?)检查重启动过程中计算机是否自动识别raid设备和/dev/md0是否作为一个raid0阵列.如果不是,检查前几个步骤,特别是步骤2和步骤4.基于内核2.0.35RAID1的新方式使用两个raid0(striping)设备构造一个raid1阵列/dev/md2的步骤如下,两个raid0设备为/dev/md0(/dev/sda1+/dev/sdb1)和/dev/md1(/dev/sdc1+/dev/sdd1):按照上面(建立raid0的)步骤

18、建立/dev/md0和/dv/md1.重要信息:你不能安装或者在/dev/md0和/dev/md1上建立文件系统.这只是测试raid0是否工作!按照下面例子修改/etc/raidtab文件(随raidtools提供的例子缺少一些重要信息):#Stripingexample#/dev/md0using/dev/sda1and/dev/sdb1raiddev/dev/md0raid-level0nr-raid-disks2persistent-superblocks1nr-spare-disks0chunk-size32device/dev/sda1raid-disk0device/dev/sdb

19、1raid-disk1#/dev/md1using/dev/sdc1and/dev/sdd1raiddev/dev/md1raid-level0nr-raid-disks2persistent-superblocks1nr-spare-disks0chunk-size32device/dev/sdc1raid-disk0device/dev/sdd1raid-disk1#Mirrorexample#/dev/md2using/dev/md0and/dev/md1raiddev/dev/md2raid-level1nr-raid-disks2persistent-superblocks1nr-s

20、pare-disks0chunk-size32device/dev/md0raid-disk0device/dev/md1raid-disk1敲入mkraid-f/dev/md2重要信息-阅读错误信息,明确方向!这一步要化一段时间,因为磁盘要进行同步(超过39分钟).cat/proc/mdstat查看是否md设备正确地完成.使用mke2fs-c/dev/md2格式化新raid设备产生安装目录(例如/raidtest_mirror)mount/dev/md0/raidtest看你是否能够将文件拷到/raidtest中.如果你的硬盘有各自独立的LED灯,你可以发现它们在同时工作.加raidstar

21、t/dev/md2到你的/etc/rc.d/rc.s文件中,注意在fsck-a之前.一个好位置是正在swapon-a之后.目前,内核不能自动识别raid1.下一个补丁将完成它(自动识别).修改/etc/fstab将/dev/md2安装到/raidtest./dev/md2/raidtestext2defaults11重启动,看内核是否自动关闭设备md0,md1和md2.会有一些信息滚过屏幕.(有谁知道如何使用dmesg查看关机信息?)检查在重启动过程中内核是否自动识别出raid设备/dev/md0和/dev/md1全部启动作为raid0阵列.检查/dev/md2设备是否为一个raid1阵列.c

22、at/proc/mdstat查看是否md设备正确建立.你应该有基于raid0的raid1阵列在运行.如果你遇到问题,这里有一些其他资源可以参考:linuxraid档案:发一条新闻到comp.os.linux.setup搜索-过去5年来新闻组消息的归档站点.如果你完全不知如何是好了,向LinuxRAID邮件列表发e-mail.询问问题,e-maillinux-raidvger.rutgers.edu参加内核RAID列表,e-mailmajordomovger.rutgers.edu在信体中写subscribelinux-raid不要e-mail给我,所有我所知道的都已经写在这儿了!()进入【UNIX论坛】相关文章RAID原理,磁盘阵列(DiskArray)原理(2001-10-2013:05:00)磁盘阵列系RAID介绍(2001-08-1607:00:00)Linux网管123-第11章.在企业里的电脑使用Linux-1.使用RAID(2001-07-0318:08:00)Linux下采用软件实现RAID(2001-06-2010:08:00)RAID技术简介(2001-06-0522:08:00)HP-UX下RAID5配置的读性能极慢的解决办法(2001-05-2911:00:01)如何实现Linux的软件磁盘阵列(RAID)(2001-05-1010:09:11)-

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁