您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關ubuntu server中RAID 10故障如何處理的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
◆故障處理
下面我們來模擬RAID發生故障時的處理。
◆從RAID中移除設備
正在使用的設備是不允許移除的,要想移除,必須先將其標記為fail。如果你的RAID中有某個設備發生故障,要移除的話,也需要先將其標記為fail。
1.移除單個RAID物理卷
假設sda1分區發生異常,我們需要將其移除。
下面我們將物理卷sda1從RAID中移除:
$ sudo mdadm /dev/md0 --fail /dev/sda1 --remove /dev/sda1
mdadm: set /dev/sda1 faulty in /dev/md0
mdadm: hot removed /dev/sda1
如果你打算將移除的設備清空,以便做其他用途,那么你必須將超級塊清除掉,否則系統會認為該設備仍然屬于某個RAID陣列:
$ sudo mdadm --zero-superblock /dev/sda1
2.移除整個硬盤
要從RAID中移除整個硬盤,需要先將該硬盤上所有的RAID物理卷都移除。
比如,我們要將***塊硬盤sda整個移除,就需要將sda1、sda2、sda3全部標記為fail,然后將其全部移除:
mdadm: set /dev/sda3 faulty in /dev/md2
mdadm: hot removed /dev/sda3
現在,如果在支持熱插拔的服務器上,你就可以將該硬盤拔出了。
◆添加已有RAID物理卷
向RAID中添加設備,使用--add指令即可。
如果要添加的設備上已經創建好RAID物理卷,比如我們剛才移除的sda1、sda2、sda3設備,添加過程很簡單:
$ sudo mdadm /dev/md0 --add /dev/sda1
mdadm: re-added /dev/sda1
$ sudo mdadm /dev/md1 --add /dev/sda2
mdadm: re-added /dev/sda1
$ sudo mdadm /dev/md2 --add /dev/sda3
mdadm: re-added /dev/sda1
◆更換全新硬盤
1.移除壞硬盤
假設整個sda已經無法使用,我們需要用全新的硬盤將其替換掉。首先,將sda的所有分區從RAID中移除:
$ sudo mdadm /dev/md0 --fail /dev/sda1 --remove /dev/sda1
$ sudo mdadm /dev/md1 --fail /dev/sda2 --remove /dev/sda2
$ sudo mdadm /dev/md2 --fail /dev/sda3 --remove /dev/sda3
移除后,查看一下RAID狀態,看看是不是真的移除了:
我們可以看到,sda的設備已經不在RAID中了,RAID10的狀態變成了3個Up設備:[_UUU]。
現在,如果是在支持熱插拔的服務器上,你就可以將硬盤拔出了。
2.插入硬盤
雖然***塊硬盤從RAID中移除了,現在系統仍然可以啟動。這是因為sdb變成了***塊硬盤,現在grub配置中的hd0實際上就是sdb。所以,即使***塊硬盤壞掉,在不需要更改grub配置的情況下,系統仍然能夠啟動。
如果你是在真實的服務器上做實驗,而且服務器支持硬盤的熱插拔,不需要重新啟動服務器,直接將“壞”硬盤拔出,換上新硬盤即可。
由于我們是在VMware中做實驗,不支持熱插拔,所以要添加新硬盤的話必須關機:
$ sudo halt
關機后,在VMware中,先加入一塊新硬盤,再刪除原先的***塊“壞”硬盤。請注意,如果你先刪除舊硬盤再加入新硬盤,VMware會把新硬盤作為SCSI0:0加入,對Linux來說也就是sda;由于這是一塊全新的硬盤,上面還沒有grub,所以如果作為sda的話,會導致系統無法啟動。
新硬盤加好后,開機。
是的,在缺少***塊硬盤、只剩下3塊好硬盤的情況下,系統的確還能夠正常啟動。現在,你體會到我們這個方案的優越性了吧!
系統啟動后,我們來看一下現有硬盤的情況:
$ sudo fdisk -l
你應該看到,原有的3塊硬盤,位置都往前移動了,原先的sdb成了現在的sda,新加入的硬盤成了sdd。(如果你是在真實服務器上,沒有重新啟動服務器,而使用熱插拔加入新硬盤,那么新硬盤仍然是sda。)
3.新硬盤分區
為了方便,我們直接將現有硬盤的分區信息,復制到新硬盤上:
$ sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdd
現在,我們的新硬盤已經分好區,可以加入RAID了。
4.將新分區加入RAID
在把新分區加入到RAID之前,我們先來查看一下md1的詳細信息:
可以看到,目前只有3個設備在md1中工作,原先的***個設備已經被移除了。
好,現在我們將sdd2加入md1:
$ sudo mdadm /dev/md1 --add /dev/sdd2
命令執行后,mdadm會重建md1,你可以查看創建進度和狀態:
$ sudo mdadm --detail /dev/md1
[...]
Rebuild Status : 7% complete
[...]
Number Major Minor RaidDevice State
4 8 50 0 spare rebuilding /dev/sdd2
[...]
根據分區的大小,重建過程的時間長短會不一樣。等重建結束,其狀態應該是這樣:
然后,我們把md0和md2也重建:
$ sudo mdadm /dev/md0 --add /dev/sdd1
$ sudo mdadm /dev/md2 --add /dev/sdd3
5.設置grub
***,還需要設置一下grub,否則新硬盤無法啟動系統:
$ sudo grub
grub> root (hd3,0)
grub> setup (hd3)
grub> quit
如果你是在真實服務器上,新硬盤為sda,則應該將grub安裝在hd0上。
好,現在新硬盤已經加入到RAID中,將原先的壞硬盤替換掉了。
◆添加備用硬盤
如果我們的RAID陣列中有備用設備,那么,在某個設備發生故障時,系統會自動將備用設備替換上,我們也就不需要進行手工更換的操作了。
我們可以在安裝Ubuntu之初,就為RAID準備好備用硬盤,在創建RAID設備時使用-x或者--spare-devices=選項將備用物理卷添加到RAID中。
當然,我們也可以事后再添加備用硬盤;只是不能使用--spare-devices=選項,而要采用--add了。
在添加之前,我們先看一下RAID中有沒有備用設備:
$ sudo mdadm --detail /dev/md1 | grep Spare
Spare Devices : 0
可見,當前RAID陣列中沒有備用設備。
◆插入新硬盤
現在,我們按照上一節中介紹過的步驟,向服務器中添加一塊新硬盤。
系統啟動后,我們來看一下現有硬盤的情況:
$ sudo fdisk -l
你應該看到有sde設備,這個設備就是我們新加入的硬盤。
◆新硬盤分區
為了簡化操作,我們還是直接將現有硬盤的分區信息,復制到新硬盤上:
$ sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sde
好,現在我們的新硬盤已經分好區,可以加入RAID了。
◆新分區加入RAID
下面我們將新硬盤上的3個分區,分別加入md0、md1、md2這3個RAID陣列:
$ sudo mdadm /dev/md0 --add /dev/sde1
$ sudo mdadm /dev/md1 --add /dev/sde2
$ sudo mdadm /dev/md2 --add /dev/sde3
現在來查看一下md0中有沒有備用設備:
可以看到,總設備的數量、工作中的設備數量、備用設備數量,都發生了改變。
同樣的,你也可以查看md1和md2的詳細信息,應該都有了1個備用設備。
◆設置grub
我們需要事先將備用硬盤的grub設置好,以防萬一:
$ sudo grub
grub> root (hd4,0)
grub> setup (hd4)
grub> quit
◆故障模擬
現在,我們假設sda1出了故障,我們把它標記為fail:
$ sudo mdadm /dev/md0 --fail /dev/sda1
mdadm: set /dev/sda1 faulty in /dev/md0
現在,我們來看看備用設備是否已經自動啟用:
可以看到,備用設備sde1的確已經自動進入工作狀態了,而sda1被標記為“失敗”了。
當sda1的故障被修復后,我們可以重新把它加入到RAID中來,使其成為備用設備。因為sda1已經被標記為fail,我們必須先將其移除,重新加入:
$ sudo mdadm /dev/md0 --remove /dev/sda1
$ sudo mdadm /dev/md0 --add /dev/sda1
◆RAID10的空間擴展
假設現在系統的硬盤空間不夠用了,需要添加新的硬盤。
很遺憾,目前mdadm只支持RAID1、RAID5、RAID6的grow操作,也就是說,我們無法直接為RAID10擴展存儲空間。
如果一定要向現有的RAID10陣列中添加新硬盤、增加空間,我們不得不按照下面的步驟:
(1)備份數據;
(2)創建新的RAID陣列;
(3)恢復數據。
也就是說,要想擴展RAID10的存儲空間,除非重建。
不過,我們可以和LVM結合,采用RAID+LVM的方案,在RAID上面建立LVM,這樣就可以隨意擴展存儲空間了。這正是我們將在下一章中要介紹的內容。
感謝各位的閱讀!關于“ubuntu server中RAID 10故障如何處理”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。