linux下使用mdadm組軟raid

為了給自己組一臺(tái)nas,保護(hù)里面數(shù)據(jù)的安全,所以查閱了挺多資料,終于在虛擬機(jī)上試驗(yàn)成功了軟raid的一些操作,寫篇文章記錄一下 。

創(chuàng)建軟raid

我是想創(chuàng)建一個(gè)raid5,raid5至少需要3塊硬盤,現(xiàn)在主流的nas上應(yīng)該都有4個(gè)硬盤位(除了系統(tǒng)盤之外)。
在創(chuàng)建之前需要將所有的數(shù)據(jù)盤分區(qū),一個(gè)硬盤一個(gè)區(qū)。

sudo fdisk /dev/sdb
# Welcome to fdisk (util-linux 2.31.1).
#Changes will remain in memory only, until you decide to write them.
#Be careful before using the write command.
#
#
#Command (m for help): d
#Selected partition 1
#Partition 1 has been deleted.
#
#Command (m for help): n
#Partition type
#p   primary (0 primary, 0 extended, 4 free)
#e   extended (container for logical partitions)
#Select (default p):
#
#Using default response p.
#Partition number (1-4, default 1):
#First sector (2048-10485759, default 2048):
#Last sector, +sectors or +size{K,M,G,T,P} (2048-10485759, default 10485759):
#
#Created a new partition 1 of type 'Linux' and of size 5 GiB.
#Partition #1 contains a linux_raid_member signature.
#
#Do you want to remove the signature? [Y]es/[N]o: Y
#
#The signature will be removed by a write command.
#
#Command (m for help): w
#The partition table has been altered.
#Syncing disks.

sudo fdisk /dev/sdc
sudo fdisk /dev/sdd
sudo fdisk /dev/sde

分好區(qū)之后就可以開始創(chuàng)建軟raid了

sudo mdadm -C /dev/md0 -a yes -l 5 -n 4 /dev/sdb /dev/sdc /dev/sdd /dev/sde

選項(xiàng)解讀:

  • -C 創(chuàng)建
  • -l 級(jí)別
  • -n 磁盤個(gè)數(shù)
  • -a {yes|no} 自動(dòng)為其創(chuàng)建設(shè)備文件
  • -x 指定空閑盤個(gè)數(shù),空閑盤可以在工作盤損壞后自動(dòng)頂替
    注意:創(chuàng)建陣列時(shí),陣列所需磁盤數(shù)為-n和-x參數(shù)的個(gè)數(shù)和

創(chuàng)建完成之后我們就可以開始對(duì)磁盤進(jìn)行格式化,并將配置寫入文件

# 格式化
sudo mkfs.ext4 /dev/md0

# 寫入配置文件
sudo mdadm -Ds /dev/md0 > mdadm.conf
sudo mv mdadm.conf /etc/

我們還可以查看磁盤狀態(tài)

sudo mdadm -D /dev/md0
image.png

然后我們需要重啟,重啟完成之后,md0可能會(huì)變,我的變成了md127,我也不知道這是為什么,但是我們可以使用sudo fdisk -l來(lái)進(jìn)行查看,查看之后就可以使用mount命令或者編輯/etc/fstab對(duì)這個(gè)raid后的磁盤進(jìn)行掛載使用了。

模擬數(shù)據(jù)盤損壞

我在實(shí)驗(yàn)之前已經(jīng)將所有的磁盤都設(shè)置為了可以熱插拔,所以在虛擬機(jī)運(yùn)行的時(shí)候我也可以移除磁盤?,F(xiàn)在我們要模擬損壞,然后如何替換新的磁盤上去,我們先在虛擬機(jī)上將其中一個(gè)數(shù)據(jù)盤移除。

sudo mdadm -D /dev/md127
image.png

現(xiàn)在我們可以看到Active Devices和Working Devices都已經(jīng)變成了3,最下面的一個(gè)磁盤也已經(jīng)顯示removed。然后我使用虛擬機(jī)在原來(lái) 的位置插入一個(gè)新的磁盤,模擬我們替換上新磁盤。

使用sudo fdisk -l可以看到,我們的新磁盤已經(jīng)被認(rèn)到了,現(xiàn)在要對(duì)這個(gè)新硬盤進(jìn)行分區(qū),分區(qū)時(shí)需要使用t將分區(qū)類型選擇為fd

# 將新硬盤添加到原有raid中
sudo mdadm /dev/md127 -a /dev/sde1
# 現(xiàn)在再查看raid的狀態(tài)
sudo mdadm -D /dev/md127
image.png

現(xiàn)在我們可以看到新硬盤已經(jīng)加入raid,并且已經(jīng)在重建數(shù)據(jù)了,時(shí)間可能比較久,但是不影響系統(tǒng)運(yùn)行。

模擬系統(tǒng)盤損壞

我們?cè)谑褂眠^程中,不光會(huì)出現(xiàn)數(shù)據(jù)盤損壞的情況,也有可能出現(xiàn)系統(tǒng)盤損壞的情況,當(dāng)系統(tǒng)盤損壞的時(shí)候,我們?nèi)绾巫屢粋€(gè)新系統(tǒng)識(shí)別已有的raid組合。

我在虛擬機(jī)上重新安裝了系統(tǒng)開機(jī)后,發(fā)現(xiàn)系統(tǒng)已經(jīng)直接認(rèn)到了raid盤,也就是說什么都不用做。

# 我們主動(dòng)解除raid組合
sudo mdadm -S /dev/md0

當(dāng)我們主動(dòng)解除raid盤之后,系統(tǒng)就已經(jīng)不能認(rèn)到raid了,這個(gè)時(shí)候,我們可以使用以下命令再次識(shí)別raid,也可以直接將之前的mdadm.conf直接復(fù)制到/etc/目錄,重啟之后,他就會(huì)自動(dòng)幫我們識(shí)別好raid了。

sudo mdadm -A /dev/md0 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

損壞通知

我們不可能每天都去查看硬盤有沒有損壞,這樣非常麻煩,所以我自己寫了一個(gè)腳本,實(shí)現(xiàn)監(jiān)控硬盤的功能,當(dāng)它檢測(cè)到硬盤損壞時(shí),就會(huì)發(fā)一封郵件通知你。首先要讓自己的nas擁有發(fā)郵件的功能,郵件的配置請(qǐng)參考我的這篇文章

#! /usr/bin/python3

import os
import time

while 1:
        result = os.popen('mdadm -D /dev/md0')
        res = result.read()
        active = 0

        for line in res.splitlines():
                if 'Active Devices : 4' in line:
                        active = 1
                        break
                else:
                        continue
                active = 0

        if active == 1:
                time.sleep(600)
        else:
                os.system("echo '你的raid可能出現(xiàn)了一些問題,請(qǐng)查看一下' | mutt -s 'raid問題報(bào)告' pi_sender@163.com")
                time.sleep(86400)

最后在終端執(zhí)行sudo ./raid-monitor.py就好了

參考鏈接:http://www.toxingwang.com/linux-unix/linux-basic/1048.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容