Query on Asmlib

oracleoracle-asm

I have Oracle Linux running on vmware hosting an Oracle database with ASM (single instance). There isn't any operating system device persistence and therefore whenever my OS reboots, the disk number changes and ASM doesn't mount the disks even after I set diskstring parameter. I do not have OS multipathing since I have multipath on storage.

Disks are configured using asmlib only. I understand asmlib was introduced to ease the management of disks (addition of disks to the cluster) but wasn't it also designed to prevent this from happening? How can I prevent on server reboots, the disk major and minor number changes and diskgroups are not getting mounted.

Will add more information if required.

Best Answer

This is how I understand how asmlib works. Lets way you have a disk /dev/sdc but the name is not persistent and it changes between reboots.

So user-space asmlib tool writes a small header onto beginning of the disk. This header contains volume name like VOL1. Then the kernel part of the asmlib will create a block device named /dev/oracleasm/disks/VOL1. All reads and writes to block device VOL1 will be forwarded to /dev/sdc (with offset adjusted by header size).

There is not much more functionality in asmlib then this.

Update: if you want deterministic names for disk block devices you can choose:

  • WWN - if it is a SAN disk. i.e. use multipath.conf
  • blkid - you have to tweak udev rules
  • asmlib, write disk name, directly onto the disk

Note: asm lib is inteded only for Oracle ASM storage. You can not use to for filesystems, unless you have license for ACFS.