关于软raid的实现及常见问题

RAID概念

  • 磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。 磁盘阵列是由很多价格较便宜的磁盘,以硬件(RAID卡)或软件(MDADM)形式组合成一个容量巨大的磁盘组,利用多个磁盘组合在一起,提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。 磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中
  • 关于软raid的实现及常见问题_第1张图片
  • 为什么要用RAID
  • RAID(Redundant Arrays of Independent Disks,磁盘阵列):把相同的数据存储在多个硬盘的不同的地方的方法
  • 通过RAID可以提高磁盘I/O能力(磁盘并行读写)以及提高耐用性(磁盘冗余)。
  • RAID级别:多种磁盘组织在一起的工作方式有所不同
软件 RAID 和硬件 RAID   
  • 软件 RAID 的性能较低,因为其使用主机的资源。 需要加载 RAID 软件以从软件 RAID 卷中读取数据。在加载 RAID 软件前,操作系统需要引导起来才能加载 RAID 软件。在软件 RAID 中无需物理硬件。零成本投资。
  • 硬件 RAID 的性能较高。他们采用 PCI Express 卡物理地提供有专用的 RAID 控制器。它不会使用主机资源。他们有 NVRAM 用于缓存的读取和写入。缓存用于 RAID 重建时,即使出现电源故障,它会使用后备的电池电源保持缓存。对于大规模使用是非常昂贵的投资。
实现方式
  • 外接式磁盘阵列:通过扩展卡提供适配能力
  • 内接式磁盘阵列:主板集成RAID控制器
  • Software RAID:在软件层面实现RAID
 RAID级别
  • RAID 0:Data Stripping数据分条技术
  • RAID 1:磁盘镜像
  • RAID 2:带海明码校验
  • RAID 3:带奇偶校验码的并行传送
  • RAID 4:带奇偶校验码的独立磁盘结构
  • RAID 5:分布式奇偶校验的独立磁盘结构
  • RAID 10:高可靠性与高效磁盘结构
  • RAID 01:RAID0和RAID1技术结合起来
  • RAID 的两个关键目标是提高数据可靠性和 I/O 性能。

    RAID 中主要有三个关键概念和技术:镜像( Mirroring )、数据条带( Data Stripping )和数据校验( Data parity )。
  • 1.镜像:
    • 镜像是一种冗余技术,为磁盘提供保护功能,防止磁盘发生故障而造成数据丢失。
  •  2.数据条带:
    • 数据条带技术将数据以块的方式分布存储在多个磁盘中,从而可以对数据进行并发处理。这样写入和读取数据就可以在多个磁盘上同时进行,并发产生非常高的聚合 I/O ,有效提高了整体 I/O 性能,而且具有良好的线性扩展性。
  • 3.数据校验
    • 数据校验是一种冗余技术,它用校验数据来提供数据的安全,可以检测数据错误,并在能力允许的前提下进行数据重构。
RAID 主要优势有如下几点
  • (1) 大容量
    • 这是 RAID 的一个显然优势,它扩大了磁盘的容量,由多个磁盘组成的 RAID 系统具有海量的存储空间。现在单个磁盘的容量就可以到 1TB 以上,这样 RAID 的存储容量就可以达到 PB 级,大多数的存储需求都可以满足。一般来说, RAID 可用容量要小于所有成员磁盘的总容量。不同等级的 RAID 算法需要一定的冗余开销,具体容量开销与采用算法相关。如果已知 RAID 算法和容量,可以计算出 RAID 的可用容量。通常, RAID 容量利用率在 50% ~ 90% 之间。
  • (2) 高性能
    • RAID 的高性能受益于数据条带化技术。单个磁盘的 I/O 性能受到接口、带宽等计算机技术的限制,性能往往很有 限,容易成为系统性能的瓶颈。通过数据条带化, RAID 将数据 I/O 分散到各个成员磁盘上,从而获得比单个磁盘成倍增长的聚合 I/O 性能。
  • (3) 可靠性
    • 可用性和可靠性是 RAID 的另一个重要特征。从理论上讲,由多个磁盘组成的 RAID 系统在可靠性方面应该比单个磁盘要差。这里有个隐含假定:单个磁盘故障将导致整个 RAID 不可用。 RAID 采用镜像和数据校验等数据冗余技术,打破了这个假定。 镜像是最为原始的冗余技术,把某组磁盘驱动器上的数据完全复制到另一组磁盘驱动器上,保证总有数据副本可用。 比起镜像 50% 的冗余开销 ,数据校验要小很多,它利用校验冗余信息对数据进行校验和纠错。 RAID 冗余技术大幅提升数据可用性和可靠性,保证了若干磁盘出错时,不 会导致数据的丢失,不影响系统的连续运行。
  • (4) 可管理性
    • 实际上, RAID 是一种虚拟化技术,它对多个物理磁盘驱动器虚拟成一个大容量的逻辑驱动器。对于外部主机系统来说, RAID 是一个单一的、快速可靠的大容量磁盘驱动器。这样,用户就可以在这个虚拟驱动器上来组织和存储应用系统数据。 从用户应用角度看,可使存储系统简单易用,管理也很便利。 由于 RAID 内部完成了大量的存储管理工作,管理员只需要管理单个虚拟驱动器,可以节省大量的管理工作。 RAID 可以动态增减磁盘驱动器,可自动进行数据校验和数据重建,这些都可以 大大简化管理工作。
RAID几种常见的类型RAID几种常见的类型

   关于软raid的实现及常见问题_第2张图片

RAID-0 (条带化)

  • 条带 (strping),也是我们最早出现的RAID模式
  • 需磁盘数量:2块以上(大小最好相同),是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可.
  • 特点:成本低,可以提高整个磁盘的性能和吞吐量。RAID 0没有提供冗余或错误修复能力,速度快.
  • 任何一个磁盘的损坏将损坏全部数据;磁盘利用率为100%

RAID-1 (镜像化)

  • mirroring(镜像卷),需要磁盘两块以上
  • 原理:是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,(同步)
  • RAID 1 mirroring(镜像卷),至少需要两块硬盘,raid大小等于两个raid分区中最小的容量(最好将分区大小分为一样),数据有冗余,在存储时同时写入两块硬盘,实现了数据备份;
  • 磁盘利用率为50%,即2块100G的磁盘构成RAID1只能提供100G的可用空间。

RAID-5 (分布式奇偶校验)

  • 需要三块或以上硬盘,可以提供热备盘实现故障的恢复;只损坏一块,没有问题。但如果同时损坏两块磁盘,则数据将都会损坏。
  • 空间利用率: (n-1)/n   
  •  RAID-6( 双分布式奇偶校验磁盘)
  • RAID 6 和 RAID 5 相似但它有两个分布式奇偶校验。大多用在大数量的阵列中。我们最少需要4个驱动器,即使有2个驱动器发生故障,我们依然可以更换新的驱动器后重建数据。

RAID-10 (镜像+条带)

  •   RAID 10是将镜像和条带进行两级组合的RAID级别,第一级是RAID1镜像对,第二级为RAID 0。

创建软raid(基于V10-server-GFB-x86)

1、查看并确定需要配置的磁盘(如图所示,有3块1G的盘做测试)

关于软raid的实现及常见问题_第3张图片

  1. 使用系统自带mdadm创建raid1并有一个热备

[root@localhost ~]# mdadm -Cv /dev/md1 -a yes -l1 -n2 /dev/sdb /dev/sdc -x1 /dev/sdd

关于软raid的实现及常见问题_第4张图片

  1. 查看状态 cat /proc/mdstat
  2. 关于软raid的实现及常见问题_第5张图片

#相关信息,chunk大小及RAID等级说明,后面的两个U代表正常,若不是U则代表有误

  1. 使用工具查看状态 mdadm -D /dev/md1
  2. 关于软raid的实现及常见问题_第6张图片

[root@localhost 桌面]# mdadm -D /dev/md1

/dev/md1:   #RAID的设备文件名

           Version : 1.2

     Creation Time : Wed Dec  1 11:53:21 2021  #创建RAID的时间

        Raid Level : raid1   #RAID的等级

        Array Size : 1046528 (1022.00 MiB 1071.64 MB)  #整组RAID的可用量

     Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)  #每颗磁盘的可用容量

      Raid Devices : 2 #组成RAID的磁盘数量

     Total Devices : 3 #包括spare的总磁盘数

       Persistence : Superblock is persistent

       Update Time : Wed Dec  1 11:53:27 2021

             State : clean  #目前这个RAID的使用状态

    Active Devices : 2  #启动的设备数量

   Working Devices : 3  #目前使用于此RAID的设备数量

    Failed Devices : 0  #损坏的设备数量

     Spare Devices : 1  #预备磁盘的数量

Consistency Policy : resync

              Name : localhost.localdomain:1  (local to host localhost.localdomain)

              UUID : b30b8efc:5567d7d9:08a3b0b4:7ac8eccc

            Events : 17

    Number   Major   Minor   RaidDevice State

       0       8       16        0      active sync   /dev/sdb

       1       8       32        1      active sync   /dev/sdc

       2       8       48        -      spare   /dev/sdd

  1. 格式化并挂载使用
  2. 关于软raid的实现及常见问题_第7张图片

# mkfs.xfs /dev/md1          #格式化刚刚创建的RAID 1

# mkdir /test       #创建挂载点

# mount /dev/md1 /test       #挂载

# df -hT /test      #确认挂载,使用起来和普通文件系统没有区别

文件系统       类型  容量  已用  可用 已用% 挂载点

/dev/md1       xfs    1016M   40M   977M    4% /test

#将挂载信息写入/etc/fstab中进行开机自动挂载了,设备名可以是/dev/md1,也可以是设备的UUID。

# blkid /dev/md1     #查询该RAID 5的UUID

/dev/md1: UUID="34f71cfc-cf64-406e-bee6-fe364e15c2cb" BLOCK_SIZE="512" TYPE="xfs"

vim /etc/fstab   #打开/etc/fstab,写入下面内容

UUID=34f71cfc-cf64-406e-bee6-fe364e15c2cb /test xfs     defaults    0 0

#mount -a

常见问题

1、配置时报错

关于软raid的实现及常见问题_第8张图片

如提示:报错,md设备只能用md命名,正确的命名

2、更换坏盘(这里用命令模拟坏盘)

关于软raid的实现及常见问题_第9张图片

可以看到热备盘已经自动顶替故障盘

  1. 删除坏盘
  2. 关于软raid的实现及常见问题_第10张图片
  1. 添加新盘
  2. 关于软raid的实现及常见问题_第11张图片
  1. 删除raid
  1. 取消挂载
  2. 关于软raid的实现及常见问题_第12张图片
  1. 停止raid设备
  2. 关于软raid的实现及常见问题_第13张图片
  1. 清除磁盘中的raid标识
  1. 常用参数介绍

mdadm命令常见参数解释:

-A 激活磁盘阵列

-C 建立一个新阵列

-D 打印阵列设备的信息

-G 改变阵列大小或形态

-S 停止阵列 -r 移除设备

-l 设定磁盘阵列的级别

-n 指定阵列磁盘的数量

-x 指定阵列中备用盘的数量

-f 将设备状态定为故障

-a 添加设备到阵列

-v 显示详细信息软RAID

你可能感兴趣的:(raid)