Linux学习之七【使用RAID 与LVM 磁盘阵列技术】
整理自刘遄老师的《Linux就该这么学》,网站链接
文章目录
7、使用RAID 与LVM 磁盘阵列技术
7.1 RAID(独立冗余磁盘阵列)
RAID 技术通过把多个硬盘设备组合成一个容量更大、安全性更好的磁盘阵列
,并把数据切割成多个区段后分别存放在各个不同的物理硬盘设备上,然后利用分散读写技术来提升磁盘阵列整体的性能,同时把多个重要数据的副本同步到不同的物理硬盘设备上,从而起到了非常好的数据冗余备份效果。
RAID 不仅降低了硬盘设备损坏后丢失数据的几率,还提升了硬盘设备的读写速度,所以它在绝大多数运营商或大中型企业中得以广泛部署和应用。
1、RAID 0
RAID 0 技术把多块物理硬盘设备(至少两块)通过硬件或软件的方式串联在一起,组成一个大的卷组
,并将数据依次写入到各个物理硬盘中。这样一来,在最理想的状态下,硬盘设备的读写性能会提升数倍,但是若任意一块硬盘发生故障将导致整个系统的数据都受到破坏。通俗来说,RAID 0 技术能够有效地提升硬盘数据的吞吐速度,但是不具备数据备份和错误修复能力
。如下所示,数据被分别写入到不同的硬盘设备中,即disk1 和disk2 硬盘设备会分别保存数据资料,最终实现分开写入、读取的效果。
2、RAID 1
RAID 1是把两块以上的硬盘设备进行绑定,在写入数据时,是将数据同时写入到多块硬盘设备上(可以将其视为数据的镜像或备份)。当其中某一块硬盘发生故障后,一般会立即自动以热交换的方式来恢复数据的正常使用。RAID 1 技术虽然十分注重数据的安全性,但是因为是在多块硬盘设备中写入了相同的数据,因此硬盘设备的利用率得以下降
。
3、RAID 5
RAID5 技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中。RAID 5 磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中,而是存储到除自身以外的其他每一块硬盘设备上
,这样的好处是其中任何一设备损坏后不至于出现致命缺陷;下图中parity 部分存放的就是数据的奇偶校验信息,换句话说,就是RAID 5 技术实际上没有备份硬盘中的真实数据信息,而是当硬盘设备出现问题后通过奇偶校验信息来尝试重建损坏的数据
。RAID 这样的技术特性“妥协”地兼顾了硬盘设备的读写速度、数据安全性与存储成本问题。
4、RAID 10
RAID 1+RAID 0 技术的一个“组合体”
RAID 10 技术需要至少4 块硬盘来组建,其中先分别两两制作成RAID 1 磁盘阵列,以保证数据的安全性;然后再对两个RAID 1 磁盘阵列实施RAID 0 技术,进一步提高硬盘设备的读写速度。这样从理论上来讲,只要坏的不是同一组中的所有硬盘,那么最多可以损坏50%的硬盘设备而不丢失数据。由于RAID 10 技术继承了RAID 0 的高读写速度和RAID1 的数据安全性,在不考虑成本的情况下RAID 10 的性能都超过了RAID 5,因此当前成为广泛使用的一种存储技术
。
5、部署磁盘阵列(mdadm命令)
具体过程详见 Linux就该这么学-7.1.1
6、损坏磁盘阵列及修复
具体过程详见 Linux就该这么学-7.1.2
7、磁盘阵列+备份盘
RAID 10 磁盘阵列中最多允许50%的硬盘设备发生故障,但是存在这样一种极端情况,即同一RAID 1 磁盘阵列中的硬盘设备若全部损坏,也会导致数据丢失。换句话说,在RAID10 磁盘阵列中,如果RAID 1 中的某一块硬盘出现了故障,而我们正在前往修复的路上,恰巧该RAID1 磁盘阵列中的另一块硬盘设备也出现故障,那么数据就被彻底丢失了。
在这种情况下,我们完全可以使用RAID 备份盘
技术来预防这类事故。该技术的核心理念就是准备一块足够大的硬盘,这块硬盘平时处于闲置状态,一旦RAID磁盘阵列中有硬盘出现故障后则会马上自动顶替上去。
具体过程详见 Linux就该这么学-7.1.3
7.2 LVM(逻辑卷管理器)
在硬盘分好区或者部署为RAID 磁盘阵列之后,再想修改硬盘分区大小就不容易了。换句话说,当用户想要随着实际需求的变化调整硬盘分区的大小时,会受到硬盘“灵活性”的限制。这时就需要用到另外一项非常普及的硬盘设备资源管理技术了—LVM(逻辑卷管理器)。LVM 可以允许用户对硬盘资源进行动态调整
。
逻辑卷管理器是Linux 系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。尽管对传统的硬盘分区进行强制扩容或缩容从理论上来讲是可行的,但是却可能造成数据的丢失。而LVM 技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并。这样一来,用户不必关心物理硬盘设备的低层架构和布局,就可以实现对硬盘分
区的动态调整。
物理卷处于LVM 中的最底层,可以将其理解为物理硬盘、硬盘分区或者RAID 磁盘阵列,这都可以。卷组建立在物理卷之上,一个卷组可以包含多个物理卷,而且在卷组创建之后也可以继续向其中添加新的物理卷。逻辑卷是用卷组中空闲的资源建立的,并且逻辑卷在建立后可以动态地扩展或缩小空间
。这就是LVM 的核心理念。
部署LVM 时,需要逐个配置物理卷、卷组和逻辑卷。
1、部署逻辑卷
- 让新添加的硬盘设备支持LVM 技术。
- 把两块硬盘设备加入到卷组(可自命名)中,然后查看卷组的状态。
- 按需切割出对应大小的逻辑卷设备。
- 把生成好的逻辑卷进行格式化,然后挂载使用。
- 查看挂载状态,并写入到配置文件,使其永久生效。
2、扩容逻辑卷
扩容逻辑卷
在支持LVM技术时,用户在使用存储设备时感知不到设备底层的架构和布局,更不用关心底层是由多少块硬盘组成的,只要卷组中有足够的资源,就可以一直为逻辑卷扩容
。扩展前请一定要记得卸载设备和挂载点的关联
。
- 将逻辑卷扩展至理想大小。
- 检查硬盘完整性,并重置硬盘容量。
- 重新挂载硬盘设备并查看挂载状态。
3、缩小逻辑卷
缩小逻辑卷
相较于扩容逻辑卷,在对逻辑卷进行缩容操作时,其丢失数据的风险更大。所以在生产环境中执行相应操作时,一定要提前备份好数据
。另外Linux 系统规定,在对LVM 逻辑卷进行缩容操作之前,要先检查文件系统的完整性(当然这也是为了保证我们的数据安全)。在执行缩容操作前记得先把文件系统卸载掉
。
- 检查文件系统的完整性。
- 减小逻辑卷容量
- 重新挂载文件系统并查看系统状态。
4、逻辑卷快照
逻辑卷快照
LVM 还具备有“快照卷
”功能,该功能类似于虚拟机软件的还原时间点功能。例如,可以对某一个逻辑卷
设备做一次快照,如果日后发现数据被改错了,就可以利用之前做好的快照卷进行覆盖还原
。LVM 的快照卷功能有两个特点:
???? 快照卷的容量必须等同于逻辑卷的容量
;
???? 快照卷仅一次有效
,一旦执行还原操作后则会被立即自动删除。
5、删除逻辑卷
当生产环境中想要重新部署LVM 或者不再需要使用LVM 时,则需要执行LVM 的删除操作。为此,需要提前备份好重要的数据信息,然后依次删除逻辑卷、卷组、物理卷设备,这个顺序不可颠倒。
- 取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。
- 删除逻辑卷设备,需要输入y 来确认操作。
- 删除卷组,此处只写卷组名称即可,不需要设备的绝对路径。
- 删除物理卷设备。