溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ubuntu server中RAID 10故障如何處理

發(fā)布時間:2021-12-20 16:26:02 來源:億速云 閱讀:332 作者:小新 欄目:系統(tǒng)運(yùn)維

這篇文章給大家分享的是有關(guān)ubuntu server中RAID 10故障如何處理的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

◆故障處理

下面我們來模擬RAID發(fā)生故障時的處理。

◆從RAID中移除設(shè)備

正在使用的設(shè)備是不允許移除的,要想移除,必須先將其標(biāo)記為fail。如果你的RAID中有某個設(shè)備發(fā)生故障,要移除的話,也需要先將其標(biāo)記為fail。

1.移除單個RAID物理卷

假設(shè)sda1分區(qū)發(fā)生異常,我們需要將其移除。

下面我們將物理卷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

如果你打算將移除的設(shè)備清空,以便做其他用途,那么你必須將超級塊清除掉,否則系統(tǒng)會認(rèn)為該設(shè)備仍然屬于某個RAID陣列:

$ sudo mdadm --zero-superblock /dev/sda1

2.移除整個硬盤

要從RAID中移除整個硬盤,需要先將該硬盤上所有的RAID物理卷都移除。

比如,我們要將***塊硬盤sda整個移除,就需要將sda1、sda2、sda3全部標(biāo)記為fail,然后將其全部移除:

ubuntu server中RAID 10故障如何處理

mdadm: set /dev/sda3 faulty in /dev/md2

mdadm: hot removed /dev/sda3

現(xiàn)在,如果在支持熱插拔的服務(wù)器上,你就可以將該硬盤拔出了。

◆添加已有RAID物理卷

向RAID中添加設(shè)備,使用--add指令即可。

如果要添加的設(shè)備上已經(jīng)創(chuàng)建好RAID物理卷,比如我們剛才移除的sda1、sda2、sda3設(shè)備,添加過程很簡單:

$ 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.移除壞硬盤

假設(shè)整個sda已經(jīng)無法使用,我們需要用全新的硬盤將其替換掉。首先,將sda的所有分區(qū)從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狀態(tài),看看是不是真的移除了:

ubuntu server中RAID 10故障如何處理

我們可以看到,sda的設(shè)備已經(jīng)不在RAID中了,RAID10的狀態(tài)變成了3個Up設(shè)備:[_UUU]。

現(xiàn)在,如果是在支持熱插拔的服務(wù)器上,你就可以將硬盤拔出了。

2.插入硬盤

雖然***塊硬盤從RAID中移除了,現(xiàn)在系統(tǒng)仍然可以啟動。這是因為sdb變成了***塊硬盤,現(xiàn)在grub配置中的hd0實際上就是sdb。所以,即使***塊硬盤壞掉,在不需要更改grub配置的情況下,系統(tǒng)仍然能夠啟動。

如果你是在真實的服務(wù)器上做實驗,而且服務(wù)器支持硬盤的熱插拔,不需要重新啟動服務(wù)器,直接將“壞”硬盤拔出,換上新硬盤即可。

由于我們是在VMware中做實驗,不支持熱插拔,所以要添加新硬盤的話必須關(guān)機(jī):

$ sudo halt

關(guān)機(jī)后,在VMware中,先加入一塊新硬盤,再刪除原先的***塊“壞”硬盤。請注意,如果你先刪除舊硬盤再加入新硬盤,VMware會把新硬盤作為SCSI0:0加入,對Linux來說也就是sda;由于這是一塊全新的硬盤,上面還沒有g(shù)rub,所以如果作為sda的話,會導(dǎo)致系統(tǒng)無法啟動。

新硬盤加好后,開機(jī)。

是的,在缺少***塊硬盤、只剩下3塊好硬盤的情況下,系統(tǒng)的確還能夠正常啟動。現(xiàn)在,你體會到我們這個方案的優(yōu)越性了吧!

系統(tǒng)啟動后,我們來看一下現(xiàn)有硬盤的情況:

$ sudo fdisk -l

你應(yīng)該看到,原有的3塊硬盤,位置都往前移動了,原先的sdb成了現(xiàn)在的sda,新加入的硬盤成了sdd。(如果你是在真實服務(wù)器上,沒有重新啟動服務(wù)器,而使用熱插拔加入新硬盤,那么新硬盤仍然是sda。)

3.新硬盤分區(qū)

為了方便,我們直接將現(xiàn)有硬盤的分區(qū)信息,復(fù)制到新硬盤上:

$ sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sdd

現(xiàn)在,我們的新硬盤已經(jīng)分好區(qū),可以加入RAID了。

4.將新分區(qū)加入RAID

在把新分區(qū)加入到RAID之前,我們先來查看一下md1的詳細(xì)信息:

ubuntu server中RAID 10故障如何處理

可以看到,目前只有3個設(shè)備在md1中工作,原先的***個設(shè)備已經(jīng)被移除了。

好,現(xiàn)在我們將sdd2加入md1:

$ sudo mdadm /dev/md1 --add /dev/sdd2

命令執(zhí)行后,mdadm會重建md1,你可以查看創(chuàng)建進(jìn)度和狀態(tài):

$ sudo mdadm --detail /dev/md1

[...]

Rebuild Status : 7% complete

[...]

Number Major Minor RaidDevice State

4 8 50 0 spare rebuilding /dev/sdd2

[...]

根據(jù)分區(qū)的大小,重建過程的時間長短會不一樣。等重建結(jié)束,其狀態(tài)應(yīng)該是這樣:

ubuntu server中RAID 10故障如何處理

然后,我們把md0和md2也重建:

$ sudo mdadm /dev/md0 --add /dev/sdd1

$ sudo mdadm /dev/md2 --add /dev/sdd3

5.設(shè)置grub

***,還需要設(shè)置一下grub,否則新硬盤無法啟動系統(tǒng):

$ sudo grub

grub> root (hd3,0)

grub> setup (hd3)

grub> quit

如果你是在真實服務(wù)器上,新硬盤為sda,則應(yīng)該將grub安裝在hd0上。

好,現(xiàn)在新硬盤已經(jīng)加入到RAID中,將原先的壞硬盤替換掉了。

◆添加備用硬盤

如果我們的RAID陣列中有備用設(shè)備,那么,在某個設(shè)備發(fā)生故障時,系統(tǒng)會自動將備用設(shè)備替換上,我們也就不需要進(jìn)行手工更換的操作了。

我們可以在安裝Ubuntu之初,就為RAID準(zhǔn)備好備用硬盤,在創(chuàng)建RAID設(shè)備時使用-x或者--spare-devices=選項將備用物理卷添加到RAID中。

當(dāng)然,我們也可以事后再添加備用硬盤;只是不能使用--spare-devices=選項,而要采用--add了。

在添加之前,我們先看一下RAID中有沒有備用設(shè)備:

$ sudo mdadm --detail /dev/md1 | grep Spare

Spare Devices : 0

可見,當(dāng)前RAID陣列中沒有備用設(shè)備。

◆插入新硬盤

現(xiàn)在,我們按照上一節(jié)中介紹過的步驟,向服務(wù)器中添加一塊新硬盤。

系統(tǒng)啟動后,我們來看一下現(xiàn)有硬盤的情況:

$ sudo fdisk -l

你應(yīng)該看到有sde設(shè)備,這個設(shè)備就是我們新加入的硬盤。

◆新硬盤分區(qū)

為了簡化操作,我們還是直接將現(xiàn)有硬盤的分區(qū)信息,復(fù)制到新硬盤上:

$ sudo sfdisk -d /dev/sda | sudo sfdisk /dev/sde

好,現(xiàn)在我們的新硬盤已經(jīng)分好區(qū),可以加入RAID了。

◆新分區(qū)加入RAID

下面我們將新硬盤上的3個分區(qū),分別加入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

現(xiàn)在來查看一下md0中有沒有備用設(shè)備:

ubuntu server中RAID 10故障如何處理

可以看到,總設(shè)備的數(shù)量、工作中的設(shè)備數(shù)量、備用設(shè)備數(shù)量,都發(fā)生了改變。

同樣的,你也可以查看md1和md2的詳細(xì)信息,應(yīng)該都有了1個備用設(shè)備。

◆設(shè)置grub

我們需要事先將備用硬盤的grub設(shè)置好,以防萬一:

$ sudo grub

grub> root (hd4,0)

grub> setup (hd4)

grub> quit

◆故障模擬

現(xiàn)在,我們假設(shè)sda1出了故障,我們把它標(biāo)記為fail:

$ sudo mdadm /dev/md0 --fail /dev/sda1

mdadm: set /dev/sda1 faulty in /dev/md0

現(xiàn)在,我們來看看備用設(shè)備是否已經(jīng)自動啟用:

ubuntu server中RAID 10故障如何處理

可以看到,備用設(shè)備sde1的確已經(jīng)自動進(jìn)入工作狀態(tài)了,而sda1被標(biāo)記為“失敗”了。

當(dāng)sda1的故障被修復(fù)后,我們可以重新把它加入到RAID中來,使其成為備用設(shè)備。因為sda1已經(jīng)被標(biāo)記為fail,我們必須先將其移除,重新加入:

$ sudo mdadm /dev/md0 --remove /dev/sda1

$ sudo mdadm /dev/md0 --add /dev/sda1

◆RAID10的空間擴(kuò)展

假設(shè)現(xiàn)在系統(tǒng)的硬盤空間不夠用了,需要添加新的硬盤。

很遺憾,目前mdadm只支持RAID1、RAID5、RAID6的grow操作,也就是說,我們無法直接為RAID10擴(kuò)展存儲空間。

如果一定要向現(xiàn)有的RAID10陣列中添加新硬盤、增加空間,我們不得不按照下面的步驟:

(1)備份數(shù)據(jù);

(2)創(chuàng)建新的RAID陣列;

(3)恢復(fù)數(shù)據(jù)。

也就是說,要想擴(kuò)展RAID10的存儲空間,除非重建。

不過,我們可以和LVM結(jié)合,采用RAID+LVM的方案,在RAID上面建立LVM,這樣就可以隨意擴(kuò)展存儲空間了。這正是我們將在下一章中要介紹的內(nèi)容。

感謝各位的閱讀!關(guān)于“ubuntu server中RAID 10故障如何處理”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI