Solarisミラーリングインストール手順

ミラーの直し方はこちら

0.はじめに
 

本書はSolaris/SPARCサーバ版で私がミラーを組んだときの備忘録である。
この手順によりデータ喪失などのトラブルが起きても、私はいっさい関知しません。


1.条件など
 

本書においては全く同一容量のディスク2個によるミラーの手順を示している。本書は
UltraEnterpriseサーバにて実施したため、2個のディスクはc0t0d0とc0t0d1である。

c0t0d0がブートデバイスとして設定されている。


2.OSのインストール
 

通常のインストールとかわりないが、1スライス分空きを作ること。
このスライスにState Databaseと呼ばれる情報が格納される。

参考までに9.1GBのディスクは以下のようにスライスを切った。
 
Silice Tag Flag Cylinders Size Blocks Mount Point
0 root wm 0 -   28 50.85MB (29/0/0)     104139 /
1 swap wu 29 -  175 257.75MB (147/0/0)    527877 swap
2 backup wm 0 - 4923 8.43GB (4924/0/0) 17682084
3 usr wm 176 -  746 1001.20M (571/0/0)   2050461 /usr
4 unassigned wm 747 - 3598 4.88GB (2852/0/0) 10241532 /opt
5 home wm 3599 - 4169 1001.20MB (571/0/0)   2050461 /export/home
6 var wm 4170 - 4740 1001.20MB (571/0/0)   2050461 /var
7 unassigned wm 4900 - 4923 42.08MB (24/0/0)      86184

あとは通常通りインストールする。7番スライスがState Databaseのスライスである。
サイズは10MBも確保すれば十分だ。ディスクは後ろから確保した方が他のスライス
をメンテしやすくなるだろう。


3.セカンダリディスクのスライス割り当て
 

ミラーセットのセカンダリ側になるディスクにスライスを切る。
プライマリディスクと全く同じにスライスを切ればいいだろう。
サイズ指定すると丸め込まれる場合があるので、ブロック指定したい。当然だが全スラ
イスをミラーする場合、セカンダリディスクはプライマリと同等以上の容量が必要である。
4.Software RAID パッケージのインストール
 
パッケージはSolaris Server Intranet Extension CDROMに入っている。
マシンにCDROMを挿入する。
CDROM内のDiskSuite/sparcディレクトリをカレントにする。
ディレクトリ内のパッケージを全部インストールする。

 # pkgadd -d . SUNW*

インストール後にリブートする。


5.State Databaseの作成
 

State Databaseはメタデバイスなど一連の設定情報を格納するデータベースである。
このデータベースが壊れると全体のファイルシステムが破壊される可能性があるため、
非常に重要である。
従って複数のディスクに分散させる。最低3つのレプリカを持つことが推奨されている
ため、各ディスクに2つ、計4つのデータベースを持たせる。

パッケージのツール類は /usr/opt/SUNWmd/sbin 配下にある。パスを通しておこう。

以下のコマンドでState Databaseを作成する。
# metadb -a -f -c 2 c0t0d0s7 c0t1d0s7

以下のコマンドでState Databaseを確認できる。
# metadb
        flags           first blk       block count
     a        u         16              1034            /dev/dsk/c0t0d0s7
     a        u         1050            1034            /dev/dsk/c0t0d0s7
     a        u         16              1034            /dev/dsk/c0t1d0s7
     a        u         1050            1034            /dev/dsk/c0t1d0s7
#

State Databaseが4つあることが確認できる。ちなみにこの4つは複製関係にある。

6.メタデバイスの設計
 
メタデバイスとはスライスの集合による論理デバイスで、ミラーセットはメタデバイスの
集合として作成される。従って、各スライスをミラー化するには各スライスをメタデバイ
スに格納しなければならない。各メタデバイスはその識別名を持つ。またミラーセットと
なるデバイスと一意に識別できるようにする。

参考までに今回設計した識別名は以下の通りである。
 
 
Slice Prim. Disk Secnd. Disk Mirror Dev. Mount Point
0 d11 d12 d10 /
1 d21 d22 d20 swap
3 d31 d32 d30 /usr
4 d41 d42 d40 /opt
5 d51 d52 d50 /export/home
6 d61 d62 d60 /var

7.ルートファイルシステムのミラー化
# metainit -f d11 1 1 c0t0d0s0 
d11: Concat/Stripe is setup
# metainit d12 1 1 c0t1d0s0
d12: Concat/Stripe is setup
# metainit d10 -m d11
d10: Mirror is setup
# metaroot d10
# lockfs -fa

(vfstabを変更する。#はコメントアウトで、その行の設定が次の行のようになる。)
#/dev/dsk/c0t0d0s0         /dev/rdsk/c0t0d0s0        /       ufs     1       no -
/dev/md/dsk/d10         /dev/md/rdsk/d10        /       ufs     1       no -
(vftab編集おわり)

# reboot
 .....
# metattach d10 d12
d10: submirror d12 is attached
 

8.swapファイルシステムのミラー化
# metainit -f d21 1 1 c0t0d0s1
d21: Concat/Stripe is setup
# metainit d22 1 1 c0t1d0s1
d22: Concat/Stripe is setup
# metainit d20 -m d21
d20: Mirror is setup
(vfstabを変更する)
#/dev/dsk/c0t0d0s1      -       -       swap    -       no      -
/dev/md/dsk/d20         -       -       swap    -       no      -
(vftab編集おわり)
# reboot
.....
# metattach d20 d22


9.その他ファイルシステムのミラー化
 

メタデバイスにスライスをセット

# metainit -f d31 1 1 c0t0d0s3
d31: Concat/Stripe is setup
# metainit -f d41 1 1 c0t0d0s4
d41: Concat/Stripe is setup
# metainit -f d51 1 1 c0t0d0s5
d51: Concat/Stripe is setup
# metainit -f d61 1 1 c0t0d0s6
d61: Concat/Stripe is setup

# metainit d32 1 1 c0t1d0s3
d32: Concat/Stripe is setup
# metainit d42 1 1 c0t1d0s4
d42: Concat/Stripe is setup
# metainit d52 1 1 c0t1d0s5
d52: Concat/Stripe is setup
# metainit d62 1 1 c0t1d0s6
d62: Concat/Stripe is setup

# metainit d30 -m d31
d30: Mirror is setup
# metainit d40 -m d41
d40: Mirror is setup
# metainit d50 -m d51
d50: Mirror is setup
# metainit d60 -m d61
d60: Mirror is setup

(vfstabを編集する)
#/dev/dsk/c0t0d0s3      /dev/rdsk/c0t0d0s3      /usr    ufs     1       no -
/dev/md/dsk/d30         /dev/md/rdsk/d30        /usr    ufs     1       no -
#/dev/dsk/c0t0d0s6      /dev/rdsk/c0t0d0s6      /var    ufs     1       no -
/dev/md/dsk/d60         /dev/md/rdsk/d60        /var    ufs     1       no -
#/dev/dsk/c0t0d0s5      /dev/rdsk/c0t0d0s5      /export/home    ufs     2 yes     -
/dev/md/dsk/d50         /dev/md/rdsk/d50        /export/home    ufs     2 yes     -
#/dev/dsk/c0t0d0s4      /dev/rdsk/c0t0d0s4      /opt    ufs     2       yes -
/dev/md/dsk/d40         /dev/md/rdsk/d40        /opt    ufs     2       yes -
(vfstab編集終わり)

#reboot
.....

ミラーを開始する
# metattach d30 d32
d30: submirror d32 is attached
# metattach d40 d42
d40: submirror d42 is attached
# metattach d50 d52
d50: submirror d52 is attached
# metattach d60 d62
d60: submirror d62 is attached
 

以上で作業は終了する。アタッチを投げた後は2つのミラーは自動的に同期される。
アタッチすると同期が完了するまで猛烈なディスクアクセスをするが、この間にマシンを落としても問題ない。再起動後に勝手に同期が開始される。
ミラーリングはファイルシステムからは透過的である。

同期後はどちら側のディスクからでもブート可能になる。installbootをする必要はない。

なお、ミラーの状態はmetastatコマンドで確認できる。



 [戻る]