RAID:Redundant Array of Independent Disks独立冗余磁盘阵列
人们可以忍受计算机宕机,所有应用程序重新启动或者硬件损坏,但是他们要求信息永远不会丢失。冗余磁盘阵列(Redundant Array of Independent Disks )技术是各种企业信息系统和
个人广泛使用的解决方案,一般的中高档服务器多使用硬件RAID控制器,但是由于硬件RAID控制器的价格昂贵,导致系统成本大大增加。而随着处理器的性能快速发展,使得软件RAID的解决
方法得到人们的重视。Linux系统中目前以MD (Multiple Devices)虚拟块设备的方式实现软件RAID
RAID是有raid级别的,叫RAID Level.级别仅仅是区别磁盘的不同组合方式。
linear:线性设备,能将磁盘串联成一个大硬盘,写满一个换另一个,任何一块硬盘坏掉都可能导致数据损坏
raid0:提供高性能,最少两块硬盘,多块硬盘同时被使用,如果有磁盘失效则会导致MD设备上的数据丢失,写数据的时候被RAID控制器把数据分成多个块儿,分别存到不同的设备上。
raid1:提供冗余备份,通常硬盘是2的N次方个,写性能略微下降,读性能大幅提高,每一个硬盘都存一份
raid4:技能容错又能提高性能,要3块以上硬盘,磁盘利用率大幅提高,假如3块儿硬盘,前 两块儿分别存储数据,第三块儿存前两块儿的校验码,这样允许有一块儿损坏。但数据存储
时需要校验,而其当磁盘有损坏时,速度将变慢,而且恢复时候很容易出错。
raid5:是对RAID4的改进,是将校验的数据循环存储,这样可以是数据更加安全。
raid6:是将RAID5中的校验码提供两块儿硬盘数据来存储校验码,这样提供了两块儿磁盘的 冗余,即允许两块儿磁盘同时出错。但这样对数据的恢复也是很困难的。
raid10:对数据先进行RAID1,然后RAID0,这种方法即提供了冗余,而且也提升了速度。
RAID设备的配置信息记录在/etc/mdadm.conf文件
实现raid创建用命令madam,格式为
madam [MODE] <raiddevice> [options] <component-devices>
[mode]可以省略默认是监控模式
<component-devices>子设备
<raiddevice> 指定设备/dev/md0 /dev/md1等
mode为模式,有-A:装配模式
-C:创建raid设备
-F:监控模式
-G:grow模式
-S:停掉某个raid设备
[optiongs]选项有:-v 显示详细信息
-n 用于指定创建当前磁盘设备要有几个磁盘或分区
-l raid的级别
-x 空闲几个磁盘设备,假如有盘坏了掉,空闲的顶上
请大家记住下面几个命令:
cat /proc/mdstat 查看raid设备状态
mdadm -D /dev/mdN N是数字,用于显示某个raid设备详细信息
mdadm -S /dev/mdN N是数字,用于停掉某个raid设备,停掉前必须先卸载。umount /dev/mdN
madam -A -s /dev/mdN N是数字,用于重新启动某raid
madam /dev/mdN -f /dev/sdc1 用于模拟搞坏一个硬盘
-r 用于移除某个坏的硬盘
-a 用于加入一个好的
mdadm -f 对RAID0没法标示成坏盘
下面给一个小例子做参考:
1,给sda硬盘分两个区sda8 sda9,并把分区类型弄成fd的。使用fdisk /dev/sda来做,这里就不细细列出了
2,partprobe /dev/sda
3,创建
madam -C /dev/md0 -a yes -n 2 -l 0 /dev/sda{8,9}
注:/dev/md0 是设备号
-a yes 是期望这个设备不在时,能自动创建
-n 2 是有2个磁盘设备
-l 0 是要创建raid 0 级别的
/dev/sda{8,9} 是把sda8 sda9 做成raid0
4,格式化
mke2fs -j /dev/md0
5,挂载
mkdir /share
mount /dev/md0 /share