28. Januar 2016

Oracle Storage Cloud Software Appliance - Einfach, schnell und sicher einzubinden

Oracle Storage Cloud Software Appliance ist ein Tool zur Installation in Ihrer on-premise Umgebung und ermöglicht einen einfachen Zugriff Ihrer on-premise Anwendungen und Workflows auf den Oracle Storage Cloud Service.

Die Anwendungen kommunizieren mit der Storage Cloud über eine sichere HTTPS Verbindung mittels REST API oder der Java SDK. Anwendungen müssen nicht verändert werden. Die Oracle Storage Cloud Software Appliance ermöglicht eine Interaktion von Ihren Anwendungen in die Cloud durch Standard file-basierte Netzwerk-Protokolle (NFS), ohne direkte REST API calls auf die Cloud Services.
  • Die Anwendungen können Files speichern und abrufen. Filesysteme der Cloud werden on-premise gemounted
  • Damit die Daten sicher in der Cloud sind, kann die Appliance so konfiguriert werden, dass Files beim Speichern verschlüsselt werden und beim Abrufen automatisch entschlüsselt werden (ähnlich TDE).
  • Oracle Storage Cloud Software Appliance caches Files auf dem lokalen Host. Das minimiert die REST Call und ermöglicht ein schnelles Abrufen.
Nachfolgend die Architektur:
Architektir Oracle Storage Cloud Software Appliance

Installationsvorbereitung

Die Installation für die Storage Cloud Software Appliance wird hier beschrieben, zusammenfassend folgendes: 
Als root auf dem LINUX System anmelden. Es wird ein Linux 7 vorausgesetzt und ein Kernel 3.10. (Ein anderer Kernel z.B. bei mir Kernel 3.8 funktioniert nicht mit NFS) Folgende Kommandos im Terminal auf der Maschine, dort wo die Storage Cloud Software Appliance laufen soll, ausführen:

Mit KERNEL auf 3.10 booten
$ uname -r (Kernel prüfen)

Ich habe mir die DB App Developer VBox Software Appliance besorgt, den Kernel beim Boot auf 3.1 gestellt und fange nun an, das System einzurichten (das gelb Unterlegte, habe ich nicht durchgeführt). Wir arbeiten hier als root (#):
Yum Repository updaten, damit auch Tools/Addons installiert werden können:
# vi /etc/yum.repos.d/public-yum-ol7.repo

    Change the value of enable to 1 in addons.
    Change the value of enable to 1 in optional_latest.
DOCKER und NFS installieren
# yum install docker
# shutdown —r now
# groupadd docker
# usermod -a -G docker oracle

# exit
$ su -

# NO_PROXY=localhost,127.0.0.1/8,/var/run/docker.sock
# no_proxy=$NO_PROXY
# systemctl start docker
# systemctl enable docker

# systemctl status docker

# yum install nfs-utils
# systemctl start nfs-server
# systemctl enable nfs-server
# rpcinfo -p | grep nfs
# exit
Läuft docker$ docker info

Oracle Storage Cloud Software Appliance installieren

Wenn alles läuft - NFS und docker - wird die Software Appliance installiert. Es gibt derzeit noch keinen Download-Link. Die Software muss über Oracle beantragt werden und dann wird ein personalisierter Download-Link zur Verfügung gestellt (die Appliance ist im Cloud Storage enthalten, keine zusätzlichen Kosten).
Weiter geht es als "oracle" user´. Ich habe die Software nach /home/oracle/software kopiert:
$ cd /home/oracle/software
$ tar -xvf oscsa-10.05.tar.gz
Install Shell ausführbar machen:
$ chmod +x oscsa-install.sh
oscsa-install.sh ausführen:
$ sudo ./oscsa-install.sh
Wenn eine Fehlermeldung a la "SELinux is enbaled" auftaucht muss
/etc/sysconfig/selinux disabled werden. Änderung vornehmen und REBOOT
$ sudo vi /etc/syscondig/selinux
    SELINUX=disabled
$ sudo shutdown -r now
Wenn SELINUX disabled werden musste, nochmal bitte den install Script aufrufen:
$ sudo ./oscsa-install.sh
Nun meckert mein Script schon wieder. In der Vorbereitung heißt es Kernel 3.1 oder höher und nun soll 3.9 eingestellt sein. Ich verändere den Script auf 3.1, denn das ist meine Kernel-Version in meiner VBox.
$ vi ./oscsa-install.sh
   min_linux_kernel_version="3.1"
Der aktuelle Kernel kann mit uname -r sichtbar gemacht werden.
Also nochmal Script ausführen:
$ sudo ./oscsa-install.sh
Die Installation dauerte bei mir einige Zeit. Die Software wird ins Verzeichnis /opt/oscsa-gateway (falls nicht verändert wird) kopiert. Nun müssen wir die Firewall anpassen, damit die Appliance mit der Oracle Cloud kommunizieren kann:

Wenn Firewall läuft, dann sollten die Ports freigeschaltet werden (die Ports können aber andere sein):
sudo firewall-cmd --state
Die Ports, die von der Appliance verwendet werden, sieht leider nur nach dem hochfahren der Appliance, also vielleicht die Firewall Ports nachträglich anpassen.
NFS-Port:
sudo firewall-cmd --zone=public --add-port=32769/tcp --permanent
Mangement Web-UI-Port:
$ sudo firewall-cmd --zone=public --add-port=32770/tcp --permanent
HTTP Rest Port:
$ sudo firewall-cmd --zone=public --add-port=32769/tcp --permanent
Firewall Restart:
$ sudo firewall-cmd --reload
Wenn die Installation und Firewalleinrichtung erfolgreich durchgeführt wurde, kann man die Appliance starten, vorher prüfen wir nochmals ob docker läauft:

Überprüfung of docker läuft:
$ docker ps # Lists running containers
$ docker ps -a # Lists all containers
$ docker stats oscsa_gw # status installiertes docker image
$ docker images # zeigt alles images an

Storage Cloud Software Appliance nutzen

Nun starten wir Storage Cloud Software Appliance:
# oscsa configure ssl true
# oscsa up
Ausgabe (hier werden die Ports nochmals angezeigt):
data args: -v /usr/share/oracle/ -v /usr/share/oracle/system/ -v /var/log/gateway
Applying configuration file to container
Starting OSCSA [oscsa_gw:1.0.5]
Management Console: https://storageapplicance:32770

REST Access: https://storageapplicance:32768/gateway/v1/swagger.json

If you have already configured an OSCSA FileSystem via the Management Console,
you can access the NFS share using the following port.

NFS Port: 32769

Example: mount -t nfs -o vers=4,port=32769 storageapplicance:/<OSCSA FileSystem name> /local_mount_point


Wir prüfen nochmal, ob die Appliance läuft:
# docker ps

Nun richten wir das Filesystem ein:
  • Als Erstes erstellen wir ein Verzeichnis für den mountpoint:
    # mkdir /mnt/storagecloud
  • Dann rufen wir mit dem Browser die Management Console auf https://storageapplicance:32770
    Wegen des Selfsigned SSL Certificate müssen Sie eine Ausnahme im Browser akzeptieren.
  • Nun muss in der Management Console ein Password vergeben werden (Click auf Save)

Password für Management Console vergeben
  • Dann Login als admin mit dem eben vergebenen Password

Login in die Management Console

  •  Nun benennt man das Filesystem. Bei mir: CloudStorage, dann auf Next

Filesystem einen Namen geben
  •  Jetzt muss der REST Service für den Storage Bereich in der Cloud mit nachfolgender Syntax eingeben werden (hier nur Ihre Identity Domain) anpassen (Danach Next): https://identityDomainID.storage.oraclecloud.com/v1/Storage-IdentityDomainID

REST Service für Ihren Storage Bereich angeben
  •  Nun Username und Password eines berechtigen Cloud Storage Users angeben
Username und Password eines berechtigen Cloud Storage Users
  •  Nun wählen Sie Encryption und sofortiger Zugriff aus (Danach Save):
Verschlüsselung ankreuzen, sowie sofortiger Zugriff
  •  Nun erscheint das Dashboard
Dashboard
Das Häkchen zeigt, dass die Appliance mit Cloud verbunden ist (CONNECT).
Nun gehen wir zurück auf die Kommandozeile und mounten den Cloud Storage als NFS-Mountpoint.
Die Syntax ist wie folgt:
mount -t nfs -o vers=4,port=32769 storageapplicance:/<OSCSA FileSystem name> /local_mount_point
In meiner Umgebung:
# mount -t nfs -o vers=4,port=32769 storageapplicance:/CloudStorage /mnt/storagecloud

Alle Dateien, die wir nach /mnt/storagecloud kopieren, werden nun automatisch verschlüsselt und beim Lesen wieder entschlüsselt. Ich habe noch einen zweiten MountPoint erstellt. Dieser ist nicht verschlüsselt (kann man dann nachträglich nicht mehr verändern).
# mount -t nfs -o vers=4,port=32769 storageapplicance:/CloudStorage2 /mnt/storagecloud2

Nun kopiere ich in beiden Storage Cloud Mountpoints eine Text-Datei:
Copy Files in die Cloud
Das Ergebnis schaue ich mir mit CloudBerry direkt in der Cloud. Vermutung in einem Container ist die Readme.txt verschüsselt und in dem anderen nicht.
CloudStorage2 (Nicht verschlüsselt)
Der Dateiname wurde umbenamt, und der Inhalt nicht verschlüsselt
CloudStorage (verschlüsselt)

Im Container Cloud Storage werden Dateiinhalte verschlüsselt
HINWEIS: Lt. Dokumentation sollten die Filesysteme (Container), die für die Appliance angelegt wurden, auch nur mit der Appliance betrieben werden, ansonsten kann es zu Inkonsistenzen kommen. Also Cloudberry Access für produktive Umgebungen vermeiden.
 
In der Management Console (Web UI) der Storage Cloud Software Appliance kann man verschiedene Einstellungen vornehmen, wie
  • Public, Private Key für die Verschlüsselung anpassen und neue angeben (sowie existieren Downloaden)
  • Cache konfigurieren
  • NFS Zugriffe (allowed hosts) einstellen, geht auch mit MAC Adressen
  • Logs einsehen
  • Lokalen Plattenplatz verwalten
  • Neue Filesysteme anlegen
Die Bedienung der Management Console ist sehr intuitive.

Use cases

Typischerweise nutzt man die Storage Appliance, um Datenmengen von den on-premise Systeme gesichert in eine Storage Cloud Umgebung zu transportieren. Hier denke ich insbesondere an
  • Backups
  • Installationssoftware
  • Patches
  • Als File-Archive
Die Appliance kann auch sehr große Dateien verschieben.

Hinweise/ Lesson Learned

Hier ein paar wichtige Hinweise, die es zu beachten gilt:
  • Kernel Version 3.1 verwenden, sonst Probleme mit NFS
  • Verschlüsselung von Filesystemen nur bei Erstellung einstellbar, nicht mehr nachträglich
  • Filesystem ausschließlich mit einer Appliance betreiben, keine anderen Schnittstellen wie REST API, Cloudberry oder eine weitere Appliance für die gemounteten Verzeichnisse nutzen, sonst Inkonsistenzen

Fazit:

Mal abgesehen von den Kernel Versionen, die etwas verwirrend in der Dokumentation beschrieben sind (PS: Habe einen Enhancement Request gestellt und Doku wird angepasst), hat alles wunderbar funktioniert. Eine schöne Lösung kostengünstige Storage Systeme in der Cloud auch für on-premise Umgebungen zu nutzen und das auf einfache Art und Weise mittels NFS Mount. In der Cloud wird übrigens 3 x gemirrored!

So das war es für heute, viel Spass beim Ausprobieren.
Liebe Grüße

Keine Kommentare:

Kommentar posten