DiskSuite 資料一覧

metattachでサブミラーをミラーに接続しようとすると「can't attach labeled submirror to an unlabeled mirror」というエラーが出る

2007/11/21更新

対応バージョン: 4.2.1

例えばミラーd0にサブミラーd10が連結されている状態でd20の連結に失敗する。

# metastat d0
d0: Mirror
    Submirror 0: d10
      State: Okay
    Submirror 1: d20
      State: Okay
    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

# metastat d20
d20: Concat/Stripe
    Size: 141192000 blocks
    Stripe 0:
        Device      Start Block  Dbase
        c0t1d0s0           0     No

# metattach d0 d20
metattach: host_a: d20: can't attach labeled submirror to an unlabeled mirror

原因

これは以下のようにシリンダ0から始まっていないルートファイルシステムに対してミラーのサブミラーを作成して、それにシリンダ0から始まるサブミラーを接続しようとすると発生する。

  0       root  wm  1452 - 24611  31.90GB (23160/0/0) 66909240
  1       swap  wu     0 -  1451   2.00GB (1452/0/0)   4194828
  2     backup  wm     0 - 24619  33.92GB (24620/0/0) 71127180
  3 unassigned  wm     0           0      (0/0/0)            0
  4 unassigned  wm     0           0      (0/0/0)            0
  5 unassigned  wm     0           0      (0/0/0)            0
  6 unassigned  wm     0           0      (0/0/0)            0
  7 unassigned  wm 24612 - 24619  11.29MB (8/0/0)        23112

対応

以下のいずれかの方法で対応する。

ルートファイルシステムと他のサブミラー用のボリュームが両方とも「シリンダ0から始まる」ようにする。
逆に、ルートファイルシステムと他のサブミラー用のボリュームが両方とも「シリンダ0から始まらない」ようにする。

OSのインストールをJumpStartによって行うとデフォルトでswapパーティションがシリンダ0から始まりルートファイルシステムは他の位置から始まるのでこの問題が起きやすい。

DiskSuiteによってルートファイルシステムをミラーリングしたい場合はディスクレイアウトをシリンダ位置に気を配りながら手動で配置するほうがよい。