|
Oracle VM mit Oracle RAC auf einem Rechner
von Sebastian Solbach, ORACLE Deutschland GmbH
Viele DBAs und Entwickler möchten gerne Erfahrungen mit dem Real Application Cluster von Oracle sammeln.
Leider hat man aber selten die Hardware zur Verfügung um sich schnell einen Test-Cluster aufzubauen.
Eine Lösung dafür heißt Virtualisierung. Was liegt also näher als sich eine RAC Umgebung mit Oracle Virtual Machine aufzubauen?
Nun stellen sich folgende Probleme: Erstens ist OVM ein Serverprodukt und keine Lösung wie VMware Server oder Workstation,
welches einfach auf einem Windows/Linux Rechner läuft, zweitens sollte man für die Administration besser einen zweiten Server
haben (für den VM Manager) und drittens findet man im Netz kaum Step-by-Step Anleitungen.
Da ich selbst ein Verfechter der Oracle VM (OVM) bin, war dies der Grund eine solche Anleitung zu verfassen.
Allerdings merkte ich schnell, dass hierzu mehr erforderlich ist, als nur die simple RAC Installationsanweisung. Besonders, wenn
man das Ziel verfolgte das Ganze mit nur einem! Laptop (mit nur einer Netzwerkkarte) zu machen.
Aus diesem Grund ist der vorliegende Tipp auch etwas länger geworden und kann in folgende Teile aufgeteilt werden, die auch separat
betrachtet werden können.
- Installation von OVM Server + Installation von OVM Manager auf dem selben Rechner mit graphischer Oberfläche
- Konfiguration eines NAT Netzwerkes, damit die RAC Server keine externen IP Adressen brauchen
- Installation des RAC
Haben Sie 2 Server so erübrigt sich Punkt 1.
Können Sie genügend IP Adressen von Ihrem Netzwerkadministrator bekommen, erübrigt sich Schritt 2 und Ihr RAC ist
auch von extern zu erreichen. (Bei der NAT Konfiguration haben Sie nur von dem VM Server direkten Zugriff auf die Gastsysteme).
Besitzen Sie beides, gehen Sie gleich zur RAC Installation über.
Falls Sie das Ganze auch nur mit einem Server nachvollziehen wollen,
so sollte der Server folgende Voraussetzungen erfüllen:
- 4 GB RAM (2GB wären ausreichend, in diesem Falle dürfte den VM Gast Systemen nur weniger Speicher zu Verfügung gestellt werden - Dom0 512MB, DomU1 768MB DomU2 768MB)
- 48 GB Festplattenplatz
- Voraussetzungen an den Prozessor wie in der Dokumentation von OracleVM gelistet
Um sicher zu gehen, sollte immer die aktuelle Dokumentation berücksichtigen.
Software
Folgende Software wird benötigt. (Neuere Versionen können selbstverständlich verwendet werden, nur kann es hierbei zu Abweichungen bei der Anleitung kommen):
Hierbei muss nur die OVM Server CD gebrannt werden, alle andere Software kann direkt auf dem OVM Server liegen oder über das Netz gemounted werden.
Installation des OVM Servers
Die Installation des VM Servers erfolgt ganz nach der Dokumentation. Einfach die CD einlegen und den Rechner starten.
Bitte bedenken Sie, dass bei einer Default Installation alle Daten auf dem Rechner verloren gehen. Es gibt durchaus Wege, den
Rechner dual bootfähig zu machen und bestehende Installation nicht zu beeinträchtigen. Dies wird in diesem
Tipp aber nicht behandelt.
An dieser Stelle gilt es nur bei der Partionierung der Platte zu beachten, dass die Default Einstellungen verändert
werden, da die Root Partition bei einem reinen VM Server recht klein gehalten ist.
Dies würde nicht ausreichen, wenn später GNOME und der VM Manager installiert werden soll:
Anmerkung: Da nur ein Server verwendet wird, brauchen wir kein OCFS2, sondern können den kompletten Bereich / als ext3 formatieren.
Würde man später den OVS Rechner doch in ein VM Pool aufnehmen kann ein OCFS2 Repository immer noch hinzugefügt werden.
Installation der graphisches Benutzeroberfläche (GNOME)
Damit GNOME und damit später der VM Manager installiert werden kann, sollte als erstes
die Memory Zuweisung für die Dom0 geändert werden.
Dazu werden die Boot Informationen der Dom0 in /bott/grub/grub.conf angepasst:
Um nun GNOME zu installieren, könnte man einfach eine Enterprise Linux 5.0 CD verwenden, da der OVM Kernel
ungefähr der 5.0 Version der EL5 Kernels entspricht. Allerdings geht dies seit einiger Zeit auch einfacher,
wenn der Rechner über einen Zugriff auf das Internet verfügt. Oracle hat die CDs in einem YUM Repository
öffentlich verfügbar gemacht: http://public-yum.oracle.com.
Dieses Repository nehmen wir zur Hilfe um die aktuellen Binaries von OVM und EL5 GNOME herunterzuladen.
Da zum Zeitpunkt dieses Tipps die aktuellen Binaries von OVM 2.1.5 (ovm2_2.1.5_base) noch nicht auf den Server
geladen wurden, aktivieren wir das ovm2_2.1.2_base und das el5_ga_base.
Zusätzlich müssen wir noch 1 Package (die Kernel Headers) von der OVM Server CD installieren.
Sollte das ovm2_2.1.5_base bereits verfügbar sein kann das Package auch direkt
über das Public Yum installiert werden (mit yum install kernel-headers).
Nun zur eigentlichen Installation des X Windows System und von GNOME. Hierzu lassen wir einfach
yum alle notwendigen Packages ermitteln und installieren diese:
Damit wir nun beim nächsten Reboot direkt die graphische Oberfläche erhalten ändern wir noch den RunLevel auf 5:
Nun können wir entweder den Rechner durchstarten oder einfach mit
zur graphischen Benutzerfläche wechseln.
Installation des VM Managers in Dom0
Anstatt alle benötigten Systemanforderungen für eine Oracle Datenbank/Oracle XE Installation
selber zu checken nehmen wir einfach das oracle-validated Package von Linux.
Dies sorgt nicht nur für Standard EL5 Installationen für die benötigten Systemanforderungen,
sondern auch bei RedHat und OVM Servern für die richtigen Kernel Einstellungen und Softwarepackages.
Informationen zum Oracle Validated Package finden Sie unter
http://oss.oracle.com/el5/oracle-validated/
Da allerdings bei OVM Server eine andere libstdc++ zum Einsatz kommt, als oracle-validated kennt,
wird kurzzeitig die Standard libstdc++ installiert. Ansonsten käme es zu folgender Fehlermeldung:
Error: Missing Dependency: libstdc++ = 4.1.1-52.el5 is needed by package libstdc++-devel
Error: Missing Dependency: libstdc++ = 4.1.1-52.el5 is needed by package gcc-c++
Als nächstes folgt die Installation des Oracle VM Managers. Recht einfach kann man hier die Defaults akzeptieren:
Nun startet die XE Datenbank und der OC4J mit der Managementoberfläche beim Systemboot.
Falls man mehr Kontrolle über das Starten und Stoppen des OC4J und der Oracle XE Datenbank haben möchte,
kann man folgenden "Feinschliff" durchführen und OC4J als Service für Linux einrichten.
Dazu fügt man in den Header von /etc/init.d/oc4j folgende Einträge ein, damit chkconfig das Script oc4j als
Service erkennt:
Nun kann OC4J beim Startup konfiguriert werden und aus rc.local entfernt werden:
Ab nun kann oc4j und oracle-xe mit chkconfig administriert werden und konfiguriert werden (wann es starten soll), z.B:
Damit die Console über einen Webbrowser gestartet werden kann, muss noch TightVNC installiert werden (http://oss.oracle.com/oraclevm/manager/RPMS/):
Zuletzt sollte noch die Firewall ausgeschaltet werden, falls auf den OVM Manager von extern zugegriffen wird:
Nun kann zum ersten Mal auf den VM Manager zugegriffen werden. Dieser erfordert an dieser Stelle eine initiale Einrichtung.
Die Angaben hierfür können Sie aus den Screenshots entnehmen (fü eine größere Ansicht auf die Screenshots klicken):
Bevor wir nun die ersten RAC Knoten installieren, kümmern wir uns nun um die Netzwerkkeinstellungen des VM Servers.
NAT Netzwerk
Dies ist dann sinnvoll, wenn auf die RAC Knoten nicht extern zugegriffen wird und Sie nicht von Ihrem Netzwerkadministrator zusätzliche
Netzwerkaddressen beantragen wollen.
Die OVM Server funktionieren standardmäßig mit Bridges, die über die externen Netzwerkkarten mit dem
Netzwerk kommunizieren. Diese Funktionalität wird als erstes abgeschaltet. Zwar bietet auch
der Xen Server eine Einstellung für NAT, diese ist aber für unsere Zwecke ungeeignet.
D.h. wir deaktivieren zuerst die Defaulteinstellungen des Xen Servers.
Hierzu entfernen wir alle Einträge der Netzwerkkonfiguration aus der OVM Server Konfiguration /etc/xen/xend-config.sxp:
Nun fügen wir unsere eigenen Bridges mit den eigenen Netzwerken hinzu - eine fürs
Public Network der RAC Knoten und eines für den Private Interconnect. In meinem Falle
habe ich 192.168.5.1/24 für Public und 10.10.5.1/24 für den Interconnect gewählt.
Dies könnte mit brctl geschehen. Der Vollständigkeit wegen habe ich diese hier
aufgelistet:
Diese Einstellungen sind aber nicht permanent und müssten nach jedem Reboot
gemacht werden. Permanent werde diese Einstellungen durch Anlegen von
/etc/sysconfig/network-scripts/ifcfg-xenbr0 und ifcfg-xenbr1.
Zur Aktivierung started man danach das Netzwerk durch.
Gegebenenfalls sollte man kurz noch system-config-network aufrufen, da hierdurch
die Einstellungen von Linux noch in 2 weitere Ordner kopiert werden.
Damit nun die Gastsysteme mit dem externen Netzwerk kommunizieren können, muss
in der Dom0 das sogenannte IP forwarding aktiviert werden und iptables die
Weiterleitung dieser IP Packete garantieren. Eth0 ist dabei die Netzwerkkarte
über die das externe Netzwerk angesprochen wird:
Zum Testen der Konfiguration sollte der route Befehl nun folgendes ausgeben:
Die Netzwerkkonfiguration in der Gast VM später ist relativ einfach:
Nun können wir unseren ersten RAC Knoten mit Linux installieren.
Anlegen der ersten VM (RAC Knoten 1)
Um ein paravirtualisiertes Linux zu installieren, brauchen wir ein NFS Mount
auf den das zukünftige Gast System Zugriff hat. Ich habe hierzu einfach die
aktuelle Oracle Enterprise Linux 5.3 DVD auf den VM Server unter /stage kopiert
und dort extrahiert.
Ebenso könnte man nun bereits auch ein bestehendes Oracle VM Template verwenden.
Siehe hierzu http://edelivery.oracle.com/linux. Das RAC Template ist aber noch nicht
verfügbar.
HINWEIS: Da das aktuelle Unzip auf EL5/OVM nur Files bis 2GB Größe unterstützt findet
man unter http://oss.oracle.com/el4/unzip/unzip.html ein neueres Unzip Utility,
welches verwendet werden kann, die OEL 5.3 DVD oder die Templates zu entpacken.
Nun muss noch die DVD über NFS im Zugriff sein:
Das Anlegen der Virtuellen Maschine passiert nun über die VM Manager Oberfläche:
Die Screenshots zeigen die Eingaben (fü eine größere Ansicht auf die Screenshots klicken):
Nun wäre es möglich über den Button "Console" eine VNC Console auf das neue
Gast zu öffnen, es ist aber sehr viel angenehmer direkt einen vncviewer zu verwenden:
Folgende Screenshots (fü eine größere Ansicht auf die Screenshots klicken) geben den Installationsverlauf wieder (allerdings hatte die VM nur 12284MB Platte zur Verfügung).
Folgende Eingaben führen Sie schnell durch die Linux Installation.
Es steht Ihnen natürlich frei dies anders zu konfigurieren:
OVM hat die Eigenheit, nach der Linux Installation nicht automatisch selber
zu rebooten. Deswegen über den OVM Manager neu starten und erneut mit dem
vncviewer darauf zugreifen:
Auch hier wieder die wichtigsten Eingaben:
Klonen des Zweiten RAC Knotens
Den zweiten RAC Knoten könnte man nun gleich anlegen, wir werden aber nun
das erste Gastsystem einfach Klonen. Dazu muss das zu klonende System allerdings
gestoppt werden (Power Off). Das Klonen findet man bei "More Actions":
Allerdings bekommt das geklonte System die Nummer 0. Dies kann man aber einfach umbenennen.
Bei geklonten Rechnern wären die Netzwerkeinstellungen gleich wie beim Primärknoten, deswegen
hat der geklonte Rechner nach dem Starten kein richtiges Netzwerk. Nun gibt es zwei Möglichkeiten:
Ändern der Netzeinstellungen nach dem Startup:
Hier werden die eth0.bak und eth1.bak Devices entfernt.
Dann wird eth0 und eth1 mit den richtigen IP Adressen konfiguriert und zum Schluss noch der Hostname geändert.
Als letztes sollte man noch die restlichen Einträge die auf das *.bak Device verweisen löschen:
Eine andere Möglichkeit ist die Änderung der Netzwerkeinstellungen vor dem Starten der VM.
Hierzu notieren wir uns die MAC Adressen, die der VM Manager anzeigt.
Dann Mounten wir das System.img File und versehen network-scripts/ifcfg-eth0, newtork-scripts/ifcfg-eth1
und network im System Image mit dem richtigen Hostnamen und den richtigen MAC Adresse und der IP Adresse.
Allerdings kommt es nun darauf an, wie die Systemplatte partitioniert wurde. Wurden nur physical und logical
Partitions verwendet, kann dies leicht mit lomount gemounted werden. Das Default Layout von EL5 verwendet
aber den Logical Volume Manager (LVM) von Linux, wodurch das Mounten der root Partition etwas aufwändiger ist:
Danach stoppen wir das System wieder (bei Netzwerkkonfiguration am laufenden System) oder starten das Gast Systeme noch nicht
(bei der Änderung der Einstellungen im System.img File), da wir noch die gesharten Platten für OCR/Voting Disk und ASM hinzufügen.
Platten für OCR/Voting Disk und ASM
Über den Punkt Resources => Shared Virtual Disk => Create Shared Virutal Disk legen wir die Platten für OCR/Voting Disk und ASM
an. In meinem Beispiel nehme ich nur 1 Platte mit 1024MB für OCR und Voting Disk und 1 Platte mit 4096 MB für ASM. Die Screenshots
zeigen nur das Anlegen der OCR/Vote (fü eine größere Ansicht auf die Screenshots klicken):
Nach dem Anlegen der Platten muss ich diese noch der VMs zuordnen:
Nun können die VMs gestartet werden (Power On). Was nun folgt ist eigentlich eine Standard RAC Installation.
RAC Installation
Da es genügend Quellen für eine RAC Installation gibt, beschränkt sich dieser Abschnitt auf das Wesentliche.
Es werden auch keine Screenshots mehr angezeigt.
1.) Anpassen der /etc/hosts in beiden Gastsystemen (DomU), diese Einträge sollte man natürlich auch in der Dom0 vornehmen:
2.) Deaktivierung unnötiger Services für RAC:
3.) Installation von Oracle-Validated in den DomUs:
4.) Konfiguration Hangchecktimer (siehe Metalink Notes 567730.1, 726833.1 und 559365.1) und Kernelparameter:
Grundsätzlich sollten die DomUa für RAC nach ihrer "eigenen" Zeit laufen.
Dies geschieht über den Kernelparameter xen.independent_wallclock=1.
Hierzu sollte aber ein NTP Server im Netz vorhanden sein, über den die DomU Ihre Zeit abgleichen können.
Desweiteren passt auch ein Kernelparameter dem Installer der Datenbank nicht. Diesen passen wir gleich mit an:
Ebenfalls hat beim Oracle Validated Package der oracle User nicht oinstall als Primärgruppe. Auch dieses wird angepasst:
5.) Als nächstes werden die geshareten Platten vorbereitet (auf einem Knoten). Auf dem anderen Knoten wird für das Auslesen der Partitionen
einfach ein partprobe abgesetzt. Für die richtigen Berechtigungen passen wir einfach eine udev Regel an und starten udev neu:
6.) Konfiguration von ssh für den oracle User (hier die Kurzform):
7.) Nun zur eigentlichen Clusterware und Datenbank Installation. Hierzu sharen wir wieder ein Verzeichnis auf der Dom0 über NFS.
In meinem Falle eine 11g Oracle DVD:
8.) Installation der Clusterware folgt nun über den vncviewer auf localhost:0 :
9.) Danach Patchen auf 11.1.0.7: Achtung: Richtiges Home auswählen. Einfach den Anleitungen des Installers folgen.
10.) Nun folgt die Installation der Datenbank Software:
11.) Auch hier danach erst einmal auf 11.1.0.7 patchen. Auch hier wieder auf die Auswahl des richtigen Homes achten.
12.) Aufruf des NETCA zur Konfiguration der Listener:
13.) Aufruf des DBCAs zur Konfiguration von ASM:
14.) Aufruf des DBCAs zur Konfiguration von der RAC Datenbank:
FERTIG! Viel Spass mit Ihrem Single Node RAC unter Oracle VM.
Nützliche Links und Referenzen
Oracle Real Application Clusters in Oracle VM Environments
Clusterware Installation Guide for Linux
Oracle VM Dokumentation
Oracle Public Yum Server
Zurück zur Community-Seite
|