[Solaris][SPARC] ディスクを引っこ抜いてみたりなんかしてみたり。

技術のお話し

ちょっと興味があって、ディスクを引っこ抜いてみた。

photo (3)スポーンとな。

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   Yes

d3: 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   Yes

d1: 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   Yes

d0: 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   Yes

d27: Concat/Stripe
Size: 62918208 blocks (30 GB)
Stripe 0:
Device     Start Block  Dbase   Reloc
c1t1d0s7          0     No      Yes

d23: Concat/Stripe
Size: 8395200 blocks (4.0 GB)
Stripe 0:
Device     Start Block  Dbase   Reloc
c1t1d0s3          0     No      Yes

d21: Concat/Stripe
Size: 33560448 blocks (16 GB)
Stripe 0:
Device     Start Block  Dbase   Reloc
c1t1d0s1          0     No      Yes

d20: Concat/Stripe
Size: 38302464 blocks (18 GB)
Stripe 0:
Device     Start Block  Dbase   Reloc
c1t1d0s0          0     No      Yes

Device 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

おお、これまたきれいにイベントが上がった。ちゃんと通知メールも飛んでいた。ちなみに、

photo (2)で、復帰コマンド投入。

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状態だった。ディスクの中身が特に変化してないからかなぁ・・。とか思うなど。後でデタッチしたディスクをアタッチしたところ、正常に同期が開始されました。取り敢えずはよかったよかった。

いずれにしても面白い。予備機を購入してさらに挙動を確認してみようかな?と。

Tags:

No responses yet

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

PAGE TOP