http://blog.zol.com.cn/1164/article_1163428.html
http://blog.zol.com.cn/1164/article_1163486.html
软RAID是建立在磁盘分区上的,因此在创建RAID阵列前先要给磁盘分区,且分区类型是Linux的软RAID分区。
建立分区
#fdisk /dev/sdb
命令m 列出帮助
命令n 创建新分区, p表示主分区
命令t 设置分区类型,L查看类型代码,fd表示linux raid auto
命令w 写分区表
创建Raid5
键入mdadm -–create /dev/md0 –-level=5 –-raid-devices=3 –c128 /dev/sdb1 /dev/sdc1 /dev/sdd1命令;
命令详见:mdadm 是软RAID的管理工具,
--create 参数指定创建的阵列,后边跟要创建的阵列设备名/dev/md0 ,
--level 参数指定阵列的级别,5(RAID5)或1(RAID1),
-c specify chunk size in KB, default 64
--raid-devices参数指定组成阵列组的设备数量和设备列表,=3表示由3个设备组成,后边跟设备名列表,每个设备之间用空格分开 /dev/sdb1 /dev/sdc1 /dev/sdd1 ;
创建成功提示array /dev/md0 started.并自动开始同步;
查看阵列当前使用状况
mdadm --detail /dev/md0
clean状态良好,degraded状态降级,recovering状态恢复
动态监视阵列情况
watch –n 3 ‘cat /proc/mdstat’
命令每隔3秒(如果你盘比较大重建过程会较长,自己掌握刷新时间)刷新打印一次/proc/mdstat文件(RAID阵列的当前状态),
可实时监视重建过程,键入Ctrl+C退出。
同步完成后再次键入mdadm -–detail /dev/md0 命令查看一下RAID5阵列的状态,已经是clean良好状态了,
下面就可以在md0设备上建文件系统了;
在Raid5上创建LVM
考虑到日后磁盘空间不够用,需要对RAID5阵列进行扩容,因此将文件系统创建在LVM上。
创建LVM基本上分三步,
首先创建物理卷PV,
键入命令 pvcreate /dev/md0 在软RAID设备上创建物理卷;
命令 pvdisplay 查看物理卷信息
再创建卷组VG,
键入命令 vgcreate raid5vg /dev/md0创建卷组raid5vg,命令格式为卷组名和物理设备
gvdisplay 查看卷组信息
最后在卷组上创建逻辑卷LV;
键入命令 lvcreate –n raid5lv –l 1535 raid5vg,
命令详解:
-n 参数后边跟逻辑卷的名,
-l参数指定逻辑卷的大小(这里用的块),可使用-L参数指定逻辑卷组大小,
最后指定在那个卷组上创建逻辑卷;
创建成功后可找到 /dev/raid5vg/raid5lv 设备。
格式化逻辑卷
在raid5lv逻辑卷上创建文件系统并格式化就能使用了;
键入命令 mkfs.ext3 /dev/raid5vg/raid5lv 创建文件系统并格式化为ext3格式;
使用在Raid5上的LVM逻辑卷
现在你就可以使用创建的RAID5阵列了,将他挂载到/raid目录下(提前创建目录)体验一下吧,往/raid目下复制一些文件,以便在后边的操作中检验阵列的安全性;使用df –h命令查看一下磁盘当前存储情况,RAID5阵列挂载到/raid目录,已使用了20%;
mount /dev/raid5vg/raid5lv /mnt/raid
自动挂载该LVM卷
如果你感觉每次启动都执行mount命令太麻烦的话,
修改/etc/fstab文件,把/dev/raid5vg/raid5lv的挂载信息写进去吧,这样启动后就自动挂载了;
<device> <mountpoint> <filesystemtype> <options> <dump> <fsckorder>
/dev/raid5vg/raid5lv /mnt/raid ext3 default 1 1
其中dump为1 表示需要备份
fsckorder is used by fsck (the filesystem check utility) to determine the order in which filesystems should be checked. If zero then fsck won't check the filesystem.
某磁盘损坏后 进行raid5的修复
下面我们模拟一个磁盘损坏/dev/sdc1设置为fail或在虚拟机上把它删了(注意直接删可能重排列SCSI设备,最好是删了重新再添加一个新的虚拟磁盘,这样你应该放心了,一个盘的数据丢失,看看软RAID5是否能找回来);
此时查看一下RAID5阵列的状态,键入mdadm --detail /dev/md0命令;发现/dev/sdc1设备被删除,阵列状态为clean,degraded状态;文件没有丢失,
分区
给新的/dev/sdc设备进行分区
将已分好区的/dev/sdc1分区添加到阵列中,
#mdadm [--manage] /dev/md0 --add /dev/sdc1 //添加sdc1到阵列;
软RAID阵列在运行状态能进行热维护,[--manage]参数省略认为是阵列的管理操作;
Raid5扩容
增加设备
#mdadm /dev/md0 --add /dev/sde1 先添加一个设备到阵列中
扩容
#mdadm --grow /dev/md0 --raid-devices=4
命令,使阵列设备由原来的3个增加到4个;
--grow更改参数模式;
RAID5组的容量由原来的4GB扩充到6GB了
改变LVM卷,用来包含新添硬盘
文件系统是建立在LVM上的,因此还需要对逻辑卷进行扩容,最后使文件系统在线(mount状态下)进行容量扩充;
调整物理卷
用pvdisplay命令查看物理卷的情况(重启一下系统否则pv看不到容量扩充),可以看到还有剩余没有分配的空间(RAID5扩容后),
键入pvresize /dev/md0 命令将剩余的空间全部(可加参数指定再分配的空间大小)分配给物理卷;
#pvresize /dev/md0
然后要调整逻辑卷的大小:
#lvresize –l +512 /dev/raid5vg/raid5lv
//使逻辑卷再增加512块(2GB空间);
这个大小需要根据增加的硬盘来决定
最后就是调整文件系统的大小了,
使用 resize2fs /dev/raid5vg/raid5lv 命令(可能提示你先运行e2fsck先进行检测),调整逻辑卷上文件系统大小;
#resize2fs /dev/raid5vg/raid5lv
删除Raid5
删除md0后,需要重新建立,使用下面命令
#mknod /dev/md0 b 9 0
删除raid的操作过程
1.删除所有raid对应的磁盘或分区
#mdadm /dev/md0 --fail /dev/sdb --remove /dev/sdb1
#mdadm /dev/md0 --fail /dev/sdc --remove /dev/sdc1
#mdadm /dev/md0 --fail /dev/sde --remove /dev/sde1
#mdadm /dev/md0 --fail /dev/sdf --remove /dev/sdf1
2.停止raid
#mdadm --stop /dev/md0
3.清空磁盘(分区)超级块中的raid信息
#mdadm --misc --zero-superblock /dev/sdb1
#mdadm --misc --zero-superblock /dev/sdc1
#mdadm --misc --zero-superblock /dev/sdd1
#mdadm --misc --zero-superblock /dev/sdf1