RAID 磁盘阵列学习资料

简介: RAID 磁盘阵列学习资料

什么是快(R)乐(A)星(I)球(D)

磁盘阵列Redundant Arrays of Independent DisksRAID),有数块独立磁盘构成具有冗余能力的阵列之意

RAID 和 LVM 的区别

RAID 分为两种

  • 硬 RAID
  • 需要 RAID 卡,插在主板的 PCIE 插槽上
  • 控制器在 RAID 卡上,不消耗主机资源
  • 分为带电池和不带电池
  • 发生意外断电的情况下,带电池的 RAID 卡能继续给 RAID 卡供电一段时间,能有效的保护数据
  • 软 RAID
  • 通过操作系统工具实现,比如 Liunx的 mdadm 命令
  • 会消耗主机资源

VM是 Logical Volume Manager逻辑卷管理)的简写,它是 Linux 环境下对磁盘分区进行管理的一种机制,可以对文件系统做伸缩扩容

RAID 除了 RAID 0 以外,其他级别都是有数据冗余的功能,不同级别下的 RAID 可以坏掉几块硬盘也不会影响数据,不过在替换磁盘后,RAID 之间的数据同步过程中也会影响磁盘的速率


LVM 没有数据冗余的功能,并且 LVM 是可以简历在 RAID 0 之上的,是属于系统软件层面的管理工具,可以将一大块容量分割给不同的文件系统

RAID 等级

百度百科 - RAID

目前主流的 RAID 级别为 RAID 0,RAID 1,RAID 5,RAID 10(跟我读,RAID 一零,不是RAID 十

RAID 0

  • 又称 条带集
  • 将数据分割成不同条带(Stripe)分散写入到所有的硬盘中同时进行读写
  • 最少需要两块磁盘
  • 读写速率 100 * <磁盘数量>
  • 没有数据冗余,一块盘都不能坏
  • 一般只用在不需要数据安全的情况下,只是需要加快磁盘的速率

RAID 1

  • 把一个磁盘的数据镜像到另一个闲置的磁盘上
  • 最少两块磁盘,磁盘数量需要是偶数
  • 最好是磁盘容量一致,否则是安装容量最小的来计算
  • 使用率:50%
  • 读写速率一般,但是可以容错

RAID 5

  • 又称 奇偶校验条带集
  • 将当前磁盘的奇偶校验码存储在其他磁盘上
  • 最少三块磁盘
  • 利用率:<磁盘数量> - 1
  • 允许有一块硬盘坏了(多了,奇偶检验码就缺了)
  • 读速率快,写速率一般,可以容错

RAID 10

跟我读,RAID 一零,不是RAID 十

  • 其实就是将 RAID 1 和 RAID 0 结合起来使用
  • 最少四块磁盘
  • 利用率:50%
  • 允许坏一半的磁盘,前提是不在一个组
  • 数据安全性更好,就是成本比较高,成本有限的情况下,可以选择 RAID 5

硬件 RAID 卡需要在安装系统之前就完成,大致的思路是进入 BIOS 或者主板提示的按键进入 RAID 的设置,按照 RAID 卡可用的等级来设置

为什么要安装系统之前?

因为 RAID 阵列在创建的时候会删除磁盘上的所有数据

Linux 软 RAID

软 RAID 一般不太会去使用,一般服务器都是用的硬 RAID

输入 mdadm 如果返回 -bash: mdadm: command not found ,表示没有安装

centos 只需要使用下面的方式安装就行

yum install -y mdadm

常用参数

短格式 长格式 作用
-C --create 创建一个新阵列组
-l --level= 指定 RAID 等级
(0、1、4、5、6、10)
-x --spare-devices= 指定热备盘数量
(当有磁盘损坏的情况下,热备盘会上位做数据同步,成为阵列的一部分)
-r --remove 移除阵列中故障的磁盘
-f --fail 将列出的磁盘标记为故障
(模拟阵列损坏的时候可以用)
-S --stop 停用阵列,释放所有资源。
-n --raid-devices= 指定阵列中活动设备的数量
-Q --query 检查设备是否是md设备
-D --detail 打印一个或多个md设备的详细信息。

创建 RAID 阵列

创建一个 RAID 5 阵列,并且设置一块热备盘

先准备四块空磁盘

NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0  100G  0 disk
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   99G  0 part
  ├─centos-root 253:0    0   95G  0 lvm  /
  └─centos-swap 253:1    0    4G  0 lvm  [SWAP]
sdb               8:16   0   20G  0 disk
sdc               8:32   0   20G  0 disk
sdd               8:48   0   20G  0 disk
sde               8:64   0   20G  0 disk
sr0              11:0    1 1024M  0 rom

注意,-l-n-x 参数后面直接跟数字,参数和值之间不要有空格

mdadm -C /dev/md/data_md -l5 -n3 -x1 /dev/sd{b,c,d,e}

查看 md 设备

mdadm -Q /dev/md/data_md

可以看到,容量是 40G ,级别为 RAID 5,三个盘设备,有一个是闲置的(热备盘)

RAID 在创建的时候会有点慢,一开始可能看到的是两个闲置设备,只需要多等一会,再看看

/dev/md/data_md: 39.97GiB raid5 3 devices, 1 spare. Use mdadm --detail for more detail.

查看 md 设备详细信息

mdadm -D /dev/md/data_md

RAID 在建过程中,会有 Rebuild Status 信息

/dev/md/data_md:
           Version : 1.2
     Creation Time : Sun Mar 13 15:47:35 2022
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent
       Update Time : Sun Mar 13 15:47:56 2022
             State : clean, degraded, recovering
    Active Devices : 2
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 2
            Layout : left-symmetric
        Chunk Size : 512K
Consistency Policy : resync
    Rebuild Status : 28% complete   # 完成了 28%
              Name : localhost.localdomain:data_md  (local to host localhost.localdomain)
              UUID : 9aec55e1:6cd2da33:209861f6:4ad7c4b6
            Events : 5
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      spare rebuilding   /dev/sdd
       3       8       64        -      spare   /dev/sde

创建完成后,就不会再有 Rebuild Status 信息了

/dev/md/data_md:
           Version : 1.2
     Creation Time : Sun Mar 13 15:47:35 2022
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 4
       Persistence : Superblock is persistent
       Update Time : Sun Mar 13 15:48:50 2022
             State : clean
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1
            Layout : left-symmetric
        Chunk Size : 512K
Consistency Policy : resync
              Name : localhost.localdomain:data_md  (local to host localhost.localdomain)
              UUID : 9aec55e1:6cd2da33:209861f6:4ad7c4b6
            Events : 18
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc
       4       8       48        2      active sync   /dev/sdd
       3       8       64        -      spare   /dev/sde
[root@localhost ~]# mdadm -Q /dev/md/data_md
/dev/md/data_md: 39.97GiB raid5 3 devices, 1 spare. Use mdadm --detail for more detail.

使用 RAID 阵列

创建文件系统

mkfs.ext4 /dev/md/data_md

创建目录并挂载

mkdir /test_md
mount /dev/md/data_md /test_md

写入一些文件,然后破坏整列后,看看热备效果以及数据是否完整

for i in $(seq 1 10);do mkdir /test_md/test_$i;echo "this is no.$i" > /test_md/test_$i/test.log;done
for i in $(seq 1 10);do cat /test_md/test_$i/test.log;done

正常情况输出如下内容

this is no.1
this is no.2
this is no.3
this is no.4
this is no.5
this is no.6
this is no.7
this is no.8
this is no.9
this is no.10

模拟磁盘坏了

前面的详细信息里面咱看到 /dev/sde 是热备盘,咱不可能去破坏热备盘,那没意思

mdadm /dev/md/data_md -f /dev/sdc -r /dev/sdc

再次查看 md 详细信息

mdadm -D /dev/md/data_md

可以看到,/dev/sde 取代了 /dev/sdc

/dev/md/data_md:
           Version : 1.2
     Creation Time : Sun Mar 13 15:47:35 2022
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 3
       Persistence : Superblock is persistent
       Update Time : Sun Mar 13 16:02:47 2022
             State : clean, degraded, recovering
    Active Devices : 2
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 1
            Layout : left-symmetric
        Chunk Size : 512K
Consistency Policy : resync
    Rebuild Status : 9% complete    # 完成了 9%
              Name : localhost.localdomain:data_md  (local to host localhost.localdomain)
              UUID : 9aec55e1:6cd2da33:209861f6:4ad7c4b6
            Events : 22
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       3       8       64        1      spare rebuilding   /dev/sde   # /dev/sde 取代了 /dev/sdc
       4       8       48        2      active sync   /dev/sdd

热备恢复的过程中,也可以查看数据

for i in $(seq 1 10);do cat /test_md/test_$i/test.log;done

依旧返回之前一样的信息

this is no.1
this is no.2
this is no.3
this is no.4
this is no.5
this is no.6
this is no.7
this is no.8
this is no.9
this is no.10

再次查看 md 详细信息

mdadm -D /dev/md/data_md

耗费了大约四分钟的样子

/dev/md/data_md:
           Version : 1.2
     Creation Time : Sun Mar 13 15:47:35 2022
        Raid Level : raid5
        Array Size : 41908224 (39.97 GiB 42.91 GB)
     Used Dev Size : 20954112 (19.98 GiB 21.46 GB)
      Raid Devices : 3
     Total Devices : 3
       Persistence : Superblock is persistent
       Update Time : Sun Mar 13 16:06:22 2022
             State : clean
    Active Devices : 3
   Working Devices : 3
    Failed Devices : 0
     Spare Devices : 0
            Layout : left-symmetric
        Chunk Size : 512K
Consistency Policy : resync
              Name : localhost.localdomain:data_md  (local to host localhost.localdomain)
              UUID : 9aec55e1:6cd2da33:209861f6:4ad7c4b6
            Events : 38
    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       3       8       64        1      active sync   /dev/sde
       4       8       48        2      active sync   /dev/sdd
目录
相关文章
|
1月前
RAID1和RAID5的搭建
RAID1和RAID5的搭建
|
1月前
|
存储 安全
RAID磁盘阵列的原理
【4月更文挑战第4天】RAID是冗余磁盘阵列技术,通过组合多块磁盘提升性能和数据安全性。常见类型包括RAID 0(条带化,无冗余,高风险),RAID 1(镜像,数据冗余,磁盘利用率50%),RAID 5(奇偶校验,允许1块硬盘故障,空间利用率 `(n-1)/n`)。RAID 10是RAID 1和0的组合,提供高可用性和性能。RAID可使用软硬件实现,云服务常处理硬件问题。处理硬盘失效有热备(自动替换)和热插拔(更换失效硬盘)两种方式。
44 2
|
9月前
|
Linux
raid(磁盘阵列)
raid(磁盘阵列)
131 0
|
9月前
|
存储 缓存 安全
RAID磁盘阵列
RAID磁盘阵列
126 0
|
11月前
|
存储 算法 数据库
磁盘阵列 RAID
磁盘阵列 RAID
89 0
|
存储 安全 数据安全/隐私保护
RAID0 RAID1 RAID10 RAID5 各需几块盘才可组建
<p><span style="font-size:14px"><br></span></p> <p><span style="font-size:14px"><strong>RAID0 RAID1 RAID10 RAID5 各需几块盘才可组建</strong><br></span></p> <p></p> <p><span style="font-size:14px"><span
4247 0
|
存储 安全 Linux
RAID
RAID概念
|
存储 安全 数据安全/隐私保护
磁盘阵列 关于Raid0,Raid1,Raid5,Raid10
磁盘阵列 关于Raid0,Raid1,Raid5,Raid10
2232 0