介紹
本文分步介紹了在Linux平台上設置Linux軟件RAID 1的過程。盡管此軟件RAID 1配置已在Debian(Ubuntu)上完成,但是如果您正在運行其他Linux發行版,如RedHat,Fedora,Suse,PCLinux0S等,它也可以為您提供指導。對於RAID-1設置,我們需要兩個或多個磁盤。 RAID1模式為兩個或多個磁盤之間的所有數據創建精確的鏡像。
係統信息
- 操作係統:Debian Etch(在/dev /sda上的基本安裝)
- 內核:Linux raid 2.6.18-5-686#1 SMP Fri Jun 1 00:47:00 UTC 2007 i686 GNU /Linux
- 硬盤:/dev /sda-> 4GB,/dev /sdb-> 5GB
計劃
我們從運行Linux係統Debian Etch以及以下分區方案和硬盤驅動器(sda,sdb)開始:
軟件安裝
debian上的raid 1僅需要1個軟件包(+先決條件)。該軟件包是mdadm。隻需使用apt-get工具將mdadm軟件包安裝到您的係統中即可。可能會要求您回答幾個問題。
apt-get install mdadm
配置內核模塊
在啟動時加載模塊
不,我們需要確保RAID內核模塊在引導時已加載。要完成此任務,我們需要編輯/etc /modules文件並添加幾行。打開您喜歡的文本編輯器,或僅使用echo命令附加行。
echo raid1 >> /etc/modules
echo md >> /etc/modules
將模塊加載到內核
在這個階段,如果我們要使用RAID模塊,我們有兩個選擇。第一個是重新啟動係統,另一個選擇是使用modprobe或insmode將模塊加載到內核。我發現第二種選擇更容易:
modprobe raid1
注意:如果尚未如上圖所示加載md模塊,請使用modprobe加載它:
modprobe md
有兩種方法可以確認我們的raid模塊已加載到內核中:
lsmod | grep raid1
要麽
cat /proc/mdstat
您應該具有類似下圖所示的輸出:
為RAID準備sdb
在此階段,我們需要準備第二個硬盤驅動器sdb以充當RAID 1陣列。首先,我們需要從sda =>複製一個分區表。 sdb1。對於此任務,我們需要使用sfdisk命令。如果您喜歡這樣做,也可以手動完成此步驟。確保磁盤sdb上沒有任何數據,因為此sfdisk命令將永久刪除它們!此命令會將分區表從/dev /sda複製到/dev /sdb。
sfdisk -d /dev/sda | sfdisk /dev/sdb
第二個硬盤驅動器sdb幾乎準備就緒。我們要做的就是將以下分區的分區ID更改為sdb1,sdb5,sdb6,sdb8和sdb9(Linux raid autodetect)。同樣,在此任務中,sfdisk命令非常方便:注意:我們對鏡像交換sdb7分區(交換分區)不感興趣。
for partition in 1 5 6 8 9; do sfdisk --change-id /dev/sdb $partition fd; done
設置RAID 1陣列
創建RAID 1陣列
現在該創建RAID 1陣列了。我們首先僅從/dev /sdb創建RAID 1陣列。準備就緒後,我們也將第一個硬盤驅動器/dev /sda包含到該陣列中。
for partition in 1 5 6 8 9; do mdadm --create /dev/md$partition --level=1 \
--raid-disks=2 missing /dev/sdb$partition; done
在RAID 1陣列上創建文件係統
現在,我們可以在新的RAID 1陣列上創建文件係統:
for partition in 1 5 6 8 9; do mkfs.ext3 /dev/md$partition; done
編輯mdadm.conf文件
請複製您的/etc/mdadm/mdadm.conf文件,因為我們將在本教程的後期使用。讓我們編輯mdadm.conf文件。請確保使用附加”>>”,以避免意外覆蓋mdadm.conf文件。
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
編輯/etc /fstab
僅僅因為我們要使係統在每次重新引導後都掛載新的RAID 1陣列,所以我們需要編輯/etc /fstab文件。舊的/etc /fstab
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/sda1 / ext3 defaults,errors=remount-ro 0 1
/dev/sda9 /home ext3 defaults 0 2
/dev/sda8 /tmp ext3 defaults 0 2
/dev/sda5 /usr ext3 defaults 0 2
/dev/sda6 /var ext3 defaults 0 2
/dev/sda7 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
新的/etc /fstab
# /etc/fstab: static file system information.
#
#
proc /proc proc defaults 0 0
/dev/md1 / ext3 defaults,errors=remount-ro 0 1
/dev/md9 /home ext3 defaults 0 2
/dev/md8 /tmp ext3 defaults 0 2
/dev/md5 /usr ext3 defaults 0 2
/dev/md6 /var ext3 defaults 0 2
/dev/sda7 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
配置GRUB引導管理器
首先,我們複製/boot/grub/menu.lst。
cp /boot/grub/menu.lst /boot/grub/menu.lst_orig
讓我們使用sed命令來完成這項工作:
sed 's/sda1/md1/' < /boot/grub/menu.lst_orig > /boot/grub/menu.lst
更新GRUB:
update-grub
從sda =>複製數據;數據庫
以單模式重啟:
init 1
將數據從每個分區複製到新的RAID 1陣列。對於此操作,我們使用rsync命令將克隆兩個分區。如果您的係統上未安裝rsync,請發出命令:
apt-get install rsync
“/”複製根分區:
mount /dev/md1 /media; rsync -aqxP / /media; umount /media
複製/usr /分區:
mount /dev/md5 /media; rsync -aqxP /usr/* /media; umount /media
複製/var分區:
mount /dev/md6 /media; rsync -aqxP /var/* /media; umount /media
複製/tmp /分區:
注意:如果願意,您可以省略/tmp!
mount /dev/md8 /media; rsync -aqxP /tmp/* /media; umount /media
複製/home分區:
mount /dev/md9 /media; rsync -aqxP /home/* /media; umount /media
設置啟動管理器
grub
進入GRUB後,輸入以下內容linux命令s:
device (hd0) /dev/sdb
root (hd0,0)
setup (hd0)
quit
重啟
我們準備重新啟動係統。為了確認我們正在從RAID 1陣列運行一個係統(我猜我們自從係統啟動以來就處於理想狀態),我們可以使用mount命令檢查已安裝的設備:
mount
將第一個硬盤驅動器(sda)添加到RAID 1陣列
使用sfdisk更改分區ID
與使用/dev /sdb一樣,我們需要首先更改分區ID:
for partition in 1 5 6 8 9; do sfdisk --change-id /dev/sda $partition fd; done
將具有mdadm的分區添加到RAID 1陣列
for partition in 1 5 6 8 9; do mdadm --add /dev/md$partition /dev/sda$partition; done
由於我們已將新設備添加到RAID 1陣列,因此係統開始重新同步每個/dev /md *。您可以使用watch命令查看此過程:
watch cat /proc/mdstat
編輯/etc/mdadm/mdadm.conf
現在我們需要再次編輯/etc/mdadm/mdadm.conf文件,為此,我們可以將該文件的備份副本用作模板。
cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf_orig1
cp /etc/mdadm/mdadm.conf_orig /etc/mdadm/mdadm.conf
mdadm --detail --scan >> /etc/mdadm/mdadm.conf
完
- 現在一切就緒。您可能需要重新引導係統並確認您已成功設置Linux軟件RAID 1。
- 要確認raid 1正在運行,請使用cat /proc /mdstat命令
cat /proc/mdstat
- 由於我們已經使用/dev /sda7作為交換,所以現在有了未使用的分區/dev /sdb7。