Tru64UnixStorageManagement

2004-07-10 23:12:14 +0900 (1643d); rev 2

Tru64Unix のストレージ管理、特に LSM と AdvFS について。

基礎知識

LSM (Logical Storage Manager) というのは ようするにソフトウェア RAID みたいなもの。 ミラーリングしたり、複数のスライスをつなげて一つにしたりできる。

AdvFS は Tru64Unix の標準ファイルシステム。 ジャーナリングやクォータは当然として、 スナップショットをとったり、動作中にサイズを増やしたり、 複数のスライス (正確には AdvFS volume) にまたがって作ることもできる。 他に妙な機能としては「ゴミ箱」機能があり、 unlink されたファイルを自動的に特定ディレクトリに移動できる。

詳しくは hp のオンラインマニュアルを参照のこと。

http://h50146.www5.hp.com/products/software/oe/tru64unix/document/v51b/DOCS/HTML/ADVFSADM/TITLE.HTM
AdvFS 管理ガイド
http://h50146.www5.hp.com/products/software/oe/tru64unix/document/v51b/DOCS/HTML/LSM/TITLE.HTM
Logical Storage Manager

LSMとAdvFSの構成

スライスと LSM の管理は diskconfig にやらせるのが一番楽なのだが、 以下では X が使えない状況だったので地道にコマンドラインからやることにした。

スライスの管理

スライスは disklabel(8) で操作できる。

スライステーブルを読む

# /usr/sbin/disklabel -r /dev/rdisk/dsk0c
# /dev/rdisk/dsk0c:
type: SCSI
disk: ST318404LC
label:
flags: dynamic_geometry
bytes/sector: 512
sectors/track: 421
tracks/cylinder: 6
sectors/cylinder: 2526
cylinders: 14384
sectors/unit: 35566478
rpm: 10016
interleave: 1
trackskew: 75
cylinderskew: 85
headswitch: 0           # milliseconds
track-to-track seek: 0  # milliseconds
drivedata: 0

8 partitions:
#            size       offset    fstype  fsize  bsize   cpg  # ~Cyl values
  a:       786432            0     AdvFS                      #      0 - 311*
  b:       786432       786432  LSMnoprv                      #    311*- 622*
  c:     35566478            0    unused      0      0        #      0 - 14080*
  d:         4096      1572864   LSMsimp                      #    622*- 624*
  e:     16994759      1576960    unused      0      0        #    624*- 7352*
  f:     16994759     18571719    unused      0      0        #   7352*- 14080*
  g:      4300800      1576960  LSMnoprv                      #    624*- 2326*
  h:     29688718      5877760    unused      0      0        #   2326*- 14080*

今回はまだ使われていない dsk0h と dsk1 を LSM で つなげて LSM volume を作り、そこに home ファイルシステムを作ることにした。

LSM Disk Group を作る

スライスやディスクを LSM 用に初期化する。

# voldisksetup -i dsk0h
# voldisksetup -i dsk1

すると LSM から見えるようになる。

# voldisk list
DEVICE       TYPE      DISK         GROUP        STATUS
dsk0a        nopriv    root01       rootdg       online
dsk0b        nopriv    swap01       rootdg       online
dsk0d        simple    dsk0d        rootdg       online
dsk0g        nopriv    usr01        rootdg       online
dsk0h        simple    -            -            online
dsk1         sliced    -            -            online

次に voldiskadd を使って dsk0h と dsk1 を homedg にまとめる。 voldiskadd は対話的なプログラムで、 いくつか聞いてくるので適当に答える。 すると以下のようにちゃんと dsk0h と dsk1 が homedg (home disk group) にまとまった。

# voldisk list
DEVICE       TYPE      DISK         GROUP        STATUS
dsk0a        nopriv    root01       rootdg       online
dsk0b        nopriv    swap01       rootdg       online
dsk0d        simple    dsk0d        rootdg       online
dsk0g        nopriv    usr01        rootdg       online
dsk0h        simple    homedg01     homedg       online
dsk1         sliced    homedg02     homedg       online

LSM Volume

sysman の "LSM administration" から homevol を作る。 このとき環境変数 $DISPLAY が設定されていると X につなごうとするので unset DISPLAY しておく。 結果として次のように homevol ができた。

  Volume          Usage    Status       Length        Read Policy  Disk Group

 >rootvol         root     ENABLED      786432        ROUND        rootdg
  swapvol         swap     ENABLED      786432        ROUND        rootdg
  usrvol          fsgen    ENABLED      4300800       ROUND        rootdg
  homevol         fsgen    ENABLED      31457280      SELECT       homedg

対応するデバイスファイルは /dev/vol/homedg/homevol にできる。

AdvFS

AdvFS の domain を作り、file set を作り、マウントする。 これは簡単。

# mkfdmn /dev/vol/homedg/homevol home_domain
# mkfset home_domain home
# mount home_domain#home /usr/users

できたようだ。

# mount
root_domain#root on / type advfs (rw)
/proc on /proc type procfs (rw)
usr_domain#usr on /usr type advfs (rw)
usr_domain#var on /var type advfs (rw)
home_domain#home on /usr/users type advfs (rw)

できてる。


system revision 1.162