Where is the Voting disk in ASM?

Having the voting disk in ASM is a clusterware/database 11gr2 (11.2.0.1) feature. The first time I heard about it, it got me thinking: the clusterware needs to up before the ASM instance can start, because ASM relies on the clusterware for detecting machine and cluster problems. But: ASM needs to be started to be able to find files inside ASM. Classic chicken-egg problem…

So how does the clusterware find the voting disk when it is starting? ASM is not up at that time, so it can not ask the ASM instance.

What the clusterware does, is query the diskheaders of the ASM disks. In the (11gr2) ASM disk header, there’s room to tell if, and where the voting disk is present on that disk:

$ kfed read /dev/mapper/vg00-lvasm
kfbh.endian: 1 ; 0x000: 0x01
kfbh.hard: 130 ; 0x001: 0x82
kfbh.type: 1 ; 0x002: KFBTYP_DISKHEAD
...
snipped for readability
...
kfdhdb.vfstart: 352 ; 0x0ec: 0x00000160
kfdhdb.vfend: 384 ; 0x0f0: 0x00000180
...
snipped for readability

kfdhdb.vfstart tells the begin allocation unit offset of the voting disk, kfdhdb.vfend tells the end offset.

This information is not present inside the ASM instance; that is what kept me busy for some time ;-)

About these ads
6 comments
  1. Oldbarrel said:

    Well, this information is not complete.

    if you configure the disks using ASMLib does not mean that clusterware would read all those disks to check the header to find the voting disk. It still needs to be told which diskheader to be scanned to identify the voting disk information. And that it does using the gpnp profile stored in Grid_home/gpnp//profiles/peer/profile.xml on the specification given with <orcl:ASM-Profile id="asm" DiscoveryString="" . The gpnp daemon picks this DiscoverySting value, compares with OLR best profile and it they match, passes it to cssd and then the disk is discovered. Once the disk is discovered, then the header is read to find the voting disk.

    So if you happen to mess up the gnpn profile, clusterware will not find the voting disk even if you have configured the disks using asmlib and cssd will not start. For example, you can log into ASM and execute the below command and try restarting the cluster; it will not come up

    Alter system set asm_diskstring='some_wrong_string' scope=spfile;

    Once you do that, you can check the gnpn profile and see that the DiscoveryString would have been update to this some_wrong_string.

    You can then recover from this situation by starting the cluster in exclusive mode, recreate spfile with right value for asm_diskstring and then restart the cluster.

    Cheers.

  2. Ramakant said:

    Hi Frits:
    I was looking for your webinar on the http://www.oracleracsig.com regarding ASM: advantages and disadvantages which you given on 08-JUL-10. I can see there is no recording and no pdf file.

    Could you please advise me from where I can access it.

    Appreciate for your earliest reply.

    Have a nice day!

    Best Regards,
    Ramakant Chauhan

  3. Hi Frits:
    I was looking for your webinar on the http://www.oracleracsig.com regarding ASM: advantages and disadvantages which you given on 08-JUL-10. I can see there is no recording and no pdf file.

    Could you please advise me from where I can access it.

    Appreciate for your earliest reply.

    Have a nice day!

    Best Regards,
    Ramakant Chauhan

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 2,059 other followers

%d bloggers like this: