|
<< Click to Display Table of Contents >> Navigation: KVM - Gemstone "Carrier" > Gemstone - Sichtweise unter KVM |
Die Datenbank läuft in den VMs. Die HTTP-Antwortprozesse, die SQL-Export Prozesse, die RabbitMQ Verbindungsprozesse laufen in der VM. Dem VM-Betriebssystem werden 2GB Shared Memory zur Verfügung gestellt, GS nutzt diesen SharedMemory.
Die Aufrufe von außen kommen durch den HOST-Apache. Unter /etc/apache2/vhosts.d muß man pro VM eine Datei ablegen, in der die Definitionen für diese Anwendung stehen. Über ein include muß der Apache diese Spezifikation laden.
Innerhalb der VM können die services zum Starten und Stoppen definiert werden und in das VM-System eingebunden werden. Im Host muss konfiguriert werden, dass die VM automatisch startet, wenn das gewünscht ist.
Die eigentlichen Datenbank-Dateien, die LOGS, die Backups liegen im HOST-Dateisystem unter "/datadisk/kvm/shared/<vm-name>". Daher kann eine Sicherung der Backups im HOST erfolgen.
Die Lizenzdateien einer Gemstone-Installation in einer VM liegen ebenfalls im HOST-Dateisystem und können daher leicht aufgefrischt werden
Die Prozesse (in der VM) von Gemstone/S, die die HTTP-Requests bearbeiten, dürfen nicht mehr gegen 127.0.0.1 arbeiten, sondern müssen gegen alle Netzwerke gebunden werden, damit der Apache im Host diese auch erreichen kann. Eine Firewall ist nicht unbedingt notwendig in dem VMs.
Normalerweise wird ein HTTP-Prozess unter "pas" in topaz so gestartet. Der Server-Prozeß horcht auf eine 127.0.0.1 (localhost = true) - und Gemstone ist dadurch NICHT von außen erreichbar. Apache kann den Prozeß aber lokal über http und 127.0.0.1 erreichen.
server := MSKRestCallServerMQ newDefaultServer.
server
startServer: true
httpDebug: false
localhost: true
port: $2 printString asNumber
serviceClass: $PAS_APP_SERVICE_CLASS
mqConnector: rabbitMQConnector
psqlConnector: nil.
In einer VM muß aber der Server-Prozeß auf die der VM zugewiesenen innerhalb des HOST zugewiesenen Adresse (192.168.122.x) - daher muß nun localhost auf false gesetzt werden:
server := MSKRestCallServerMQ newDefaultServer.
server
startServer: true
httpDebug: false
localhost: false
port: $2 printString asNumber
serviceClass: $PAS_APP_SERVICE_CLASS
mqConnector: rabbitMQConnector
psqlConnector: nil.
NetLDI
Wenn man mit Jade eine Anwendung in einer Gemstone/S programmieren will, muß man immer mit einem putty eine SSH-Verbindung erzeugen und mit einem Forwarding auf die IP/Port der VM ausstatten. All das wird in putty konfiguriert.
Wenn also eine Datenbank in einer VM mit der IP 192.168.122.100 läuft und der NetLDI Prozeß läuft dort auf Port 54321, dann sollte man in Jade eine Datenbankverbindung definieren, die auf localhost und den Port 54321 eine Datenbank sucht.
Gleichzeitig sollte man mit putty einen Tunnel aufbauen: L54321 -> 192.168.122:100:54321 und dann erhält man mit Jade eine Verbindung mit der in einer VM laufenden Datenbank.