Solaris 10でSVMを使ったミラーリング 前編のつづき。
苦労の末に出来たスライスに、ディスクデータ領域のデータベースの複製を行う。
# metadb -a -f c1t0d0s4 c1t1d0s4 c1t2d0s4 c1t3d0s4
このとき、誤って違うスライスを登録した場合、削除は以下のコマンドで行う。
# metadb -f -d ディスクスライス
データベースの確認をする
# metadb
flags first blk block count
a m p luo 16 8192 /dev/dsk/c1t0d0s4
a p luo 16 8192 /dev/dsk/c1t1d0s4
a p luo 16 8192 /dev/dsk/c1t2d0s4
a p luo 16 8192 /dev/dsk/c1t3d0s4
次に、RAID 1を組むわけだが、どのスライスをミラーするのか考える。
今回は、disk0とdisk1、disk2とdisk3で構成する。
パーティション情報から、次のように考える
d10 /
d20 swap その1
d30 /export
d40 /opt
d50 /usr
d60 swap その2
d70 /export/home
そこで、d*1には、disk0, disk2が、d*2にはdisk1, disk3がそれぞれスライスごとに割り当てられる。
d10 = d11:c1t0d0s0 + d12:c1t1d0s0
d20 = d21:c1t0d0s1 + d22:c1t1d0s1
d30 = d31:c1t0d0s3 + d32:c1t1d0s3
d40 = d41:c1t0d0s5 + d42:c1t1d0s5
d50 = d51:c1t0d0s6 + d52:c1t1d0s6
d60 = d61:c1t2d0s1 + d62:c1t3d0s1
d70 = d71:c1t2d0s7 + d72:c1t3d0s7
では、このような設計になるように、ファイルデータベースにスライスを登録していく
# metainit -f d11 1 1 c1t0d0s0
d11: Concat/Stripe is setup
# metainit d12 1 1 c1t1d0s0
d12: Concat/Stripe is setup
(ミラーするディスクの場合、オプションの-fは不要)
名前をつけ間違えた場合は、消してからやり直す。
消すときは、以下のコマンドを入力する。
# metaclear -a
ミラーを作る
# metainit d10 -m d11
d10: Mirror is setup
このとき、d10は"/"(ルート)なので、ルートですよって登録を行う
# metaroot d10
# lockfs -fa
登録が出来たら、/etc/vfstab の"/"が下記のように書き換わる。
/dev/md/dsk/d10 /dev/md/rdsk/d10 / ufs 1 no -
この段階で、一度再起動を行う。
# shutdown -i0 -g0
ok boot -s
再起動後、実際に起動しているディスクの複写(ミラーリング)を行う。
# metattach d10 d12
d10: submirror d12 is attached
ミラーしているか確認
# metastat
d10: ミラー
サブミラー 0: d11
状態: 正常
サブミラー 1: d12
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 33814848 ブロック (16 GB)
d11: d10 のサブミラー
状態: 正常
サイズ: 33814848 ブロック (16 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t0d0s0 0 No 正常 Yes
d12: d10 のサブミラー
状態: 正常
サイズ: 33814848 ブロック (16 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t1d0s0 0 No 正常 Yes
Device Relocation Information:
Device Reloc Device ID
c1t1d0 はい id1,sd@THITACHI_DK32EJ-72NC_____41437598
c1t0d0 はい id1,sd@THITACHI_DK32EJ-72NC_____414Y7561
これができたら、残りのスライスも同じ手順で行う。
ただし、metarootで/etc/vfstab を書き換えてくれるわけではないので、スライスごとに割り当て部分を手動で書き換えていく。
最終的な/etc/vfstab は、以下のようになる。
#device device mount FS fsck mount mount
#to mount to fsck point type pass at boot options
#
fd - /dev/fd fd - no -
/proc - /proc proc - no -
#/dev/dsk/c1t0d0s1 - - swap - no -
/dev/md/dsk/d20 - - swap - no -
#/dev/dsk/c1t2d0s1 - - swap - no -
/dev/md/dsk/d60 - - swap - no -
/dev/md/dsk/d10 /dev/md/rdsk/d10 / ufs 1 no -
#/dev/dsk/c1t0d0s6 /dev/rdsk/c1t0d0s6 /usr ufs 1 no -
/dev/md/dsk/d50 /dev/md/rdsk/d50 /usr ufs 1 no -
#/dev/dsk/c1t0d0s3 /dev/rdsk/c1t0d0s3 /export ufs 2 yes -
/dev/md/dsk/d30 /dev/md/rdsk/d30 /export ufs 2 yes -
#/dev/dsk/c1t2d0s7 /dev/rdsk/c1t2d0s7 /export/home ufs 2 yes -
/dev/md/dsk/d70 /dev/md/rdsk/d70 /export/home ufs 2 yes -
#/dev/dsk/c1t0d0s5 /dev/rdsk/c1t0d0s5 /opt ufs 2 yes -
/dev/md/dsk/d40 /dev/md/rdsk/d40 /opt ufs 2 yes -
/devices - /devices devfs - no -
sharefs - /etc/dfs/sharetab sharefs - no -
ctfs - /system/contract ctfs - no -
objfs - /system/object objfs - no -
swap - /tmp tmpfs - yes -
metarootでは、自動的に書き換えてくれているので、コメントとして残せていないが、手動で買えた部分は#でコメントアウトしているので、修正の参考にしてください。
参考サイトでは、各スライスごとに再起動していたが、ミラーを始めている関係上、しょっちゅう再起動するのは、どうかと思ったので、私の場合は、swapのミラー化(d20とd60)、その他のミラー化(d30, d40, d50, d70)の順に行った。
最終的なミラー状況は以下のとおりです。
# metastat
d70: ミラー
サブミラー 0: d71
状態: 正常
サブミラー 1: d72
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 126141696 ブロック (60 GB)
d71: d70 のサブミラー
状態: 正常
サイズ: 126141696 ブロック (60 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t2d0s7 0 No 正常 Yes
d72: d70 のサブミラー
状態: 正常
サイズ: 126141696 ブロック (60 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t3d0s7 0 No 正常 Yes
d60: ミラー
サブミラー 0: d61
状態: 正常
サブミラー 1: d62
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 17054976 ブロック (8.1 GB)
d61: d60 のサブミラー
状態: 正常
サイズ: 17054976 ブロック (8.1 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t2d0s1 0 No 正常 Yes
d62: d60 のサブミラー
状態: 正常
サイズ: 17054976 ブロック (8.1 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t3d0s1 0 No 正常 Yes
d50: ミラー
サブミラー 0: d51
状態: 正常
サブミラー 1: d52
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 37559616 ブロック (17 GB)
d51: d50 のサブミラー
状態: 正常
サイズ: 37559616 ブロック (17 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t0d0s6 0 No 正常 Yes
d52: d50 のサブミラー
状態: 正常
サイズ: 37559616 ブロック (17 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t1d0s6 0 No 正常 Yes
d40: ミラー
サブミラー 0: d41
状態: 正常
サブミラー 1: d42
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 37559616 ブロック (17 GB)
d41: d40 のサブミラー
状態: 正常
サイズ: 37559616 ブロック (17 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t0d0s5 0 No 正常 Yes
d42: d40 のサブミラー
状態: 正常
サイズ: 37559616 ブロック (17 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t1d0s5 0 No 正常 Yes
d30: ミラー
サブミラー 0: d31
状態: 正常
サブミラー 1: d32
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 17207616 ブロック (8.2 GB)
d31: d30 のサブミラー
状態: 正常
サイズ: 17207616 ブロック (8.2 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t0d0s3 0 No 正常 Yes
d32: d30 のサブミラー
状態: 正常
サイズ: 17207616 ブロック (8.2 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t1d0s3 0 No 正常 Yes
d20: ミラー
サブミラー 0: d21
状態: 正常
サブミラー 1: d22
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 17054976 ブロック (8.1 GB)
d21: d20 のサブミラー
状態: 正常
サイズ: 17054976 ブロック (8.1 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t0d0s1 0 No 正常 Yes
d22: d20 のサブミラー
状態: 正常
サイズ: 17054976 ブロック (8.1 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t1d0s1 0 No 正常 Yes
d10: ミラー
サブミラー 0: d11
状態: 正常
サブミラー 1: d12
状態: 正常
パス: 1
読み込みオプション: roundrobin (デフォルト)
書き込みオプション: parallel (デフォルト)
サイズ: 33814848 ブロック (16 GB)
d11: d10 のサブミラー
状態: 正常
サイズ: 33814848 ブロック (16 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t0d0s0 0 No 正常 Yes
d12: d10 のサブミラー
状態: 正常
サイズ: 33814848 ブロック (16 GB)
ストライプ 0:
デバイス 開始ブロック Dbase 状態 Reloc ホットスペア
c1t1d0s0 0 No 正常 Yes
Device Relocation Information:
Device Reloc Device ID
c1t3d0 はい id1,sd@THITACHI_DK32EJ-72NC_____415K0032
c1t1d0 はい id1,sd@THITACHI_DK32EJ-72NC_____41437598
c1t2d0 はい id1,sd@THITACHI_DK32EJ-72NC_____41443830
c1t0d0 はい id1,sd@THITACHI_DK32EJ-72NC_____414Y7561
そのため、metastatで表示される順がdの数の昇順で表示されていません。
metastatは、作ったミラーをstackして表示しています。
これが気になる人は、設計の段階で番号の振り方を考えましょう。
RAIDを考えてこのページに来た方は、ぜひ、インストールの段階で、スライスを切るところから注意してください。
また、今回はホットスワップに対応できるように手続きしていませんので、注意してください。