SUN-對磁盤做鏡像

CPU:4*1500MHz
內存:16GB
硬盤:容量爲146GB的內置SCSI硬盤2塊
OS:SOLARIS 10

新安裝系統時,2塊硬盤在系統中被分別定義爲:c1t0d0,c1t1d0,其中c1t0d0做爲安裝操作系統的根盤,另一塊硬盤不做任何初始化。

安裝時對根盤進行手工分區,如下:

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm    3319 -  6410       30.01GB    (3092/0/0)   62928384
  1       swap    wu       0 -  3297       32.01GB    (3298/0/0)   67120896
  2     backup    wm       0 - 14086      136.71GB    (14087/0/0) 286698624
  3 unassigned    wm    3298 -  3318      208.69MB    (21/0/0)       427392
  4 unassigned    wm       0                0         (0/0/0)             0
  5 unassigned    wm       0                0         (0/0/0)             0
  6 unassigned    wm       0                0         (0/0/0)             0
  7       home    wm    6411 - 14086       74.49GB    (7676/0/0)  156221952
 

其中c1t0d0s0  給 /  劃分了:30GB。 
    c1t0d0s1  給 swap 劃分了:32GB 是內存的2倍。
    c1t0d0s3  劃分了200MB用來做disksuite metadevice database 數據庫區。
    c1t0d0s7  剩下的空間都給了 /export/home:75GB。按SUN SOLARIS 安裝要求,默認s7分區是給/export/home的。
  

用disksuite鏡像根盤步驟:

1,先確定硬件系統滿足鏡像條件:
  
源盤與目標盤大小最好一致,至少目標盤要大於源盤。
如新盤加入系統,請先保證系統能識別新盤,可用以下命令:

#devfsadm    查找新安裝的硬盤

#format      查看disk

2,用format命令創建metadevice 狀態數據庫,這些數據庫必須駐留在一個引導磁盤的專用分區上,
 當然如果在安裝新系統時以對DISK進行了分區,並在分區時劃出一個分區,最好爲S3,S4也可以,這時要保證被鏡像的磁盤分區表必須是與引導磁盤相同。把引導磁盤的分區表複製到鏡像磁盤。使用下列命令:

# prtvtoc /dev/rdsk/c1t0d0s3 | fmthard -s - /dev/rdsk/c1t1d0s3

3,使用Disksuite進行配置
首先要創建狀態數據庫複本。最少要創建兩個或兩個以上的數據庫複本。用2中的命令我們以經共有了2個用來保存數據庫複本的磁盤分區c1t0d0s3 和c1t1d0s3,
現在我們將在2個分區中分別爲每個分區創建3個數據庫複本,總計是6個複本。狀態數據庫複本存儲着DiskSuite的配置和狀態信息。我們可以使用下列命令去創建這個數據庫複本。

(1) #metadb -a -f -c 3 /dev/dsk/c1t0d0s3 /dev/dsk/c1t1d0s3

     #metadb -i                *這個命令可以查詢數據庫狀態。

(2) 創建文件系統分區的鏡像
  
   首先我們先對1個磁盤做一個單向的鏡像,稍候我們追加第2個磁盤去鏡像。設備編號(d##) 是任意的。這裏爲了方便管理,我們須對鏡像設備編號做個約定:

d10 – 表示第1塊磁盤的鏡像設備名。

d20 – 表示第2塊磁盤的鏡像設備名。

d30 – 表示鏡像中所包含第1塊磁盤的鏡像設備和第2塊磁盤的鏡像設備的總鏡像設備。

metainit 命令被用來創建磁盤0號分區(c1t0d0s0,root分區 “/”文件系統)的鏡像:

  1,#metainit -f d10 1 1 c1t0d0s0

  2,#metainit -f d20 1 1 c1t1d0s0  

  3,#metainit d30 -m d10

在上列命令中的“-f”參數表示強迫metainit 命令繼續,即使是這些分區之一包含了一個被掛載的文件系統或正在被使用的交換分
區。 命令“# metainit -f d10 1 1 c1t0d0s0”表示爲root分區創建一個一對一的級聯。
最後一條命令表示創建metadevice鏡像並且把鏡像設備d10 附加到d30。也就是d30是mirror,而d10就是d30的子鏡像submirror。


下一步是要更新/etc/vfstab 文件和/etc/system file。不能用手工編輯 /etc/vfstab或/etc/system文件。可以使用metaroot 命令,做之前,請一定要先做vfstab文件和system文件的備份:

#cp /etc/vfstab /etc/vfstab.bak

#cp /etc/system /etc/system.bak

#metaroot d30

然後我們查看/etc/vfstab,可以能看到“/”文件系統將被掛載到/dev/md/dsk/d30上,而不是掛載到/dev/dsk/c1t0d0s0上。

5,創建其它文件系統的鏡像

swap 文件系統(在硬盤c1t0d0 的s1分區上這要和你安裝時的分區內容一致)。  :

# metainit -f d11 1 1 c1t0d0s1

# metainit -f d21 1 1 c1t1d0s1

# metainit d31 -m d11

  注:如分區時並未指明分區 /var /opt 文件系統的掛接分區,就無需做鏡像,只做指明的分區鏡像!


/export/home 文件系統(在硬盤c1t0d0的s7分區上這要和你安裝時的分區內容一致)。

# metainit -f d17 1 1 c1t0d0s7

# metainit -f d27 1 1 c1t1d0s7

# metainit d37 -m d17

 
6、編輯/etc/vfstab文件,編輯之後這個新的/etc/vfstab文件應該類似於這樣:

# vi /etc/vfstab

root@XJHTGW1 # more /etc/vfstab
#device         device          mount           FS      fsck    mount   mount
#to mount       to fsck         point           type    pass    at boot options
#
fd      -       /dev/fd fd      -       no      -
/proc   -       /proc   proc    -       no      -
/dev/md/dsk/d31         -       -       swap    -       no      -
/dev/md/dsk/d30 /dev/md/rdsk/d30        /       ufs     1       no      -
/dev/md/dsk/d37 /dev/md/rdsk/d37        /export/home    ufs     2       yes     -
/devices        -       /devices        devfs   -       no      -
ctfs    -       /system/contract        ctfs    -       no      -
objfs   -       /system/object  objfs   -       no      -
swap    -       /tmp    tmpfs   -       yes     -

7、禁止無害的消息(可選)被禁止掉的這條信息是:"WARNING: forceload of misc/md_hotspares failed".
   
   # metainit hsp001

8、重新引導允許系統去重新掛載鏡像

# lockfs -fa


# init 6

下列的警告住處是無害的,可以忽略不記:
WARNING: forceload of misc/md_trans failed
WARNING: forceload of misc/md_raid failed
WARNING: forceload of misc/md_hotspares failed

以後上面這些信息可以在/etc/system裏面註釋掉就不會出現了!!

追加第二個子鏡像設備到鏡像。這樣磁盤上的數據就會從引導磁盤上與已經鏡像的磁盤進行同步

9、 # metattach d30 d20

  運行metastat -t 檢查這個同步的進程 

10、 # metastat d30

現在可以追加其它的鏡像設備了。

11、
# metattach d31 d21

# metattach d37 d27

運行metastat -t 檢查這些進程


12、生成可自切換的能啓動的鏡像磁盤

生成引導塊

# installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /dev/rdsk/c1t1d0s0

回到ok提示符下(用筆記本,或PC上的終端仿真軟件請按Ctrl+Break從solaris操做系統狀態可回到ok提示符下,如用sun 工作站或鍵盤可用stop+A回到OK裝態)修改啓動值,把被鏡像磁盤列入備用啓動中:

{0} ok printenv            *查看obp參數,注意 boot-device 項的參數,未修改前默認爲 disk。

{0} ok devalias            *查看設備別名,我們可以看到,第2塊盤被命名爲 disk1 。

{0} ok setenv boot-device disk disk1    *設置 boot-device 把 disk1 加入。

{0} ok reset-all           *重啓

設置此項,可保證在根盤壞掉的情況下,系統能從另一塊硬盤自動啓動。

 

========================================================
用disk suite恢復鏡像盤的步驟:

假如c1t0d0盤壞掉,則停機更換硬盤後需做恢復工作,如下:

先在OK狀態下用鏡像的盤啓動到單用戶模式下:

{0} ok boot disk1 -s

在單用戶下執行:

#metadb -d c1t0d0s3   *刪除原來在c1t0d0s3上創建的metadevices database。

#prtvtoc /dev/rdsk/c1t1d0s2 | fmthard -s - /dev/rdsk/c1t0d0s2  *給新盤創建和鏡像盤一樣的分區表。

#metadb -a -f -c 3 c1t0d0s3    *重新在新盤上創建metadevices database。

#halt                           *停機,回到OK狀態下。

{0} ok boot disk1               *用鏡像盤啓動系統。


#metareplace -e d30 c1t0d0s0

#metareplace -e d31 c1t0d0s1

#metareplace -e d37 c1t0d0s7     *鏡像恢復。

#metastat -t   *可以查看鏡像恢復進度。

恢復完成後,可在OK狀態下用:

{0} ok boot disk

從恢復盤啓動系統,如正常啓動,則恢復成功。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章