一:概述
磁盘阵列是一种广泛应用的存储技术,使用它可以在很大程度上扩展存储容量,增强数据安全性,提高系统安全性能,磁盘阵列(RAID)是由多个独立的磁盘构成的一个超大容量的磁盘组。相比较单个磁盘,磁盘阵列有着非常突出的优势。
二:详细介绍
- 超大容量:可以将多个磁盘组合起来形成一个巨大的磁盘阵列提供的存储服务。
- 安全性得到保障:如果将数据存储在单个磁盘当中,一旦磁盘破坏,就会导致数据丢失,而磁盘阵列会配置一块或多块磁盘作为冗余盘,即使磁盘阵列中的某一个磁盘损坏,冗余盘前会立即替补上去。阵列中的数冗余存储,分布在磁盘阵列中各处,即使一块数据有损坏,也可以从其他盘中恢复,除非发生在阵列中多个磁盘同时损坏,否则数据不会丢失。
- 提升性能:可以同时存储和读取数据,从而提高系统数据的吞吐量。
- 磁盘阵列有不同的级别,常见的级别从RAID0到RAID6。
- RAID0:它是最早出现的磁盘阵列技术,通过将多个磁盘以阵列控制器联系在一起,组合成一个大的磁盘阵列。RAID0中的数据为条带分布,虽然RAID0可以提高磁盘的性能,但是它并提供容错,也就是说当阵列中的某一块磁盘损坏之后数据会丢失。
- RAID1:它由两块磁盘组成,一块为主盘,另一块为备份盘。当通过主盘写入数据时,,同样也会写入备份盘,因此,RAID1S数据安全性能最好。但是也会导致一本容量的损失,写入性能也会比较低下。
- RAID2与RAID0类似,只是以条带作为单位。RAID2至少需要三块磁盘才可以组合。
- RAID3的数据存取方式与RAID2相同,把数据以位为单位,分散至磁盘各处。RAID3需要额外的一个校验盘。
- RAID4与RAID3相似,都是将数据存储在多个磁盘当中。唯一的差异之处处于RAID3按位对数据访问,RAID4以块为单位。
- RAID5应用相对广泛,它兼顾了存储性能、数据安全和存储成本等因素。RAID5至少需要三块磁盘。
- RAID6比RAID5新增加了一套独立的奇偶校检系统,两套奇偶校检系统使用不同的算法。RAID6在数据可靠性方面上得到了提升。
除了上述PAID之外还有混合RAID,例如RAID0+1,RAID1+0,这种混合的RAID结合了两种RAID的优点。
mdadm(mutiple devices admin)命令是Linux下的一款标准的RAID管理工具,它可以诊断、监控和收集详细的阵列信息。它是一个单独的集成化程序,对不同的RAID管理明林不过都有共同的语法。mdadm可执行几乎所有功能而不需要配置文件,也没有默认的配置文件。mdadm命令是创建和管理Linux系统中的磁盘阵列工具。Ubuntu中安装工具的命令为sudo apt install mdadm。
格式mdadm [模式] <raidevice> [选项] <component-devices>
其中raidevices为磁盘阵列名称。component-devices为组成磁盘阵列的各个磁盘设备。mdadn命令的模式以及说明如下表所示:
模式 | 说明 |
Assemble | 将原本属于同一阵列的设备重新组合成阵列 |
Build | 创建或组装不需要元数据的阵列(每个设备没有超级块) |
Create | 创建一个新的阵列,每个设备具有超级块 |
Follow/Monitor | 监控模式 |
Grow | 更改阵列中设备容量和数目,更改阵列属性,但不能更改阵列级别 |
Mange | 管理已经存在的阵列 |
Misc | 混杂模式,可以删除磁盘中旧的超级块或收集阵列信息 |
Auto-detect | 请求模式激活已有阵列 |
mdadm命令在不同模式下的选项及其说明如下表所示:
工作模式 | 选项 | 说明 |
模式选择 | -A | 选择Assemble模式 |
-B | 选择Build模式 | |
-C | 选择Create模式 | |
-F | 选择Follow或Monitor模式 | |
-G | 选择Grow模式 | |
模式无关 | -c | 指定mdadm配置文件,默认为/etc/mdadm/mdadm.conf和/etc/mdadm.mdadm.conf.d |
-s | 从配置文件或/proc/mdstat | |
-e | 定义磁盘上面的超级块格式,对于Create模式来说,默认为1.2 | |
Create | -n | 指定阵列中磁盘的数量,不包括冗余磁盘 |
-x | 指定阵列中冗余磁盘数量 | |
-l | 指定阵列级别,可取值inear、raid0、0、stripe、raid1、1、morror | |
-N | 指定阵列名称 | |
-o | 以只读的方式启动阵列 | |
-auto | 以默认选项创建阵列 | |
--add | 向阵列中增加磁盘,用在Grow模式之中 | |
Assemble | -u | 指定重组阵列的UUID |
-U | 更新每个磁盘的超级块 | |
-a | 在线添加新磁盘 | |
-R | 重新启动该阵列 | |
-N | 指定重组阵列名称 | |
-a | 在线添加磁盘 | |
-r | 移除磁盘 | |
--re-add | 重新添加原来移除的磁盘 | |
Misc | -Q | 查询一个阵列或一个阵列组间的设备信息 |
-D | 查询一个阵列的详细信息 | |
-S | 停止阵列 | |
-o | 使阵列进入只读模式 | |
-w | 使阵列进入读写模式 | |
Monitor | -m | 发送报警邮件 |
-p | 当出现报警时,启动指定程序 |
使用mdadm命令创建一个RAID5阵列,创建阵列之前需要为Ubuntu主机添加SATA硬盘,想添加几个磁盘就添加几个,硬盘的大小用户可以自定义。使用fdisk -l命令查看新添加的4个硬盘信息。
使用mdadm命令创建一个磁盘阵列/dev/md11。其中--create表示使用Create模式,--auto==yes表示使用默认值,--level=5表示创建的阵列为RAID5,--raid-devices=3表示创建组成阵列磁盘数,--spare-devices=1表示冗余热备份为1块。
由于这里我换了CentOS虚拟机,以前创建的分区和磁盘都没有了。这里就不演示了
创建之后mdadm命令会自动启动该阵列。再次使用fdisk -l命令查看磁盘列表,会发现执行结果新增了一个名为/dev/md11的设备磁盘设备。
使用
mdadm --detail /dev/md11
可以查看磁盘阵列的信息。
在Linux系统中,新创建的磁盘阵列与磁盘一样,用户可以在其中创建各种文件系统。
三:磁盘管理总结