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
目录
相关文章
|
存储 安全 数据库
|
Java 项目管理 数据库
基于springboot私人健身与教练预约管理系统
基于springboot私人健身与教练预约管理系统
|
存储 编解码 数据库
基于人脸识别的智能门锁系统
基于人脸识别的智能门锁系统
372 0
|
存储 安全
RAID磁盘阵列的原理
【4月更文挑战第4天】RAID是冗余磁盘阵列技术,通过组合多块磁盘提升性能和数据安全性。常见类型包括RAID 0(条带化,无冗余,高风险),RAID 1(镜像,数据冗余,磁盘利用率50%),RAID 5(奇偶校验,允许1块硬盘故障,空间利用率 `(n-1)/n`)。RAID 10是RAID 1和0的组合,提供高可用性和性能。RAID可使用软硬件实现,云服务常处理硬件问题。处理硬盘失效有热备(自动替换)和热插拔(更换失效硬盘)两种方式。
398 2
|
Kubernetes Java API
Kubernetes官方java客户端之六:OpenAPI基本操作
kubernetes官方java客户端的第二个基本能力:基于OpenAPI的功能接口
1001 0
Kubernetes官方java客户端之六:OpenAPI基本操作
|
JavaScript Java 测试技术
基于SpringBoot+Vue的在线音乐网站的详细设计和实现(源码+lw+部署文档+讲解等)
基于SpringBoot+Vue的在线音乐网站的详细设计和实现(源码+lw+部署文档+讲解等)
219 5
|
存储 缓存 网络协议
CDN+COS搭建图床超详细步骤
作为一名经常写博客的博主,图片的上传十分头疼,经常需要手动上传到指定的服务器里面,十分的麻烦,能不能有一种方案支持一次写完,永久部署呢,当然有的,这就是我们今天的主角图床,我们采用CDN+COS+Pic-go app上传图片,对于一张图片只需要快捷键即可完成上传,接下来我们来了解一下如何部署,正文即将开始~~...
610 0
CDN+COS搭建图床超详细步骤
|
SQL 分布式计算 大数据
面经:Impala实时查询引擎原理与性能调优
【4月更文挑战第11天】Apache Impala是高性能的大数据查询引擎,常在面试中被关注。本文分享了Impala的面试重点:架构(Catalog Service、Statestore、Impalad)、查询流程、SQL特性、性能调优及与其他引擎的对比。理解其工作原理、SQL使用和调优策略,对于面试和实际工作都至关重要。通过示例和知识点详解,助你提升对Impala的掌握,自信应对技术考察。
651 3
|
Windows
HEU KMS Activator
HEU KMS Activator,简洁高效的全能KMS/OEM激活工具,适用所有Windows, Office版本,无需联网即可一键激活,支持UEFI的KMS激活工具。KMS服务是微软对Windows, Office等产品的批量许可服务,利用KMS可以激活局域网内的产品。该工具利用KMS机制在系统搭建KMS服务器,从而实现在线或离线激活。
315 0
|
机器学习/深度学习 人工智能 安全
SentinelOne监测中隔离的文件,人工如何取消隔离
SentinelOne 的 Agent 在终端设备上实时监测系统的活动,包括文件操作、网络通信、内存访问等, SentinelOne 使用人工智能和机器学习技术对监测到的活动进行行为分析,识别潜在的威胁,包括已知的恶意软件和未知的零日攻击。 基于行为分析和实时监测,SentinelOne 快速识别出可能的威胁,并进行准确的威胁分类,包括病毒、勒索软件、恶意脚本等。 SentinelOne 可以自动采取响应措施,如隔离受感染的设备、终止恶意进程、删除恶意文件等,以尽快减轻威胁带来的影响。当技术人员发现隔离的文件没有危害时,可以手动隔离。文章阐述了怎么手动撤销的过程。
1367 0
SentinelOne监测中隔离的文件,人工如何取消隔离