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

Linux基金会推出了LFCSLinux基金会认证系统管理员)认证,这是系统管理员们展示自己能够通过基于性能的考试来进行Linux系统的整体运维支持:系统支持、一级诊断和监控,以及在需要时将问题升级到其他支持团队的闪亮机会。

该系列将被命名为LFCSLinux基金会认证系统管理员第133部分,并涵盖以下主题:

No. Title
Part 1 How to Use ‘Sed’ Command to Manipulate Files in Linux
Part 2 How to Install and Use Vi/Vim in Linux
Part 3 How to Compress Files & Directoires and Finding Files in Linux
Part 4 How to Partition Storage Devices in Linux
Part 5 How to Mount (Samba and NFS) Filesystems in Linux
Part 6 How to Assemble Partitions as RAID Devices and Create System Backups
Part 7 Managing System Startup Processes and Services (SysVinit, Systemd, and Upstart
Part 8 How to Manage User & Groups, File Permissions, and Sudo Access
Part 9 Linux Package Management with Yum, RPM, Apt, Dpkg, Aptitude, and Zypper
Part 10 Learning Basic Shell Scripting and Filesystem Troubleshooting
Part 11 How to Manage and Create LVM Using vgcreate, lvcreate, and lvextend Commands
Part 12 How to Explore Linux with Installed Help Documentations and Tools
Part 13 How to Configure and Troubleshoot Grand Unified Bootloader (GRUB)
Part 14 Monitor Linux Processes Resource Usage and Set Process Limits on a Per-User Basis
Part 15 How to Set or Modify Kernel Runtime Parameters in Linux Systems
Part 16 Implementing Mandatory Access Control with SELinux or AppArmor in Linux
Part 17 How to Set Access Control Lists (ACLs) and Disk Quotas for Users and Groups
Part 18 Installing Network Services and Configuring Automatic Startup at Boot
Part 19 An Ultimate Guide to Setting Up FTP Server to Allow Anonymous Logins
Part 20 Setup a Basic Recursive Caching DNS Server and Configure Zones for Domain
Part 21 How to Install, Secure, and Performance Tuning of MariaDB Database Server
Part 22 How to Install and Configure NFS Server for File System Sharing
Part 23 How to Setup Apache with Name-Based Virtual Hosting with SSL Certificate
Part 24 How To Setup an Iptables Firewall to Enable Remote Access to Services in Linux
Part 25 How to Turn a Linux into a Router to Handle Traffic Statically and Dynamically
Part 26 How to Setup Encrypted Filesystems and Swap Using Cryptsetup Tool
Part 27 How to Monitor System Usage, Outages, and Troubleshoot Linux Servers
Part 28 How to Setup a Network Repository to Install or Update Packages
Part 29 How to Audit Network Performance, Security, and Troubleshooting
Part 30 How to Install and Manage Virtual Machines and Containers
Part 31 Learn the Basics of Git to Manage Projects Efficiently
Part 32 A Beginner’s Guide to Configuring IPv4 and IPv6 Addresses in Linux
Part 33 A Beginner’s Guide to Creating Network Bonding and Bridging in Ubuntu

本文是第6部分,属于33个教程系列的一部分,在这一部分中,我们将解释如何将分区组装为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
Creating RAID Array

2. 检查阵列创建状态

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

# cat /proc/mdstat
or 
# mdadm --detail /dev/md0	[More detailed summary]
Check RAID Array Status

3. 格式化RAID设备

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

4. 监控RAID阵列服务

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

# mdadm --detail --scan
Monitor RAID Array
# mdadm --assemble --scan 	[Assemble the array]

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

# systemctl start mdmonitor
# systemctl enable mdmonitor

5. 检查RAID磁盘故障

在支持冗余的RAID级别中,根据需要更换故障的驱动器。当磁盘阵列中的设备发生故障时,如果在我们第一次创建阵列时添加了备用设备,则会自动开始重建。

Check RAID Faulty Disk

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

# 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自动构建到阵列中。因此,我们“用完了”健康的备用设备,并收到了警报。

RAID Monitoring Alerts

理解Linux中的RAID级别

以下是常见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/dev/sde1作为备用,组装一个RAID 5阵列。

# 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/dev/sde1/dev/sdf1作为备用,组装一个RAID 6阵列。

# 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/sdd1/dev/sde1/dev/sdf1作为备用,组装一个RAID 1+0阵列。

# 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详细输出。

rsync Synchronizing Files

此外,如果您想增加数据传输在线上的安全性,可以使用ssh通过rsync

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

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

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

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

rsync Synchronize Remote Files

通过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]

最后但同样重要的是,请考虑使用以下链接购买您的考试券,以赚取我们一点佣金,这将帮助我们保持这本书的更新。

如果您有任何问题、评论或关于如何改进本文的更多想法,请随时在下方发表意见。此外,请考虑通过您的社交媒体个人资料分享这一系列文章。

Source:
https://www.tecmint.com/creating-and-managing-raid-backups-in-linux/