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

Linux Foundation推出了LFCSLinux 基金會認證系統管理員)認證,這對於各地的系統管理員來說是一個光明的機會,他們可以通過基於性能的考試來證明自己能夠在 Linux 系統上進行整體運營支援:系統支援、一級診斷和監控,以及在需要時將問題升級給其他支援團隊。

這個系列將被命名為LFCSLinux 基金會認證系統管理員第 1第 33部分,並涵蓋以下主題:

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

這篇文章是一個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
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帳戶的郵箱。其中一個警報如下所示。

注意:此事件與STEP5中的示例有關,其中一個設備被標記為有故障,並且備用設備被mdadm自動構建到陣列中。因此,我們“用完了”健康的備用設備,並且我們收到了警報。

RAID Monitoring Alerts

了解Linux中的RAID級別

以下是常見RAID級別的簡要概述:

RAID0

總陣列大小是n乘以最小分區的大小,其中n是陣列中獨立磁盤的數量(您至少需要兩個驅動器)。運行以下命令以使用分區/dev/sdb1/dev/sdc1組裝RAID0陣列。

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

常見用途:支持實時應用程序的設置,其中性能比容錯性更重要。

RAID1(又名鏡像)

總陣列大小等於最小分區的大小(您至少需要兩個驅動器)。運行以下命令以使用分區/dev/sdb1/dev/sdc1組裝RAID1陣列。

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

常見用途:操作系統的安裝或重要子目錄,例如/home

RAID5(又名帶奇偶校驗的驅動器)

總陣列大小將是 (n–1)乘以最小分割區的大小。在 (n-1)中的“遺失”空間用於奇偶校驗(冗餘)計算(您至少需要三個驅動器)。

請注意,您可以指定一個備用裝置(在此情況下為 /dev/sde1),以便在發生問題時替換故障的部分。運行以下命令以使用分割區 /dev/sdb1/dev/sdc1/dev/sdd1/dev/sde1作為備用來組裝一個 RAID5陣列。

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

常見用途:Web和檔案伺服器。

RAID6(又名具有雙重奇偶校驗的驅動器)

總陣列大小將是 (n*s)-2*s,其中 n是陣列中獨立磁碟的數量,s是最小磁碟的大小。請注意,您可以指定一個備用裝置(在此情況下為 /dev/sdf1),以便在發生問題時替換故障的部分。

運行以下命令以使用分割區 /dev/sdb1/dev/sdc1/dev/sdd1/dev/sde1/dev/sdf1作為備用來組裝一個 RAID6陣列。

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

常見用途:具有大容量和高可用性要求的檔案和備份伺服器。

RAID1+0(又名鏡像條帶)

總陣列大小是根據 RAID0RAID1的公式計算的,因為 RAID1+0是兩者的組合。首先計算每個鏡像的大小,然後計算條帶的大小。

請注意,您可以指定一個備用裝置(在此情況下為/dev/sdf1),以便在問題發生時替換故障部件。運行以下命令,使用分割區/dev/sdb1/dev/sdc1/dev/sdd1/dev/sde1/dev/sdf1作為備用,來組裝一個RAID1+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儘管有其優點,並不是備份的替代品!如果您需要,可以在黑板上寫一千遍,但一定要時刻記住這個觀念。

在開始之前,我們必須指出,沒有一刀切的系統備份解決方案,但在規劃備份策略時,您需要考慮以下幾點。

  • 您使用系統做什麼?(桌面還是伺服器?如果是後者,哪些是最關鍵的服務——其配置丟失會非常痛苦?)
  • 您需要多久備份一次系統?
  • 您想要備份哪些數據(例如文件/目錄/資料庫傾印)?您可能還想考慮是否真的需要備份大型文件(如音頻或視頻文件)。
  • 那些備份將存儲在哪裡(即物理位置和媒體)?

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 

請注意,這些只是3個示例(您可能遇到的最常見情況)的rsync使用。有關更多示例和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/