RACの投票ディスクあれこれ

投票ディスクの使われ方

投票ディスクの作成先ディスクグループが複数のディスクで構成されているとき、投票ディスクはどのように作られるのか。

標準冗長性のディスクグループを4台のディスクで構成した場合を考える。

SQL> select b.name,label,disk_number,mode_status from v$asm_disk a left join v$asm_diskgroup b
  2  on a.group_number = b.group_number where b.name = 'NROCR';

NAME       LABEL      DISK_NUMBER MODE_STATUS
---------- ---------- ----------- ---------------------
NROCR      NROCR1               0 ONLINE
NROCR      NROCR2               1 ONLINE
NROCR      NROCR3               2 ONLINE
NROCR      NROCR4               3 ONLINE

投票ディスクは以下のような構成になり、4本のうち3本のみが使われる。

[grid@rac19n1 ~]$ crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   5d4095281d624f5abf9ca6e6eede95f6 (AFD:NROCR1) [NROCR]
 2. ONLINE   55622263368c4f4abf9562f6080f12e1 (AFD:NROCR2) [NROCR]
 3. ONLINE   f7638bb17cdc4f70bfcf0fbb62a3c03a (AFD:NROCR3) [NROCR]
3の投票ディスクを検出しました。

投票ディスクに障害が発生すると、以下のようにそのディスクはOFFLINEになる。

[grid@rac19n1 ~]$ crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. OFFLINE  5d4095281d624f5abf9ca6e6eede95f6 (AFD:NROCR1) [NROCR]
 2. ONLINE   55622263368c4f4abf9562f6080f12e1 (AFD:NROCR2) [NROCR]
 3. ONLINE   f7638bb17cdc4f70bfcf0fbb62a3c03a (AFD:NROCR3) [NROCR]
3の投票ディスクを検出しました。

この時、ASMとしても障害が起こっているディスクはOFFLINE状態となっている。

SQL> select b.name,label,disk_number,mode_status from v$asm_disk a left join v$asm_diskgroup b
  2  on a.group_number = b.group_number where b.name = 'NROCR';
  
NAME       LABEL      DISK_NUMBER MODE_STATUS
---------- ---------- ----------- ---------------------
NROCR                           0 OFFLINE
NROCR      NROCR2               1 ONLINE
NROCR      NROCR3               2 ONLINE
NROCR      NROCR4               3 ONLINE

自分の環境では、ディスクを再接続すると認識はするものの、元のディスクグループに復帰する動きにはならず、GROUP_NUMBER=0 として認識されていた。

SQL> select a.group_number,b.name,label,disk_number,mode_status from v$asm_disk a left join v$asm_diskgroup b
  2  on a.group_number = b.group_number;

GROUP_NUMBER NAME       LABEL      DISK_NUMBER MODE_STATUS
------------ ---------- ---------- ----------- ---------------------
           0            NROCR1               0 ONLINE
           3 OCR        OCR                  0 ONLINE
           1 DATA       DATA                 0 ONLINE
           3 OCR        OCR2                 1 ONLINE
           2 NROCR      NROCR2               1 ONLINE
           2 NROCR      NROCR3               2 ONLINE
           2 NROCR      NROCR4               3 ONLINE

この状態になると、投票ディスクはディスクグループに残っているディスクで自動的に再構成されて、3台がONLINE状態となっていた。

[grid@rac19n1 ~]$ crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   55622263368c4f4abf9562f6080f12e1 (AFD:NROCR2) [NROCR]
 2. ONLINE   f7638bb17cdc4f70bfcf0fbb62a3c03a (AFD:NROCR3) [NROCR]
 3. ONLINE   4f2902f6e84d4fc1bfb8e37eef1dff50 (AFD:NROCR4) [NROCR]
3の投票ディスクを検出しました。

このあたりの挙動は障害の内容にもよるかもしれない。

コメント