DiskSuite 資料一覧
2007/9/12更新
対応バージョン: 4.2.1
ミラーリング概要
/(ルート)やswapなどのスライスをミラーリングする場合、通常のOSインストール状態において既にその領域が使用されているので以下の方法で設定する必要がある。
まず1面ミラーを作成する
上記からブートし直す
サブミラーを連結する
それ以外のスライスはまず1面ミラーを作成し、直ちにサブミラーを連結することができる。
ミラーリング
ここでは2台の内臓HDDに対してミラーリング設定をするものとし、各スライスの用途を以下のとおりとする。
1台目(c0t0d0)
0 : /
1 : swap
7 : メタDB格納
2台目(c0t1d0)
0 : c0t0d0s0(/)のミラーリング用
1 : c0t0d0s1(swap)のミラーリング用
7 : メタDB格納
1台目のディスク(c0t0d0)はすでにOSがインストールされているものとし、2台目のディスク(c0t1d0)に対してformatコマンドを使用して1台目のディスクと同じレイアウトに設定しておく。
メタDBの複製を作成
2台のディスクそれぞれのスライス7にメタDBの複製を作成する。
# metadb metadb: host_a: there are no existing databases → 最初はメタDBが存在しないので上記のメッセージが出る # metadb -a -f -c 2 c0t0d0s7 c0t1d0s7 # 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
/(ルート)のミラーリング
# metainit -f d10 1 1 c0t0d0s0 ← ストライプ領域作成(既存の/) # metainit d20 1 1 c0t1d0s0 ← ストライプ領域作成(/のミラー用)
d10、d20に続く最初の1はこのミラーに1つのストライプがあることを示し、次の1は各ストライプが1つのスライスで構成されていることを示す。
# metainit d0 -m d10 ← d10が所属する1面ミラー作成 # metaroot d0 ← d0でブート可能にする → /etc/vfstabの/スライスが以下のように編集される #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options : /dev/md/dsk/d0 /dev/md/rdsk/d0 / ufs 1 no - → /etc/systemに以下の内容が追加される * Begin MDD root info (do not edit) forceload: misc/md_trans ← (*) forceload: misc/md_raid ← (*) forceload: misc/md_hotspares ← (*) forceload: misc/md_sp ← (*) forceload: misc/md_stripe forceload: misc/md_mirror forceload: drv/pcipsy forceload: drv/simba forceload: drv/uata forceload: drv/dad rootdev:/pseudo/md@0:0,0,blk * End MDD root info (do not edit) * Begin MDD database info (do not edit) set md:mddb_bootlist1="dad:3:16 dad:3:1050 dad:11:16 dad:11:1050" * End MDD database info (do not edit)
(*) RAIDの構成によってはOSブート時にこれらドライバのロードエラーが出ることがあるが特に問題はない。気になるようなら記述を削除するか先頭に「*」を付加してコメントアウトすれば次回ブート時からは出力されない。尚、RAID構成がミラーリングの場合はこの4つドライバはロードエラーになる。
参考までに、各ドライバのエラーメッセージとエラーの出力条件を以下に示す。
WARNING: forceload of misc/md_trans failed
トランスデバイス(UFSロギング)が設定されていない。
WARNING: forceload of misc/md_raid failed
RAID5デバイスが設定されていない。
WARNING: forceload of misc/md_hotspares failed
/(ルート)がメタデバイス上にある場合にホットスペアが指定されていない。空のホットスペア集合を定義するとこのメッセージは表示されなくなる。
WARNING: forceload of misc/md_sp failed
ソフトパーティションを設定していない場合。
# lockfs -fa ← ファイルシステムのロック # reboot ← リブート (リブート中) # metattach d0 d20 ← サブミラー連結(マシンの性能によりattachに数十分〜数時間かかる) # metastat d0 d0: Mirror Submirror 0: d10 State: Okay Submirror 1: d20 State: Resyncing ← 同期中 Resync in progress: 3 % done ← ここが100%になるまで待つ Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 141192000 blocks d10: Submirror of d0 State: Okay Size: 141192000 blocks Stripe 0: Device Start Block Dbase State Hot Spare c0t0d0s0 0 No Okay d20: Submirror of d0 State: Resyncing ← 同期が終了するとOkayに変わる Size: 141192000 blocks Stripe 0: Device Start Block Dbase State Hot Spare c0t1d0s0 0 No Okay
swapのミラーリング
# metainit -f d11 1 1 c0t0d0s1 ← ストライプ領域作成(既存のswap) # metainit d21 1 1 c0t1d0s1 ← ストライプ領域作成(swapのミラー用) # metainit d1 -m d11 ← d11が所属する1面ミラー作成 # vi /etc/vfstab ← swapデバイスを上記のメタデバイスに変更 #device device mount FS fsck mount mount #to mount to fsck point type pass at boot options : /dev/md/dsk/d1 - - swap - no - # reboot ← リブート (リブート中) # metattach d1 d21 ← サブミラー連結(マシンの性能によりattachに数分〜数十分かかる) # metastat d1 d1: Mirror Submirror 0: d11 State: Okay Submirror 1: d21 State: Okay Pass: 1 Read option: roundrobin (default) Write option: parallel (default) Size: 2106432 blocks d11: Submirror of d1 State: Okay Size: 2106432 blocks Stripe 0: Device Start Block Dbase State Hot Spare c0t0d0s1 0 No Okay d21: Submirror of d1 State: Okay Size: 2106432 blocks Stripe 0: Device Start Block Dbase State Hot Spare c0t1d0s1 0 No Okay # swap -l swapfile dev swaplo blocks free /dev/md/dsk/d1 85,1 16 2106416 2106416
core dumpの出力先をデフォルトのswap領域(/dev/dsk/s1)からメタデバイス(/dev/md/dsk/d1)に変更
# dumpadm -d swap # dumpadm Dump content: kernel pages Dump device: /dev/md/dsk/d1 (swap) Savecore directory: /var/crash/host_a Savecore enabled: yes