歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> Unix教程

FREEBSD下VINUM做軟RAID過程

FreeBSDRAID 今天新裝一個FREEBSD服務器,結果機器上面沒有陣列卡,兩個72G SCSI硬盤做RAID1,找遍所有的論壇,新聞組也沒有一篇好一點關於VINUM的文檔,特別是中文的資料,簡直是少之又少,從下午3點裝到現在,趁著硬盤正在同步,將自己的一點安裝心得寫出來

參考文檔:
http://devel.reinikainen.net/docs/how-to/Vinum/
一:安裝環境
SERVER: HP COMPAQ DL140
SCSI卡:普通SCSI卡
硬盤:HP U320 72G HARD DISK
操作系統:FreeBSD 5.2.1

二:安裝過程
1:系統安裝
安裝系統的過程和普通安裝一樣,需要注意的是安裝的過程中不需要將第二個硬盤進行分區工作,後面直接導入DISKLABEL的方法會比較簡單。尤其需要注意的是,在對主硬盤進行分區的時候建議最好先建立SWAP,然後建立根文件系統,最後才建立其他(我的安裝中為了圖方便,只建立了ROOT和SWAP),因為這樣的話SWAP的地址偏移量就從0開始,方便後面對OFFSET的計算。
系統安裝完畢後,啟動選擇畫面選擇4進入單用戶模式,輸入命令:
代碼: mount -u /VINUM必須在啟動時刻在內核中有效,所以編輯/boot/loader.conf文件,加入下面的語句
代碼: vinum_load="YES"
vinum.autostart="YES"

第二句話的含義是VINUM在啟動時候自動從內核中收集需要的磁盤信息。
2:設置第一個硬盤
現在我們需要在第一個硬盤上增加一個新的文件系統,文件系統的類型為VINUM,輸入命令:
代碼: bsdlabel /dev/da0s1你將看到下面的信息:
代碼: 8 partitions:
#             size               offset         fstype       [fsize  bsize  bps/cpg]
  a:    140158360     2097152      4.2BSD       2048   16384 28552
  b:       2097152                  0         swap     
  c:     142255512                0        unused      0            0         0
現在我們需要增加一個新的文件系統,需要從硬盤的16扇區開始覆蓋整個硬盤,也就是說將把整個硬盤當作鏡像MIRROR RAID1中的一個盤,首先將原始的信息保存為一個文件,輸入命令:
代碼: bsdlabel /dev/da0s1 > /home/root/da0s1然後將原始信息備份:
代碼: cp /home/root/da0s1 /home/root/da0s1.bak然後編輯文件/home/root/da0s1,形成如下的:
代碼: 8 partitions:
#             size               offset         fstype       [fsize  bsize  bps/cpg]
  a:    140158360     2097152      4.2BSD       2048   16384 28552
  b:       2096871                  281       swap     
  c:     142255512                0        unused      0            0         0
  e:     142255496              16      vinum
和上面相比較,總共有三個地方發生了變化,第一是SWAP的offset,第二是swap的大小,第三是增加了一個新的文件系統,類型為vinum。
先說第一處變化是將原來扇區為0的SWAP變為了開始扇區281,第二是為了保持根文件系統的不變化,所以將SWAP的大小減少281個扇區(這個很重要,不然就會發生兩個分區重疊的現象),第三個增加了新的開始扇區為16,大小為整個硬盤大小減去16個扇區的大小,實際上這個大小就是UNUSED類型的大小減去16。
然後將這個配置文件導入現在的系統,輸入命令:
代碼: bsdlabel -R /dev/da0s1 /home/root/da0s1
如果沒有提示,則說明成功的編輯了disklabel,如果提示分區重疊等提示,則說明OFFSET和SIZE計算錯誤,重新輸入
代碼: bsdlabel /dev/da0s1則可以看見新的變化
【注意】:原來的英文文檔中是使用bsdlabel -e /dev/da0s1這樣的方式來進行編輯的,強烈建議不要這樣,因為這樣的方式作出的更改,如果出現錯誤,例如分區重疊等錯誤沒有任何的提示,同時文件系統也不會有任何的變化3:開始VINUM
到現在為止我們已經成功的修改了文件系統信息,下面將配置VINUM的第一個硬盤,輸入命令
代碼: vinum將進入VINUM的命令行模式,退出輸入CTRL+D
編輯文件/etc/vinum.conf(這個文件名稱隨便取,沒有關系的),內容如下:
代碼: drive m1 device /dev/da0s1e
   volume root
      plex org concat
        sd len 140158360s driveoffset 2097136s drive m1
   volume swap
      plex org concat
         sd len 2096871s driveoffset 265s drive m1
在這個文件中,其中第一行是聲明有一個盤,名稱為m1,在設備/dev/da0s1e上,其中da0s1e就是我們剛才編輯的新增加的partition e
,這裡最值得注意的是driveoffset的值,因為len即size是不變的,但是driveoffset一定是原來的offset值減去16s,S即sector,因為這個偏移值是在/dev/da0s1e基礎上的偏移扇區值,da0s1e已經是從第16扇區開始的,所以driveoffset一定是原來的offset值減去16s。
輸入命令VINUM進入VINUM命令行模式,輸入LIST命令可以看到現在還沒有建立任何DRIVE,PLEX以及SUBDISK。
輸入命令:
代碼: create -f /etc/vinum.conf可以看到成功的建立了DRIVE,PLEX以及SUBDISK和VOLUME,退出VINUM命令行模式,現在已經成功的建立了兩個設備,分別為/dev/vinum/root以及/dev/vinum/swap,現在來測試root的大小以及開始位置是否正確,輸入命令:
代碼: fsck -n -t ufs /dev/vinum/root如果成功的話可以看到進行5個步驟的磁盤檢查,如果錯誤的話將收到下面的提示信息:
代碼: # fsck -n -t ufs /dev/vinum/root
** /dev/vinum/root (NO WRITE)
Cannot find file system superblock
/dev/vinum/root: CANNOT FIGURE OUT FILE SYSTEM PARTITION
這樣的錯誤表示在vinum.conf文件中VOLUME的LEN或者DRIVEOFFSET計算錯誤,在 vinum命令行下輸入resetconfig命令可以清除原來的配置,重新使用create命令導入修改後的配置文件,再次進行fsck檢查,重復上面的步驟直到root文件系統正確為止。
4:修改fstab文件
修改/etc/fstab文件,將原來的/掛接點由/dev/da0s1a改為/dev/vinum/root,同時將原來的交換分區由/dev/da0s1b改為/dev/vinum/swap,現在可以重新啟動系統來查看只有一個主盤的RAID1系統:-)
5:設置第二個硬盤
第二個硬盤的設置大同小異,完全可以使用命令
代碼: bsdlabel -R /dev/da1s1 /home/root/da0s1來對第二個硬盤進行分區。
在原來的/etc/vinum.conf文件後面增加一段,內容如下:
代碼: drive m2 device /dev/da1s1e
   volume root
      plex org concat
        sd len 140158360s driveoffset 2097136s drive m2
   volume swap
      plex org concat
         sd len 2096871s driveoffset 265s drive m2
最後進入VINUM的命令行模式,首先resetconfig清除原來的配置,然後使用
create -f /etc/vinum.conf命令來導入配置,成功之後我們可以使用list命令查看現在已經有了2 drivers,2 volumes,4 plexes,4 subdisks
其中subdisk有兩個的狀態為empy,plex有兩個的狀態為faulty,這是正常的,因為現在只有m1上面有數據,m2上面沒有數據,兩個plex有差異,所以其狀態為faulty。輸入命令:
代碼: start root.p1.s0可以將root.p0.s0的數據copy到root.p1.s0上面,至此RAID1系統完畢

寫得好累,寫這個的主要目的是將我安裝過程中容易出錯的一些地方羅列出來,方便大家以後配置VINUM少走彎路,要詳細了解VINUM的原理才能舉一反三的配置RAID 0+1 RAID 5等等,這裡建議一定要將man vinum以及vinum官方網站的文檔全部啃一遍...

Copyright © Linux教程網 All Rights Reserved