Linux中國

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

LFCS 系列第六講

以下視頻介紹了 Linux 基金會認證程序。

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

了解RAID

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

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

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

---------------- Debian 及衍生版 -------------# aptitude update && aptitude install mdadm
---------------- Red Hat 和基於 CentOS 的系統 -------------# yum update && yum install mdadm
---------------- openSUSE 上 -------------# zypper refresh && zypper install mdadm #

將分區組裝成 RAID 設備

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

1. 使用 mdadm 創建陣列

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

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

Creating RAID Array

創建 RAID 陣列

2. 檢查陣列的創建狀態

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

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

Check RAID Array Status

檢查 RAID 陣列的狀態

3. 格式化 RAID 設備

如本系列第四講所介紹的,按照你的需求/要求採用某種文件系統格式化你的設備。

4. 監控 RAID 陣列服務

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

# mdadm --detail --scan

Monitor RAID Array

監控 RAID 陣列

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

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

Debian 及其衍生版

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

# update-rc.d mdadm defaults

/etc/default/mdadm 文件中添加下面這一行

AUTOSTART=true

CentOS 和 openSUSE(systemd-based)

# systemctl start mdmonitor
# systemctl enable mdmonitor

CentOS 和 openSUSE(SysVinit-based)

# service mdmonitor start
# chkconfig mdmonitor on

5. 檢查RAID磁碟故障

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

Check RAID Faulty Disk

檢查 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 賬號的郵件箱中。其中一個類似的通知如下。

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

RAID Monitoring Alerts

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) 倍。所減少的大小用於奇偶校驗(冗餘)計算(你至少需要3個驅動器/磁碟)。

說明:你可以指定一個空閑設備 (/dev/sde1) 替換問題出現時的故障部分(分區)。運行下面命令,使用 /dev/sdb1, /dev/sdc1, /dev/sdd1,/dev/sde1 組裝一個 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 (又名雙重奇偶校驗碼盤)

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

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

運行下面命令,使用 /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1 和 /dev/sdf1 組裝 RAID 6 陣列,其中 /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 1+0 是 RAID 0 和 RAID 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。換句話來講,它不僅包含了備份的實際數據,而且也包含了整個分區。如果你想完整備份你的設備,那麼你可以考慮使用這個方法。

從現有的設備創建一個鏡像文件

# dd if=/dev/sda of=/system_images/sda.img
或者
--------------------- 可選地,你可以壓縮鏡像文件 ----------------# dd if=/dev/sda | gzip -c > /system_images/sda.img.gz

從鏡像文件恢復備份

# dd if=/system_images/sda.img of=/dev/sda
或者
--------------------- 根據你創建鏡像文件時的選擇(譯者注:比如壓縮) -------------# gzip -dc /system_images/sda.img.gz | dd of=/dev/sda

方法2:使用 tar 命令備份確定的文件/文件夾——已經在本系列第三講中講了。如果你想要備份指定的文件/文件夾(配置文件,用戶主目錄等等),你可以使用這種方法。

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

無論是你是正在同步兩個本地文件夾還是本地 < — > 掛載在本地文件系統的遠程文件夾,其基本語法是一樣的。

# rsync -av source_directory destination_directory

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

rsync Synchronizing Files

rsync 同步文件

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

通過 ssh 同步本地到遠程文件夾

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

這個示例,本地主機上的 backups 文件夾將與遠程主機上的 /root/remote_directory 的內容同步。

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

rsync Synchronize Remote Files

rsync 同步遠程文件

通過ssh同步遠程到本地文件夾

在這種情況下,交換前面示例中的 source 和 destination 文件夾。

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

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

總結

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

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

via: http://www.tecmint.com/creating-and-managing-raid-backups-in-linux/

作者:Gabriel Cánepa 譯者:cpsoture 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國