ちょっと興味があって、ディスクを引っこ抜いてみた。
HDDなどのデバイスの取り扱いに関して、IAサーバの場合は原則、OS側から意識させないようにハードウェアが構成されているため、一々OS側でアレコレ意識することはあんまり無かったりする。
Solarisの場合、コマンドで安全に切り離すコマンドとやらがあるらしい。
まず、ぶら下がっているデバイスの特定を行う。狙いのデバイスは下記赤文字箇所。
# cfgadmin -al
Ap_Id Type Receptacle Occupant Condition
c0 scsi-bus connected configured unknown
c0::dsk/c0t0d0 CD-ROM connected configured unknown
c1 scsi-bus connected configured unknown
c1::dsk/c1t0d0 disk connected configured unknown
c1::dsk/c1t1d0 disk connected configured unknown
c2 scsi-bus connected unconfigured unknown
usb0/1 unknown empty unconfigured ok
usb0/2 unknown empty unconfigured ok
以下のコマンドで切り離しができるらしい。
# cfgadm -c unconfigure c1::dsk/c1t1d0
cfgadm: Component system is busy, try again: failed to offline:
Resource Information
—————— ————————————-
/dev/dsk/c1t1d0s0 component of concat “/dev/md/dsk/d20”
/dev/md/dsk/d20 submirror of “/dev/md/dsk/d0”
/dev/md/dsk/d0 mounted filesystem “/”
/dev/dsk/c1t1d0s1 component of concat “/dev/md/dsk/d21”
/dev/md/dsk/d21 submirror of “/dev/md/dsk/d1”
/dev/md/dsk/d1 mounted filesystem “/var”
/dev/dsk/c1t1d0s3 component of concat “/dev/md/dsk/d23”
/dev/md/dsk/d23 submirror of “/dev/md/dsk/d3”
/dev/md/dsk/d3 swap area
/dev/dsk/c1t1d0s4 contains metadb(s)
/dev/dsk/c1t1d0s7 component of concat “/dev/md/dsk/d27”
/dev/md/dsk/d27 submirror of “/dev/md/dsk/d7”
/dev/md/dsk/d7 mounted filesystem “/export/home”
あれ・・・・・怒られたでありますか^^;-fオプションをつけたらどうだ?
# cfgadm -f -c unconfigure c1::dsk/c1t1d0
cfgadm: Component system is busy, try again: failed to offline:
Resource Information
—————— ————————————-
/dev/dsk/c1t1d0s0 component of concat “/dev/md/dsk/d20”
/dev/md/dsk/d20 submirror of “/dev/md/dsk/d0”
/dev/md/dsk/d0 mounted filesystem “/”
/dev/dsk/c1t1d0s1 component of concat “/dev/md/dsk/d21”
/dev/md/dsk/d21 submirror of “/dev/md/dsk/d1”
/dev/md/dsk/d1 mounted filesystem “/var”
/dev/dsk/c1t1d0s3 component of concat “/dev/md/dsk/d23”
/dev/md/dsk/d23 submirror of “/dev/md/dsk/d3”
/dev/dsk/c1t1d0s4 contains metadb(s)
/dev/dsk/c1t1d0s7 component of concat “/dev/md/dsk/d27”
/dev/md/dsk/d27 submirror of “/dev/md/dsk/d7”
/dev/md/dsk/d7 mounted filesystem “/export/home”
やっぱりダメなようで。metaデバイスが構成されていることが原因のようです。というわけで、metaデバイスの切り離しを試行してみました。
bash-3.2# metadb -d c1t1d0s4
bash-3.2# metadb
flags first blk block count
a m p luo 16 8192 /dev/dsk/c1t0d0s4
a p luo 8208 8192 /dev/dsk/c1t0d0s4
bash-3.2# metadetach d0 d20
d0: submirror d20 is detached
bash-3.2# metadetach d2 d22
d1: submirror d21 is detached
bash-3.2# metadetach d3 d23
d3: submirror d23 is detached
bash-3.2# metadetach d7 d27
d7: submirror d27 is detached
metastatによる状態確認
bash-3.2# metastat
d7: Mirror
Submirror 0: d17
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 62918208 blocks (30 GB)d17: Submirror of d7
State: Okay
Size: 62918208 blocks (30 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c1t0d0s7 0 No Okay Yesd3: Mirror
Submirror 0: d13
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 8395200 blocks (4.0 GB)d13: Submirror of d3
State: Okay
Size: 8395200 blocks (4.0 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c1t0d0s3 0 No Okay Yesd1: Mirror
Submirror 0: d11
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 33560448 blocks (16 GB)d11: Submirror of d1
State: Okay
Size: 33560448 blocks (16 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c1t0d0s1 0 No Okay Yesd0: Mirror
Submirror 0: d10
State: Okay
Pass: 1
Read option: roundrobin (default)
Write option: parallel (default)
Size: 38302464 blocks (18 GB)d10: Submirror of d0
State: Okay
Size: 38302464 blocks (18 GB)
Stripe 0:
Device Start Block Dbase State Reloc Hot Spare
c1t0d0s0 0 No Okay Yesd27: Concat/Stripe
Size: 62918208 blocks (30 GB)
Stripe 0:
Device Start Block Dbase Reloc
c1t1d0s7 0 No Yesd23: Concat/Stripe
Size: 8395200 blocks (4.0 GB)
Stripe 0:
Device Start Block Dbase Reloc
c1t1d0s3 0 No Yesd21: Concat/Stripe
Size: 33560448 blocks (16 GB)
Stripe 0:
Device Start Block Dbase Reloc
c1t1d0s1 0 No Yesd20: Concat/Stripe
Size: 38302464 blocks (18 GB)
Stripe 0:
Device Start Block Dbase Reloc
c1t1d0s0 0 No YesDevice Relocation Information:
Device Reloc Device ID
c1t1d0 Yes id1,sd@SFUJITSU_MAW3073NCSUN72G_000748B0PD9D____DAN0P7B0PD9D
c1t0d0 Yes id1,sd@SFUJITSU_MAW3073NCSUN72G_000747B0PAB1____DAN0P7B0PAB1
ミラー側ディスクの切り離しを確認。さてどうだろうか?
bash-3.2# cfgadm -f -c unconfigure c1::dsk/c1t1d0
bash-3.2#
お、普通にプロンプトが帰ってきた。で、ディスクを抜いてみた。
Jul 10 00:00:57 yabakei rmclomv: DISK @ HDD1 has been removed.
SC Alert: DISK @ HDD1 has been removed.
おお、イベントに上がった。そして再挿入してみる。
Jul 10 00:01:57 yabakei rmclomv: DISK @ HDD1 has been inserted.
SC Alert: DISK @ HDD1 has been inserted
おお、これまたきれいにイベントが上がった。ちゃんと通知メールも飛んでいた。ちなみに、
bash-3.2# cfgadm -c configure c0::dsk/c1t1d0
cfgadm: Attachment point not found
あれ、なんかうまくいってない。
bash-3.2# cfgadm -al
Ap_Id Type Receptacle Occupant Condition
c0 scsi-bus connected configured unknown
c0::dsk/c0t0d0 CD-ROM connected configured unknown
c1 scsi-bus connected configured unknown
c1::dsk/c1t0d0 disk connected configured unknown
c1::dsk/c1t1d0 disk connected configured unknown
c2 scsi-bus connected unconfigured unknown
usb0/1 unknown empty unconfigured ok
usb0/2 unknown empty unconfigured ok
あ、もう既にconfigured/connect状態だった。ディスクの中身が特に変化してないからかなぁ・・。とか思うなど。後でデタッチしたディスクをアタッチしたところ、正常に同期が開始されました。取り敢えずはよかったよかった。
いずれにしても面白い。予備機を購入してさらに挙動を確認してみようかな?と。
No responses yet