RAID 磁盘阵列

Raid

磁盘阵列:Redundant Arrays of Independent Disks RAID,数块独立磁盘构成具有冗余能力的阵列

磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组:

  提高IO能力:

    磁盘并行读写

  提高耐用性:

    磁盘冗余来实现

  级别:多个磁盘组织在一起的工作方式有所不同;

RAID实现的方式:

    外接式磁盘阵列:通过扩展卡提供适配能力

    内接式RAID:主板集成RAID控制器

RAID的组成方式有很多级别

  级别:level 

  RAID-0:0,条带卷,strip;

  RAID-1:镜像卷,mirror;

  ..........

  RAID-5:

  RAID10:

  RAID01:

RAID-0:

RAID-0提高存储性能的原理是把连续的数据分散到多个磁盘上存取,这样,系统有数据请求就可以被多个磁盘并行的执行,每个磁盘执行属于它自己的那部分数据请求。这种数据上的并行操作可以充分利用总线的带宽,显著提高磁盘整体存取性能。

RAID-0的缺点是不提供数据冗余,因此一旦用户数据损坏,损坏的数据将无法恢复。只要其中一块硬盘出现问题就会导致整个数据的故障

 

读写性能提升;

可用空间:N*min(s1,s2,.....)

无容错能力

最少磁盘数:2,2+

 

RAID-1:

  

 

RAID-1通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。当原始数据繁忙时,可直接从镜像拷贝中读取数据,因此RAID-1可以提高读取性能。RAID-1是磁盘阵列中单位成本最高的,但提供了很高的数据安全性和可用性。当一个磁盘失效时,系统可以自动切换到镜像磁盘上读写,而不需要重组失效的数据。

 

读性能提升、写性能略有下降;

可用空间:1*min(s1,s2,.....)

有冗余能力

最少磁盘数:2,2+

RAID-5

 

RAID-5是RAID-0和RAID-1的折中方案。RAID-5具有和RAID-0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID-5的磁盘空间利用率要比RAID-1高,存储成本相对较低,是目前运用较多的一种解决方案。

读写性能提升RAID-5把数据和相对应的奇偶校验信息存储到组成RAID-5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上,其中任意N-1块磁盘上都存储完整的数据,也就是说有相当于一块磁盘容量的空间用于存储奇偶校验信息。因此当RAID-5的一个磁盘发生损坏后,不会影响数据的完整性,从而保证了数据安全。当损坏的磁盘被替换后,RAID还会自动利用剩下奇偶校验信息去重建此磁盘上的数据,来保持RAID-5的高可靠性。

 

可用空间:(N-1)*min(s1,s2,....)

有容错能力:1快磁盘

最少磁盘数:3,3+

RAID10:

 

 

Raid-10其实结构非常简单,首先创建2个独立的Raid-1,然后将这两个独立的Raid-1组成一个Raid-0,当往这个逻辑Raid中写数据时,数据被有序的写入两个Raid-1中。磁盘1和磁盘2组成一个Raid-1,磁盘3和磁盘4又组成另外一个Raid-1;这两个Raid-1组成了一个新的Raid0。如写在硬盘1上的数据1、3、5、7,写在硬盘2中则为数据1、3、5、7,硬盘中的数据为0、2、4、6,硬盘4中的数据则为0、2、4、6,因此数据在这四个硬盘上组合成Raid-10,且具有raid0和raid1两者的特性。
虽然Raid-10方案造成了50%的磁盘浪费,但是它提供了200%的速度和单磁盘损坏的数据安全性,并且当同时损坏的磁盘不在同一Raid-1中,就能保证数据安全性。假如磁盘中的某一块盘坏了,整个逻辑磁盘仍能正常工作的。
当我们需要恢复RAID-10中损坏的磁盘时,只需要更换新的硬盘,按照RAID-10的工作原理来进行数据恢复,恢复数据过程中系统仍能正常工作。原先的数据会同步恢复到更换的硬盘中。 

读、写性能提升

可用空间: N*min(s1,s2,....)/2

有容错能力,每组镜像最多只能坏一块

最少磁盘数:4,4+

 

mdadm:模式化的工具
命令的语法格式: mdadm [mode] <raiddevice> [options] <component-devices>
支持的RAID级别:LINEAR,RAID0, RAID1, RAID4,RAID5, RAID6, RAID10;

  模式:
    创建:-C
    装配:-A
    监控:-F
    管理:-f,-r,-a

<raiddevice>: /dev/md#
<component-devices>: 任意块设备

  -C:创建模式
    -n # : 使用#个块设备来创建此RAID;
    -l #:指明要创建RAID的级别;
    -a {yes|no} : 自动创建目标RAID设备的设备文件;
    -c CHUNK_SIZE:指明块大小;
    -x #:指明空闲盘的个数;

  例如:创建一个10G可用的空间的RAID5:

  -D:显示raid的详细信息:
    mdadm -D /dev/md#

  管理模式:
    -f:标记指定磁盘为损坏
    -a:添加磁盘
    -r:移除磁盘

  观察md的状态:
    cat /proc/mdstat

虚拟机创建RAID-10测试

 

 

 

虚拟机添加了4快硬盘

启动虚拟机

fdisk -l 查看现有的硬盘 ,可以看到新加的sbd,sdc,sdd,sde

 

mdadm -C /dev/md0  -n 4 -c 256  -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde

创建RAID10

cat /proc/mdstat

查看加载状态

mkfs.ext4 /dev/md0

格式化md0 为ext4文件格式

mkdir /home/mydata

创建挂载目录

blkid /dev/md0

查看文件类型和UUID

vim /etc/fstab

编辑fstab  开机自动挂载

 

posted @ 2022-04-25 15:54  goodbay说拜拜  阅读(13)  评论(0编辑  收藏  举报