My Oracle Support (Metalink) a parfois quelques paradoxes qui font sourire; la configuration d’ASMLib avec le Device Mapper sous Linux fait parti de ceux-ci, voici quelques extraits choisis qui vous aideront à comprendre de quoi je parle:
- 602952.1 – How To Setup ASM & ASMLIB On Native Linux Multipath Mapper disks?
Keep in mind for ASMLIB disks you will need to use the /dev/dm-* disks instead of the /dev/mapper/mpath* devices since they are present in the partition table ==)> /proc/partitions and ASMLIB will look at that file during the disk discovering phase. If you do not use the disks located at /dev/dm-* then ASM will not be able to discover them.
- 357472.1 Configuring device-mapper for CRS/ASM
the /dev/dm-N devices are internal to device mapper and should never be used.
These devices are not persistent. Starting with Red Hat Enterprise Linux 5, these devices are no longer created by udev.
/dev/dm
ou pas /dev/dm
? Si l’argument de la seconde note semble imparable, celui de la première semble vraisemblable. J’ai donc vérifié dans le code source que vous pouvez récupérer sur le site d’Oracle et il apparaît en effet que le premier argument est vrai aussi ! scan-partitions.c recherche bien les partitions dans /proc/partitions
.
Alors qui croire ? Et bien en fait peu importe ! ASMLib stocke le nom du device à aucun endroit. Au lieu de cela:
- tout est stocké dans les entêtes des disques et ne font référence à aucun device,
- les devices sont scannés au démarrage du service ASM ou lorsque vous exécutez la commande scandisk en fonction des paramètres
ORACLEASM_SCANORDER
etORACLEASM_SCANEXCLUDE
de /etc/sysconfig/oracleasm, - lorsque les devices sont trouvés, ASMLib crée un device avec le couple [major,minor] correspondant dans
/dev/oracleasm/disks
. Ce device a le nom du disque créé avec createdisk.
Tant et si bien que pour retrouver quel device correspond à quel un disque ASM, vous pouvez regarder le couple [major,minor] et le comparer à celui des autres devices du serveur comme ci-dessous:
ls -l /dev/oracleasm/disks
# Si vous utilisez DM:
ls -l /dev/mapper
# Si vous utilisez un device simple
ls -l /dev
Pour en savoir plus, quelques documents à lire absolument:
- Configuring Block Devices for Oracle Clusterware Files
- 564580.1 Configuring raw devices (multipath) for Oracle Clusterware 10g Release 2 (10.2.0) on RHEL5/OEL5
- 456239.1 Understanding Device-mapper in Linux 2.6 Kernel
- 394959.1 Device Persistence and Oracle Linux ASMLib
- 294869.1 Oracle ASM and Multi-Pathing Technologies
- http://www.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/5/html/DM_Multipath/index.html