RAID
RAID是英文Redundant Array of Independent Disks的缩写,中文简称为独立冗余磁盘阵列。简单的说,RAID是一种把多块独立的硬盘(物理硬盘)按不同的方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据备份技术。组成磁盘阵列的不同方式称为RAID级别(RAID Levels)。在用户看起来,组成的磁盘组就像是一个硬盘,用户可以对它进行分区,格式化等等。总之,对磁盘阵列的操作与单个硬盘一模一样。不同的是,磁盘阵列的存储速度要比单个硬盘高很多,而且可以提供自动数据备份。数据备份的功能是在用户数据一旦发生损坏后,利用备份信息可以使损坏数据得以恢复,从而保障了用户数据的安全性
通过把多个磁盘组织在一起作为一个逻辑卷提供磁盘跨越功能;
通过把数据分成多个数据块(Block)并行写入/读出多个磁盘以提高访问磁盘的速度;
通过镜像或校验操作提供容错能力;
RAID技术分为几种不同的等级,分别可以提供不同的速度,安全性和性价比。根据实际情况选择适当的RAID级别可以满足用户对存储系统可用性、性能和容量的要求。常用的RAID级别有以下几种:RAID0,RAID1,RAID4 RAID5 RAID6,RAID10,RAID01等。目前经常使用的是RAID5和RAID(1+0)。
RAID-0 :也叫条带卷,它代表了所有RAID级别中最高的存储性能。它把数据分块存储提高性能,所有也会影响它的冗余能力。
读写性能提升
可用空间:N*min(S1,S2,…)
无容错能力
最少磁盘数:2,2+
RAID-1:也称镜像卷,把同一数据分开存储到2个相同的磁盘里从而提高数据的冗余能力。
读性能提升、写略有下降
可用空间:1*nub(S1,S2…)
有容错能力
最少磁盘数:2,2+
RAID-4: RAID4即带奇偶校验码的独立磁盘结构,二块写入数据,一块写入校验码,校验码磁盘容易损坏,在独立访问阵列中,每个磁盘都是独立运转的,因此不同的I/O请求可以并行地满足
RAID-5:和RAID4类似,但它把校验码通过运算存储到各个磁盘上从而提升数据的冗余
读、写性能提升
可用空间:(N-1)*min(S1,S2…)
有容错能力:1块磁盘
最少磁盘:3,3+
RAID-6:是RAID-5的增强版,通过校验,让数据更加冗余安全,但写入较差
读、写性能提升
可用空间:(N-2)*min(S1,S2…)
有容错能力:2块磁盘
最少磁盘:4,4+
混合类型
RAID-10: Raid 10是一个Raid 0与Raid1的组合体,它是利用奇偶校验实现条带集镜像,所以它继承了Raid0的快速和Raid1的安全
读、写性能提升
可用空间:N*min(S1,S2,….)/2
有容错能力:每组镜像最多只能坏一块
最少磁盘数:4, 4+
RAID-01:
性能表现:读、写提升
冗余能力:有
空间利用率:1/2
至少需要4块盘
RAID-50:它具有RAID 5和RAID 0的共同特性。它由两组RAID 5磁盘组成(每组最少3个),每一组都使用了分布式奇偶位,而两组硬盘再组建成RAID 0,实现跨磁盘抽取数据。
性能表现:读、写提升
冗余能力:有
空间利用率:(n-2)/n
至少需要6块盘
RAID-7 可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式
JBOD:Just a Bunch Of Disks
功能:将多块磁盘的空间合并以个大的连续空间使用
可用空间:sum(S1,S2,…)
常用级别:RAID-0,RAID-1,RAID-5,RAID-10,RAID-50,JBOD
RAID实现方式:
硬件实现方式
软件实现方式
mdadm: 用于建设,管理和监控RAID阵列
语法
mdadm [mode] <raiddevice> [options] <component-devices>
模式:
创建:-C
-a {yes|no}:自动创建目标RAID设备的设备文件
–create或-C –help :查看创建帮助
–chunk= -c #:设置cunk大小
–level= -l #:设置RAID等级
–scan -s #扫描
–spare-devices= -x #:指明空闲盘的个数
–raid-devices= -n #:使用#个块设备来创建此RAID
显示: -D
–display或-D –hrlp:获取显示帮助
–stop -S
装配: -A
监控: -F
管理:
-f: 标记指定磁盘为损坏
-a: 添加磁盘
-r: 移除磁盘
做RAID卷时,磁盘分区要分为Linux raid autodetect 用fdisk /dev/[sh]d[a-z] 下 t该为fd分区
[root@Cloud /]#fdisk -l /dev/sdc #查看已经分为Linux raid autodetect分区 Disk /dev/sdc: 21.5 GB, 21474836480 bytes 255 heads, 63 sectors/track, 2610 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x47d02b82 Device Boot Start End Blocks Id System /dev/sdc1 1 654 5253223+ fd Linux raid autodetect #raid分区 /dev/sdc2 655 1308 5253255 fd Linux raid autodetect /dev/sdc3 1309 1962 5253255 fd Linux raid autodetect
创建RAID-5卷
[root@Cloud /]#mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sdc{1,2,3} /dev/sdb1 mdadm: /dev/sdc1 appears to be part of a raid array: level=raid5 devices=3 ctime=Mon Aug 1 22:54:30 2016 mdadm: /dev/sdc2 appears to be part of a raid array: level=raid5 devices=3 ctime=Mon Aug 1 22:54:30 2016 mdadm: /dev/sdc3 appears to be part of a raid array: level=raid5 devices=3 ctime=Mon Aug 1 22:54:30 2016 mdadm: /dev/sdb1 appears to contain an ext2fs file system size=1060256K mtime=Thu Jan 1 08:00:00 1970 mdadm: /dev/sdb1 appears to be part of a raid array: level=raid0 devices=2 ctime=Mon Aug 1 23:26:23 2016 Continue creating array? yes mdadm: Defaulting to version 1.2 metadata mdadm: array /dev/md0 started.
显示创建的RAID卷
[root@Cloud /]#mdadm -D /dev/md0 /dev/md0: Version : 1.2 Creation Time : Tue Aug 2 00:11:50 2016 Raid Level : raid5 #rai级别 Array Size : 10498048 (10.01 GiB 10.75 GB) Used Dev Size : 5249024 (5.01 GiB 5.38 GB) Raid Devices : 3 #raid存储设备 Total Devices : 4 #raid全部设备 Persistence : Superblock is persistent Update Time : Tue Aug 2 00:12:35 2016 State : clean, degraded, recovering Active Devices : 2 Working Devices : 4 Failed Devices : 0 Spare Devices : 2 Layout : left-symmetric Chunk Size : 512K #chunk大小 Rebuild Status : 45% complete Name : Cloud.GO:0 (local to host Cloud.GO) UUID : 39ef8aa5:5b789569:b425534d:a32cc64e Events : 8 Number Major Minor RaidDevice State 0 8 33 0 active sync /dev/sdc1 1 8 34 1 active sync /dev/sdc2 4 8 35 2 spare rebuilding /dev/sdc3 3 8 17 - spare /dev/sdb1 #备用
模拟损坏磁盘
[root@Cloud /]#mdadm /dev/md0 -f /dev/sdc3 mdadm: set /dev/sdc3 faulty in /dev/md0
查看raid状态
[root@Cloud /]#cat /proc/mdstat Personalities : [raid6] [raid5] [raid4] [raid0] md0 : active raid5 sdc3[4](F) sdb1[3] sdc2[1] sdc1[0] 10498048 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] [======>..............] recovery = 30.8% (1621760/5249024) finish=1.0min speed=57920K/sec unused devices: <none>
[root@Cloud /]#mdadm -D /dev/md0 #查看raid信息 /dev/md0: Version : 1.2 Creation Time : Tue Aug 2 00:11:50 2016 Raid Level : raid5 Array Size : 10498048 (10.01 GiB 10.75 GB) Used Dev Size : 5249024 (5.01 GiB 5.38 GB) Raid Devices : 3 Total Devices : 4 Persistence : Superblock is persistent Update Time : Tue Aug 2 00:16:15 2016 State : clean Active Devices : 3 Working Devices : 3 Failed Devices : 1 Spare Devices : 0 Layout : left-symmetric Chunk Size : 512K Name : Cloud.GO:0 (local to host Cloud.GO) UUID : 39ef8aa5:5b789569:b425534d:a32cc64e Events : 37 Number Major Minor RaidDevice State 0 8 33 0 active sync /dev/sdc1 1 8 34 1 active sync /dev/sdc2 3 8 17 2 active sync /dev/sdb1 4 8 35 - faulty /dev/sdc3 #损坏磁盘
移除损坏磁盘
[root@Cloud /]#mdadm /dev/md0 -r /dev/sdc3 mdadm: hot removed /dev/sdc3 from /dev/md0
新增磁盘
[root@Cloud /]#mdadm /dev/md0 -a /dev/sdb2 mdadm: added /dev/sdb2 [root@Cloud /]#mdadm /dev/md0 -a /dev/sdc3 mdadm: added /dev/sdc3
[root@Cloud /]#mdadm -D /dev/md0 #显示 /dev/md0: Version : 1.2 Creation Time : Tue Aug 2 00:11:50 2016 Raid Level : raid5 Array Size : 10498048 (10.01 GiB 10.75 GB) Used Dev Size : 5249024 (5.01 GiB 5.38 GB) Raid Devices : 3 Total Devices : 5 Persistence : Superblock is persistent Update Time : Tue Aug 2 00:18:31 2016 State : clean Active Devices : 3 Working Devices : 5 Failed Devices : 0 Spare Devices : 2 Layout : left-symmetric Chunk Size : 512K Name : Cloud.GO:0 (local to host Cloud.GO) UUID : 39ef8aa5:5b789569:b425534d:a32cc64e Events : 40 Number Major Minor RaidDevice State 0 8 33 0 active sync /dev/sdc1 1 8 34 1 active sync /dev/sdc2 3 8 17 2 active sync /dev/sdb1 4 8 18 - spare /dev/sdb2 #新增的磁盘 5 8 35 - spare /dev/sdc3 #新增的磁盘
生成配置文件: 保存配置。
mdadm –D –s >> /etc/mdadm.conf
radi在挂载的时候尽量使用UUID或lebel挂载,因为raid卷的名字会自动更改!
停止raid服务
[root@Cloud /]#mdadm -S /dev/md0 #停止raid服务 mdadm: stopped /dev/md0 [root@Cloud /]#cat /proc/mdstat #查无raid状态 Personalities : [raid6] [raid5] [raid4] [raid0] unused devices: <none>
激活raid服务
[root@Cloud /]#cat /proc/mdstat #激活raid服务 Personalities : [raid6] [raid5] [raid4] [raid0] unused devices: <none> [root@Cloud /]#mdadm -A -s /dev/md0 mdadm: /dev/md0 has been started with 3 drives and 1 spare. [root@Cloud /]#cat /proc/mdstat #显示raid5活跃 Personalities : [raid6] [raid5] [raid4] [raid0] md0 : active raid5 sdc1[0] sdb1[3](S) sdc3[4] sdc2[1] 10498048 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused devices: <none>
彻底删除raid卷
[root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdc1#删除成员 [root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdc2#删除成员 [root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdc3#删除成员 [root@Cloud /MYDATA]#mdadm --zero-superblock /dev/sdb2#删除成员 [root@Cloud /MYDATA]#rm -fr /etc/mdadm.conf #删除配置文件
原创文章,作者:ladsdm,如若转载,请注明出处:http://www.178linux.com/44370