PRIMECLUSTER Global Disk Services 説明書 4.1 (Solaris(TM) オペレーティングシステム版)
目次 前ページ次ページ

第6章 バックアップとリストア> 6.1 システムディスクのバックアップとリストア

6.1.3 リストア手順(システムがブートできない場合)

1) CD-ROM装置からシステムをブートします。

ok boot cdrom -s

2) テープ装置の特殊ファイルを作成します。

# tapes

 

3) ルート(/), /usr, /varファイルシステムのリストア先となる物理スライス名を調べて記録します。

# eeprom nvramrc | grep sdx-root-slice

devalias sdx-root-slice-1 /devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
devalias sdx-root-slice-2 /devices/pci@1e,4000/scsi@3/sd@0,0:a,raw

# eeprom nvramrc | grep sdx-usr-slice

devalias sdx-usr-slice-1 /devices/pci@1f,4000/scsi@3/sd@0,0:g,raw
devalias sdx-usr-slice-2 /devices/pci@1e,4000/scsi@3/sd@0,0:g,raw

# eeprom nvramrc | grep sdx-var-slice

devalias sdx-var-slice-1 /devices/pci@1f,4000/scsi@3/sd@0,0:b,raw
devalias sdx-var-slice-2 /devices/pci@1e,4000/scsi@3/sd@0,0:b,raw

この例では、主となる物理スライス名は以下のとおりです。

/ : /devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
/usr : /devices/pci@1f,4000/scsi@3/sd@0,0:g,raw
/var : /devices/pci@1f,4000/scsi@3/sd@0,0:b,raw

また、副となる物理スライス名は以下のとおりです。

/ : /devices/pci@1e,4000/scsi@3/sd@0,0:a,raw
/usr : /devices/pci@1e,4000/scsi@3/sd@0,0:g,raw
/var : /devices/pci@1e,4000/scsi@3/sd@0,0:b,raw


多重度3以上のミラーリング構成の場合、副側の物理スライスは複数存在します。


/usr, /varファイルシステムが存在しない構成の場合は、以下のように物理スライス名が表示されません。

# eeprom nvramrc | grep sdx-usr-slice
# eeprom nvramrc | grep sdx-var-slice

 

4) テープ媒体に採取されているバックアップデータを、それぞれの主側の物理スライスにリストアします。

例として、ufsdump(1M)コマンドで採取したバックアップデータを用いてリストアする手順を示します。

# newfs /devices/pci@1f,4000/scsi@3/sd@0,0:a,raw
# mount -F ufs /devices/pci@1f,4000/scsi@3/sd@0,0:a /mnt
# cd /mnt
# ufsrestore rvf /dev/rmt/0
# cd /
# umount /mnt

# newfs /devices/pci@1f,4000/scsi@3/sd@0,0:g,raw
# mount -F ufs /devices/pci@1f,4000/scsi@3/sd@0,0:g /mnt
# cd /mnt
# ufsrestore rvf /dev/rmt/0
# cd /
# umount /mnt

# newfs /devices/pci@1f,4000/scsi@3/sd@0,0:b,raw
# mount -F ufs /devices/pci@1f,4000/scsi@3/sd@0,0:b /mnt
# cd /mnt
# ufsrestore rvf /dev/rmt/0
# cd /
# umount /mnt


ufsrestore(1M)コマンドの詳細については、Solaris(TM)オペレーティングシステムのマニュアルを参照してください。

 

5) ブートブロックをシステムディスクのルートパーティションにインストールします。

# installboot /usr/platform/`uname -i`/lib/fs/ufs/bootblk /devices/pci@1f,4000/scsi@3/sd@0,0:a,raw

 

6) ディスクのセクタサイズとシリンダサイズを調べて記録します。

# prtvtoc /devices/pci@1f,4000/scsi@3/sd@0,0:a,raw

〜
* Dimensions:
*     512 bytes/sector
*     248 sectors/track
*      19 tracks/cylinder
*    4712 sectors/cylinder
〜

この例では、セクタサイズは512(バイト)=1(ブロック)、シリンダサイズは512*4712(バイト)=4712(ブロック)です。

 

7) ディスクの先頭セクタ(VTOC域)を含む物理スライスを調べます。

prtvtoc(1M)コマンドの出力結果においてFirst Sectorフィールドが0の物理スライスが、ディスクの先頭セクタを含んでいます。

# prtvtoc /devices/pci@1f,4000/scsi@3/sd@0,0:a,raw

〜
*                          First     Sector    Last
* Partition  Tag  Flags    Sector     Count    Sector  Mount Directory
       0      2    00          0    409656    409655
       1      7    00     409656    307242    716897
       2      5    00          0   4117568   4117567
       3      3    01     737906    388648   1126553
       4     33    00     716898     21008    737905
       5      4    00    1126554    942734   2069287
       6      4    00    2069288   2048280   4117567〜

この例では、Partition 0の物理スライス(:a)が先頭セクタを含みます。


Partition 2はディスク全体に対応する特殊なパーティションです。

 

8) リストアが完了した主側の物理スライスから副側の物理スライスにデータをコピーします。

物理スライスがディスクの先頭セクタを含まない場合は8a)の手順、物理スライスがディスクの先頭セクタを含む場合は8b)の手順に従ってコピーを実施します。

8a) 物理スライスがディスクの先頭セクタを含まない場合:

コピー時間を短縮するために、dd(1M)コマンドのbsオプション(入出力ブロックサイズ)には、手順6)で調べたシリンダサイズを指定します。

# dd if=/devices/pci@1f,4000/scsi@3/sd@0,0:g,raw of=/devices/pci@1e,4000/scsi@3/sd@0,0:g,raw bs=4712b
# dd if=/devices/pci@1f,4000/scsi@3/sd@0,0:b,raw of=/devices/pci@1e,4000/scsi@3/sd@0,0:b,raw bs=4712b

8b) 物理スライスがディスクの先頭セクタを含む場合:

以下の手順を実施します。

8b-1) まず、物理スライスの先頭シリンダのみをコピーします。副側の先頭セクタ(VTOC域)を上書きしないように先頭セクタをスキップし、セクタ単位にコピーします。

先頭セクタをスキップするため、dd(1M)コマンドのiseekオプションとoseekオプションには1を指定します。bsオプションには、手順6)で調べたセクタサイズを指定します。countオプションには、手順6)で調べたシリンダサイズ(単位はブロック)から1を引いた値を指定します。

# dd if=/devices/pci@1f,4000/scsi@3/sd@0,0:a,raw of=/devices/pci@1e,4000/scsi@3/sd@0,0:a,raw bs=512 iseek=1 oseek=1 count=4711

8b-2) 次に、物理スライスの残りのシリンダをコピーします。

コピー時間を短縮するために、dd(1M)コマンドのbsオプションには、手順6)で調べたシリンダサイズを指定します。手順8b-1)でコピーした先頭シリンダをスキップするため、iseekオプションとoseekオプションには1を指定します。

# dd if=/devices/pci@1f,4000/scsi@3/sd@0,0:a,raw of=/devices/pci@1e,4000/scsi@3/sd@0,0:a,raw bs=4712b iseek=1 oseek=1

 

9) システムをリブートします。

# shutdown -g0 -i6 -y



目次 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005