歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> LFCS 系列第六講:組裝分區為RAID設備——創建和管理系統備份

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

日期:2017/2/28 13:52:55   编辑:Linux教程

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 級別更詳細的解釋。

  • 在 Linux 下使用 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 命令的示例和用法 ,你可以查看下面的文章。

  • 在 Linux 下同步文件的10個 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

Copyright © Linux教程網 All Rights Reserved