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