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はメタデバイスなど一連の設定情報を格納するデータベースである。6.メタデバイスの設計
このデータベースが壊れると全体のファイルシステムが破壊される可能性があるため、
非常に重要である。
従って複数のディスクに分散させる。最低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つは複製関係にある。
メタデバイスとはスライスの集合による論理デバイスで、ミラーセットはメタデバイスの7.ルートファイルシステムのミラー化
集合として作成される。従って、各スライスをミラー化するには各スライスをメタデバイ
スに格納しなければならない。各メタデバイスはその識別名を持つ。またミラーセットと
なるデバイスと一意に識別できるようにする。参考までに今回設計した識別名は以下の通りである。
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
# metainit -f d11 1 1 c0t0d0s08.swapファイルシステムのミラー化
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
# 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コマンドで確認できる。