首頁 > 軟體

LFCS 系列第六講:組裝分割區為RAID裝置——建立和管理系統備份

2020-06-16 17:43:28

Linux 基金會已經發起了一個全新的 LFCS(Linux 基金會認證系統管理員(Linux Foundation Certified Sysadmin))認證,旨在讓來自世界各地的人有機會參加到 LFCS 測試,獲得關於有能力在 Linux 系統中執行中級系統管理任務的認證。該認證包括:維護正在執行的系統和服務的能力、全面監控和分析的能力以及何時向上遊團隊請求支援的決策能力。

LFCS 系列第六講

以下視訊介紹了 Linux 基金會認證程式。 

本講是系列教學中的第六講,在這一講裡,我們將會解釋如何將分割區組裝為 RAID 裝置——建立和管理系統備份。這些都是 LFCS 認證中的必備知識。

 

了解RAID

這種被稱為獨立磁碟冗餘陣列(Redundant Array of Independent Disks)(RAID)的技術是將多個硬碟組合成一個單獨邏輯單元的儲存解決方案,它提供了資料冗餘功能並且改善硬碟的讀寫操作效能。

然而,實際的容錯和磁碟 I/O 效能硬碟取決於如何將多個硬碟組裝成磁碟陣列。根據可用的裝置和容錯/效能的需求,RAID 被分為不同的級別,你可以參考 RAID 系列文章以獲得每個 RAID 級別更詳細的解釋。

我們選擇用於建立、組裝、管理、監視軟體 RAID 的工具,叫做 mdadm (multiple disk admin 的簡寫)。

  1. ----------------Debian及衍生版----------------
  2. # aptitude update && aptitude install mdadm
  1. ----------------RedHat和基於CentOS的系統----------------
  2. #yum update &&yum install mdadm
  1. ---------------- openSUSE ----------------
  2. # zypper refresh && zypper install mdadm#

 

將分割區組裝成 RAID 裝置

組裝已有分割區作為 RAID 裝置的過程由以下步驟組成。

1. 使用 mdadm 建立陣列

如果先前其中一個分割區已經格式化,或者作為了另一個 RAID 陣列的一部分,你會被提示以確認建立一個新的陣列。假設你已經採取了必要的預防措施以避免丟失重要資料,那麼可以安全地輸入 Y 並且按下回車。

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

建立 RAID 陣列

2. 檢查陣列的建立狀態

在建立了 RAID 陣列之後,你可以檢查使用以下命令檢查陣列的狀態。

  1. #cat/proc/mdstat
  2. or
  3. #mdadm--detail /dev/md0 [More detailed summary]

檢查 RAID 陣列的狀態

3. 格式化 RAID 裝置

如本系列第四講所介紹的,按照你的需求/要求採用某種檔案系統格式化你的裝置。

4. 監控 RAID 陣列服務

讓監控服務時刻監視你的 RAID 陣列。把# mdadm --detail --scan命令輸出結果新增到 /etc/mdadm/mdadm.conf(Debian及其衍生版)或者/etc/mdadm.conf(Cent0S/openSUSE),如下。

  1. #mdadm--detail --scan

監控 RAID 陣列

  1. #mdadm--assemble --scan [Assemble the array]

為了確保服務能夠開機啟動,需要以 root 許可權執行以下命令。

Debian 及其衍生版

Debian 及其衍生版能夠通過下面步驟使服務預設開機啟動:

  1. # update-rc.d mdadm defaults

/etc/default/mdadm 檔案中新增下面這一行

  1. AUTOSTART=true

CentOS 和 openSUSE(systemd-based)

  1. #systemctl start mdmonitor
  2. #systemctl enable mdmonitor

CentOS 和 openSUSE(SysVinit-based)

  1. # service mdmonitor start
  2. # chkconfig mdmonitor on

5. 檢查RAID磁碟故障

在支援冗餘的的 RAID 級別中,在需要時會替換故障的驅動器。當磁碟陣列中的裝置出現故障時,僅當存在我們第一次建立陣列時預留的備用裝置時,磁碟陣列會將自動啟動重建。

檢查 RAID 故障磁碟

否則,我們需要手動將一個額外的物理驅動器插入到我們的系統,並且執行。

  1. #mdadm/dev/md0 --add /dev/sdX1

/dev/md0 是出現了問題的陣列,而 /dev/sdx1 是新新增的裝置。

6. 拆解一個工作陣列

如果你需要使用工作陣列的裝置建立一個新的陣列,你可能不得不去拆解已有工作陣列——(可選步驟)

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

7. 設定郵件通知

你可以設定一個用於傳送通知的有效郵件地址或者系統賬號(確保在 mdadm.conf 檔案中有下面這一行)。——(可選步驟)

  1. MAILADDR root

在這種情況下,來自 RAID 後台監控程式所有的通知將會傳送到你的本地 root 賬號的郵件箱中。其中一個類似的通知如下。

說明:此次通知事件和第5步中的例子相關。此處一個裝置被標誌為錯誤,並且一個空閒的裝置自動地被 mdadm 加入到陣列。我們用完了所有“健康的”空閒裝置,因此我們得到了通知。

RAID 監控通知

 

了解 RAID 級別

RAID 0

陣列總大小是最小分割區大小的 n 倍,n 是陣列中獨立磁碟的個數(你至少需要兩個驅動器/磁碟)。執行下面命令,使用 /dev/sdb1 和 /dev/sdc1 分割區組裝一個 RAID 0 陣列。

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

常見用途:用於支援效能比容錯更重要的實時應用程式的設定

RAID 1 (又名映象)

陣列總大小等於最小分割區大小(你至少需要兩個驅動器/磁碟)。執行下面命令,使用 /dev/sdb1 和 /dev/sdc1 分割區組裝一個 RAID 1 陣列。

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

常見用途:作業系統的安裝或者重要的子資料夾,例如 /home

RAID 5 (又名奇偶校驗碼盤)

陣列總大小將是最小分割區大小的 (n-1) 倍。所減少的大小用於奇偶校驗(冗餘)計算(你至少需要3個驅動器/磁碟)。

說明:你可以指定一個空閒裝置 (/dev/sde1) 替換問題出現時的故障部分(分割區)。執行下面命令,使用 /dev/sdb1, /dev/sdc1, /dev/sdd1,/dev/sde1 組裝一個 RAID 5 陣列,其中 /dev/sde1 作為空閒分割區。

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

常見用途:Web 和檔案服務

RAID 6 (又名雙重奇偶校驗碼盤)

陣列總大小為(ns)-2s,其中n為陣列中獨立磁碟的個數,s為最小磁碟大小。

說明:你可以指定一個空閒分割區(在這個例子為 /dev/sdf1)替換問題出現時的故障部分(分割區)。

執行下面命令,使用 /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1 和 /dev/sdf1 組裝 RAID 6 陣列,其中 /dev/sdf1 作為空閒分割區。

  1. #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 1+0 是 RAID 0 和 RAID 1 的組合,所以陣列總大小是基於兩者的公式計算的。首先,計算每一個映象的大小,然後再計算條帶的大小。

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

常見用途:需要快速 IO 操作的資料庫和應用伺服器

 

建立和管理系統備份

記住, RAID 其所有的價值不是在於備份的替換者!在黑板上寫上1000次,如果你需要的話,但無論何時一定要記住它。在我們開始前,我們必須注意的是,沒有一個放之四海皆準的針對所有系統備份的解決方案,但這裡有一些東西,是你在規劃一個備份策略時需要考慮的。

  • 你的系統將用於什麼?(桌面或者伺服器?如果系統是應用於後者,那麼最重要的服務是什麼?哪個設定是痛點?)
  • 你每隔多久備份你的系統?
  • 你需要備份的資料是什麼(比如檔案/資料夾/資料庫轉儲)?你還可以考慮是否需要備份大型檔案(比如音訊和視訊檔)。
  • 這些備份將會儲存在哪裡(物理位置和媒體)?

備份你的資料

方法1:使用 dd 命令備份整個磁碟。你可以在任意時間點通過建立一個準確的映象來備份一整個硬碟或者是分割區。注意當裝置是離線時,這種方法效果最好,也就是說它沒有被掛載並且沒有任何進程的 I/O 操作存取它。

這種備份方法的缺點是映象將具有和磁碟或分割區一樣的大小,即使實際資料占用的是一個很小的比例。比如,如果你想要為只使用了10%的20GB的分割區建立映象,那麼映象檔案將仍舊是20GB。換句話來講,它不僅包含了備份的實際資料,而且也包含了整個分割區。如果你想完整備份你的裝置,那麼你可以考慮使用這個方法。

從現有的裝置建立一個映象檔案

  1. #ddif=/dev/sda of=/system_images/sda.img
  2. 或者
  3. ---------------------可選地,你可以壓縮映象檔案-------------------
  4. #ddif=/dev/sda | gzip -c >/system_images/sda.img.gz

從映象檔案恢復備份

  1. #ddif=/system_images/sda.img of=/dev/sda
  2. 或者
  3. ---------------------根據你建立映象檔案時的選擇(譯者注:比如壓縮)----------------
  4. # gzip -dc /system_images/sda.img.gz |dd of=/dev/sda

方法2:使用 tar 命令備份確定的檔案/資料夾——已經在本系列第三講中講了。如果你想要備份指定的檔案/資料夾(組態檔,使用者主目錄等等),你可以使用這種方法。

方法3:使用 rsync 命令同步檔案。rsync 是一種多功能遠端(和本地)檔案複製工具。如果你想要從網路裝置備份或同步檔案,rsync 是一種選擇。

無論是你是正在同步兩個本地資料夾還是本地 < — > 掛載在本地檔案系統的遠端資料夾,其基本語法是一樣的。

  1. # rsync -av source_directory destination_directory

在這裡,-a 遞回遍歷子目錄(如果它們存在的話),維持符號連結、時間戳、許可權以及原本的屬主/屬組,-v 顯示詳細過程。

rsync 同步檔案

除此之外,如果你想增加在網路上傳輸資料的安全性,你可以通過 ssh 協定使用 rsync。

通過 ssh 同步本地到遠端資料夾

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

這個範例,本地主機上的 backups 資料夾將與遠端主機上的 /root/remote_directory 的內容同步。

在這裡,-h 選項以易讀的格式顯示檔案的大小,-e 標誌用於表示一個 ssh 連線。

rsync 同步遠端檔案

通過ssh同步遠端到本地資料夾

在這種情況下,交換前面範例中的 source 和 destination 資料夾。

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

請注意這些只是 rsync 用法的三個範例而已(你可能遇到的最常見的情形)。對於更多有關 rsync 命令的範例和用法 ,你可以檢視下面的文章。

 

總結

作為一個系統管理員,你需要確保你的系統表現得盡可能好。如果你做好了充分準備,並且如果你的資料完整效能被諸如 RAID 和系統日常備份的儲存技術支援,那你將是安全的。

如果你有有關完善這篇文章的問題、評論或者進一步的想法,可以在下面暢所欲言。除此之外,請考慮通過你的社群網路簡介分享這系列文章。

如何在Linux上構建 RAID 10陣列  http://www.linuxidc.com/Linux/2014-12/110318.htm

Debian軟RAID安裝筆記 - 使用mdadm安裝RAID1 http://www.linuxidc.com/Linux/2013-06/86487.htm

常用RAID技術介紹以及??例演示(多圖) http://www.linuxidc.com/Linux/2013-03/81481.htm

Linux實現最常用的磁碟陣列-- RAID5 http://www.linuxidc.com/Linux/2013-01/77880.htm

RAID0+1和RAID5的效能測試結果 http://www.linuxidc.com/Linux/2012-07/65567.htm

Linux入門教學:磁碟陣列(RAID) http://www.linuxidc.com/Linux/2014-07/104444.htm

本文永久更新連結地址http://www.linuxidc.com/Linux/2016-04/130358.htm


IT145.com E-mail:sddin#qq.com