歡迎光臨
每天分享高質量文章

Linux 下軟 RAID 實現方案

來源:Linux愛好者

ID:LinuxHub

一.應用場景


Raid大家都知道是冗餘磁碟的意思(Redundant Arrays of Independent Disks,RAID),可以按業務系統的需要提供高可用性和冗餘性,目前市面上比較常見的是透過伺服器的raid陣列卡來實現此功能。


透過硬體陣列卡實現raid具有可靠性高,效能好等特點,但是對於一般的企業而言硬體陣列卡固然好,如果大規模應用的話動輒幾千上萬的費用也不是他們所能承受的,難道就沒有既能保證資料安全,又能減少費用支援的IT方案嗎?


當然有,軟raid就可以實現這一需求。

 

二.實現步驟

         

軟raid比較依賴作業系統,所以他的劣勢也顯而易見,需要佔用系統資源(主要是CPU資源)。目前在Linux和windows下軟raid都比較常見了,Linux是透過mdadm實現的,windows下則在win2003之後透過磁碟管理來實現。

 

實驗環境:


一臺centos 7.2 VM,主機名分別為host1,host1上掛載兩塊50G的資料盤,我們的實驗就在這兩塊資料盤上完成。


P.S:需要強調的是生產環境下兩塊組raid的硬碟必須是同品牌同型號同容量的,否則極容易出現軟raid失效的情況。

 

1.確認作業系統是否安裝了mdadm軟體


[root@host1 ~]# rpm -qa |grep mdadm

mdadm-3.3.2-7.el7.x86_64


2.對兩塊資料盤進行分割槽,並設定分割槽型別為raid


fdisk命令只能對容量在2T以下的硬碟進行分割槽,如果超過2T則需要使用parted工具了。Parted命令以後會介紹使用方法,本節不贅述了。


在fdisk下raid的分割槽型別程式碼是fd,在parted工具下首先需要使用mklabel將磁碟格式由MBR改成GPT,然後才能使用mkpart命令進行分割槽,分完區之後使用set設定分割槽flag為raid即可。


3.使用mdadm命令建立raid1




可以看到建立時有個Note的提示,是說軟raid不能當啟動裝置,這就是軟raid比較雞肋的地方了。

 

mdadm -C /dev/md0 -ayes -l1 -n2 /dev/xvd[b,c]1


命令說明:


  • -C  –create  建立陣列;

  • -a  –auto   同意建立裝置,如不加此引數時必須先使用mknod 命令來建立一個RAID裝置,不過推薦使用-a yes引數一次性建立;

  • -l  –level   陣列樣式,支援的陣列樣式有 linear, raid0, raid1, raid4, raid5, raid6, raid10, multipath, faulty, container;

  • -n     –raid-devices 陣列中活動磁碟的數目,該數目加上備用磁碟的數目應該等於陣列中總的磁碟數目;

  • /dev/md0    陣列的裝置名稱,如果還有其他陣列組可以以此類推;

 

建立完成後可以使用cat /proc/mdstat檢視陣列狀態:


下圖中第一次檢視的時候提示resync完成了95.7%,第二次查詢的時候兩塊盤才真正同步完。


也可以使用mdadm -D /dev/md0檢視陣列組的狀態




4.建立md0的配置檔案


echo DEVICE /dev/sd{a,b}1 >> /etc/mdadm.conf
mdadm -Evs >> /etc/mdadm.conf


mdadm執行時會自動檢查/etc/mdadm.conf  檔案並嘗試自動裝配,因此第一次配置raid後可以將資訊匯入到/etc/mdadm.conf  中。

 

5.使用/dev/md0


在/dev/md0上建立檔案,然後掛載進行使用。


mkfs.ext4 /dev/md0


註意:在格式化時,可以指定-E選項下的stride引數指定條帶是塊大小的多少倍,有在一定程度上提高軟RAID效能,如塊預設大小為4k,而條帶大小預設為64k,則stride為16,這樣就避免了RAID每次存取資料時都去計算條帶大小,如:

mkfs.ext4  -E stride=16 -b 4096 /dev/md0

 

6.其他命令


比如組raid的陣列中有磁碟損壞,可以使用如下命令:


選項:-a(–add),-d(–del),-r(–remove),-f(–fail)


模擬損壞盤:


mdadm /dev/md1 -f /dev/sdb5


移除故障盤:


mdadm /dev/md1 -r /dev/sdb5


新增新硬碟:


mdadm /dev/md1 -a /dev/sdb7


停止陣列


mdadm -S /dev/md1

來源:helloclei

blog.chinaunix.net/uid-26252206-id-5785379.html

《Linux雲端計算及運維架構師高薪實戰班》2018年08月27日即將開課中,120天衝擊Linux運維年薪30萬,改變速約~~~~

    *宣告:推送內容及圖片來源於網路,部分內容會有所改動,版權歸原作者所有,如來源資訊有誤或侵犯權益,請聯絡我們刪除或授權事宜。

    – END –


    更多Linux好文請點選【閱讀原文】

    ↓↓↓

    贊(0)

    分享創造快樂