L’installation par défaut d’une couche Grid Infrastructure nécessite un certain nombre d’adresses IP (avec résolution) pour notamment l’utilisation de la fonctionnalité SCAN. Par exemple si vous utilisez deux instances systèmes pour construire une couche Grid Infrastructure, vous devez réserver au moins neuf adresses IP différentes avec des noms associés.
Explication :
- 1 @ IP + 1 nom pour l’instance système 1 dans le réseau dit publique
- 1 @IP + 1 nom pour l’instance système 2 dans le réseau dit publique
- 1 @IP + 1 nom pour l’instance système 1 dans le réseau dit privé
- 1 @IP + 1 nom pour l’instance système 2 dans le réseau dit privé
- 1 @IP + 1 nom pour l’instance système 1 dans le réseau dit publique (VIP)
- 1 @IP + 1 nom pour l’instance système 2 dans le réseau dit publique (VIP)
- 3 @IP + 1 nom dans le réseau dit publique (SCAN)
Ces couples « adresses IP + noms » sont « normalement » enregistrés dans un service DNS (ce n’est pas obligatoire pour le réseau dit privé). Vous pouvez néanmoins vous passez d’un service DNS en spécifiant l’ensemble de ces adresses IP + ces noms dans le fichier hosts de chaque instance système où vous souhaitez déployer la couche Grid Infrastructure.
Ci-dessous un exemple d’entrées d’un fichier hosts pour l’installation d’une couche Grid Infrastructure sur deux instances systèmes.
#-- Nodes --# # Public network 192.168.10.5 rac1 192.168.10.6 rac2 # Private network 192.168.100.5 rac1-priv 192.168.100.6 rac2-priv #-- Cluster --# # VIP address 192.168.10.100 rac1-vip 192.168.10.101 rac2-vip # SCAN address 192.168.10.102 oraclu01-scan 192.168.10.103 oraclu01-scan 192.168.10.104 oraclu01-scan
Essayez maintenant d’installer une couche Grid Infrastructure en utilisant uniquement une résolution local sans que les enregistrements des couples adresses IP + noms soient indiqués dans le service DNS. Le défi est lancé…
Vous obtiendrez surement ces erreurs dans vos logs d’installation de la couche Grid Infrastructure. Cela fera suite à l’exécution du CVU (Cluster Verify Utility).
INFO: ----------------------------------------------- INFO: Verification Result for Node:rac2 WARNING: Result values are not available for this verification task INFO: Error Message:PRVG-1101 : SCAN name "oraclu01-scan" failed to resolve INFO: Cause: An attempt to resolve specified SCAN name to a list of IP addresses failed because SCAN could not be resolved in DNS or GNS using ''nslookup''. INFO: Action: Check whether the specified SCAN name is correct. If SCAN name should be resolved in DNS, check the configuration of SCAN name in DNS. If it should be resolved in GNS make sure that GNS resource is online. INFO: Error Message:PRVF-4657 : Name resolution setup check for "oraclu01-scan" (IP address: 192.168.10.102) failed INFO: Cause: Inconsistent IP address definitions found for the SCAN name identified using DNS and configured name resolution mechanism(s). INFO: Action: Look up the SCAN name with nslookup, and make sure the returned IP addresses are consistent with those defined in NIS and /etc/hosts as configured in /etc/nsswitch.conf by reconfiguring the latter. Check the Name Service Cache Daemon (/usr/sbin/nscd) by clearing its cache and restarting it. INFO: Error Message:PRVF-4657 : Name resolution setup check for "oraclu01-scan" (IP address: 192.168.10.103) failed INFO: Cause: Inconsistent IP address definitions found for the SCAN name identified using DNS and configured name resolution mechanism(s). INFO: Action: Look up the SCAN name with nslookup, and make sure the returned IP addresses are consistent with those defined in NIS and /etc/hosts as configured in /etc/nsswitch.conf by reconfiguring the latter. Check the Name Service Cache Daemon (/usr/sbin/nscd) by clearing its cache and restarting it. INFO: Cause: Inconsistent IP address definitions found for the SCAN name identified using DNS and configured name resolution mechanism(s). INFO: Action: Look up the SCAN name with nslookup, and make sure the returned IP addresses are consistent with those defined in NIS and /etc/hosts as configured in /etc/nsswitch.conf by reconfiguring the latter. Check the Name Service Cache Daemon (/usr/sbin/nscd) by clearing its cache and restarting it. INFO: Error Message:PRVF-4657 : Name resolution setup check for "oraclu01-scan" (IP address: 192.168.10.104) failed INFO: Cause: Inconsistent IP address definitions found for the SCAN name identified using DNS and configured name resolution mechanism(s). INFO: Action: Look up the SCAN name with nslookup, and make sure the returned IP addresses are consistent with those defined in NIS and /etc/hosts as configured in /etc/nsswitch.conf by reconfiguring the latter. Check the Name Service Cache Daemon (/usr/sbin/nscd) by clearing its cache and restarting it.
Etrangement l’utilitaire CVU d’Oracle tente d’obtenir une résolution DNS pour l’enregistrement SCAN (qui lui indiqué en paramètre de l’installation via la GUI ou via un fichier réponse). Que vous ayez configuré ou non un service DNS sur les instances systèmes, les erreurs ci-dessous se produiront.
L’utilitaire CVU exécute toujours une résolution DNS du nom SCAN. Si le nom SCAN est oraclu01-scan, l’utilitaire Oracle exécute la sous-commande suivante.
# /usr/sbin/nslookup oraclu01-scan
La réponse à cet incident est d’utiliser un service DNS avec des enregistrements correctes !? Et vous auriez raison de le faire. Cependant il existe une autre solution basée sur la mise en place d’un script (en lieu et place du binaire nslookup).
Ci-dessous la méthodologie à suivre pour remplacer le binaire nslookup par un script (à faire bien entendu sur toutes les instances systèmes où la couche Grid Infrastructure sera déployée).
# mv /usr/sbin/nslookup /usr/sbin/nslookup.orig # touch /usr/sbin/nlookup # chmod +x /usr/sbin/nslookup
Il faut éditer ce nouveau fichier nslookup et y ajouter le contenu ci-desssous en l’adaptant notamment avec vos informations réseaux.
#!/bin/bash LISTE=$* HOSTNAME="${@: -1}" if [[ $HOSTNAME = "oraclu01-scan" ]]; then echo "Server: 192.168.112.30" echo "Address: 192.168.112.30#53\n" echo "Name: oraclu01-scan" echo "Address: 192.168.112.102" echo "Name: oraclu01-scan" echo "Address: 192.168.112.103" echo "Name: oraclu01-scan" echo "Address: 192.168.112.104" else /usr/sbin/nslookup.orig $LISTE fi
Cette solution vous permettra ainsi d’installer une couche Grid Infrastructure sans utiliser des enregistrements DNS spécifiques pour l’ensemble des couples adresses IP + noms. Cette solution est viable dans des environnements type « tests d’infrastructure », elle ne l’est certainement pas dans des environnements avec des utilisateurs.