當前位置: 首頁>>技術教程>>正文


Linux Software Raid 1安裝

, ,

介紹

本文分步介紹了在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)開始:

raid paritions scheme

raid 1 setup guide

軟件安裝

debian上的raid 1僅需要1個軟件包(+先決條件)。該軟件包是mdadm。隻需使用apt-get工具將mdadm軟件包安裝到您的係統中即可。可能會要求您回答幾個問題。

apt-get install mdadm 

配置內核模塊

在啟動時加載模塊

不,我們需要確保RAID內核模塊在引導時已加載。要完成此任務,我們需要編輯/etc /modules文件並添加幾行。打開您喜歡的文本編輯器,或僅使用echo命令附加行。

echo raid1 >> /etc/modules
echo md >> /etc/modules

load raid kernel modules at boot time

將模塊加載到內核

在這個階段,如果我們要使用RAID模塊,我們有兩個選擇。第一個是重新啟動係統,另一個選擇是使用modprobe或insmode將模塊加載到內核。我發現第二種選擇更容易:

modprobe raid1 

load raid kernel modules

注意:如果尚未如上圖所示加載md模塊,請使用modprobe加載它:

modprobe md 

有兩種方法可以確認我們的raid模塊已加載到內核中:

lsmod | grep raid1

要麽

cat /proc/mdstat 

您應該具有類似下圖所示的輸出:

load raid kernel modules output from a command line

為RAID準備sdb

在此階段,我們需要準備第二個硬盤驅動器sdb以充當RAID 1陣列。首先,我們需要從sda =>複製一個分區表。 sdb1。對於此任務,我們需要使用sfdisk命令。如果您喜歡這樣做,也可以手動完成此步驟。確保磁盤sdb上沒有任何數據,因為此sfdisk命令將永久刪除它們!此命令會將分區表從/dev /sda複製到/dev /sdb。

sfdisk -d /dev/sda | sfdisk /dev/sdb 

copy a partition table

第二個硬盤驅動器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 

change partition ID

設置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

Create RAID 1 Arrays

在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

Edit mdadm.conf file

編輯/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 

edit grub to boot raid devices

更新GRUB:

update-grub 

GRUB - save changes

從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

setup grub with boot manager

重啟

我們準備重新啟動係統。為了確認我們正在從RAID 1陣列運行一個係統(我猜我們自從係統啟動以來就處於理想狀態),我們可以使用mount命令檢查已安裝的設備:

mount 

reboot with RAID 1 arrays

將第一個硬盤驅動器(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 

Change Partition Id with sfdisk

將具有mdadm的分區添加到RAID 1陣列

for partition in 1 5 6 8 9; do mdadm --add /dev/md$partition /dev/sda$partition; done 

Add partitions with mdadm to RAID 1 array

由於我們已將新設備添加到RAID 1陣列,因此係統開始重新同步每個/dev /md *。您可以使用watch命令查看此過程:

watch cat /proc/mdstat 

RAID 1 array resync

編輯/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

Edit /etc/mdadm/mdadm.conf

  • 現在一切就緒。您可能需要重新引導係統並確認您已成功設置Linux軟件RAID 1。
  • 要確認raid 1正在運行,請使用cat /proc /mdstat命令
cat /proc/mdstat 
  • 由於我們已經使用/dev /sda7作為交換,所以現在有了未使用的分區/dev /sdb7。

參考資料

本文由Ubuntu問答整理, 博文地址: https://ubuntuqa.com/zh-tw/article/11146.html,未經允許,請勿轉載。