RAID介绍:多个磁盘合成一个“阵列”来提供更好的读写性能和冗余;
RAID-0:条带
RAID-0最少需要两块硬盘,比方一个100M大小的数据内容来存放时,是将50M存放在A硬盘,另外50M存放在B硬盘;当然这样不管用户来读取数据内容和修改存放数据内容,因为两块硬盘,读和写都会比原来一块硬盘要快。短处是没有容错能力,也没有备份,坏一块硬盘因为数据在两个地方存放着,所以数据都会完蛋。
读,写性能提升;
可用空间:硬盘个数*硬盘最小空间
无容错能力
最少磁盘数:2,2+
RAID-1:镜像
RAID-1称之为镜像,就想照镜子一样,数据在两块硬盘上个存放一份;需要两块硬盘,读的能力从两块硬盘都可以读取,速度变快;写因为要同时写两份速度相对下降些;优点是一块硬盘出现故障,不影响另外一块硬盘的读写使用。
读性能提升,写性能略有下降
可用空间:1*硬盘最小空间
有冗余能力
最少磁盘数:2,2+
RAID-5:校验码
RAID-5是存放校验码,需要最少三块硬盘;先介绍下RAID-4,也是最少三块硬盘,两块硬盘A和B存放正常数据(0和1),一块硬盘存放数据的校验码x(异或性);比方硬盘A坏掉一块时,可根据存放校验码的硬盘和硬盘B推导出来硬盘A上的数据。那么这样缺点是存放校验码的硬盘却会经常坏掉;由此RAID-5就是将数据比方0,1,x,循环不同的放入三块硬盘中,而不是只单单将校验码放入第三块硬盘(三块硬盘循环放入)。这样也允许三块硬盘“随便”坏一块。
读,写性能提升
可用空间:(硬盘数量-1)*硬盘最小空间
有容错能力;允许坏掉1块硬盘
最少磁盘数:3,3+
RAID-6:类似RAID-5
两块硬盘存放校验码
RAID-10:(先做RAID-1镜像,在做RAID-0)
读,写性能提升
可用空间:硬盘数量*硬盘最小空间/2
有容错能力,每组镜像最多只能坏一块
最小磁盘数:4,4+
RAID-01
RAID-50
JBOD:将多块磁盘的空间合并一个大的连续空间使用
硬RAID:主板集成RAID控制器,安装OS前在BIOS里配置
Centos 6上的软件RAID的实现:
结合内核中的md
mdadm:模式化的工具
命令的语法格式:mdadm [模式] RAID设备 [选项] 成员设备
模式:
创建:-C: -n #:使用#个块设备来创建此RAID; -l:创建的RAID级别
-a {yes|no}:自动创建目标RAID设备的设备文件;-c:指定块大小;-x:指明空闲盘的个数
装配:-A
监控:-F
管理:-f标记指定磁盘为损坏,-r移除磁盘,-a添加磁盘
RAID设备:/dev/md#
成员设备:任意块设备(单独硬盘,不同磁盘的分区)
Centos 6例子:fdisk /dev/sda 先创建分区,并使用t命令设置型号fd!
partx -a /dev/sda 内存同步分区信息
mdadm -C /dev/md0 -a yes -n 3 -x 1 -l 5 /dev/sda{7,8,9,10} 创建RAID5
cat /proc/mdstat 查看md信息 可使用which -n1刷新查看
mkfs.ext4 /dev/md0 格式化创建文件系统
mkdir /mydata mount /dev/md0 /mydata 挂载到目录
df -lh
mdadm -D /dev/md0 查看RAID详细信息
mdadm -f /dev/md0 -f /dev/sda7 “有意”破坏一张硬盘
mdadm /dev/md0 -a添加-r删除 /dev/sda7
生成配置文件:mdadm –D –s >> /etc/mdadm.conf
停止服务:mdadm –S /dev/md0
激活:mdadm –A –s /dev/md0 激活
即使硬盘可以做RAID,但数据也要及时做备份