RAID 磁盘阵列学习资料

2024-05-13 03:48

本文主要是介绍RAID 磁盘阵列学习资料,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

    • RAID 和 LVM 的区别
    • RAID 等级
      • RAID 0
      • RAID 1
      • RAID 5
      • RAID 10
    • Linux 软 RAID
      • 创建 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.2Creation Time : Sun Mar 13 15:47:35 2022Raid Level : raid5Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sun Mar 13 15:47:56 2022State : clean, degraded, recoveringActive Devices : 2Working Devices : 4Failed Devices : 0Spare Devices : 2Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncRebuild Status : 28% complete   # 完成了 28%Name : localhost.localdomain:data_md  (local to host localhost.localdomain)UUID : 9aec55e1:6cd2da33:209861f6:4ad7c4b6Events : 5Number   Major   Minor   RaidDevice State0       8       16        0      active sync   /dev/sdb1       8       32        1      active sync   /dev/sdc4       8       48        2      spare rebuilding   /dev/sdd3       8       64        -      spare   /dev/sde

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

/dev/md/data_md:Version : 1.2Creation Time : Sun Mar 13 15:47:35 2022Raid Level : raid5Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistentUpdate Time : Sun Mar 13 15:48:50 2022State : cleanActive Devices : 3Working Devices : 4Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:data_md  (local to host localhost.localdomain)UUID : 9aec55e1:6cd2da33:209861f6:4ad7c4b6Events : 18Number   Major   Minor   RaidDevice State0       8       16        0      active sync   /dev/sdb1       8       32        1      active sync   /dev/sdc4       8       48        2      active sync   /dev/sdd3       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.2Creation Time : Sun Mar 13 15:47:35 2022Raid Level : raid5Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 3Persistence : Superblock is persistentUpdate Time : Sun Mar 13 16:02:47 2022State : clean, degraded, recoveringActive Devices : 2Working Devices : 3Failed Devices : 0Spare Devices : 1Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncRebuild Status : 9% complete    # 完成了 9%Name : localhost.localdomain:data_md  (local to host localhost.localdomain)UUID : 9aec55e1:6cd2da33:209861f6:4ad7c4b6Events : 22Number   Major   Minor   RaidDevice State0       8       16        0      active sync   /dev/sdb3       8       64        1      spare rebuilding   /dev/sde   # /dev/sde 取代了 /dev/sdc4       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.2Creation Time : Sun Mar 13 15:47:35 2022Raid Level : raid5Array Size : 41908224 (39.97 GiB 42.91 GB)Used Dev Size : 20954112 (19.98 GiB 21.46 GB)Raid Devices : 3Total Devices : 3Persistence : Superblock is persistentUpdate Time : Sun Mar 13 16:06:22 2022State : cleanActive Devices : 3Working Devices : 3Failed Devices : 0Spare Devices : 0Layout : left-symmetricChunk Size : 512KConsistency Policy : resyncName : localhost.localdomain:data_md  (local to host localhost.localdomain)UUID : 9aec55e1:6cd2da33:209861f6:4ad7c4b6Events : 38Number   Major   Minor   RaidDevice State0       8       16        0      active sync   /dev/sdb3       8       64        1      active sync   /dev/sde4       8       48        2      active sync   /dev/sdd

数据是无价的,多做备份

这篇关于RAID 磁盘阵列学习资料的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/984598

相关文章

51单片机学习记录———定时器

文章目录 前言一、定时器介绍二、STC89C52定时器资源三、定时器框图四、定时器模式五、定时器相关寄存器六、定时器练习 前言 一个学习嵌入式的小白~ 有问题评论区或私信指出~ 提示:以下是本篇文章正文内容,下面案例可供参考 一、定时器介绍 定时器介绍:51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。 定时器作用: 1.用于计数系统,可

问题:第一次世界大战的起止时间是 #其他#学习方法#微信

问题:第一次世界大战的起止时间是 A.1913 ~1918 年 B.1913 ~1918 年 C.1914 ~1918 年 D.1914 ~1919 年 参考答案如图所示

[word] word设置上标快捷键 #学习方法#其他#媒体

word设置上标快捷键 办公中,少不了使用word,这个是大家必备的软件,今天给大家分享word设置上标快捷键,希望在办公中能帮到您! 1、添加上标 在录入一些公式,或者是化学产品时,需要添加上标内容,按下快捷键Ctrl+shift++就能将需要的内容设置为上标符号。 word设置上标快捷键的方法就是以上内容了,需要的小伙伴都可以试一试呢!

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

Javascript高级程序设计(第四版)--学习记录之变量、内存

原始值与引用值 原始值:简单的数据即基础数据类型,按值访问。 引用值:由多个值构成的对象即复杂数据类型,按引用访问。 动态属性 对于引用值而言,可以随时添加、修改和删除其属性和方法。 let person = new Object();person.name = 'Jason';person.age = 42;console.log(person.name,person.age);//'J

大学湖北中医药大学法医学试题及答案,分享几个实用搜题和学习工具 #微信#学习方法#职场发展

今天分享拥有拍照搜题、文字搜题、语音搜题、多重搜题等搜题模式,可以快速查找问题解析,加深对题目答案的理解。 1.快练题 这是一个网站 找题的网站海量题库,在线搜题,快速刷题~为您提供百万优质题库,直接搜索题库名称,支持多种刷题模式:顺序练习、语音听题、本地搜题、顺序阅读、模拟考试、组卷考试、赶快下载吧! 2.彩虹搜题 这是个老公众号了 支持手写输入,截图搜题,详细步骤,解题必备

《offer来了》第二章学习笔记

1.集合 Java四种集合:List、Queue、Set和Map 1.1.List:可重复 有序的Collection ArrayList: 基于数组实现,增删慢,查询快,线程不安全 Vector: 基于数组实现,增删慢,查询快,线程安全 LinkedList: 基于双向链实现,增删快,查询慢,线程不安全 1.2.Queue:队列 ArrayBlockingQueue:

硬件基础知识——自学习梳理

计算机存储分为闪存和永久性存储。 硬盘(永久存储)主要分为机械磁盘和固态硬盘。 机械磁盘主要靠磁颗粒的正负极方向来存储0或1,且机械磁盘没有使用寿命。 固态硬盘就有使用寿命了,大概支持30w次的读写操作。 闪存使用的是电容进行存储,断电数据就没了。 器件之间传输bit数据在总线上是一个一个传输的,因为通过电压传输(电流不稳定),但是电压属于电势能,所以可以叠加互相干扰,这也就是硬盘,U盘

人工智能机器学习算法总结神经网络算法(前向及反向传播)

1.定义,意义和优缺点 定义: 神经网络算法是一种模仿人类大脑神经元之间连接方式的机器学习算法。通过多层神经元的组合和激活函数的非线性转换,神经网络能够学习数据的特征和模式,实现对复杂数据的建模和预测。(我们可以借助人类的神经元模型来更好的帮助我们理解该算法的本质,不过这里需要说明的是,虽然名字是神经网络,并且结构等等也是借鉴了神经网络,但其原型以及算法本质上还和生物层面的神经网络运行原理存在

Python应用开发——30天学习Streamlit Python包进行APP的构建(9)

st.area_chart 显示区域图。 这是围绕 st.altair_chart 的语法糖。主要区别在于该命令使用数据自身的列和指数来计算图表的 Altair 规格。因此,在许多 "只需绘制此图 "的情况下,该命令更易于使用,但可定制性较差。 如果 st.area_chart 无法正确猜测数据规格,请尝试使用 st.altair_chart 指定所需的图表。 Function signa