Update ASMLib Treiber

Ziel

In diesem Blogeintrag wird gezeigt, wie man den ASMLib Treiber nach einem Update des Kernels auf die benötigte Version aktualisieren kann.

 

 

Was ist ASMLib?

ASMLib ist eine Support Library für das Automatic Storage Management (ASM) Feature der Oracle Datenbank. Mithilfe von ASMLib können zum Beispiel die für ASM vorgesenden Platten mit einem Label gekennzeichnet werden. Zudem kümmert ASMLib sich um die Rechte für die ASM Disks. Das heißt es müssen keine speziellen UDEV Regeln erstellt werden, damit der Datenbankbenutzer auf die Platten zugreifen kann. 

 

Der ASMLib Treiber ist immer an die Version des Kernels auf dem System gebunden. Bei einem Update des Kernels kann der ASMLib Treiber nach einem Neustart des Systems nicht mehr gestartet werden. Erst nach Aktualisierung des ASMLib Treibers ist ein Initialisieren des Treibers wieder möglich.

 

Hinweis: Wenn beim Anlegen der ASM Diskgroups die ASMLib Pfade /dev/oracleasm/disks/<Label> verwendet wurden, können die Oracle-Dienste erst nach erfolgreicher Initialisierung des ASMLib Treibers gestartet werden.

 

Vorraussetzungen

Für die Durchführung dieses Blogeintrags wird eine Oracle Umgebung benötigt, bei der der ASMLib Treiber zum Einsatz kommt. ASM wurde mit Oracle 10g eingeführt, somit ist eine Oracle 10g Umgebung das Minimum für diese Anleitung. Ich verwende einen Oracle Real Application Cluster in der Version 11g Release 2.

 

Der in diesem Blogeintrag verwendete Befehl update-driver wurde mit der Version 2.1.0 des Paketes oracleasm-support eingeführt. Die aktuell installierte Version kann man sich mithilfe von rpm anzeigen lassen.

[root@rac01 ~]# rpm -qa | grep "oracleasm-support" oracleasm-support-2.1.4-1.el5

 

Aktualisierung des Kernels und ASMLib

Im ersten Schritt wird der Kernel aktualisiert. In meiner Testumgebung ist zunächst der folgende Kernel aktiv:

[root@rac01 ~]# uname -r 2.6.18-238.5.1.el5

 

Mithilfe von yum wird der Kernel nun aktualisiert.

[root@rac01 ~]# yum update kernel  Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile  * addons: mirror.nucleus.be  * base: mirror.nucleus.be  * extras: mirror.nucleus.be  * updates: mirror.eurid.eu addons                                                                                                                                |  951 B     00:00 base                                                                                                                                  | 2.1 kB     00:00 extras                                                                                                                                | 2.1 kB     00:00 updates                                                                                                                               | 1.9 kB     00:00 updates/primary_db                                                                                                                    | 377 kB     00:02 Setting up Update Process Resolving Dependencies --> Running transaction check ---> Package kernel.x86_64 0:2.6.18-238.5.1.el5 set to be installed --> Finished Dependency Resolution  Dependencies Resolved  ========================================================================================================================  Package                           Arch                         Version                                   Repository                     Size ======================================================================================================================== Installing:  kernel                            x86_64                       2.6.18-238.5.1.el5                        updates                        19 M  Transaction Summary ======================================================================================================================== Install       1 Package(s) Upgrade       0 Package(s)  Total download size: 19 M Is this ok [y/N]: y Downloading Packages: kernel-2.6.18-238.5.1.el5.x86_64.rpm                                                       |  19 MB     02:04 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction   Installing     : kernel                                                                                    1/1  Installed:   kernel.x86_64 0:2.6.18-238.5.1.el5  Complete!

Hinweis: Der Kernel sollte erst installiert werden, wenn überprüft wurde, ob es für den neuen Kernel einen passenden ASMLib Treiber gibt. Informationen dazu finden sich hier.

 

Der neue Kernel wird erst nach dem Neustart des Systems verwendet. Bevor der Server neugestartet wird, sollte zunächst der Autostart der Oracle Dienste deaktiviert werden. Bleibt der Autostart aktiv, würde es zu Fehlermeldungen kommen, wenn Oracle versucht die Dienste zu starten.

[root@rac01 ~]# $GI_HOME/bin/crsctl disable has CRS-4621: Oracle High Availability Services autostart is disabled.

Die Variable $GI_HOME zeigt auf das Installationsverzeichnis der Grid Infrastructure. Anschließend kann der Server neugestartet werden.

[root@rac01 ~]# reboot

Nach dem Neustart des Servers ist der aktualisierte Kernel aktiv.

[root@rac01 ~]# uname -r 2.6.18-238.9.1.el5

Überprüft man nun den Status des ASMLib Treibers, sieht man, dass dieser nicht gestartet ist.

[root@rac01 ~]# /etc/init.d/oracleasm status Checking if ASM is loaded: no Checking if /dev/oracleasm is mounted: no

Ein Versuch den Treiber zu initialisieren schlägt fehl.

[root@optimus01 ~]# /etc/init.d/oracleasm restart Dropping Oracle ASMLib disks:                              [  OK  ] Shutting down the Oracle ASMLib driver:                    [  OK  ] Initializing the Oracle ASMLib driver:                     [FAILED]

Im nächsten Schritt muss nun der eigentliche ASMLib Treiber aktualisiert werden. Dafür wird das Kommando update-driver verwendet. Dieser Befehl überprüft entweder über das Oracle Unbreakable Linux Network (ULN) oder über das Oracle Technology Network (OTN) ob eine passende ASMLib Version verfügbar ist.

 

Hinweis: Oracle benötigt immer ein paar Tage bis es für eine neue Kernelversion einen passenden ASMLib Treiber gibt.

root@rac01 ~]# /usr/sbin/oracleasm update-driver Kernel:         2.6.18-238.5.1.el5 x86_64 Driver name:    oracleasm-2.6.18-238.5.1.el5 Latest version: oracleasm-2.6.18-238.5.1.el5-2.0.5-1.el5.x86_64.rpm Installing driver... warning: /tmp/oracleasm.FO2988/oracleasm-2.6.18-238.5.1.el5-2.0.5-1.el5.x86_64.rpm: Header V3 DSA signature: NOKEY, key ID 1e5e0159 Preparing...                ########################################### [100%]    1:oracleasm-2.6.18-238.5.########################################### [100%] Driver installed successfully

Nachdem das Paket aktualisiert wurde, muss nun der Treiber intialisiert werden.

[root@rac01 ~]# /etc/init.d/oracleasm start Initializing the Oracle ASMLib driver:                     [  OK  ] Scanning the system for Oracle ASMLib disks:               [  OK  ]

Die Aktualisierung des ASMLib Treibers ist erfolgreich abgeschlossen. Zum Abschluss können nun die Oracle Dienste gestartet werden und der Autostart wieder aktiviert werden.

root@rac01 ~]# $GI_HOME/bin/crsctl start crs $GI_HOME/bin/crsctl enable has

Leave a Reply

Your email address will not be published.