Chinaunix首页 | 论坛 | 博客
  • 博客访问: 506127
  • 博文数量: 176
  • 博客积分: 4045
  • 博客等级: 上校
  • 技术积分: 2491
  • 用 户 组: 普通用户
  • 注册时间: 2008-03-19 11:23
文章分类

全部博文(176)

文章存档

2011年(7)

2009年(12)

2008年(157)

我的朋友

分类:

2008-03-25 17:42:25

原文链接:http://blog.chinaunix.net/u1/45779/showart_501502.html

VMware6+Linux AS5
软RAID5阵列LVM逻辑卷实战数据恢复和阵列扩容
 
先在虚拟机VMware6下配置6块SCSI硬盘(1块8GB,其余的各2GB),并在第一块硬盘上安装好 Red Hat AS5操作系统,请阅前些日志我博客上的文章。软RAID5阵列的创建和维护通过命令行操作,因此没有配置X-Windows窗口操作在ssh终端完成。
 
用fdisk -l 命令查看一机器已识别出来的硬盘情况,可以看到/dev/sdb[c、d、e、f]盘还没有进行分区;
 
用其中的3块(sdb、sdc、sdd)盘组建一个RAID5阵列,软RAID是建立在磁盘分区上的,因此在创 建RAID阵列前先要给磁盘分区,且分区类型是Linux的软RAID分区;使用fdisk /dev/sdb[c、d]分别给三块盘进行分区,并指定分区类型为Linux raid autodetect分区。键入命令 fdisk /dev/sdb 提示一些信息,然后键入m查看fdisk区分命令帮助;
 
 
这里要创建分区,键入n,提示创建分区类型e扩展分区p主分区,键入p创建主分区,键入1创建第一个主分区,这里只创建一个主分区使用全部磁盘空间,因此分区的起始位置默认;
 
将创建的主分区设置为软RAID分区类型,因此键入t命令,提示输入分区类型16进制代码,没有人能记住键入L查看一下,Linux raid atuo区分类型的16进制代码是fd;
 
键入fd,最后键入w保存并退出fdisk,分区完成,重复操作完成其它磁盘的分区创建;
 
分区完成后再键入fdisk -l 命令看一下分区是否已创建,DOS下可能提示你需要重新启动分区才有效,如果你不放心可重新启动一下,Linux不用重启可继续下面的任务;
 
可以看到/dev/sdb1[c1、d1、e1、f1]的分区已创建,下面开始创建软RAID阵列;这里创建 RAID5阵列先使用/dev/sdb1[c1、d1]三个盘(实际是分区);键入mdadm –create /dev/md0 –level=5 –raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1命令;
命令详见:mdadm 是软RAID的管理工具,--create 参数指定创建的阵列,后边跟要创建的阵列设备名/dev/md0 ,--level 参数指定阵列的级别,5(RAID5)或1(RAID1),--raid-devices参数指定组成阵列组的设备数量和设备列表,=3表示由3个设备组 成,后边跟设备名列表,每个设备之间用空格分开 /dev/sdb1 /dev/sdc1 /dev/sdd1 ;创建成功提示array /dev/md0 started.并自动开始同步;
 
键入mdadm –detail /dev/md0 命令查看阵列的当前详细状况,给出阵列组创建时间,当前状态等信息;clean状态良好,degraded状态降级,recovering状态恢复;图中 给出的创建后同步状态,Rebuild Statues 完成3%;
 
键入watch –n 3 ‘cat /proc/mdstat’ 命令每隔3秒(如果你盘比较大重建过程会较长,自己掌握刷新时间)刷新打印一次/proc/mdstat文件(RAID阵列的当前状态),可实时监视重建过程,键入Ctrl+C退出;
 
同步完成后再次键入mdadm –detail /dev/md0 命令查看一下RAID5阵列的状态,已经是clean良好状态了,下面就可以在md0设备上建文件系统了;
 
考虑到日后磁盘空间不够用,需要对RAID5阵列进行扩容,因此将文件系统创建在LVM上;动态调整逻辑卷大 小,实现存储容量动态增长;下面介绍如何在软RAID设备上创建LVM;创建LVM基本上分三步,首先创建物理卷PV,再创建卷组VG,最后在卷组上创建 逻辑卷LV;键入命令 pvcreate /dev/md0 在软RAID设备上创建物理卷;
 
物理卷创建成功,可使用命令 pvdisplay 查看物理卷信息;键入命令 vgcreate raid5vg /dev/md0创建卷组raid5vg,命令格式为卷组名和物理设备;
 
卷组创建成功,可使用命令 gvdisplay 查看卷组信息;在卷组上创建逻辑卷(即分区)键入命令 lvcreate –n raid5lv –l 1535 raid5vg,命令详解:-n 参数后边跟逻辑卷的名,-l参数指定逻辑卷的大小(这里用的块),可使用-L参数指定逻辑卷组大小,最后指定在那个卷组上创建逻辑卷;创建成功后可找到 /dev/raid5vg/raid5lv 设备;
 
在raid5lv逻辑卷上创建文件系统并格式化就能使用了;键入命令 mkfs.ext3 /dev/raid5vg/raid5lv 创建文件系统并格式化为ext3格式;
 
现在你就可以使用创建的RAID5阵列了,将他挂载到/raid目录下(提前创建目录)体验一下吧,往/raid目下复制一些文件,以便在后边的操作中检验阵列的安全性;使用df –h命令查看一下磁盘当前存储情况,RAID5阵列挂载到/raid目录,已使用了20%;(说明:RAID5磁盘的理论容量为n-1块最小盘容量,但在实际应用中我发现3块320GB(厂商容量)的硬盘组建RAID5总容量为587GB,可用总容量为558GB,30GB的空间被莫名占用百思不得其解,请各位指教);
 
如果你感觉每次启动都执行mount命令太麻烦的话,修改/etc/fstab文件,把/dev/raid5vg/raid5lv的挂载信息写进去吧,这样启动后就自动挂载了;
 
下面我们模拟一个磁盘损坏/dev/sdc1设置为fail或在虚拟机上把它删了(注意直接删可能重排列 SCSI设备,最好是删了重新再添加一个新的虚拟磁盘,这样你应该放心了,一个盘的数据丢失,看看软RAID5是否能找回来);如图/dev/sdc的确 是一个新磁盘,还没有任何分区;
 
此时查看一下RAID5阵列的状态,键入mdadm –detail /dev/md0命令;发现/dev/sdc1设备被删除,阵列状态为clean,degraded状态;文件没有丢失,/raid目录下的文件可用,阵列组仍处于工作状态;
 
给新的/dev/sdc设备进行分区(略),然后添加到阵列组中,恢复RAID5阵列;将已分好区的 /dev/sdc1分区添加到阵列中,键入mdadm [--manage] /dev/md0 --add /dev/sdc1添加sdc1到阵列;软RAID阵列在运行状态能进行热维护,[--manage]参数省略认为是阵列的管理操作;
 
重看阵列恢复状态,/dev/sdc1磁盘的状态为 spare rebuilding,阵列状态为clean, degraded, recovering状态;
 
用户watch命令监视恢复进度;完成后再次查看阵列状态阵列已恢复到clean状态;
 
某些情况下磁盘的空间可能不够用了需要扩充容量,这里介绍如何向已建好的RAID5 阵列中添加磁盘的操作(数据很多时没有实践过,不过我建议如果你能备份数据的话,最好在扩容前备份数据);准备好扩容的磁盘分区(略),键入mdadm /dev/md0 --add /dev/sde1[f1]命令,添加设备到阵列,这里一次添加了两个其中一个做备用;
 
这时阵列一共有5个磁盘组成,其中3块处于active sync状态,剩下两块处于spare状态(说明:在创建阵列时使用--spare-devices参数可指定备用盘);键入 mdadm –grow /dev/md0 –raid-devices=4命令,使阵列设备由原来的3个增加到4个;
 
键入mdadm --detail /dev/md0 命令查看阵列状态;可以看到阵列已经有4个设备了,当前处于clean,recovering状态,reshape重建阵列中;
 
使用watch命令监视reshape重建进度;完成后阵列的容量已扩充;
 
RAID5组的容量由原来的4GB扩充到6GB了,文件系统是建立在LVM上的,因此还需要对逻辑卷进行扩容, 最后使文件系统在线(mount状态下)进行容量扩充;用pvdisplay命令查看物理卷的情况(重启一下系统否则pv看不到容量扩充),可以看到还有 剩余没有分配的空间(RAID5扩容后),键入pvresize /dev/md0 命令将剩余的空间全部(可加参数指定再分配的空间大小)分配给物理卷;
 
然后要调整逻辑卷的大小,键入 lvresize –l +512 /dev/raid5vg/raid5lv 命令,使逻辑卷再增加512块(2GB空间);
 
最后就是调整文件系统的大小了,使用 resize2fs /dev/raid5vg/raid5lv 命令(可能提示你先运行e2fsck先进行检测),调整逻辑卷上文件系统大小;
 
完成回再用df -h命令看一下磁盘空间,/raid空间已就增加到6GB了,还可以再看看你的文件是否可用;
 
至此,在Linux AS5上配置RAID5并创建LVM,实现阵列扩容和存储容量扩充就介绍完了,我用4块320GB的IED接口的硬盘已实现了上述操作,除重建速度慢些及实际空间与理由空间差几十个GB外没有其它问题,希望能给各位以参考。
 

阅读(560) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~