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!