Configurer un vlan sur une nouvelle interface réseau EXADATA

Dans cet article nous allons aborder le cas particulier sur une machine exadata du changement de l’interface réseau pour le vlan Dataguard dédié au transfert des modifications et archives sur le site de secours.

Cette opération n’est pas compliquée en soi mais elle nécessite quelques précautions qui garantissent le succès de la bascule du vlan Dataguard. Ce changement ne nécessite que l’arrêt du listener Dataguard sur le site de secours et l’arrêt de la réplication depuis le site primaire et n’impose nullement l’arrêt de l’application ou du cluster Oracle.

Configuration cible

Dans notre exemple le VLAN dédié aux échanges dataguard est le VLAN 737 qui est porté par l’interface physique eth3 de chaque serveur du cluster sur laquelle est montée une adresse virtuelle 172.99.99.x. Actuellement la couche clusterware d’Oracle vient monter cette adresse virtuelle sur l’interface réseau eth3

change_vlan

Cette migration consiste donc à déplacer les flux dédiés dataguard de l’interface actuelle eth3 vers un nouveau VLAN, à créer sur l’interface 10 gbits bondeth0 qui supporte aujourd’hui d’autres VLANs.

eth3     Link encap:Ethernet HWaddr 00:10:E0:29:A1:FF
         inet addr:172.99.99.160 Bcast:172.99.99.255 Mask:255.255.255.128
         inet6 addr: fe80::210:e0ff:fe29:a1ff/64 Scope:Link
         UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
         RX packets:6059302649 errors:0 dropped:0 overruns:0 frame:0
         TX packets:4802596377 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:46543647608887 (42.3 TiB) TX bytes:283471217590 (264.0 GiB)
eth3:1   Link encap:Ethernet HWaddr 00:10:E0:29:A1:FF
         inet addr:172.99.99.170 Bcast:172.99.99.255 Mask:255.255.255.128
         UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

Au niveau du cluster RAC, les ressources suivantes devront être modifiées pour tenir compte du changement d’interface.

Sur l'EXADATA de secours
srvctl config network
Network exists: 737/172.99.99.128/255.255.255.128/eth3, type static
srvctl config vip -n easystb01
VIP exists: /172.99.99.170/172.99.99.170/172.99.99.128/255.255.255.128/eth3, hosting node easystb01
srvctl config vip -n easystb02
VIP exists: /172.99.99.171/172.99.99.171/172.99.99.128/255.255.255.128/eth3, hosting node easystb02
Sur l’EXADATA de production
srvctl config network
Network exists: 737/172.99.99.128/255.255.255.128/eth3, type static
srvctl config vip -n easyrac01
VIP exists: /172.99.99.150/172.99.99.150/172.99.99.128/255.255.255.128/eth3, hosting node easyrac01
srvctl config vip -n easyrac02
VIP exists: /172.99.99.151/172.99.99.151/172.99.99.128/255.255.255.128/eth3, hosting node easyrac02

Les précautions à prendre

Le plan d’adressage IP demeure identique à celui défini initialement.

  1. Sur chacune des bases répliquées et depuis l’EXADATA de production, stopper la réplication dataguard.
sqlplus / as sysdba
alter system set log_archive_dest_state_2 = ‘DEFER’ ;
Ou
dgmgrl /
edit database <nom_de_la_base_primaire> SET STATE=TRANSPORT-OFF ;

2. Pour un éventuel retour arrière et parce que les opérations qui suivent impactent le contenu du référentiel OCR, nous sauvegarderons son contenu sous le compte ‘root’

ocrconfig -showbackup
ocrconfig –manualbackup
cp –p backup_20150918_*ocr before_move_vlan.ocr

Plan d’actions

Pour ajouter le vlan 737 nous allons implémenter un ‘tagged vlan’ sur l’interface bondeth0. Pour de plus amples informations sur cette notion de ‘tagged vlan’ se référer à la documentation MOS suivante Implementing Tagged VLAN Interfaces in Oracle VM Environments on Exadata (Doc ID 2018550.1)

Arrêt des adresses virtuelles et des listeners du VLAN 737

Sur chacun des serveurs EXADATA de production et de secours, il faut en premier stopper toutes les ressources associées à l’interface eth3 (VIP, réseau et listener) et supprimer la ressource réseau dédiée au vlan 737.

Sur l’EXADATA de secours
srvctl stop listener -l LIST737
srvctl stop vip -i 172.99.99.170
srvctl stop vip -i 172.99.99.171
crsctl status resource ora.net737.network
crsctl stop resource ora.net737.network
Sur l’EXADATA de production
srvctl stop listener -l LIST737
srvctl stop vip -i 172.99.99.150
srvctl stop vip -i 172.99.99.151
crsctl stop resource ora.net737.network

Configuration du nouveau VLAN 737

Puis à nouveau sur chaque serveur des EXADATA de secours et de production, il faudra arrêter l’interface eth3 et déclarer maintenant le nouveau VLAN 737 sur l’interface bondeth0 à l’aide du script dbm-vlan-config.sh  (MOS Note 1423676.1)  :

# Arrêt interface eth3 et suppression configuation
ifdown eth3
ifconfig eth3 down
vconfig rem bondeth0.737
# Ajout du VLAN 737 sur l'interface bondeth0
/root/dbm-vlan-config.sh del -v 737 -i bondeth0  # Suppression configuration si déjà existante
# Options -v (Numéro de vlan) -i (Interface réseau) -n (Netmask) -g (@IP gateway)
/root/dbm-vlan-config.sh add -v 737 -i bondeth0 -ip <@IP> -n 255.255.255.128 -g 172.99.99.129
/root/dbm-vlan-config.sh show
 bondeth0.734 | 734 | bondeth0 | 172.31.34.42 | 255.255.255.0 | up
 bondeth0.797 | 797 | bondeth0 | 172.31.97.42 | 255.255.255.0 | up
 bondeth0.737 | 737 | bondeth0 | 172.99.99.161 | 255.255.255.128 | up

Contrôle de la configuration des interfaces ‘réseau’

A ce stade un petit contrôle s’impose pour vérifier le statut des interfaces ‘réseau’.

ifconfig eth3
eth3      Link encap:Ethernet  HWaddr 00:10:E0:29:B5:85
 BROADCAST MULTICAST  MTU:1500  Metric:1
 RX packets:118043481 errors:0 dropped:0 overruns:0 frame:0
 TX packets:103129875 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000
 RX bytes:470876473974 (438.5 GiB)  TX bytes:21243300632 (19.7 GiB)
ifconfig bondeth0.737
 bondeth0.737 Link encap:Ethernet  HWaddr 90:E2:BA:38:E4:A8
 inet addr:172.99.99.161  Bcast:172.99.99.255  Mask:255.255.255.128
 UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
 RX packets:0 errors:0 dropped:0 overruns:0 frame:0
 TX packets:6 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0
 RX bytes:0 (0.0 b)  TX bytes:300 (300.0 b)

Tests de communication du nouveau VLAN

Une fois que toutes les interfaces eth3 ont été remplacées par bondeth0.737, tester le bon fonctionnement physique par un ping sur les différentes adresses du VLAN

ping 172.99.99.160 –c2
ping 172.99.99.161 –c2
ping 172.99.99.140 –c2
ping 172.99.99.141 –c2

Reconfiguration des VIPs et listeners VLAN 737

Modifier les définitions des ressources cluster pour tenir compte du changement d’interface eth3 à bondeth0.737.

srvctl modify network -k 737 -S 172.99.99.128/255.255.255.128/bondeth0.737
srvctl start network –k 737
# Pour chaque nœud de l’EXADATA et avec les bonnes adresses VIP (2 en secours et 2 en production)
srvctl remove vip -i <alias_reseau>
srvctl add vip -k 737 -A <alias_reseau-vip>/255.255.255.128/bondeth0.737 –n <host_name>
srvctl start vip -i <alias_reseau-vip>
# Lorsque les VIP sont configurées et démarrées sur l’ensemble des nœuds, démarrer les listeners en exécutant la commande suivante :
srvctl start listener -l LIST737
# Vérification des ressources réseau
crsctl stat res –t
ifconfig -a

Relance de la réplication

Relancer la réplication dataguard sur chacune des bases déclarées sur l’EXADATA de production.

sqlplus / as sysdba
alter system set log_archive_dest_state_2 = ‘enable’ ;
Ou
dgmgrl /
edit database <nom_de_la_base_primaire> SET STATE=TRANSPORT-ON ;

Conclusion

Comme il s’agit d’opérations répétitives sur chaque membre du cluster, il est vivement recommandé d’utiliser un script qui vous permettra d’automatiser aisément cette procédure; un exemple ci-joint qui peut être facilement adapté à vos besoins et votre environnement.

#!/bin/sh
DEVICE=`cat ifcfg | grep DEVICE | cut -f2 -d'='`
GATEWAY=`cat ifcfg | grep GATEWAY | cut -f2 -d'='`
IPADDR=`cat ifcfg | grep IPADDR | cut -f2 -d'='`
NETMASK=`cat ifcfg | grep NETMASK | cut -f2 -d'='`
echo $DEVICE $GATEWAY
Vlan=`echo $DEVICE | cut -f2 -d'.'`
ORAENV_ASK='NO'
export ORACLE_SID=+ASM1
. oraenv
for host in `cat Hosts`
do
       Asm_Number=`expr $Asm_Number + 1`
       srvctl stop listener -l LIST737 -n $host
       Host_db=$(echo $host | sed s/bko/db/g)
       srvctl stop vip -i ${Host_db}-dr-vip
done
crsctl stop resource ora.net$Vlan.network
for host in `cat Hosts`
do
       echo "------> " $host
       scp dbm-vlan-config.sh $host:$HOME/
       scp $host:/etc/sysconfig/network-scripts/*eth3 .
       for File in `ls *eth3 | sort`
       do
               mv $File $File.$host
       done
       ipaddr=`cat ifcfg-eth3.$host | grep IPADDR | cut -f2 -d'='`
       gateway=`cat ifcfg-eth3.$host | grep GATEWAY | cut -f2 -d'='`
       Interface=`echo $DEVICE | cut -f1 -d'.'`
       ssh $host ifdown eth3
       ssh $host ifconfig eth3 down
       ssh $host rm /etc/sysconfig/network-scripts/*$DEVICE
       ssh $host ifdown $DEVICE
       ssh $host ifconfig $DEVICE down
       ssh $host $HOME/dbm-vlan-config.sh del -v $Vlan -i $Interface
       echo "ssh $host $HOME/dbm-vlan-config.sh add -v $Vlan -i $Interface -ip $ipaddr -n $NETMASK -g $GATEWAY"
       ssh $host $HOME/dbm-vlan-config.sh add -v $Vlan -i $Interface -ip $ipaddr -n $NETMASK -g $GATEWAY
       ssh $host $HOME/dbm-vlan-config.sh show
       ssh $host ifconfig eth3
       ssh $host ifconfig $DEVICE
       ssh $host ping -c3 $GATEWAY
       ssh $host rm /etc/sysconfig/network-scripts/*eth3
done

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *