歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 在 Linux 下使用 RAID(七):在 RAID 中擴展現有的 RAID 陣列和刪除故障的磁盤

在 Linux 下使用 RAID(七):在 RAID 中擴展現有的 RAID 陣列和刪除故障的磁盤

日期:2017/2/28 13:58:12   编辑:Linux教程

每個新手都會對陣列(array)這個詞所代表的意思產生疑惑。陣列只是磁盤的一個集合。換句話說,我們可以稱陣列為一個集合(set)或一組(group)。就像一組雞蛋中包含6個一樣。同樣 RAID 陣列中包含著多個磁盤,可能是2,4,6,8,12,16等,希望你現在知道了什麼是陣列。

在這裡,我們將看到如何擴展現有的陣列或 RAID 組。例如,如果我們在陣列中使用2個磁盤形成一個 raid 1 集合,在某些情況,如果該組中需要更多的空間,就可以使用 mdadm -grow 命令來擴展陣列大小,只需要將一個磁盤加入到現有的陣列中即可。在說完擴展(添加磁盤到現有的陣列中)後,我們將看看如何從陣列中刪除故障的磁盤。

擴展 RAID 陣列和刪除故障的磁盤

假設磁盤中的一個有問題了需要刪除該磁盤,但我們需要在刪除磁盤前添加一個備用磁盤來擴展該鏡像,因為我們需要保存我們的數據。當磁盤發生故障時我們需要從陣列中刪除它,這是這個主題中我們將要學習到的。

擴展 RAID 的特性

  • 我們可以增加(擴展)任意 RAID 集合的大小。
  • 我們可以在使用新磁盤擴展 RAID 陣列後刪除故障的磁盤。
  • 我們可以擴展 RAID 陣列而無需停機。

要求

  • 為了擴展一個RAID陣列,我們需要一個已有的 RAID 組(陣列)。
  • 我們需要額外的磁盤來擴展陣列。
  • 在這裡,我們使用一塊磁盤來擴展現有的陣列。

在我們了解擴展和恢復陣列前,我們必須了解有關 RAID 級別和設置的基本知識。點擊下面的鏈接了解這些。

  • 介紹 RAID 的級別和概念 http://www.linuxidc.com/Linux/2015-08/122191.htm
  • 使用 mdadm 工具創建軟件 RAID 0 (條帶化) http://www.linuxidc.com/Linux/2015-08/122236.htm
  • 用兩塊磁盤創建 RAID 1(鏡像) http://www.linuxidc.com/Linux/2015-08/122289.htm
  • 如何在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
  • 在 Linux 下使用 RAID(四):創建 RAID 5(條帶化與分布式奇偶校驗) http://www.linuxidc.com/Linux/2015-08/122343.htm

我的服務器設置

  1. 操作系統:CentOS6.5Final
  2. IP地址:192.168.0.230
  3. 主機名: grow.tecmintlocal.com
  4. 2塊現有磁盤:1 GB
  5. 1塊額外磁盤:1 GB

在這裡,我們已有一個 RAID ,有2塊磁盤,每個大小為1GB,我們現在再增加一個磁盤到我們現有的 RAID 陣列中,其大小為1GB。

擴展現有的 RAID 陣列

1、 在擴展陣列前,首先使用下面的命令列出現有的 RAID 陣列。

  1. # mdadm --detail /dev/md0

檢查現有的 RAID 陣列

注意: 以上輸出顯示,已經有了兩個磁盤在 RAID 陣列中,級別為 RAID 1。現在我們增加一個磁盤到現有的陣列裡。

2、 現在讓我們添加新的磁盤“sdd”,並使用fdisk命令來創建分區。

  1. # fdisk /dev/sdd

請使用以下步驟為 /dev/sdd 創建一個新的分區。

  • n 創建新的分區。
  • 然後按 P 選擇主分區。
  • 接下來選擇分區號為1。
  • 只需按兩次回車鍵選擇默認值即可。
  • 然後,按 P 來打印創建好的分區。
  • L,列出所有可用的類型。
  • t 去修改分區。
  • 鍵入 fd 設置為 Linux 的 RAID 類型,然後按回車確認。
  • 然後再次使用p查看我們所做的更改。
  • 使用w保存更改。

為 sdd 創建新的分區

3、 一旦新的 sdd 分區創建完成後,你可以使用下面的命令驗證它。

  1. # ls -l /dev/ | grep sd

確認 sdd 分區

4、 接下來,在添加到陣列前先檢查磁盤是否有 RAID 分區。

  1. # mdadm --examine /dev/sdd1

在 sdd 分區中檢查 RAID

注意:以上輸出顯示,該盤有沒有發現 super-blocks,意味著我們可以將新的磁盤添加到現有陣列。

5、 要添加新的分區 /dev/sdd1 到現有的陣列 md0,請使用以下命令。

  1. # mdadm --manage /dev/md0 --add /dev/sdd1

添加磁盤到 RAID 陣列

6、 一旦新的磁盤被添加後,在我們的陣列中檢查新添加的磁盤。

  1. # mdadm --detail /dev/md0

確認將新磁盤添加到 RAID 中

注意: 在上面的輸出,你可以看到磁盤已經被添加作為備用的。在這裡,我們的陣列中已經有了2個磁盤,但我們期待陣列中有3個磁盤,因此我們需要擴展陣列。

7、 要擴展陣列,我們需要使用下面的命令。

  1. # mdadm --grow --raid-devices=3 /dev/md0

擴展 Raid 陣列

現在我們可以看到第三塊磁盤(sdd1)已被添加到陣列中,在第三塊磁盤被添加後,它將從另外兩塊磁盤上同步數據。

  1. # mdadm --detail /dev/md0

確認 Raid 陣列

注意: 對於大容量磁盤會需要幾個小時來同步數據。在這裡,我們使用的是1GB的虛擬磁盤,所以它非常快在幾秒鐘內便會完成。

從陣列中刪除磁盤

8、 在數據被從其他兩個磁盤同步到新磁盤sdd1後,現在三個磁盤中的數據已經相同了(鏡像)。

正如我前面所說的,假定一個磁盤出問題了需要被刪除。所以,現在假設磁盤sdc1出問題了,需要從現有陣列中刪除。

在刪除磁盤前我們要將其標記為失效,然後我們才可以將其刪除。

  1. # mdadm --fail /dev/md0 /dev/sdc1
  2. # mdadm --detail /dev/md0

在 RAID 陣列中模擬磁盤故障

從上面的輸出中,我們清楚地看到,磁盤在下面被標記為 faulty。即使它是 faulty 的,我們仍然可以看到 raid 設備有3個,1個損壞了,狀態是 degraded。

現在我們要從陣列中刪除 faulty 的磁盤,raid 設備將像之前一樣繼續有2個設備。

  1. # mdadm --remove /dev/md0 /dev/sdc1

在 Raid 陣列中刪除磁盤

9、 一旦故障的磁盤被刪除,然後我們只能使用2個磁盤來擴展 raid 陣列了。

  1. # mdadm --grow --raid-devices=2 /dev/md0
  2. # mdadm --detail /dev/md0

在 RAID 陣列擴展磁盤

從上面的輸出中可以看到,我們的陣列中僅有2台設備。如果你需要再次擴展陣列,按照如上所述的同樣步驟進行。如果你需要添加一個磁盤作為備用,將其標記為 spare,因此,如果磁盤出現故障時,它會自動頂上去並重建數據。

結論

在這篇文章中,我們已經看到了如何擴展現有的 RAID 集合,以及如何在重新同步已有磁盤的數據後從一個陣列中刪除故障磁盤。所有這些步驟都可以不用停機來完成。在數據同步期間,系統用戶,文件和應用程序不會受到任何影響。

在接下來的文章我將告訴你如何管理 RAID,敬請關注更新,不要忘了寫評論。


via: http://www.tecmint.com/grow-raid-array-in-linux/

作者:Babin Lonston 譯者:strugglingyouth 校對:wxy

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

Copyright © Linux教程網 All Rights Reserved