当前位置: 首页 > news >正文

RAID存储技术概述

1 数据存储架构

数据存储架构是对数据存储方式、存储设备及相关组件的组织和规划,涵盖存储系统的布局、数据存储策略等,它明确数据如何存储、管理与访问,为数据的安全、高效使用提供支撑。

1.1 存储系统

  • 存储系统是计算机的重要组成部分之一,它是由计算机中一组存储设备、控制部件和管理信息调度的设备(硬件)和算法(软件)所构成的系统,所述存储设备主要用于保存程序和数据,存储设备是计算机存储系统的核心部件。
  • 存储系统负责对数据的读/写请求,也负责传输数据的任务。
  • 常见的存储系统主要由这三部分组成:主机系统、互连部件、存储设备。
    在这里插入图片描述

1.1.1 主机系统

  • 存储系统离不开一个主机系统,主机系统负责提出数据读/写请求,并完成操作系统和需要数据的应用程序之间的交互。
  • 从主机结构上来看,可以将主机系统的组成分为物理部件(硬件)和逻辑部件(软件)
  • 物理部件主要包括中央处理单元(CPU)、存储设备和输入/输出设备,逻辑部件主要包括操作系统、应用程序、文件系统、设备驱动以及数据库系统。
    在这里插入图片描述

1.1.2 互连部件

  • 在主机和存储设备之间存在着各种互连部件,包括连接主机与存储设备的互连物理部件,以及相应的互连逻辑部件
    • 互连物理部件:连接主机与存储设备的物理部件主要有总线、端口和线缆
    • 互连逻辑部件:互连的逻辑部件主要有通信协议,也可以将设备驱动程序包括进来。

1.1.3 存储设备

  • 存储设备包括负责数据存储的设备。
    如果从广义上来说,存储设备不仅包括可以保存数据的固态硬盘、机械硬盘(磁盘)、光盘、磁带等物理存储器,还应该包括专门为这些物理存储器服务的外部部件(如电源、风扇、固定机架等),以及相关协议、处理算法等存储逻辑部件。
  • 存储设备可以采用单盘(即单块磁盘)形式,也可以采用多盘形式。虽然如今单盘的容量能达到8TB、16TB甚至更高一些,但是这还是跟不上人们对数据需求快速增长的容量要求,也难以满足一些创新应用程序的发展需求,I/O性能相对较低。
  • 在一些复杂、较为严苛的使用环境下,单盘容易发生物理损坏导致数据丢失,单盘在存储数据会存在着一定的安全性隐患。

2 数据存储技术

2.1 数据冗余技术

  • 为解决单盘在某些应用场景下的不足,人们发明了RAID(Redundant Array of IndependentDisks,独立磁盘冗余阵列)技术,该项技术可简称为磁盘阵列,可以理解为通过组合多个磁盘提升性能与可靠性。
  • 冗余指系统的一些重要部件重复配置,当发生故障时冗余配置的部件可以介入并承担故障部件的工作,甚至可以对系统进行修复,有助于系统容错,保障业务持续稳定运行。
  • 数据冗余可增强数据可靠性,当部分数据丢失或损坏时能通过冗余数据恢复。还能提高数据访问性能,可从冗余副本并行读取数据。
  • RAID磁盘阵列的实质是将多个独立的硬盘通过RAID控制器(基于硬件和软件)结合成虚拟单个大容量的硬盘使用,从而实现比单盘更好的存储性能和更高的可靠性。
    在这里插入图片描述
  • 对于有大数据存储需求的家庭用户和中小型企业来说,RAID磁盘阵列是一种可靠和高效的存储扩容选择,在提高数据存取速度和提升存储容量的同时也提供了容错功能,采用汉明码校验或奇偶校验进行数据保护,确保数据的安全性,如果某一块硬盘出现问题,RAID磁盘阵列系统仍可以继续工作,不受损坏硬盘的影响。
  • 用新硬盘将损坏的硬盘置换后,利用磁盘阵列的同位检查的相关功能,还能将数据恢复到新硬盘。
  • 目前,RAID磁盘阵列技术的实现方式主要有两种:
    • 基于硬件的RAID磁盘阵列技术(俗称硬RAID)
      • 基于硬件的RAID磁盘阵列技术主要利用集成了微型处理器的硬件RAID适配卡。
      • 由于拥有独立的存储器和处理器,RAID适配卡可以独自计算奇偶校验信息并确定文件定位,减少对主机中央处理单元运算的依赖,从而有效提升了数据传输的速度,即基于硬件的RAID磁盘阵列能够独立于主机对存储子系统进行控制。
    • 基于软件的RAID磁盘阵列技术(俗称软RAID)
      • 基于软件的RAID磁盘阵列技术比较容易理解,将RAID磁盘技术整合到操作系统中,通过核心磁盘代码来实现RAID功能。
      • 一般来说,基于软件的RAID磁盘阵列比基于硬件的RAID磁盘阵列在工作性能上要弱一些,而在经济性要省钱一些。
      • 如今随着技术的不断发展及优化,两者的性能差距不再明显。
  • 根据RAID磁盘阵列对磁盘数据分布、校验方式及实施技术的不同,可以将磁盘阵列分为多个级别,分别为RAID 0、RAID 1、RAID 2、RAID3、RAID4、RAID 5、RAID 6、RAID 10。
  • 其中,RAID 0(条带化,提升性能但无冗余)、RAID1(镜像,有冗余)、RAID 3(一个冗余校验盘)、RAID5(分布式奇偶校验,兼顾性能与冗余)、RAID6级别较为常用。

2.1.1 RAID 0

  • RAID 0:( 无容错的条带化磁盘阵列)又称为Stripe或Striping
  • 磁盘阵列中组建最简单的一种形式,只需要至少两块硬盘即可
  • 通过智能磁盘控制器或使用操作系统的磁盘驱动程序以软件的方式(或其他类似技术)将多块硬盘并联起来形成一个虚拟的大硬盘,该大硬盘的可用容量等于所有硬盘的容量之和。
  • RAID 0采用数据分条(Data Stripping)技术来在可用硬盘上分布存放数据,即在RAID0系统中,数据被分段且分别存放在不同硬盘上,与单一的大容量硬盘相比,RAID 0的读写由几块硬盘同时并行处理,因而读写速度更快
  • 当有多个I/O请求且所需数据块分布在不同的硬盘上,那么便可以并行处理这些请求,则I/O请求的排队时间显著减少。
  • 条带化(Striping)是一种数据存储技术,通过将数据分散存储在多个磁盘上来提高读写性能,其工作原理为
  • 数据分块:数据被分割成小块(称为条带),这些条带被顺序写入到阵列中的每个磁盘34。
  • 并行读写:由于数据分布在多个磁盘上,系统可以同时从多个磁盘读取或写入数据,从而提高整体性能。
  • 优点:
    • 可以提升整个磁盘的性能,读写速度快,并且还能利用所有磁盘的存储空间。
    • RAID 0的硬盘空间使用率最高可达100%,因而其实现成本在所有磁盘阵列中是最低的。
  • 缺点:
    • 没有冗余和容错能力,一旦其中某一个磁盘出现故障,都会导致可能无法恢复完整的数据。
  • 应用场景:
    • 不适合存储重要数据的应用场合
    • 适合对可靠性要求不高、对读写性能要求高、非重要数据存储的应用场合。

2.1.2 RAID 0与LVM中VG的区别

RAID 0 和 LVM(Logical Volume Manager)中的卷组(VG)是两种不同的磁盘管理技术,它们在功能和应用场景上有显著的区别。

  • RAID 0
    • 定义:RAID 0,也称为条带化,是一种将数据分散存储在多个磁盘上的技术,以提高读写性能。
    • 数据冗余:RAID 0 不提供数据冗余,这意味着如果任何一个磁盘失败,所有数据都将丢失。
    • 性能:通过并行读写操作,RAID 0 可以显著提高数据访问速度。
    • 应用场景:适用于需要高性能但对数据安全性要求不高的场景,如视频编辑、图形设计等。
  • VG(卷组)
    • 定义:VG 是 LVM的一个组成部分,它将一个或多个物理卷(PV)组合成一个逻辑存储池。
    • 数据冗余:LVM本身不提供数据冗余,但可以在其上创建镜像(如使用LV 镜像)来实现冗余。
    • 性能:LVM 提供了逻辑卷的动态扩展和缩减,以及在线调整大小的能力,从而提高了磁盘管理的灵活性。
    • 应用场景:适用于需要灵活管理磁盘空间的场景,如服务器存储、数据库系统等。
  • RAID 0:侧重于提高存储性能,但不提供数据冗余,适合对性能要求高的场景。
  • VG(LVM):侧重于提高磁盘管理的灵活性,允许动态调整逻辑卷的大小,适合需要灵活存储管理的场景。

2.1.3 RAID 1

  • RAID 1加入了冗余能力,采用简单的镜像备份的方式实现数据的冗余,需要配置成对的独立硬盘,在两者上产生互为备份的数据,当将数据写在其中一个独立硬盘(不妨将该硬盘称为数据盘)上,同时该数据也会被同时写到相应的镜像盘上。
  • RAID 1中的数据盘和镜像盘是相对的,它们没有主从关系,可以相互镜像或恢复。
  • RAID 1的写入速度通常较慢,即比单块硬盘的写入速度要慢,这是因为RAID 1对两块硬盘的写入是并行的,并且在同时进行写入时还要比较两块硬盘中的数据。
  • 需要注意的是,在RAID 1系统中读数据,只能在性能较快的一块硬盘上进行而不会在两个硬盘上并行读取,这意味着当原始数据繁忙时,可以直接从速度更快的镜像拷贝中读取数据,所以RAID1在一定程度上可以提升读取性能。
    在这里插入图片描述
  • RAID 1在性能上没有RAID0那般好,但是总是保持一份完整的数据备份,是最为可靠且简单的一种阵列,当一个硬盘出现问题而失效时,系统可以自动切换到相应的镜像盘上进行读写操作。
  • 从RAID 1的磁盘阵列结构来看,镜像备份会占用一半的硬盘空间,硬盘空间使用率只有50%,故RAID1是磁盘阵列中单位成本最贵的。
  • 缺点:硬盘的利用率低,成本贵
  • 应用场景:主要用于存储重要数据,尤其适用于要求数据安全性很高且能够快速恢复被破坏数据的场合。

2.1.4 RAID 2

  • RAID 2是RAID 0的改良版,以汉明码(HammingCode)的方式将数据进行编码后分割为独立的位元,并将数据分别写入硬盘中。
  • 因为在数据中加入了错误修正码(ECC,ErrorCorrection Code),所以数据整体的容量会比原始数据大一些。
  • 汉明码
    • 原理:通过在数据位中插入多个校验位,每个校验位负责检测一部分数据位的错误情况。
    • 检错能力:能够检测并纠正单个错误,部分汉明码版本可以检测多个错误。
    • 纠错能力:
    • 可以纠正单个错误,提高了数据传输的可靠性。
    • 应用场景:广泛应用于内存(RAM)和其他需要高可靠性的数据存储和传输系统中

在这里插入图片描述

  • 前面四个盘是数据盘,后面三个盘是纠错码
  • 读数据时,能同时使用多个数据盘的带宽
  • 写数据时,除了写数据盘,还需要写校验盘,写性能会有下降
  • 因为存在数据纠错,所以在坏盘的情况下可以实现数据拯救
  • N块盘的RAID2的特性
    • 读性能不到原来的N倍,因为还有一部分是校验盘
    • 写性能会有下降,因为每次都要写校验盘,受限于校验盘的数量
    • 空间利用率小于100%,因为汉明码需要的冗余盘一般比数据盘的数量少 一共7块盘,4块数据盘,3块校验盘,如果数据盘满了,那么校验盘不会满,空间利用率只会利用7分之4
    • 根据汉明码位数的不同,能容忍的坏盘数不同,具体信息可以参考汉明码

2.1.5 RAID 3

  • RAID 3的数据存取方式和RAID2类似,与RAID2不同的是,RAID 3只需要一个冗余校验盘,而不管磁盘阵列的数目有多少。
  • 可以将RAID 3看做是在RAID2的基础上发展而来的,主要用了相对简单的奇偶校验代替相对复杂的汉明码校验,不需要多个冗余硬盘而是只需要单个冗余硬盘,从而大幅降低了成本。
    在这里插入图片描述
  • 奇偶校验
    • 原理:在数据位中增加一个校验位,使得数据位和校验位中1的总数为奇数(奇校验)或偶数(偶校验)。
    • 检错能力:只能检测出奇数个错误,无法检测偶数个错误。
    • 纠错能力:无法纠正错误,只能检测到错误的存在。
    • 应用场景:由于其简单性,常用于对数据传输可靠性要求不高的场景
    • 编码过程:当实际数据中“1”的个数为偶数的时候,校验位是“0”,反之校验位是“1”,换句话说,数据位(N位)和校验位(1位)组成的 编码数据(N+1位)中,将总共包含偶数个1。
    • 校验过程:检查编码数据(N+1位),如果其包含偶数个1,则校验通过
  • RAID 3存在的主要问题是做奇偶校验会消耗系统性能,令奇偶校验硬盘容易成为整个系统的瓶颈
  • 原因是RAID 3在进行数据写操作时除了会将数据分割到各个数据盘上进行写入,还会同时重写奇偶校验硬盘中的相关信息。
  • 如果应用程序需要经常需要执行大量写入操作的话,奇偶校验硬盘的负载将会很大,进而影响程序的运行速度,从而导致整个RAID系统的性能显著下降。
  • 应用场景:比较适合类似于视频编辑这类大文件类型且安全性要求较高的应用。

2.1.6 RAID 4

  • RAID 4和RAID 3比较像,数据都是使用数据分条技术进行分割后依次存放在多个硬盘中,奇偶校验码存放在专门的独立奇偶校验盘上,不同之处在于RAID4的条带较大,以数据块为单位进行数据分割RIAD3的条带较小,以位为单位进行数据分割
  • 在RAID 4中,在写入时要等一个硬盘写完后才能写下一个,同时较验数据也要同时写入奇偶校验盘,写入效率较差,而读取时也需要一个硬盘接着一个硬盘地进行数据读取,不过因其校验计算较为简单,不用进行位的计算,校验迅速,因而读取速度相对较快。
  • RAID 4的校验盘同样会容易形成性能的瓶颈,而且在遇到故障时,数据恢复的难度比RAID3要大得多,这种类型的磁盘阵列现在很少使用

2.1.7 RAID 5

  • RAID 5相当于RAID 0和RAID1的折中方案,并采用和RAID 4一样的数据分条方案,数据以块为单位进行分割并存放到各个硬盘上
  • 但RAID 5没有设置专门的奇偶校验硬盘,而是将数据和与其相对应的奇偶校验信息存储到各个硬盘上,但是这里有个规则就是奇偶校验信息和相对应的数据需要分别存储在不同的硬盘上。
  • 实现方式是数据在所有硬盘之间分条分布,并且每个数据块的奇偶校验块(P)也写入到同一条带上。
    在这里插入图片描述
  • 图中Ap-Dp 奇偶校验是放到和数据同一条带上的,如此一来,当其中某一个硬盘数据损坏了,并不会影响数据的完整性,此时可以利用其他硬盘上存储的数据和奇偶校验信息计算出损坏硬盘的数据内容,从而在替换硬盘中重建或恢复被损坏的数据。
  • RAID 5至少需要3个硬盘来组建磁盘阵列,可以允许坏一块硬盘。
  • 如果在未解决故障之前,又损坏了一个硬盘,那么磁盘阵列中的所有数据都将损坏,结果是灾难性的。
  • RAID 5在数据安全保障程度上比RAID1要低,但硬盘空间利用率比RAID 1要高,存储成本相对较低。
  • 在数据读取速度上,RAID 5与RAID 0接近,由于多了一个奇偶校验信息,数据写入速度比单个硬盘的写入速度略慢一些。
  • 总体而言,RAID 5读写性能较高,有校验机制,空间利用率高,是一种具有较高存储性能并且兼顾数据安全和存储成本的存储解决方案.。
  • RAID 5运用较多,但是如果RAID5的硬盘组成越多,则其安全性反而越低,遇到两块硬盘损坏,数据就难以找回了。

2.1.8 RAID 6

  • RAID 6相当于在RAID 5的基础上进行扩展而来的,增加了第2个独立的奇偶校验信息块,实现算法不同的双重奇偶校验。
  • 相当于对每个数据块提供两个校验保护措施,一个是分层校验,一个是总体校验,这两个校验码被分别写入到不同的两个硬盘来增强容错功能(但是,同时也减少硬盘的实际使用容量),数据冗余性更高了,在两块硬盘同时损坏的前提下,仍然可以保障数据恢复。
  • 相比RAID 5,RAID 6具有更高的容错能力(即数据冗余性好),同时其读取性能也比较优秀,
  • 但是写数据的性能较差,尤其是随机写入性能很差,因为不但要在每个硬盘上写入校验数据,还要在专门的校验硬盘上写入数据。
  • 至少需要4个硬盘来组成RAID 6磁盘阵列
  • 应用场景:
    • RAID 6的控制器设计复杂,成本高,不适合一般的中小型企业使用
    • 适合对数据安全级别较高的数据中心、信息中心等应用场合使用。

2.1.9 RAID 10(RAID1+0)

RAID 10实际上是RAID 0和RAID1结合应用的磁盘阵
在这里插入图片描述

  • 首先创建两个独立的RAID1,每个RAID 1均由两个磁盘组成,互为镜像磁盘,再将这两个独立的RAID 1组成一个RAID0,这样,当将数据往RAID 0磁盘阵列进行写入时,数据会被分段并并行写入到组成RAID 0的两个RAID1中,在每个RAID1中都将相应的分段数据在两个磁盘中同时写入以实现互为镜像备份。
  • RAID 10相当于一个条带区结构加上一个镜像结构,同时拥有RAID 0的快速和RAID1的数据高安全性,但是RAID 10对存储容量的利用率和RAID1一样只有50%,需要一般的硬盘空间用于存储冗余数据,硬盘的利用率较低,成本较贵。

2.1.10 RAID级别硬盘利用率

  • “D”指数据块
  • p“P”指校验块。
  • 对于灵活配置xD+yP的RAID策略,硬盘利用率=[x/(x+y)] ×100%
  • RAID 0:硬盘利用率为100%
  • RAID 1:2D:硬盘利用率约为50%
  • RAID 3:支持灵活配置,即支持2D+1P~13D+1P配置
    • 2D+1P:硬盘利用率约为66.67%
    • 4D+1Pb:硬盘利用率约为80%
    • 8D+1P:硬盘利用率约为88.89%
  • RAID 5
    • 支持灵活配置,即支持2D+1P~13D+1P配置
    • 2D+1P:硬盘利用率约为66.67%
    • 4D+1Pb:硬盘利用率约为80%
    • 8D+1P:硬盘利用率约为88.89%
  • RAID 6
    • 支持灵活配置,即支持2D+2P~26D+2P配置
    • 2D+2P:硬盘利用率约为50%
    • 4D+2P:硬盘利用率约为66.67%
    • 8D+2P:硬盘利用率约为80%
    • 16D+2P:硬盘利用率约为88.89%
  • RAID 10:硬盘利用率为50%
  • RAID 50
    • (2D+1P)x2:硬盘利用率约为66.67%
    • (4D+1P)x2:硬盘利用率约为80%
    • (8D+1P)x2:硬盘利用率约为88.89%

3 基于硬件的RAID磁盘阵列

  • 全部通过用硬件来实现RAID功能的就是硬RAID,比如:各种RAID卡,还有主板集成能够做的RAID都是硬RAID。
  • 所以硬 RAID 就是用专门的RAID控制器(RAID卡)将硬盘和电脑连接起来,RAID控制器负责将所有的RAID成员磁盘配置成一个虚拟的RAID磁盘卷。
  • 操作系统只能识别到由RAID控制器配置后的虚拟磁盘,而无法识别到组成RAID的各个成员盘。
  • 硬RAID全面具备了自己的RAID控制/处理与I/O处理芯片,甚至还有阵列缓冲(Array Buffer),对CPU的占用率以及整体性能中最有优势。

3.1 阵列卡(RAID控制器)

  • 硬 RAID 包含 RAID 卡和主板上集成的RAID芯片,服务器平台多采用RAID 卡。
  • RAID 卡组成:
    • RAID 核心处理芯片(RAID 卡上的CPU)
    • 端口
    • 缓存
    • 电池

3.2 阵列卡种类

  • IDE阵列卡
    • 以前主要用在一些数据重要或要接很多个硬盘的服务器与工作站电脑中,可以支持RAID0、1、0+1、3、5。现基本上已经淘汰了。
  • SATA阵列卡
    • 主要作用于大容量数据存储、网吧、数据安全等服务器领域,同时一些低端卡也满足了一些家用客户的需求,能够支持 RAID 0、1、0+1、5、6。
  • SCSI阵列卡
    • 使用在高端工作站或者是服务器中,可以支持很多块SCSI接口的硬盘。能够支持RAID0、1、0+1、3、5 。
    • 这种阵列卡性能很好速度很快当然价格也比较高。不过,现基本上已经淘汰了。
  • SAS阵列卡
    • 主要使用在一些高端工作站与服务器中,已经取代了昔日的SCSI接口,并且可以兼容SATA接口硬盘,能够支持 RAID 0、1、0+1、5 、50、6、60。

3.3 阵列卡缓存

  • 阵列卡缓存是阵列卡先将数据传输到缓存,再由缓存和外边数据总线交换数据的一种过程,实际指的是相对低速的硬盘盘片与相对高速的外部设备之间的缓冲器。
  • 阵列卡缓存的主要作用是,加快数据读写速度,提高磁盘的效用,避免不必要的等待时间,可以减少操作所带来的延迟提高系统性能得到更好的响应时间,所以阵列卡缓存的作用是非常大的。
  • Write Through和Write Back是阵列卡Cache的两种使用方式,也称为透写和回写
    • Write Through 透写:系统的写磁盘操作并不利用阵列卡的Cache,而是直接与磁盘进行数据的交互,写操作根本不使用缓存,数据总是直接写入磁盘,影响写入性能。
    • Write Back(Write Cache) 回写:利用阵列Cache作为系统与磁盘间的二传手,系统先将数据交给Cache,然后再由Cache将数据传给磁盘;数据不是直接被写入磁盘,而是写入缓存。从应用程序的角度看,比等待完成磁盘写入操作要快的多。因此,可以提高写性能。由控制器将缓存内未写入磁盘的数据写入磁盘。
  • 生产环境中的配置要根据具体的业务类型及环境进行配置
    • 如果有外置UPS电源,选Write Back
    • 如果没有外置电源,并且对数据安全性要求很高,不要求太高性能,就选Write Through
  • Write Back with BBU
    • 此是阵列卡配有Battery Backup模块元时的可选项,它的作用是用以在系统断电时保护Cache中的数据,避免断电造成中间数据的丢失。

3.4 RAID 电池

  • 作用:用以在系统断电时保护Cache中的数据,避免断电造成中间数据的丢失。
  • 在更换RAID卡电池之前,服务器虽然已经下线,无数据写入,但还有一部分数据存在RAIDcache中,并未写入硬盘中;但一般RAID卡电池坏掉后,RAID卡会自动将写缓存(即write back)禁止,变为writethrough方式,会使写性能有一定的下降,但不影响数据安全。
  • 若RAID电池和某块硬盘同时出现故障,应先更换RAID卡电池,待服务器重启成功,RAID卡工作正常后再更换故障的硬盘,最大限度保证数据安全。

4 基于软件的RAID磁盘阵列

4.1 mdadm工具

  • mdadm是一个在Linux系统中用于构建、管理和监控软件RAID阵列的工具。
  • 它提供了多种命令来创建、管理、监控RAID阵列,并且支持多种RAID级别,如RAID0、RAID1、RAID5等。
  • mdadm命令常见参数解释
    • -a {yes|no} 自动为其创建设备文件
    • -n 指定设备数量
    • -l 指定RAID级别
    • -C 创建
    • -v 显示过程
    • -f 模拟设备损坏
    • -r 移除设备
    • -Q查看摘要信息
      -** -D 查看详细信息**
    • -S 停止RAID磁盘阵列
    • -c 指定数据块大小(chunk)
    • -x 指定空闲盘(热备磁盘)个数,空闲盘(热备磁盘)能在工作盘损坏后自动顶替

4.2 实例

为 linux 服务器添加4 块SCSI 硬盘,使用mdadm软件包,构建 RAID5 磁盘阵列,提高磁盘存储的性能和可靠性。

4.2.1 创建分区并设置类型

  • 使用fdisk工具各划分出一块分区,依次为
    • /dev/sdb1
    • /dev/sdc1
    • /dev/sdd1
    • /dev/sde1
  • 将分区的类型 ID 均更改为fd。fd 分区类型对应“Linux raid autodetect”
    ,表示支持用于RAID磁盘阵列。

4.2.2 创建RAID设备

  • 使用 mdadm 命令创建 RAID,执行以下命令即可创建名称为md0的 RAID5
  • mdadm -Cv /dev/md0 -a yes -n4 -l5 /dev/sd[bcde]1
    • -C:等同于 create,表示新建
    • -v:显示创建过程中的信息
    • /dev/md0:创建 RAID5 的名称
    • -a:–auto,表示通知 mdadm 是否创建设备文件,并分配一个未使用的次设备号
    • yes:代表如果有什么设备文件没有存在的话就自动创建
    • -n:指定使用几块硬盘创建 RAID,n4 表示使用4 块硬盘创建RAID
    • -l:指定 RAID 的级别,l5 表示创建 RAID5
    • /dev/sd[bcde]1:指定四块磁盘分区

4.2.3 查看创建结果

# 通过磁盘分区查看
lsblk
# 查看简易信息
ls -l /dev/md0
# 查看磁盘阵列组成
cat /proc/mdstat
# 查看详细信息
mdadm -D /dev/md0

4.2.3 创建并挂载文件系统

# 格式化,创建文件系统
mkfs.xfs /dev/md0
# 创建挂载目录
mkdir /test/raid
# 挂载
mount /dev/md0 /test/raid/

设置永久挂载:vim /etc/fstab

4.2.4 RAID 阵列管理及设备恢复

  • 扫描查看磁盘阵列信息:mdadm -vDs
    • D:detail 的缩写,打印一个或多个磁盘阵列的详细信息
    • v:对正在发生的事情显示更详细的信息
    • s:扫描/proc/mdstat 中的阵列设备列表
  • 建立配置文件
    为了方便日后启动/停止RAID 阵列,可以创建一个配置文件来进行管理
# 使用默认配置文件
mdadm -vDs >> /etc/mdadm/mdadm.conf
# 使用自己创建的配置文件
mdadm -vDs > /etc/mdadm.conf
# 重新激活:-A
mdadm -A /dev/md0
mdadm -A --scan
  • 管理模式
# 模拟损坏
mdadm /dev/md0 -f /dev/sdb1
# 移除损坏的磁盘
mdadm /dev/md0 --remove /dev/sdb1
# 添加新的硬盘到已有阵列
mdadm /dev/md0 -a /dev/sdf1
  • 删除软raid
# 解挂载
umount /dev/md0
# 停止raid设备,相当于删除
mdadm -S /dev/md0
# 删除配置文件,如果之前写入了
rm -f /etc/mdadm.conf
# 取消自动挂载,如果之前设置了
vim /etc/fstab
http://www.xdnf.cn/news/959545.html

相关文章:

  • 湖北理元理律师事务所:债务清偿方案中的法律技术革新
  • FreeRtos下创建任务失败原因记录
  • 动态元素绑定事件总失效?通过AI 对话框的开发,详解绑定逻辑!
  • @Transactional 什么情况下会失效
  • Linux应用开发之网络套接字编程(实例篇)
  • VMware Workstation踩坑指南
  • Ubuntu 可执行程序自启动方法
  • apt命令介绍
  • 【音乐分析】根据拍号结合bpm计算bar_duration
  • 每日算法题(12-1)ACM输出九九乘法表-20250609
  • DeviceNet转Modbus-RTU协议网关详细解读
  • 医疗AI模型可解释性编程研究:基于SHAP、LIME与Anchor
  • CCleaner Professional 下载安装教程 - 电脑清理优化工具详细使用指南
  • Kafka入门-监控与可视化
  • 今天做的力扣SQL
  • 二维FDTD算法仿真
  • C++ 类的定义与构造 / 析构函数解析
  • python3基础语法梳理(一)
  • 验证回文串
  • 【学习分享】shell脚本基础(全)
  • 深度解析云存储:概念、架构与应用实践
  • 外链域名年龄 vs 数量老域名的1个链接抵新域名的100个吗?
  • 【配置篇】告别硬编码:多环境配置、@ConfigurationProperties与配置中心初探
  • FDD损失函数 损失函数和梯度的关系
  • Day49 Python打卡训练营
  • 【前端】js Map集合的使用方法
  • C++11委托构造函数和继承构造函数:从入门到精通
  • 查询宝塔的数据库信息
  • 共享存储系统
  • 动画直播如何颠覆传统?解析足球篮球赛事的数据可视化革命