FrontPage 差分 一覧 ソース 検索 ヘルプ ログイン

Solaris10 for SPARC Ver.02 〜VolumeManager編〜のソース

!!!Solaris10 for SPARC Ver.02 〜VolumeManager編〜
{{category Solaris}}

----

以前 Solstice DiskSuite と呼ばれていた何かは
VolumeManagerとしてOSに統合された。

そもそもDiskSuiteとはなんぞやとか、
どんなことができんねんとかそーいったあたりの話は
[Sunのofficial document|http://docs.sun.com/app/docs/doc/816-4520?l=ja]
を読んでもらうとして、
ここではよくあるパターンのディスク2台をmirroringして使うときに
実際に行った作業をメモしておく。

----

18GBディスク2本をswapまで含めてさっくりとmirroringする方向で。

 c0t0d0                   c0t1d0
   s0 -----  d0(/)    ----- s0
   s1 ----- d1(swap)  ----- s1
   s3 ----- d3(/var)  ----- s3
   s4 ----- d4(/usr)  ----- s4
   s5 ----- d5(/home) ----- s5
   s6 ----- unassigned ---- s6
   s7 -----  metadb   ----- s7

何がやりたいかはわかるよな、これで。わかんないやつはやめとけ(ぉ

とりあえず c0t0d0 にさっくりとOSをインストールしてから
formatコマンド で c0t1d0 に c0t0d0 と全く同じようにsliceを切る。詳細略。
1本目のディスクにmetadb用のsliceを確保しておくのを忘れないように。
多分12cylもあれば足りると思う。
具体的にはこんな感じ
 Part      Tag    Flag     Cylinders        Size            Blocks
   0       root    wm       0 -  499        1.00GB    (500/0/0)   2100000
   1       swap    wu     500 - 1499        2.00GB    (1000/0/0)  4200000
   2     backup    wm       0 - 8465       16.95GB    (8466/0/0) 35557200
   3        var    wm    1500 - 1999        1.00GB    (500/0/0)   2100000
   4        usr    wm    2000 - 4999        6.01GB    (3000/0/0) 12600000
   5       home    wm    5000 - 8441        6.89GB    (3442/0/0) 14456400
   6 unassigned    wm       0               0         (0/0/0)           0
   7 unassigned    wm    8442 - 8465       49.22MB    (24/0/0)     100800

sliceの場所も気にしておこう。
VolumeManagerでは0cylからはじまっているsliceは
0cylからはじまっているsliceとしかmirrorできない。
c0t0d0でs0をディスクの先頭から確保したら、c0t1d0でもそうしないといけない。
まぁ何も考えずにまったく同じ構成にしておけ。

----

とりあえず metadb を作成する。
c0t0d0s7とc0t1d0s7の両方にそれぞれ3つずつ。
詳しいおぷそんは man metadb すれ。
 # metadb -a -f -c 3 c0t0d0s7 c0t1d0s7
んで、とりあえずちゃんとできたか確認しておく。
 # metadb
         flags           first blk       block count
      a        u         16              8192            /dev/dsk/c0t0d0s7
      a        u         8208            8192            /dev/dsk/c0t0d0s7
      a        u         16400           8192            /dev/dsk/c0t0d0s7
      a        u         16              8192            /dev/dsk/c0t1d0s7
      a        u         8208            8192            /dev/dsk/c0t1d0s7
      a        u         16400           8192            /dev/dsk/c0t1d0s7
合計6つ。

----

んで、rootのmirroringをば。
まずは今まさに動いているrootのfilesystemをd10に、
mirror先にする予定の場所をd20に。
 # metainit -f d10 1 1 c0t0d0s0
 # metainit d20 1 1 c0t1d0s0
マウント予定のd0をmirrorとしてセットアップ。
 # metainit d0 -m d10
んでおまじない。rootだし。
 # metaroot d0
/etc/vfstabを見て、ちゃんと /dev/dsk/md/d0 
をmountするようになっているかを確認しておく。

あとはrebootしてから
 # metattach d0 d20
して、Resyncが完了するのを待てばよろしい。

----

他のぱーてぃそんも基本的には同じ。
metainitでmeta deviceを作成して、
metainitでmeta deviceをmirrorとしてセットアップして
/etc/vfstab を手動で書き換えてrebootしてmetattachしておしまい。

具体的にはこんな感じ。
 # metainit -f d11 1 1 c0t0d0s1
 # metainit d21 1 1 c0t1d0s1
 # metainit d1 -m d11
 # vi /etc/vfstab
 # reboot
 # metattach d1 d21

d3もd4もd5も同様の手順を繰り返せばいい。

----

あとは定期的にmetastatを実行して、
State が Needs maintenance になってないかを確認しておけ。

おしまい。