RAID: Redundant Arrays of Inexpensive Disks 容错式廉价磁盘阵列
常见的几种模式:
RAID-0 (等量模式, stripe):效能最佳 需要自行承担数据损毁的风险,只要有任何一个磁盘损坏,在RAID上面的所有数据都会无法读取。
RAID-1 (映射模式, mirror):完整备份 让同一份数据,完整的保存在两个磁盘上,需要相同的磁盘容量的,最好是一模一样的磁盘!如果是不同容量的磁盘组成,那么总容量将以最小的那一个磁盘为主。
RAID-5:效能与数据备份的均衡 至少需要三个以上的磁碟才能够组成这种类型的磁盘阵列
类型:
硬件磁盘阵列 (hardware RAID): 透过磁盘阵列卡来达成阵列的目的。 磁盘阵列卡上面有一块专门的芯片在处理 RAID 的任务,因此在效能方面会比较好。在很多任务 (例如 RAID 5 的同位检查码计算) 磁盘阵列并不会重复消耗原本系统的 I/O 汇流排,理论上效能会较好。硬件磁盘阵列在 Linux 底下看起来就是一颗实际的磁盘,因此硬件磁盘阵列的装置档名为
/dev/sd[a-p] ,因为使用到 SCSI 的模块之故。
软件磁盘阵列(software RAID): 主要是透过软件来模拟阵列的任务, 会损耗较多的系统资源。软件磁盘阵列则是系统模拟的,因此使用的设备文件名是系统的设备文件, 文件名为
/dev/md0, /dev/md1...
在硬RAID中,RAID0的成员是以整个硬盘为单位
在软RAID中,RAID的成员是整个硬盘或分区
在Linux中,软RAID是通mdadm来创建和管理的,mdadm 是一个专用创建和管理RAID的软件,在Linux中,大多发行版本已经默认安装,mdadm能创建任何级别的软RAID;
创建RAID
第一种方法:
用mdadm 通过-C或--create 参数来创建RAID。这种方法 ,是把RAID信息写到每个RAID成员的 superblocks(超级块)中,在每个RAID成员的超级块中,都会记录RAID的级别、成员、RAID的UUID等…… 这种方法把RAID的信息记录在各个成员的 superblocks(超级块)中。这种方法对于重装系统或系统发生灾难
来说,有利于现有RAID的恢复;这种方法是最常用的
如何清除一个RAID成员的超级块存储存的RAID信息? -->; # mdadm --zero-superblock RAID成员
第二种方法:
用mdadm 通过-B或--build 参数来创建RAID。这种方法并不把RAID的信息写入RAID成员的 superblocks(超级块中),所以我们无法通过查看RAID成员信息来获得RAID的级别,以及RAID的成员等;这种方法对于重装系统或系统发生灾难来来说,不利于现有RAID的恢复;
# mdadm --
create --a
uto=yes
/dev/md[0-9] --
raid-devices=N --
level=[015] --
spare-devices=N /dev/sdx /dev/hdx...
# mdadm -C -a yes /dev/md0 -n 3 -c 32 -l 5 -x 1 /dev/sda{5,6,7,8}
--
create :创建 RAID
-c :指定chunk_size ,默认为64K
--
auto=yes :自动创建软件磁盘阵列装置,亦即 /dev/md0, /dev/md1...
--
raid-devices=N :使用几个 (partition) 作为磁盘阵
--
spare-devices=N :使用几个分区作为备用 (spare) 装置
--
level=[015] :配置这组磁盘阵列的等级。建议只要用 0, 1, 5
eg: # mdadm --create --auto=yes /dev/md0 --
level=5 --raid-devices=3 --spare-devices=1 /dev/sda{5,6,7,8}
# mdadm -C -a yes /dev/md0 -l 5 -n 3 -x 1 /dev/sda{5,6,7,8}
添加删除磁盘
# mdadm --manage /dev/md[0-9] [--add 装置] [--remove 装置] [--fail 装置]
--a
dd :会将后面的装置加入到这个 md 中 -->; �Ca eg: mdadm -a /dev/md0 /dev/sda5
--
remove :会将后面的装置由这个 md 中移除 -->; -r eg: mdadm -r /dev/md0 /dev/sda5
--
fail :会将后面的装置配置成为出错的状态 -->; -f eg: mdadm -f /dev/md0 /dev/sda5
RAID管理工具一些常用参数
# mdadm 参数 [RAID设备] [RAID成员]
-
A 或 --assemble 激活一个RAID;
-
S 和--stop 停止正在运行的设备;
-
s 或 --scan 扫描RAID设备;
-
D 或 --detail 查看RAID的详细信息;
--
examine 查看RAID成员的详细信息;
--examine /dev/sdb 是查看其中一块硬盘的RAID信息,这个很有用。比如你忘记了RAID的成员和UUID,想恢复现有的RAID,就要用这个来查看
eg: # mdadm --examine /dev/sdb5