■disksuiteのインストール作業と設定から運用まで

手順概要
----------------------------------------------------------------
 ○DiskSuiteのインストール
  ミラーリングをするために、
  データとディスクドライブを管理するためのソフトウェア「Solstice DiskSuite」をインストールする。

 ○ミラー元のスライスとミラー先のスライスを同じサイズにする。
   ミラーリングをするためには、ミラー元とミラー先のスライスは同じサイズにしなければならない。

 ○状態データベース(MetaDB)の複製
   メタデバイスの状態データベースのコピーを取っておくと、メタデバイスの操作に必要な状態および構成情報の消失を防ぐことができる。
   ここでは専用のスライスを用意し、そこへ状態データベースの複製を置く。

 ○ミラーリング設定

  ミラーを作成する前に、ミラーを構成するストライプ方式メタデバイスまたは連結方式メタデバイスを作成する。
    ・metainit(1M) -f を使用して、ファイルシステムのスライスを単一スライス (1 面目) の連結方式 (サブミラー 1) に置く。
    ・2 面目の連結方式 (サブミラー 2) の作成

  metainit(1M) を使用して、サブミラー 1 から 1 面ミラーを作成 

  ファイルシステムがミラーを参照するよう、/etc/vfstab ファイルを編集

  リブートする

  metattach(1M) を使用してサブミラー 2 を接続
   → 同期が始まる
     同期が100%までいけばミラーリング設定終了

  ミラーデバイスの障害発生に備えて、代替ブートディスクの path をペーパーメディア等に記録しておきます
----------------------------------------------------------------

※参考資料  docs.sun.com Solstice DiskSuite 4.2.1 ユーザーズガイド >> 2. DiskSuite オブジェクトの作成 >> ミラーの作成 


●disksuiteのインストール

○cdrom(software2/2)をシステムに挿入する。
#cd /cdrom/sol_8_202_sparc_2/Solaris_8/EA/products/DiskSuite_4.2.1/sparc/Packages に移動する。

○allで、全てのdisksuiteのパッケージをインストールを行う。
#pkgadd -d .  を実行する。

-----------
次のパッケージを利用できます:
  1  SUNWlvma     Solaris Volume Management API's
                  (sparc) 1.0,REV=2001.11.02.03.17
  2  SUNWlvmg     Solaris Volume Management Application
                  (sparc) 1.0,REV=2001.11.14.03.19
  3  SUNWlvmr     Solaris Volume Management (root)
                  (sparc) 1.0,REV=2001.11.14.03.19
  4  SUNWmdg      Solstice DiskSuite Tool
                  (sparc) 4.2.1,REV=1999.11.04.18.29
  5  SUNWmdja     Solstice DiskSuite Japanese localization
                  (sparc) 4.2.1,REV=1999.12.09.15.37
  6  SUNWmdnr     Solstice DiskSuite Log Daemon Configuration Files
                  (sparc) 4.2.1,REV=1999.11.04.18.29
  7  SUNWmdnu     Solstice DiskSuite Log Daemon
                  (sparc) 4.2.1,REV=1999.11.04.18.29
  8  SUNWmdr      Solstice DiskSuite Drivers
                  (sparc) 4.2.1,REV=1999.12.03.10.00
  9  SUNWmdu      Solstice DiskSuite Commands
                  (sparc) 4.2.1,REV=1999.11.04.18.29
 10  SUNWmdx      Solstice DiskSuite Drivers(64-bit)
                  (sparc) 4.2.1,REV=1999.11.04.18.29

パッケージ (複数可) を選択してください (すべてのパッケージを
処理するには 'all' を入力してください)。 (default: all) [?,??,q]: enterを押す。


○以下の内容でインストール終了するので、再起動を行う。

*** 重要な注意事項 ***
        正常な動作を保証するためには、このマシンをリブートする必要が
あります。

               shutdown -y -i6 -g0 を実行して、
        "Console Login:" プロンプトが表示されるのをお待ちください。



●disk情報を確認のため、formatコマンド実行

# format
Searching for disks...done


AVAILABLE DISK SELECTIONS:
       0. c1t0d0 
          /pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w21000004cf5c8457,0
       1. c1t1d0 
          /pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w21000004cf5c8311,0
Specify disk (enter its number):1


○ディスク番号を選択すると、以下のメニューが表示される。

・disksuiteでは、ディスクを同じ構成(スライス構成)にしなければいけないので、ミラー元(ディスク0)と
 ミラー対象先(ディスク1)の、情報を確認する。

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


○partitionを選択すると、以下が表示される。

format> p

PARTITION MENU:
        0      - change `0' partition
        1      - change `1' partition
        2      - change `2' partition
        3      - change `3' partition
        4      - change `4' partition
        5      - change `5' partition
        6      - change `6' partition
        7      - change `7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        ! - execute , then return
        quit


○printを設定すると、以下が表示される。

partition> p

Current partition table (original):
Total disk cylinders available: 14087 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 -    25      129.19MB    (26/0/0)       264576
  1       swap    wu      26 -    51      129.19MB    (26/0/0)       264576
  2     backup    wu       0 - 14086       68.35GB    (14087/0/0) 143349312
  3 unassigned    wm       0                0         (0/0/0)             0
  4 unassigned    wm       0                0         (0/0/0)             0
  5 unassigned    wm       0                0         (0/0/0)             0
  6        usr    wm      52 - 14086       68.10GB    (14035/0/0) 142820160
  7 unassigned    wm       0                0         (0/0/0)             0


○ディスクのスライス内容を変更する。

・メニューを表示する。
partition> p 

PARTITION MENU:
        0      - change `0' partition
        1      - change `1' partition
        2      - change `2' partition
        3      - change `3' partition
        4      - change `4' partition
        5      - change `5' partition
        6      - change `6' partition
        7      - change `7' partition
        select - select a predefined table
        modify - modify a predefined partition table
        name   - name the current table
        print  - display the current table
        label  - write partition map and label to the disk
        ! - execute , then return
        quit


・ミラー元のディスク情報の確認。

ミラー元の情報

(例)
--------------------------
partition> p
Current partition table (original):
Total disk cylinders available: 14087 + 2 (reserved cylinders)

Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 -  1006        4.89GB    (1007/0/0)   10247232
  1        usr    wm    1007 -  1208     1003.69MB    (202/0/0)     2055552
  2     backup    wm       0 - 14086       68.35GB    (14087/0/0) 143349312
  3        var    wm    1209 -  2215        4.89GB    (1007/0/0)   10247232
  4       swap    wu    2216 -  3021        3.91GB    (806/0/0)     8201856
  5 unassigned    wm    3022 -  6040       14.65GB    (3019/0/0)   30721344
  6        usr    wm    6041 -  9059       14.65GB    (3019/0/0)   30721344
  7       home    wm    9060 - 14086       24.39GB    (5027/0/0)   51154752
----------------------


・ミラー先のディスクスライス設定を行なう。0〜7のスライス番号を入力する。
partition> 0 を入力

(例)
--------------------
partition> 0
Part      Tag    Flag     Cylinders         Size            Blocks
  0       root    wm       0 -    25      129.19MB    (26/0/0)       264576

Enter partition id tag[root]:
Enter partition permission flags[wm]:
Enter new starting cyl[0]:
Enter partition size[264576b, 26c, 129.19mb, 0.13gb]:  <-- 容量だと誤差が生じるので、ブロック数で設定する。
-----------------

最終的な設定内容

Part      Tag    Flag     Cylinders         Size            Blocks
  0 unassigned    wm       0 -  1006        4.89GB    (1007/0/0)   10247232
  1 unassigned    wm    1007 -  1208     1003.69MB    (202/0/0)     2055552  <-- このスライスをmetadb用に割り当てた
  2     backup    wm       0 - 14086       68.35GB    (14087/0/0) 143349312
  3 unassigned    wm    1209 -  2215        4.89GB    (1007/0/0)   10247232
  4 unassigned    wu    2216 -  3021        3.91GB    (806/0/0)     8201856
  5 unassigned    wm    3022 -  6041       14.65GB    (3020/0/0)   30731520
  6 unassigned    wm    6042 -  9060       14.65GB    (3019/0/0)   30721344
  7 unassigned    wm    9061 - 14086       24.39GB    (5026/0/0)   51144576


○設定後、labelを書く

・一つ前に戻る。

partition> q 

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> label

Ready to label disk, continue? y

・yを入力して、enterを押す。


○ミラー対象先ディスクでformatを実行する。

format> format
Ready to format.  Formatting cannot be interrupted
and takes 169 minutes (estimated). Continue? y
Beginning format. The current time is Mon Apr  8 09:10:34 2002

Formatting...

・終了するまで待つ。


○作成したスライスに、newfsを実行する。
・/dev/dsk/c1t1d0s2は、実行しなくてよい。

#newfs -v /dev/dsk/c1t1d0s0
#newfs -v /dev/dsk/c1t1d0s1
#newfs -v /dev/dsk/c1t1d0s3
#newfs -v /dev/dsk/c1t1d0s4
#newfs -v /dev/dsk/c1t1d0s5
#newfs -v /dev/dsk/c1t1d0s6
#newfs -v /dev/dsk/c1t1d0s7

(例)
--------------------
newfs: construct a new file system /dev/rdsk/c1t1d0s5: (y/n)? y

・yを入力すると、FSの作成が始まる。

mkfs -F ufs /dev/rdsk/c1t1d0s7 51144576 424 24 8192 1024 203 1 167 8192 t 0 -1 8 128
/dev/rdsk/c1t1d0s7:     全セクタ数: 51144576  (シリンダ数: 5026、トラック数: 24、セクタ数: 424)
        24972.9MB、503 シリンダグループ (10 c/g, 49.69MB/g, 6016 i/g)
スーパーブロックのバックアップの位置 (fsck -F ufs -o b=# のため) :
 32, 102224, 204416, 306608, 408800, 510992, 613184, 715376, 817568, 919760,
 1021952, 1124144, 1226336, 1328528, 1430720, 1532912, 1635104, 1737296,
 1839488, 1941680, 2043872, 2146064, 2248256, 2350448, 2452640, 2554832,
 2657024, 2759216, 2861408, 2963600, 3065792, 3167984, 3256352, 3358544,
--------


●disksuiteの設定前に、ファイルのバックアップ作業を行っておく。

・/etc/vfstabと/etc/systemと/etc/lvm/md.tabのバックアップを行う。
・/etc/lvmのmd.tabの設定をする。


●metadbのための、スライス指定
・通常metadb用スライスは、最後に持ってくるが、今回は空きスライスが確保できないため、
/dev/dsk/c1t0d0s1の/usr/openwinのディレクトリを、削除した。
その際、/dev/dsk/c1t0d0s1の/usr/openwinの内容は、シングルユーザでそっくり/usr/openwinに
にコピーを行った。

○ディスク0とディスク1のスライス1をそれぞれ指定する。
# metadb -a -f /dev/dsk/c1t0d0s1 /dev/dsk/c1t1d0s1

○metadbの内容確認
# metadb -i
        フラグ          最初のブロック  ブロック数
     a        u         16              1034            /dev/dsk/c1t0d0s1
     a        u         16              1034            /dev/dsk/c1t1d0s1
 o - 複製は最後の mddb 構成変更の前までアクティブでした
 u - 複製は最新です
 l - この複製のロケータは無事読み込まれました
 c - 複製の場所は /etc/lvm/mddb.cf です
 p - 複製の場所はカーネルにパッチされました
 m - 複製はマスターです。この複製は入力として選択されています
 W - 複製にはデバイス書き込みエラーがあります
 a - 複製はアクティブです。確定操作はこの複製に対して行われます
 M - 複製はマスターブロックで問題を起こしました
 D - 複製はデータブロックで問題を起こしました
 F - 複製はフォーマット問題を起こしました
 S - 複製は現在のデータベースを入れるには小さすぎます
 R - 複製はデバイス読み込みエラーを起こしました


●metainitの実行

○md.tabの設定を元に、metainitを実行する。

○ミラー対象ディスクを、metainitする。

# metainit d12
d12: 連結/ストライプがセットアップされます
# metainit d32
d32: 連結/ストライプがセットアップされます
# metainit d42
d42: 連結/ストライプがセットアップされます
# metainit d52
d52: 連結/ストライプがセットアップされます
# metainit d62
d62: 連結/ストライプがセットアップされます
# metainit d72
d72: 連結/ストライプがセットアップされます


○ミラー元ディスクを、metainitするが、マウントされているので、オプションは"-f"をつける。

# metainit -f d11
d11: 連結/ストライプがセットアップされます
# metainit -f d31
d31: 連結/ストライプがセットアップされます
# metainit -f d41
d41: 連結/ストライプがセットアップされます
# metainit -f d51
d51: 連結/ストライプがセットアップされます
# metainit -f d61
d61: 連結/ストライプがセットアップされます
# metainit -f d71
d71: 連結/ストライプがセットアップされます


○ミラーディスクに、metainitする。

# metainit d10
d10: ミラーがセットアップされます
# metainit d30
d30: ミラーがセットアップされます
# metainit d40
d40: ミラーがセットアップされます
# metainit d50
d50: ミラーがセットアップされます
# metainit d60
d60: ミラーがセットアップされます
# metainit d70
d70: ミラーがセットアップされます


●metarootの実行

○rootとなるディスク(ミラーディスク)を指定する。
この実行で、/etc/vfstabと/etc/systemの内容が変更される。

# metaroot d10


●vfstabを以下に修正

○再起動する前に、/etc/vfstabを修正する。

	# more 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      -
add>	/dev/md/dsk/d40         -       -       swap    -       no      -
	#/dev/dsk/c1t0d0s4      -       -       swap    -       no      -

add>	/dev/md/dsk/d10         /dev/md/rdsk/d10        /       ufs     1       no      -
add>	/dev/md/dsk/d60         /dev/md/rdsk/d60        /usr    ufs     1       no      -
add>	/dev/md/dsk/d30         /dev/md/rdsk/d30        /var    ufs     1       no      -
add>	/dev/md/dsk/d70         /dev/md/rdsk/d70        /export/home    ufs     2       yes     -
add>	/dev/md/dsk/d50         /dev/md/rdsk/d50        /opt    ufs     2       yes     -
add>	swap    -       /tmp    tmpfs   -       yes     -

	#/dev/dsk/c1t0d0s0      /dev/rdsk/c1t0d0s0      /       ufs     1       no      -
	#/dev/dsk/c1t0d0s6      /dev/rdsk/c1t0d0s6      /usr    ufs     1       no      -
	#/dev/dsk/c1t0d0s3      /dev/rdsk/c1t0d0s3      /var    ufs     1       no      -
	#/dev/dsk/c1t0d0s7      /dev/rdsk/c1t0d0s7      /export/home    ufs     2       yes     -
	#/dev/dsk/c1t0d0s5      /dev/rdsk/c1t0d0s5      /opt    ufs     2       yes     -
	#swap   -       /tmp    tmpfs   -       yes     -


●システムの再起動

# shutdown -i6 -g0 -y

Shutdown started.    2002年04月10日 (水) 17時08分23秒 JST

Changing to init state 6 - please wait
Broadcast Message from root (pts/1) on intra-t (水)  4月 10 17:08:...
THE SYSTEM intra-t IS BEING SHUT DOWN NOW ! ! !
Log off now or risk your files being damaged


●metattachの実行

○この実行でミラーリングが実行され、同期がはじまるのでディスク容量に従って、数時間ディスクのアクセスが増大する。

# metattach d10 d12
d10: サブミラー d12 は接続中
# metattach d30 d32
d30: サブミラー d32 は接続中
# metattach d40 d42
d40: サブミラー d42 は接続中
# metattach d50 d52
d50: サブミラー d52 は接続中
# metattach d60 d62
d60: サブミラー d62 は接続中
# metattach d70 d72
d70: サブミラー d72 は接続中


●metastatで、再同期の確認を行う。

○同期確認、%で表示されているので、確認していく。

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

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


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


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

d31: d30 のサブミラー
    状態: 正常         
    サイズ: 10247232 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c1t0d0s3                   0     いいえ 正常       


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


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

d41: d40 のサブミラー
    状態: 正常         
    サイズ: 8201856 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c1t0d0s4                   0     いいえ 正常       


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


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

d51: d50 のサブミラー
    状態: 正常         
    サイズ: 30731520 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c1t0d0s5                   0     いいえ 正常       


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


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

d61: d60 のサブミラー
    状態: 正常         
    サイズ: 30721344 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c1t0d0s6                   0     いいえ 正常       


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


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

d71: d70 のサブミラー
    状態: 正常         
    サイズ: 51144576 ブロック
    ストライプ 0:
        デバイス            開始ブロック MetaDB 状態       ホットスペア
        c1t0d0s7                   0     いいえ 正常       


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


●全てのスライスで再同期が終了したら(再同期実行中100%で正常になる)ミラーリング作業の終了。

○ミラーデバイスの障害発生に備えて、代替ブートディスクの path をペーパーメディア等に記録しておきます
intra-t /dev/rdsk/c1t1d0s0
lrwxrwxrwx   1 root     root          74  3月 27日 2002年 /dev/rdsk/c1t1d0s0 -> ../../devices/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w21000004cf5c8355,0:a,raw

intra-b /dev/rdsk/c1t1d0s0
lrwxrwxrwx   1 root     root          74  3月 27日 2002年 /dev/rdsk/c1t1d0s0 -> ../../devices/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w21000004cf5c8311,0:a,raw

fss-a /dev/rdsk/c1t1d0s0
lrwxrwxrwx   1 root     root          74  6月 28日  18:21 /dev/rdsk/c1t1d0s0 -> ../../devices/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w21000004cf6b2018,0:a,raw

fsdb-a /dev/rdsk/c1t1d0s0
lrwxrwxrwx   1 root     root          74  6月 28日  17:20 /dev/rdsk/c1t1d0s0 -> ../../devices/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w21000004cf6b240a,0:a,raw

fss-b /dev/rdsk/c1t1d0s0
lrwxrwxrwx   1 root     root          74 10月 28日  18:09 /dev/rdsk/c1t1d0s0 -> ../../devices/pci@8,600000/SUNW,qlc@4/fp@0,0/ssd@w21000004cf6b1faf,0:a,raw