Benutzer-Werkzeuge

Webseiten-Werkzeuge


linux:nfs_share_vot_files_oracle_rac

NFS für einen VOT File einem 12c Oracle Real Applikation Clusters unter Linux 7 verwenden

Aufgabe:

Für ein Oracle RAC über zwei Storages benötigen wir für eine vollständige Architektur noch einen dritten gesharten Speicherplatz.

Siehe ⇒ Oracle ASM 12c - Oracle Disk Groups über zwei Storages verteilen - Ein Oracle Cluster für zwei Brandabschnitte verteilen

 VOT Disk Verteilung in einem Stretched RAC Cluster

Ablauf:

  • Basis Oracle Linux 7.2 Installation, minimal, Servernamen und IP Adressen konfigurieren
  • NFS Server im DNS Server für das RAC Clusters aufnehmen
  • NFS Server Software einrichten
  • NFS Client an die RAC Server anbinden
  • Disk im NFS Share anlegen
  • Disk als „Quorum“ Disk in einer normal Redundancy Disk Group einbinden
  • VOT Files auf dieser Disk Group betreiben

NFS Server vorbereiten

Nach der Basis Installation (Wie zum Beispiel ⇒ Ein Oracle Linux 7 Basis System) muss die NFS Software, die User für NFS und ein Speicherplatz auf dem Server eingerichtet werden.

NFS Software
yum install nfs-utils 
User

User und Gruppe einrichten mit der gleichen ID wie auf den anzubindenden Systemen:

# Auf den zielsystem racdb01 testen welche ID's vergeben wurden
# id grid
# uid=1101(grid) gid=1100(oinstall) groups=1101(dba),1002(asmadmin),1100(oinstall)
 
groupadd -g 1100 oinstall
groupadd -g 1101 dba
 
useradd -u 1101 -g oinstall -G dba  grid
passwd grid
 
id grid
uid=1101(grid) gid=1100(oinstall) groups=1100(oinstall),1101(dba)
NFS Directory

Verzeichnis anlegen:

mkdir /srv/VOTDISK
 
#rechte vergeben
chown grid:dba /srv/VOTDISK
NFS Directory freigeben

Verzeichnis nach außen frei geben:

vi /etc/exports
 
/srv/VOTDISK *(rw,sync,all_squash,anonuid=1101,anongid=1101)

Nach dem * darf kein Leerzeichen folgen, mit dem * erlauben wir Zugriff von allen Clients!

NFS Server starten

NFS aktiveren:

#rpc bind prüfen
systemctl status rpcbind
 
#muss zuvor laufen!
 
#NFS Service aktivieren
systemctl enable nfs-server.service
 
#starten
systemctl start nfs
 
#testen
systemctl status nfs
Reboot test

Prüfen ob NFS nach einem Reboot der Maschine auch noch das NFS freigegeben ist:

#Reboot
reboot
 
#Testen
exportfs -v
/srv/VOTDISK    <world>(rw,wdelay,root_squash,all_squash,no_subtree_check,anonuid=1101,anongid=1101,sec=sys,rw,secure,root_squash,all_squash)

NFS Client vorbereiten

Folgende NFS Mount Optionen sind von Oracle freigegeben:

rw,bg,hard,intr,rsize=32768,wsize=32768,tcp,noac,vers=3,timeo=600
Mount Point anlegen

Mount Point anlegen (auf allen Knoten!):

# Als user grid oder rechte geben!
mkdir /opt/oracle/VOTNFSDISK
 
chown -R grid:asmadmin /opt/oracle/VOTNFSDISK
chmod 770  /opt/oracle/VOTNFSDISK
Mount Test

Auf dem RAC Knoten testen ob sich das NFS auch mounten läßst:

ping nfsstorage01
 
showmount -e nfsstorage01
 
 
 
mount nfsstorage01:/srv/VOTDISK /opt/oracle/VOTNFSDISK
 
#prüfen
mount
..
nfsstorage01:/srv/VOTDISK on /opt/oracle/VOTNFSDISK type nfs4 (rw,relatime,vers=4.0,rsize=262144,wsize=262144,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.10.10.194,local_lock=none,addr=10.10.10.110)
..
fstab editieren und mounten

In fstab auf jeden Knoten aufnehmen:

vi /etc/fstab
nfsstorage01:/srv/VOTDISK /opt/oracle/VOTNFSDISK nfs rw,bg,hard,intr,rsize=32768,wsize=32768,tcp,noac,vers=3,timeo=600 0 0

Auf allen Knoten durchführen und mounten!


ASM "Quorum" Disk einrichten

Disk anlegen

In diesem Mount Point wird nun die ASM Disk von einem der RAC Knoten vorbereitet:

#Als User GRID damit die Rechte auch stimmen!
 
dd if=/dev/zero of=/opt/oracle/VOTNFSDISK/vote_nfs_disk01 bs=1M count=20476

! Muss die gleiche Größe wie die anderen Platten haben sonst wird mit „asmca“ die Platte nicht hinzugefügt!

Platte einbinden

Weiter geht es nun mit der graphischen Oberfläche

„asmca“ als User Grid starten und eine Platte hinzufügen

# X Umgebung einrichten!
#Grid Home setzen
asmca &

asmca starten und Diskgroup für neue Platte auswählen

Disk Suchstring um die zuvor erzeugte leere Quorum Disk ergänzen:

ASM Suchpfad anpassen

Platte als Quorum Platte hinzufügen: ASM NFS Disk als Quorum Disk hinzufügen

VOT Files umziehen

VOT Files überprüfen:

export GRID_HOME=/opt/12.1.0.2/grid
 
$GRID_HOME/bin/crsctl query css votedisk
# in meinen Fall zurzeit die VOT Files auf einer anderen Diskgroup

Auf die neue Platte umziehen:

# auf die VOT Platten mit dem NFS wieder verschieben 
 
$GRID_HOME/bin/crsctl replace votedisk +VOT
 
#Prüfen:
 $GRID_HOME/bin/crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   1b6bd6a3b36e4f81bf9fdf23867327a0 (/dev/oracleasm/disks/VOT1) [VOT]
 2. ONLINE   cd7ffb34ad164fe8bfb27a467e281044 (/dev/oracleasm/disks/VOT1_02) [VOT]
 3. ONLINE   7d28fd91bf6f4fc5bff78a2879bacb0c (/opt/oracle/VOTNFSDISK/vote_nfs_disk01) [VOT]

Nun haben wir unser Ziel erreicht, wir haben 3 Vot Files an drei Storage Locations.


Test des Fehlerfalles

Fällt nun eines der beiden Storages aus bzw., die ganze entsprechenden Abschnitte verbleiben immer noch 2 VOT Files für die Cluster Synchronisation.

Meldungen beim Ausfalltest:

2016-09-12 21:34:03.795000 +02:00
 
2016-09-12 21:34:55.444 [OCSSD(3302)]CRS-1615: No I/O has completed after 50% of the maximum interval. Voting file /dev/oracleasm/disks/VOT1_02 will be considered not functional in 99150 milliseconds
 
...
2016-09-12 21:35:25.118 [OCSSD(3302)]CRS-1649: An I/O error occurred for voting file: /dev/oracleasm/disks/VOT1_02; details at (:CSSNM00059:) in /opt/oracle/diag/crs/racdb01/crs/trace/ocssd.trc.
2016-09-12 21:35:25.118 [OCSSD(3302)]CRS-1649: An I/O error occurred for voting file: /dev/oracleasm/disks/VOT1_02; details at(:CSSNM00060:) in /opt/oracle/diag/crs/racdb01/crs/trace/ocssd.trc.
2016-09-12 21:35:26.115000 +02:00
2016-09-12 21:35:26.115 [OCSSD(3302)]CRS-1649: An I/O error occurred for voting file: /dev/oracleasm/disks/VOT1_02; details at (:CSSNM00060:) in /opt/oracle/diag/crs/racdb01/crs/trace/ocssd.trc.
2016-09-12 21:35:26.834 [OCSSD(3302)]CRS-1626: A Configuration change request completed successfully
2016-09-12 21:35:26.843 [OCSSD(3302)]CRS-1601: CSSD Reconfiguration complete. Active nodes are racdb01 racdb02 .
2016-09-12 21:35:27.456000 +02:00
 
2016-09-12 21:35:27.455 [OCSSD(3302)]CRS-1672: The number of voting files currently available 2 has fallen to the minimum number of voting files required 2.
 
....
 
2016-09-12 21:35:27.456000 +02:00

Sehr interessant bei den Fehlermeldungen ist hier die Zeile mit dem „No I/O has completed after 50% of the maximum interval. Voting file /dev/oracleasm/disks/VOT1_02 will be considered not functional in 99150 milliseconds“

⇒ in 2*99150 ms = 198300ms = 198,3s ist der Timeout abgelaufen und die VOT Disk wird deaktivert.

Test Ausfall des NFS

Was passiert aber nun wenn das NFS auffällt?

NFS Storage wird „eingeschlafen“

CRS Log Messages:

2016-09-12 22:34:58.870000 +02:00
2016-09-12 22:34:58.870 [OCSSD(3302)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvDiskPingThread_0 not scheduled for 15730 msecs.
 
.....
 
2016-09-12 22:37:12.225 [OCSSD(3302)]CRS-1614: No I/O has completed after 75% of the maximum interval. Voting file /opt/oracle/VOTNFSDISK/vote_nfs_disk01 will be considered not functional in 49910 milliseconds
 
....
 
2016-09-12 22:37:42.234 [OCSSD(3302)]CRS-1613: No I/O has completed after 90% of the maximum interval. Voting file /opt/oracle/VOTNFSDISK/vote_nfs_disk01 will be considered not functional in 19900 milliseconds
 
....
 
2016-09-12 22:38:02.251000 +02:00
2016-09-12 22:38:02.251 [OCSSD(3302)]CRS-1604: CSSD voting file is offline: /opt/oracle/VOTNFSDISK/vote_nfs_disk01; details at (:CSSNM00058:) in /opt/oracle/diag/crs/racdb01/crs/trace/ocssd.trc.
 
2016-09-12 22:38:02.251 [OCSSD(3302)]CRS-1672: The number of voting files currently available 2 has fallen to the minimum number of voting files required 2.
 
...
 
2016-09-12 22:39:22.957 [OCSSD(3302)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 279820 msecs.
 
...
 
2016-09-12 22:42:59.030 [OCSSD(3302)]CRS-1719: Cluster Synchronization Service daemon (CSSD) clssnmvWorkerThread_0 not scheduled for 495900 msecs.

Es dauert etwas länger bis sich das beruhigt hat, hier scheinen automatisch die timeouts etwas größer zu sein.

Nach mehr als 30 Minuten NFS Storage wieder gestartet.

Als root testen ob der Mount Point wieder erreichbar ist:

 ping nfsstorage01
 
#Bleibt hängen!
cd /opt/oracle/VOTNFSDISK
ls

Als root ist der NFS Mount nicht erreichbar … etwas 2-3 Minuten warten ….

Und dann plötzlich im Logfile:

2016-09-12 23:23:40.341 [OCSSD(3302)]CRS-1605: CSSD voting file is online: /opt/oracle/VOTNFSDISK/vote_nfs_disk01; details in /opt/oracle/diag/crs/racdb01/crs/trace/ocssd.trc.

Es hat sich selbständig repariert!


Im Fehlerfall - NFS Mount längere Zeit nicht mehr vorhanden

Im Alert.log der ASM Instance:

..
NOTE: waiting for instance recovery of group 3
NOTE: waiting for instance recovery of group 3
..

Vot Gruppe 3 testen:

 crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   as______________________________  (/dev/oracleasm/disks/OCR01_S1) [VOTPRD]
 2. ONLINE   a______________________________   (/dev/oracleasm/disks/OCR01_S2) [VOTPRD]
 3. OFFLINE  7______________________________ ( /opt/oracle/votnfsdisk/vote_nfs_disk01) [VOTPRD]

Vot Disk auf NFS ist offline

Lösung

NFS Mount wieder aktivieren

Dann wieder die Platte neu in die Diskgruppe aufnehmen: Test mit eigenen Script, siehe github für den Code

SQL>  @asm_failgroup.sql VOTPRD
 
Parameter 1 = DATA GROUP Name          => VOTPRD
 
 
ASM Failgroups OF a Diskgroup
 
GROUP                Failgroup                      Disk                 Disk                           Mode
name                 name                           name                 path                           STATUS
-------------------- ------------------------------ -------------------- ------------------------------ --------------
VOTPRD               NFS                            OCR01_NFS            /opt/oracle/votnfsdisk/vote_nf OFFLINE
                                                                         s_disk01
VOTPRD               STORAGE1                       OCR01_S1             /dev/oracleasm/disks/OCR01_S1  ONLINE
VOTPRD               STORAGE2                       VOTPRD_0001          /dev/oracleasm/disks/OCR01_S2  ONLINE
 
... TO online / offline ALL disks IN a failgroup
... ALTER diskgroup VOTPRD online|offline disks IN failgroup <fail_group>
...
SQL> ALTER diskgroup VOTPRD online disks IN failgroup OCR01_NFS;

teste:

[grid@db01:~ ]$ crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   as______________________________  (/dev/oracleasm/disks/OCR01_S1) [VOTPRD]
 2. ONLINE   bs______________________________  (/dev/oracleasm/disks/OCR01_S2) [VOTPRD]
 3. ONLINE   cs______________________________  (/opt/oracle/votnfsdisk/vote_nfs_disk01) [VOTPRD]
Located 3 voting disk(s).

Platte ist wieder online

Siehe auch ⇒ ASM Instance Is Hanging in an Extended Cluster When the Third Voting Disk on NFS Is Unavailable (Doc ID 1551786.1)


Quellen

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
linux/nfs_share_vot_files_oracle_rac.txt · Zuletzt geändert: 2020/10/17 10:52 von gpipperr