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,但数据也要及时做备份