【linux中軟RAID製作方法】
linux中軟RAID製作方法
【作業系統版本:】紅帽6.3
提示:在linux中磁碟裝置可以在/dev/目錄中找到
其中IDE介面的硬碟在該目錄中以hd的檔名開頭
SATA介面的硬碟在該目錄中以sd的檔名開頭
SCSI介面的硬碟在該目錄中以sd的檔名開頭
USB介面型別的磁碟在該目錄中以sd的文名開頭
【使用相關命令】
【fdisk】:磁碟管理,分割槽命令
【mdadm】:軟RAID製作命令(支援將任何塊裝置做成RAID)
一、建立軟RAID
注意:做成RAID要使用很多磁碟,本文件為了方便模擬,只添加了一塊磁碟,在磁碟中建立分割槽,然後對分割槽進行RAID的製作。這樣做只是為了方便演示,在實際中,使用一塊磁碟由分割槽建立的軟RAID是沒有任何以意義,並且也不能提高檔案的儲存以及讀取速度,因為,一塊磁碟的轉速是固定的,如果磁碟壞了,你在該磁碟中創造的軟RAID中使用的備份都會同時損壞。
前提:先準備一塊硬碟
如圖,這裡已經準備好了一塊硬碟sdb已經再/dev/下面讀取出來了。
【示例一:建立一個由兩個分割槽組成的20G的RAID0】
如下圖RAID0模型圖如下:
注意:根據RAID0的結果,首先需要準備兩個10G大小的分割槽。這一建立的RAID0就能達到20G
首先:建立兩個10G大小的分割槽在sdb磁碟中
#fdisk /dev/sdb
可以進入sdb磁碟的分割槽管理模式
輸入p可以檢視磁碟分割槽資訊
由於這裡改磁碟還沒做分割槽,就先建立一個擴充套件分割槽,將分割槽大小指定為磁碟的全部大小
輸入:n
這裡提示是輸入e建立擴充套件分割槽輸入p是建立主分割槽
輸入:e
由於磁碟中最多可建立4個主分割槽,所有為了能建立擴充套件分割槽,需要用16個位元組來表示一個擴充套件分割槽。
輸入:1
這裡時輸入分割槽的起始柱面,這裡提示預設值是1,可以輸入1也可直接按回車鍵
輸入:1
這裡是輸入磁碟的結束柱面,為了充分利用磁碟就將全部柱面都分割個擴充套件分割槽,這裡提示的預設值是13054,可以輸入13054也可以直接回車
直接回車
看到這裡,又回到了剛開始的操作模式,現在可以使用p檢視詳細資訊
輸入:p
剛剛建立的擴充套件分割槽大小就已經在這裡顯示出來了。
那麼接下來就可以在擴充套件分割槽中建立分割槽了
輸入:n
這裡剛才那個e就沒了,因為一個磁碟上只能建立一個擴充套件分割槽的引用地址。那麼現在的L就表示在剛才建立的擴充套件分割槽引用地址中建立擴充套件分割槽,注意:擴充套件分割槽的編號預設是從5開始。
輸入:l
這裡指定擴充套件分割槽的起始柱面:為了防止出現磁碟碎片,建議直接回車
回車
這裡輸入擴充套件分割槽的結束柱面,由於按照柱面不好確定分割槽的大小可以直接使用+10G來指定分割槽建立為10G的大小
輸入:+10G
這可以使用p檢視建立後的分割槽情況
輸入p
接下來繼續和上面一樣建立第二個10G的分割槽。
現在就是要調整分割槽型別了,由於軟RAID的建立必須使用Linux raid auto型別,這裡可以輸入t來調整分割槽型別
輸入:t
這裡是說,輸入要調整分割槽型別的編號即,你剛剛已經建立好了的分割槽型別的編號,
輸入:5
這裡是輸入型別編號,如果不知道型別編號可以輸入l來檢視
接下來輸入fd修改型別
輸入:fd
輸入p可以檢視修改後的結果
下面繼續修改sdb6的分割槽型別
這裡已經修改完成,輸入w儲存退出
輸入:w
接下來通知核心重讀sdb的分割槽表
輸入:partprobe/dev/sdb
為了驗證結果可以檢視/proc/partitions檔案來驗證
輸入:cat /proc/partitions
這裡已經可以看到sdb5和sdb6了
輸入:mdadm -C /dev/md0 -l 0 -a yes -n 2 /dev/sdb5 /dev/sdb6
這裡顯示建立成功:
輸入:cat /proc/mdstat可以驗證
這裡RAID0的裝置已經建立完成,要想使用需要在其裝置上建立檔案系統。
注意:由於此次sdb5和sdb6已經組成了一個RAID0裝置md0,那麼建立檔案系統就要在md0上建立檔案系統
輸入:mke2fs -j/dev/md0
為md0建立檔案系統
這裡檔案系統已經建立完成,要想使用就掛載/dev/md0即可
輸入:fdisk -l 可以檢視md0的磁碟資訊
這裡已經顯示為21.5G了,那麼此時就建立完成了。由於磁碟分割槽中是以柱面來分配的,說以這裡不能完全保證建立剛好的是20G。大小有誤差.
注意,對於建立RAID0中的兩個分割槽sdb5和sdb6其中一個只要損壞,那麼存放在由sdb5和sdb6組成的RAID0裝置md0就無法繼續使用。因為RAID0不具備冗餘能力
【示例二:建立一個2G的RAID1】
分析:由於要建立的是一個2G的RAID1根據RAID1的構成結構,我們需要兩塊2G的硬碟才能組成一個2G的RAID1
如下圖:RAID1模型
為了演示,
首先,建立兩個2G的分割槽當做磁碟來使用
輸入:fdisk/dev/sdb
接下來的建立磁碟的操作在示例一中已經演示過。這裡只放截圖。
修改分割槽型別
儲存退出
輸入:partprobe/dev/sdb
通知核心重讀sdb的分割槽表
這裡由於使用的是虛擬機器,現在出現了一個錯誤,目前不清楚,不過可以使用partx來重讀
輸入:partx –a /dev/sdb
這裡的這幾個錯誤不用管,沒多大影響,只需要檢檢視裝置是否已經讀取出來了
輸入:cat /proc/partitions
這裡已經顯示了,剛才建立的sdb7和sdb8,為了之後做個損壞模擬,我還多建立了一個2G的sdb9
現在來使用mdadm建立RAID1
輸入:mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb7 /dev/sdb8
這裡這個輸入y確定
輸入:y
這裡已經顯示md1裝置已經建立完成。
輸入:cat /proc/mdstat
驗證
這裡已經顯示md1是有sdb8和sdb9建立。
輸入:mke2fs -j /dev/md1
為裝置建立檔案系統(即格式化)
這裡已經格式化完成。到這裡一個2G的RAID1已經建立成功。可以掛載使用了。
輸入:fdisk -l
可以檢視md1裝置詳細資訊
這裡可以看到使用兩個2G大小的sdb7,sdb8建立的RAID1的容量只有2G因為,RAID1中需要使用一個相同大小的磁碟來做備份。
【演示RAID1中一個磁碟的模擬損壞】
上面已經建立好了一個md0和md1的RAID裝置,
現在掛載md1
輸入:mount /dev/md1 /ftpftp/gandian/gz1
已經將md1裝置掛載到/ftpftp/gandian/gz1目錄下面了
輸入:ls /ftpftp/gandian/gz1
檢視該目錄
輸入:cp /etc/inittab /ftpftp/gandian/gz1/
拷貝一個檔案到inittab到gz1目錄中
輸入:mdadm --detail /dev/md1
可以檢視RAID1裝置md1的構成資訊
在這裡可以看到sdb7和sdb8都是active可以使用狀態。
現在可以模擬損壞sdb8後看md1是否依然可以使用
輸入:mdadm /dev/md1 -f /dev/sdb8
這裡顯示sdb8已經模擬損壞
輸入:mdadm--detail /dev/md1
這裡已經看到sdb8已經損壞,並且目前工作的磁碟只有sdb7
使用cd/ftpftp/gandain/gz1/進入md1的掛載目錄檢視檔案
輸入:cd/ftpftp/gandian/gz1/
輸入:ls -l
這裡依然可以使用,這就是RAID1的冗餘能力,當一塊硬碟出現錯誤後,檔案依然可以使用,但是如果現在不及時替換壞掉的硬碟那麼當另外一塊硬碟壞掉後就無法訪問檔案了。
在實際中,如果是真正的硬碟只需要將該硬碟拔掉後替換一塊一模一樣大小的新硬碟就ok了,由於現在使用的是軟體模擬。那麼替換硬碟的方法如下:
輸入:mdadm /dev/md1 -r /dev/sdb8
可以拿走已經損壞的sdb8磁碟
輸入:mdadm --detail /dev/md1
檢視md1的RAID資訊
這裡已經看到,只有一塊磁碟sdb7在使用。
現在替換新的硬碟,使用之前已經建立好了的sdb9
輸入: mdadm /dev/md1 -a /dev/sdb9
為md1裝置新增一塊硬碟
輸入:mdadm --detail /dev/md1
再次檢視mdadm的資訊
這裡可以看到sdb9正在自動同步資料
輸入:cat /proc/mdstat
可以檢視同步進度。
由於本人電腦太快,同步比較快當我輸入命令後設備已經同步完成。
再次輸入:mdadm --detail /dev/md1
檢視md1資訊
已經可以看到sdb9可以使用了。
那麼現在md1裝置損壞後替換硬碟的工作就修補完成。
如果此時,你再損壞sdb7,檔案依然可以訪問
附加:--------------------------------
mdadm命令使用
【mdadm】將任何塊裝置做成RAID
模組化的命令:
建立模式
【-c】
專用選項
【-l】:級別(即RAID的級別型別)
【-n】:裝置個數
【-a{yes|no}】:自動為其建立裝置檔案
【-c】:指定CHUNK大小(資料塊大小)2^n 預設大小為64k
【-x】:指定空閒盤個數
例如:
mdadm -C /dev/md0 -a yes -l 0 -n 2/dev/sdb{5,6}
管理模式
不指定模式直接使用
【--add】【--del】等表示管理
預設mdadm工作在管理模式下
【-D】【--detail】檢視RAID陣列資訊
【-F】【--fail】【--set-faulty】將磁碟模擬損壞
例如:mdadm /dev/md# --fail /dev/sdb7(將md#中sdb7模擬為損壞)
mdadm /dev/md1 -r /dev/sdb7 (可以將已損壞的磁碟刪除)
【-S】【--stop】停止陣列
例如:mdadm -s /dev/md#
監控模式
【-F】
增長摸是
【-G】
裝配模式
【-A】
【mdadm -D/dev/md# 】檢視RAID陣列的詳細資訊
--detail也行
【mdadm -D--scan】可以檢視當前裝置上所有md裝置的資訊,
如果將資訊儲存在【mdadm-D --scan > /etc/mdadm.conf】中,那麼下次啟動就不必要指定裝置的磁碟了。
安裝軟RAID必備條件:
1、需要核心模組:md:
2、linux上建立工具:mdadm