网站搜索

LFCS #6:如何在 Linux 中将分区组装为 RAID 设备


Linux 基金会推出了LFCS(Linux 基金会认证系统管理员)认证,这是世界各地的系统管理员通过基于绩效的考试证明他们有能力的绝佳机会在 Linux 系统上执行整体运营支持:系统支持、一级诊断和监控,以及在需要时将问题升级给其他支持团队。

该系列的标题为 LFCSLinux 基金会认证系统管理员)的准备第 1 部分33,涵盖以下主题:

Part 1

如何在 Linux 中使用“Sed”命令操作文件

Part 2

如何在 Linux 中安装和使用 Vi/Vim

Part 3

如何在 Linux 中压缩文件和目录以及查找文件

Part 4

如何在 Linux 中对存储设备进行分区

Part 5

如何在 Linux 中挂载(Samba 和 NFS)文件系统

Part 6

如何将分区组装为 RAID 设备并创建系统备份

Part 7

管理系统启动进程和服务(SysVinit、Systemd 和 Upstart)

Part 8

如何管理用户和组、文件权限和 Sudo 访问

Part 9

使用 Yum、RPM、Apt、Dpkg、Aptitude 和 Zypper 进行 Linux 包管理

Part 10

学习基本的 Shell 脚本和文件系统故障排除

Part 11

如何使用 vgcreate、lvcreate 和 lvextend 命令管理和创建 LVM

Part 12

如何使用已安装的帮助文档和工具探索 Linux

Part 13

如何配置 Grand Unified Bootloader (GRUB) 并对其进行故障排除

Part 14

监控 Linux 进程资源使用情况并按用户设置进程限制

Part 15

如何在 Linux 系统中设置或修改内核运行时参数

Part 16

在 Linux 中使用 SELinux 或 AppArmor 实施强制访问控制

Part 17

如何为用户和组设置访问控制列表 (ACL) 和磁盘配额

Part 18

安装网络服务并配置开机自动启动

Part 19

设置 FTP 服务器以允许匿名登录的终极指南

Part 20

设置基本递归缓存 DNS 服务器并为域配置区域

Part 21

如何安装、保护 MariaDB 数据库服务器并对其进行性能调优

Part 22

如何安装和配置 NFS 服务器以进行文件系统共享

Part 23

如何使用 SSL 证书通过基于名称的虚拟主机设置 Apache

Part 24

如何设置 Iptables 防火墙以启用对 Linux 中服务的远程访问

Part 25

如何将 Linux 变成路由器来静态和动态处理流量

Part 26

如何使用 Cryptsetup 工具设置加密文件系统和交换

Part 27

如何监控系统使用情况、中断以及对 Linux 服务器进行故障排除

Part 28

如何设置网络存储库来安装或更新软件包

Part 29

如何审核网络性能、安全性和故障排除

Part 30

如何安装和管理虚拟机和容器

Part 31

学习 Git 基础知识以高效管理项目

Part 32

在 Linux 中配置 IPv4 和 IPv6 地址的初学者指南

Part 33

在 Ubuntu 中创建网络绑定和桥接的初学者指南

这篇文章是33教程系列的第6部分,在这一部分中,我们将解释如何将分区组装为RAID设备以及创建和管理系统备份,即LFCS 认证考试所需的。

了解 Linux 中的 RAID

称为独立磁盘冗余阵列 (RAID) 的技术是一种存储解决方案,它将多个硬盘组合成一个逻辑单元,以提供数据冗余和/或提高性能在对磁盘的读/写操作中。

然而,实际的容错能力和磁盘I/O性能取决于硬盘如何设置形成磁盘阵列。根据可用设备和容错/性能需求,定义了不同的 RAID 级别。

您可以参考以下RAID系列文章,了解各个RAID级别的更详细说明。

在 Linux 中安装 mdadm

我们选择用于创建、组装、管理和监控软件 RAID 的工具称为 mdadm(多磁盘管理的缩写)。

sudo apt install mdadm         [On Debian, Ubuntu and Mint]
sudo yum install mdadm         [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo zypper install mdadm      [On OpenSUSE]    

将分区组装为 RAID 设备

将现有分区组装为 RAID 设备的过程包括以下步骤。

1.使用mdadm创建一个新数组

如果其中一个分区之前已被格式化或者之前已成为另一个 RAID 阵列的一部分,系统将提示您确认创建新阵列。

假设您已采取必要的预防措施以避免丢失其中可能存在的重要数据,则可以安全地键入 y 并按 Enter

mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1

2. 检查阵列创建状态

为了检查阵列创建状态,您将使用以下命令 - 无论 RAID 类型如何。这些与我们创建 RAID0 时(如上所示)或您设置 RAID5 时一样有效,如图所示以下。

cat /proc/mdstat
or 
mdadm --detail /dev/md0	[More detailed summary]

3. 格式化 RAID 设备

根据您的需要/要求使用文件系统格式化设备,如本系列第 4 部分中所述。

4. 监控RAID阵列服务

指示监控服务“密切关注”阵列。将 mdadm --detail --scan 的输出添加到 /etc/mdadm/mdadm.conf(Debian 及其衍生版本)或 /etc/mdadm.conf (CentOS/openSUSE),就像这样。

mdadm --detail --scan

mdadm --assemble --scan 	[Assemble the array]

要确保服务在系统启动时启动,请以 root 身份运行以下命令。

systemctl start mdmonitor
systemctl enable mdmonitor

5.检查RAID磁盘故障

在支持冗余的 RAID 级别中,需要时更换故障驱动器。当磁盘阵列中的某个设备出现故障时,仅当我们首次创建阵列时添加了备用设备时,才会自动开始重建。

否则,我们需要手动将额外的物理驱动器连接到我们的系统并运行它。

mdadm /dev/md0 --add /dev/sdX1

其中 /dev/md0 是遇到问题的阵列,/dev/sdX1 是新设备。

6. 拆卸工作阵列

如果您需要使用设备创建新阵列,您可能必须执行此操作 - (可选步骤)。

mdadm --stop /dev/md0 		#  Stop the array
mdadm --remove /dev/md0 		# Remove the RAID device
mdadm --zero-superblock /dev/sdX1 	# Overwrite the existing md superblock with zeroes

7. 创建邮件警报

您可以配置一个有效的电子邮件地址或系统帐户来发送警报(确保您在 mdadm.conf 中包含此行)。 –(可选步骤

MAILADDR root

在这种情况下,RAID 监控守护程序收集的所有警报都将发送到本地 root 帐户的邮箱。其中一个警报如下所示。

注意:此事件与STEP 5中的示例相关,其中设备被标记为故障,并且备用设备被自动内置到mdadm 的数组。因此,我们“用完了”健康的备用设备,并收到了警报。

了解 Linux 中的 RAID 级别

以下是常见 RAID 级别的简要概述:

磁盘阵列0

阵列总大小是最小分区大小的 n 倍,其中 n 是阵列中独立磁盘的数量(您至少需要两个驱动器)。运行以下命令,使用分区 /dev/sdb1/dev/sdc1 组装 RAID 0 阵列。

mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1

常见用途:支持实时应用程序的设置,其中性能比容错更重要。

RAID 1(又名镜像)

阵列总大小等于最小分区的大小(您至少需要两个驱动器)。运行以下命令,使用分区 /dev/sdb1/dev/sdc1 组装 RAID 1 阵列。

mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1

常见用途:操作系统或重要子目录的安装,例如/home

RAID 5(又名具有奇偶校验的驱动器)

数组总大小将为最小分区大小的 (n – 1) 倍。 (n-1) 中的“丢失”空间用于奇偶校验(冗余)计算(您将需要至少三个驱动器)。

请注意,当出现问题时,您可以指定备用设备(在本例中为 /dev/sde1)来替换故障部件。运行以下命令,使用分区 /dev/sdb1/dev/sdc1/dev/sdd1 组装 RAID 5 阵列/dev/sde1 作为备用。

mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1

常见用途:Web 和文件服务器。

RAID 6(又称双奇偶校验驱动器

阵列总大小将为 (n*s)-2*s,其中 n 是阵列中独立磁盘的数量,s是最小磁盘的大小。请注意,当出现问题时,您可以指定备用设备(在本例中为 /dev/sdf1)来替换故障部件。

运行以下命令,使用分区 /dev/sdb1/dev/sdc1/dev/sdd1 组装 RAID 6 阵列/dev/sde1/dev/sdf1 作为备用。

mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde --spare-devices=1 /dev/sdf1

常见用途:具有大容量和高可用性要求的文件和备份服务器。

RAID 1+0(又名镜像条纹)

总阵列大小是根据 RAID 0RAID 1 的公式计算的,因为 RAID 1+0 是两者的组合。首先,计算每个镜子的尺寸,然后计算条纹的尺寸。

请注意,当出现问题时,您可以指定备用设备(在本例中为 /dev/sdf1)来替换故障部件。运行以下命令,使用分区 /dev/sdb1/dev/sdc1/dev 组装 RAID 1+0 阵列/sdd1/dev/sde1/dev/sdf1 作为备用。

mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[b-e]1 --spare-devices=1 /dev/sdf1

常见用途:需要快速 I/O 操作的数据库和应用程序服务器。

在 Linux 中创建和管理系统备份

记住RAID及其所有好处不是备份的替代品!如果需要的话可以在黑板上写下1000遍,但一定要保留它时刻牢记心中的想法。

在开始之前,我们必须注意,系统备份没有一刀切的解决方案,但在规划备份策略时需要考虑以下一些事项。

  • 你的系统用来做什么? (桌面还是服务器?如果后一种情况适用,那么最关键的服务是什么 - 失去其配置将是真正的痛苦?)
  • 您需要多久备份一次系统?
  • 您要备份的数据(例如文件/目录/数据库转储)是什么?您可能还需要考虑是否确实需要备份大文件(例如音频或视频文件)。
  • 这些备份将存储在哪里(指物理位置和介质)?

1.使用dd命令备份驱动器

使用 dd 命令备份整个驱动器。您可以通过在任何时间点创建精确的映像来备份整个硬盘或分区。请注意,当设备离线时,此方法效果最佳,这意味着它未安装并且没有进程访问它以进行 I/O 操作。

这种备份方法的缺点是映像的大小与磁盘或分区相同,即使实际数据只占其中的一小部分。

例如,如果您要映像 20 GB 且仅占 10% 的分区,则映像文件仍为 20 GB尺寸。换句话说,不仅备份实际数据,还备份整个分区本身。如果您需要设备的精确备份,您可以考虑使用此方法。

创建分区映像

dd if=/dev/sda of=/system_images/sda.img
OR
--------------------- Alternatively, you can compress the image file --------------------- 
dd if=/dev/sda | gzip -c > /system_images/sda.img.gz 

恢复分区镜像

dd if=/system_images/sda.img of=/dev/sda
OR 
gzip -dc /system_images/sda.img.gz | dd of=/dev/sda 

2.使用tar命令备份文件

使用 tar 命令备份某些文件 / 目录 - 已在本系列的第 3 部分中介绍。如果您需要保留特定文件和目录(配置文件、用户主目录等)的副本,您可以考虑使用此方法。

2.使用rsync命令备份和同步文件

使用 rsync 命令同步文件,这是一个多功能的远程(和本地)文件复制工具。如果您需要将文件备份到网络驱动器或从网络驱动器同步文件,rsync 是一个不错的选择。

无论您是同步两个本地目录还是本地文件系统上安装的本地 < --- > 远程目录,基本语法都是相同的。

同步两个本地目录

rsync -av source_directory destination directory

其中,-a 递归到子目录(如果存在),保留符号链接、时间戳、权限和原始所有者/组,-v 详细信息。

此外,如果您想提高有线数据传输的安全性,可以使用 ssh 而不是 rsync

通过 SSH 同步本地 → 远程目录

rsync -avzhe ssh backups root@remote_host:/remote_directory/

此示例将本地主机上的备份目录与远程主机上的 /root/remote_directory 内容同步。

其中 -h 选项以人类可读的格式显示文件大小,-e 标志用于指示 SSH 连接。

通过 SSH 同步远程 → 本地目录

在这种情况下,请切换上一示例中的源目录和目标目录。

rsync -avzhe ssh root@remote_host:/remote_directory/ backups 

请注意,这些只是 rsync 使用的 3 个示例(您可能遇到的最常见情况)。有关 rsync 命令的更多示例和用法,请参阅以下文章。

概括

作为系统管理员,您需要确保您的系统尽可能良好地运行。如果您做好充分准备,并且数据完整性得到 RAID 和定期系统备份等存储技术的良好支持,那么您就会安全。

LFCS 电子书现已可供购买。立即订购您的副本,开始您成为认证 Linux 系统管理员的旅程!

Product Name Price Buy
The Linux Foundation’s LFCS Certification Preparation Guide $19.99 [Buy Now]

最后但并非最不重要的一点是,请考虑使用以下链接购买考试券,以便为我们赚取小额佣金,这将有助于我们不断更新本书。

如果您对如何改进本文有疑问、意见或进一步的想法,请随时在下面留言。此外,请考虑通过您的社交网络个人资料分享本系列。