DiskSuite4.2 によるミラーリング

■ミラー先のディスクの準備

ディスクのミラーを行うには、元のディスクとミラーを構成するディスクの容量・パーティションがすべて同じでなければなりません。
そのためあらかじめformatコマンドを使って、ミラー先のディスクを作っておく必要があります。
ここではパーティション構成済みということを前提に、フォーマットの方法を説明します。


■今回のディスク構成
c0t0d0:大本のシステムインストールディスク
c0t1d0:システムのミラーリングディスク
c0t2d0:/export/home,/export/home2
まずはrootになりformatを行う。

% su
Password:
# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c0t0d0 
          /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@0,0
       1. c0t1d0 
          /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@1,0
       2. c0t2d0 
          /sbus@1f,0/espdma@e,8400000/esp@e,8800000/sd@2,0
Specify disk (enter its number): 1
selecting c0t1d0
[disk formatted]


FORMAT MENU:
        disk       - select a disk
        type       - select (define) a disk type
        partition  - select (define) a partition table
        current    - describe the current disk
        format     - format and analyze the disk
        repair     - repair a defective sector
        label      - write label to the disk
        analyze    - surface analysis
        defect     - defect list management
        backup     - search for backup labels
        verify     - read and display labels
        save       - save new disk/partition definitions
        inquiry    - show vendor, product and revision
        volname    - set 8-character volume name
        !     - execute , then return
        quit
format> verify

Primary label contents:

Volume name = <        >
ascii name  = 
pcyl        = 3500
ncyl        = 2733
acyl        =    2
nhead       =   19
nsect       =   80
Part      Tag    Flag     Cylinders        Size            Blocks
  0       root    wm       0 -  202      150.66MB    (203/0/0)   308560
  1       swap    wu     203 -  892      512.11MB    (690/0/0)  1048800
  2     backup    wm       0 - 2732        1.98GB    (2733/0/0) 4154160
  3        var    wm     893 - 1229      250.12MB    (337/0/0)   512240
  4 unassigned    wm    1230 - 1236        5.20MB    (7/0/0)      10640
  5 unassigned    wm    1237 - 1573      250.12MB    (337/0/0)   512240
  6        usr    wm    1574 - 2732      860.20MB    (1159/0/0) 1761680
  7 unassigned    wm       0               0         (0/0/0)          0


format> format
Ready to format.  Formatting cannot be interrupted
and takes 31 minutes (estimated). Continue? 
Continue? y
Beginning format. The current time is Wed Jan 27 20:34:38 1999

Formatting...
done

Verifying media...
        pass 0 - pattern = 0xc6dec6de
   0/0/0     0/1/46     0/3/12     0/4/58     0/6/24     0/7/70     0/9/36..........

        pass 1 - pattern = 0x6db6db6d
   0/0/0     0/1/46     0/3/12     0/4/58     0/6/24     0/7/70     0/9/36..........
Total of 0 defective blocks repaired.
format> quit

フォーマットが終了したら、作ったすべてのパーティションにnewfsを実行する。
/dev/dsk/c0t1d0s2のbackupとなっている部分にはnewfsを行わなくていい。

# newfs -v /dev/dsk/c0t1d0s0
# newfs -v /dev/dsk/c0t1d0s1
# newfs -v /dev/dsk/c0t1d0s3
# newfs -v /dev/dsk/c0t1d0s4
# newfs -v /dev/dsk/c0t1d0s5
# newfs -v /dev/dsk/c0t1d0s6

 

■DiskSuite4.2インストール

DiskSuiteの設定を始めます。
Solaris7のパッケージに入っているSolaris Easy Access Server 2.0のCD-ROMを準備します。
特に必要がなければ、カスタムインストールでDiskSuite4.2だけを選択してインストールを行います。
デフォルトでは
/usr/opt/SUNWmd
/etc/opt/SUNWmd
にインストールされますが、必要に応じてディレクトリを変更してもよろしいかと思います。
インストールが終了したら一度、再起動を行いましょう。

■DiskSuite4.2の設定

はじめに /etc/opt/SUNWmd/md.tab を記述します。

# ls /etc/opt/SUNWmd/md.tab


#       root
/dev/md/dsk/d10 1 1 /dev/dsk/c0t0d0s0
/dev/md/dsk/d20 1 1 /dev/dsk/c0t1d0s0
/dev/md/dsk/d0 -m /dev/md/dsk/d10
#       swap
/dev/md/dsk/d11 1 1 /dev/dsk/c0t0d0s1
/dev/md/dsk/d21 1 1 /dev/dsk/c0t1d0s1
/dev/md/dsk/d1 -m /dev/md/dsk/d11
#       var
/dev/md/dsk/d13 1 1 /dev/dsk/c0t0d0s3
/dev/md/dsk/d23 1 1 /dev/dsk/c0t1d0s3
/dev/md/dsk/d3 -m /dev/md/dsk/d13
#       opt
/dev/md/dsk/d15 1 1 /dev/dsk/c0t0d0s5
/dev/md/dsk/d25 1 1 /dev/dsk/c0t1d0s5
/dev/md/dsk/d5 -m /dev/md/dsk/d15
#       usr
/dev/md/dsk/d16 1 1 /dev/dsk/c0t0d0s6
/dev/md/dsk/d26 1 1 /dev/dsk/c0t1d0s6
/dev/md/dsk/d6 -m /dev/md/dsk/d16

DiskSuite4.2 のコマンドは /usr/opt/SUNWmd/sbin 以下にインストールされます。
次に metadb コマンドを使ってまずは状態保存DBの作成を行います。
# pwd
/usr/opt/SUNWmd/sbin
# ls
growfs       metadetach   metaonline   metaroot     metatool
mdlogd       metahs       metaparam    metaset      metattach
metaclear    metainit     metarename   metastat     rpc.metad
metadb       metaoffline  metareplace  metasync     rpc.metamhd
# ./metadb -a -f -c2 /dev/dsk/c0t0d0s4 /dev/dsk/c0t1d0s4
metainit で仮想ディスクドライブの作成を行うが、その前に /etc/vfstab と/etc/system のバックアップを行っておく。
バックアップを行ったら metainit を実行し、最後に metaroot を行います。
metaroot を実行すると、 /etc/vfstab:/etc/system が自動的に書き換えられます。
# pwd
/usr/opt/SUNWmd/sbin
# ./metainit d20
d20: 連結/ストライプがセットアップされます
# ./metainit /dev/md/dsk/d21
d21: 連結/ストライプがセットアップされます
# ./metainit /dev/md/dsk/d23
d23: 連結/ストライプがセットアップされます
# ./metainit d25
d25: 連結/ストライプがセットアップされます
# ./metainit d26
d26: 連結/ストライプがセットアップされます
# 
# 
# 
# 
# ./metainit -f d10
d10: 連結/ストライプがセットアップされます
# ./metainit -f d11
d11: 連結/ストライプがセットアップされます
# ./metainit -f /dev/md/dsk/d13
d13: 連結/ストライプがセットアップされます
# ./metainit -f d15
d15: 連結/ストライプがセットアップされます
# ./metainit -f d16
d16: 連結/ストライプがセットアップされます
# 
# 
# 
# ./metainit d0
d0: ミラーがセットアップされます
# ./metainit d1
d1: ミラーがセットアップされます
# ./metainit d3
d3: ミラーがセットアップされます
# ./metainit /dev/md/dsk/d5
d5: ミラーがセットアップされます
# ./metainit d6
d6: ミラーがセットアップされます
#
# ./metaroot d0
#

■vfstab記述

vfstab を書き換えます。
metaroot を実行した時に / だけは書き換えられているはずなので、/ 以外のディレクトリを書き換えます。
今回は以下のような設定になります。
#device		device		mount		FS	fsck	mount	mount
#to mount	to fsck		point		type	pass	at boot	options
#
#/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr		ufs	1	yes	-
fd	-	/dev/fd	fd	-	no	-
/proc	-	/proc	proc	-	no	-
/dev/md/dsk/d1	-	-	swap	-	no	-
/dev/md/dsk/d0	/dev/md/rdsk/d0	/	ufs	1	no	-
/dev/md/dsk/d6	/dev/md/rdsk/d6	/usr	ufs	1	no	-
/dev/md/dsk/d3	/dev/md/rdsk/d3	/var	ufs	1	no	-
/dev/md/dsk/d5	/dev/md/rdsk/d5	/opt	ufs	2	yes	-
#/dev/dsk/c0t2d0s6	/dev/rdsk/c0t2d0s6	/export/home	ufs	2	yes	-
#/dev/dsk/c0t2d0s7	/dev/rdsk/c0t2d0s7	/export/home2	ufs	2	yes	-
swap	-	/tmp	tmpfs	-	yes	-
 ■metattach,metastat
ここまでできたら再起動を行います。 再起動が終わったら、root になりミラーリングを開始させます。 どのくらいミラーリングが終了しているのか確認するには、 metastat コマンドを使用します。 ミラーリングが終了しないうちに再起動などを行うと、システムが壊れます。注意しましょう。
# pwd
/usr/opt/SUNWmd/sbin
# ls
growfs       metadetach   metaonline   metaroot     metatool
mdlogd       metahs       metaparam    metaset      metattach
metaclear    metainit     metarename   metastat     rpc.metad
metadb       metaoffline  metareplace  metasync     rpc.metamhd
# ./metattach /dev/md/dsk/d0 /dev/md/dsk/d20
d0: サブミラー d20 は接続中
# ./metattach /dev/md/dsk/d1 /dev/md/dsk/d21
d1: サブミラー d21 は接続中
# ./metattach d3 d23
d3: サブミラー d23 は接続中
# ./metattach d5 d25
d5: サブミラー d25 は接続中
# ./metattach d6 d26
d6: サブミラー d26 は接続中-
#
# ./metastat
d0: ミラー
    サブミラー 0: d10
      状態: 正常         
    サブミラー 1: d20
      状態: 正常         
    パス: 1
    読み込みオプション: ラウンドロビン (巡回的) (デフォルト)
    書き込みオプション: 並列処理的 (デフォルト)
    サイズ: 308560 ブロック

d10: d0 のサブミラー
    状態: 正常         
    サイズ: 308560 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c0t0d0s0                   0     いいえ 正常       


d20: d0 のサブミラー
    状態: 正常         
    サイズ: 308560 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c0t1d0s0                   0     いいえ 正常       


d1: ミラー
    サブミラー 0: d11
      状態: 正常         
    サブミラー 1: d21
      状態: 再同期中     
    再同期実行中: 27 % 完了
    パス: 1
    読み込みオプション: ラウンドロビン (巡回的) (デフォルト)
    書き込みオプション: 並列処理的 (デフォルト)
    サイズ: 1048800 ブロック

d11: d1 のサブミラー
    状態: 正常         
    サイズ: 1048800 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c0t0d0s1                   0     いいえ 正常       


d21: d1 のサブミラー
    状態: 再同期中     
    サイズ: 1048800 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c0t1d0s1                   0     いいえ 正常       


d3: ミラー
    サブミラー 0: d13
      状態: 正常         
    サブミラー 1: d23
      状態: 再同期中     
    再同期実行中: 8 % 完了
    パス: 1
    読み込みオプション: ラウンドロビン (巡回的) (デフォルト)
    書き込みオプション: 並列処理的 (デフォルト)
    サイズ: 512240 ブロック

d13: d3 のサブミラー
    状態: 正常         
    サイズ: 512240 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c0t0d0s3                   0     いいえ 正常       


d23: d3 のサブミラー
    状態: 再同期中     
    サイズ: 512240 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c0t1d0s3                   0     いいえ 正常       


d5: ミラー
    サブミラー 0: d15
      状態: 正常         
    サブミラー 1: d25
      状態: 再同期中     
    再同期実行中: 2 % 完了
    パス: 1
    読み込みオプション: ラウンドロビン (巡回的) (デフォルト)
    書き込みオプション: 並列処理的 (デフォルト)
    サイズ: 512240 ブロック

d15: d5 のサブミラー
    状態: 正常         
    サイズ: 512240 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c0t0d0s5                   0     いいえ 正常       


d25: d5 のサブミラー
    状態: 再同期中     
    サイズ: 512240 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c0t1d0s5                   0     いいえ 正常       


d6: ミラー
    サブミラー 0: d16
      状態: 正常         
    サブミラー 1: d26
      状態: 再同期中     
    再同期実行中: 0 % 完了
    パス: 1
    読み込みオプション: ラウンドロビン (巡回的) (デフォルト)
    書き込みオプション: 並列処理的 (デフォルト)
    サイズ: 1761680 ブロック

d16: d6 のサブミラー
    状態: 正常         
    サイズ: 1761680 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c0t0d0s6                   0     いいえ 正常       


d26: d6 のサブミラー
    状態: 再同期中     
    サイズ: 1761680 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c0t1d0s6                   0     いいえ 正常

■ミラーリング以外のディスクのマウント

ここまでで、ミラーリング作業は終了します。
今回、 /export/home,/export/home2 用のディスク(c0t2d0)も用意しているので、そのディスクもマウントしておきます。
まず、 /export/home:/export/home2 を作成しておきます。ディレクトリが存在していないとエラーが起こります。(起動はしますが。。。)
# mkdir /export/home /export/home2
vfstab を書き換えて、再起動するとディスクがマウントされます。

# more /etc/vfstab 
#device		device		mount		FS	fsck	mount	mount
#to mount	to fsck		point		type	pass	at boot	options
#
#/dev/dsk/c1d0s2 /dev/rdsk/c1d0s2 /usr		ufs	1	yes	-
fd	-	/dev/fd	fd	-	no	-
/proc	-	/proc	proc	-	no	-
/dev/md/dsk/d1	-	-	swap	-	no	-
/dev/md/dsk/d0	/dev/md/rdsk/d0	/	ufs	1	no	-
/dev/md/dsk/d6	/dev/md/rdsk/d6	/usr	ufs	1	no	-
/dev/md/dsk/d3	/dev/md/rdsk/d3	/var	ufs	1	no	-
/dev/md/dsk/d5	/dev/md/rdsk/d5	/opt	ufs	2	yes	-
/dev/dsk/c0t2d0s6	/dev/rdsk/c0t2d0s6	/export/home	ufs	2	yes	-
/dev/dsk/c0t2d0s7	/dev/rdsk/c0t2d0s7	/export/home2	ufs	2	yes	-
swap	-	/tmp	tmpfs	-	yes	-
以上で DiskSuite 4.2 を使ったディスクのミラーリングは終了です。
365日24時間休むことなく稼動するシステムのディスク故障は日常茶飯事です。
ミラーリングは必ず行ってから、システムを構築するように心がけましょう。
Copyright 2002 MINTIA.NET All rights reserved.