今天下午的RH131培训马哥讲解了RAID--独立冗余磁盘矩阵,它为服务器提供了强大的吞吐能力,而在Linux下,可以通过一个命令来学习它,那就是今天的主角---mdadm.
我的虚拟机linux系统版本为redhat enterprise linux server release 5.4 ,刚刚学完RAID,写下自己的学习心得,RAID1和RAID10的组建,本人菜鸟一只,哪里写的不周到请提意见。
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
RAID1篇:
RAID的概念就不多说了,首先建一个RAID1,并提供一块备用的spare盘,那么我们就至少要准备3个分区,建议大小都为2G,(为了组建RAID10不浪费空间)使用fdisk命令来创建3个大小为2G的逻辑分区。注意,在创建分区时,选择完大小后,要将那块分区的ID改为fd,才能组建RAID , 这是因为fd 对应的是Linux raid auto,只有它能组建RAID。
[root@server45 ~]# fdisk /dev/sda The number of cylinders for this disk is set to 15665. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): t ##在command行里按t 来改变分区的id Partition number (1-12): 7 Hex code (type L to list codes): fd ##改为fd
创建完分区信息后,以我的分区信息为例,这三个分区分别为 /dev/sda7 /dev/sda8 /dev/sda12 ,完成后不要急着格式化,下面就是mdadm命令大展深受的时候了。
1.首先输入partprobe /dev/sda 重读下分区表信息。
[root@server45 ~]# partprobe /dev/sda
2.然后使用mdadm命令将/dev/sda7 dev/sda8组合成RAID1矩阵
[root@server45 ~]# mdadm -C /dev/md1 -a yes -l 1 -n 2 -x /dev/sda7 /dev/sda8 /dev/sda12 ##-l指定等级 -n磁盘个数 -C创建一个RAID -x备用磁盘
3.然后,格式化这个RAID1
[root@server45 ~]# mkfs -t ext3 /dev/md1
4.创建一个挂载目录
[root@server45 ~]# mkdir /mnt/RAID1
5.将其挂载
[root@server45 ~]# mount /dev/md1 /mnt/RAID1
6.做到这一步,RAID1已经正常工作了。但是,作为一个合格的管理员,应该立刻手动生成它的配置文件,以便以后拆除后,能直接在别的主机上使用,配置文件的默认路径为/etc/mdadm.conf
[root@server45 ~]# mdadm -D --scan >> /etc/mdadm.conf
7.如果你是第一次生成这个文件的话,那么可以用 > ,再创建的使用使用>> 追加。
ARRAY /dev/md2 level=raid1 num-devices=2 metadata=0.90 spares=1 UUID=00a18206:7bfc15e3:84bee688:c14adb2b ARRAY /dev/md3 level=raid5 num-devices=3 metadata=0.90 UUID=6d966840:efea23a8:a924a1db:2b17e710
这是/etc/mdadm.conf 里的信息,系统可以通过它来恢复RAID的运转。
8.当你需要拆除这个设备时,首先取消挂载,然后使用mdadm -S 命令来停止它的运作
[root@server45 ~]# umount /dev/md1 [root@server45 ~]# mdadm -S /dev/md1
9.如果想恢复它的运行,只需要再次扫描配置文件就可以了,很方便
[root@server45 ~]# mdadm -A --scan
##另外,如果你想开机就挂载它的话,只需要编辑/etc/fstab文件,或者向里面追加一条信息就可以了,如下:
vim /etc/fstab /dev/md3 /mnt/RAID3 ext2 defaults 0 0 ##再最后面加一条
RAID10篇:
RAID10的实现方法是,按先组建RAID1后组建RAID0的顺序,将RAID1与RAID0组建为RAID10,但是需要注意的是RAID1属于镜像卷,也就是说两个1GB的硬盘组成的RAID1容量大小依然为1GB,而同样情况下RAID0为2GB。所以,如果你使用1GB的RAID1和2GB的RAID0的话,组建后的RAID10会降为1GB的大小。
1.按上面RAID1篇的方法再创建两个1GB大小的分区,ID选好后,重读分区表
2.使用mdadm命令组建RAID0 假设你的分区为 /dev/sda9 /dev/sda10
mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda9 /dev/sda10
3.格式化/dev/md0 为ext3文件类型
4.组建RAID10
mdadm -C /dev/md10 -a yes -l 10 -n 2 /dev/md1 /dev/md0
5.创建挂载,并挂载
mkdir /mnt/RAID10 mount /dev/md10 /mnt/RAID10
6.生成配置文件
[root@server45 ~]# mdadm -D --scan >> /etc/mdadm.conf
##现在你可以使用mdadm -D 来查看你刚建立的RAID10了!下面是我实验配的RAID10
[root@server45 ~]# mdadm -D /dev/md10 /dev/md10: Version : 0.90 Creation Time : Sat Jul 30 11:20:57 2011 Raid Level : raid10 Array Size : 987776 (964.79 MiB 1011.48 MB) Used Dev Size : 987776 (964.79 MiB 1011.48 MB) Raid Devices : 2 Total Devices : 2 Preferred Minor : 10 Persistence : Superblock is persistent Update Time : Sat Jul 30 12:10:11 2011 State : clean Active Devices : 2 Working Devices : 2 Failed Devices : 0 Spare Devices : 0 Layout : near=2 Chunk Size : 64K UUID : ea103b37:a3b16c6e:6b563fa7:4294923d Events : 0.2 Number Major Minor RaidDevice State 0 9 0 0 active sync /dev/md0 1 9 2 1 active sync /dev/md2
题外话:马哥说:RAID是企业面试Linux管理员的重点!一定要掌握RAID的概念,和实现方法,虽然现在没有条件玩到硬件,但是也要玩转软RAID!