In diesem Blogbeitrag wird detailliert beschrieben, wie die experimentelle Installation von SAP Hana Express Edition im Windows Subsystem for Linux Version 2 (WSL2) durchgeführt wurde. Bevor wir jedoch in die Tiefen des Inhalts eintauchen, sei ein wichtiger Haftungsausschluss vorangestellt: Obwohl der Autor für SAP arbeitet, stellt die hier beschriebene Methode keinen offiziell von SAP unterstützten Ansatz zur Installation oder Ausführung unserer Software dar. Es handelt sich um das Ergebnis persönlicher Experimente und Erkundungen. Die Anwendung erfolgt auf eigene Gefahr. Dieser Leitfaden richtet sich an Entwickler und IT-Profis, die die Flexibilität von WSL2 nutzen möchten, um hana express effizient auf ihrem Windows-System zu betreiben.
Was ist WSL? – Eine Einführung für Entwickler
Das Windows Subsystem for Linux (WSL) ist eine Funktion des Microsoft Windows-Betriebssystems, die es ermöglicht, Linux in dieser Umgebung über einen leichtgewichtigen Virtualisierungsansatz auszuführen. Microsoft beschreibt es wie folgt:
„Das Windows Subsystem for Linux ermöglicht es Entwicklern, eine GNU/Linux-Umgebung – einschließlich der meisten Befehlszeilentools, Dienstprogramme und Anwendungen – direkt unter Windows auszuführen, unverändert und ohne den Overhead einer traditionellen virtuellen Maschine oder Dual-Boot-Einrichtung.“
https://docs.microsoft.com/de-de/windows/wsl/about
WSL Version 2 markiert eine wesentliche Veränderung dieses Angebots durch die Einführung eines vollständigen Linux-Kernels und die Kompatibilität mit Systemaufrufen. Frühere Versuche, SAP hana express unter WSL 1 zum Laufen zu bringen, scheiterten oft an der fehlenden Unterstützung für bestimmte Systemaufrufe. Mit der jüngsten Einführung von WSL2 – und dessen Rückportierung auf ältere Patch-Level von Windows, wodurch es auch in Unternehmensumgebungen wie der von SAP verfügbar wurde – eröffnen sich jedoch neue Möglichkeiten.
Weitere Informationen zu den Funktionen und Vorteilen von WSL2 finden Sie hier:
https://docs.microsoft.com/de-de/windows/wsl/compare-versions
https://docs.microsoft.com/de-de/windows/wsl/install-win10
Für Entwickler gibt es zahlreiche relevante Unterthemen, die hier erkundet werden könnten, wie die Docker-Integration oder die Unterstützung von VSCode Remote Containers. Für den heutigen Beitrag konzentrieren wir uns jedoch auf die Erfahrung bei der Installation und dem Betrieb von hana express.
Ein großer Vorteil von WSL2 ist der direkte Zugriff auf das Dateisystem der Linux-Distribution innerhalb des Windows Explorers. Dies vereinfacht das Verschieben von Dateien und Inhalten zwischen dem Host-Betriebssystem und den verschiedenen Gastsystemen erheblich. Wie im Screenshot zu sehen, können beispielsweise openSUSE Leap 15.2 und Ubuntu gleichzeitig ausgeführt werden. Für die Installation von hana express wird in diesem Szenario openSUSE genutzt, während Ubuntu für die reine Linux-Entwicklung über VSCode Remote Containers verwendet wird. Um Ihre Produktivität weiter zu steigern, können Sie auch eine Microsoft Office Lizenz für Mac erwerben, die Entwicklern und Nutzern eine nahtlose Integration in verschiedene Arbeitsumgebungen ermöglicht.
Zugriff auf Linux-Dateisystem von WindowsZugriff auf das Linux-Dateisystem direkt aus Windows
Ein weiterer wesentlicher Vorteil gegenüber dem Betrieb regulärer virtueller Maschinen ist der nahezu sofortige Start dieser Linux-Distributionen. Sie haben umfassenden Zugriff auf die Host-Hardware und weisen Ressourcen wie Arbeitsspeicher bei Bedarf dynamisch zu. Die verwendete openSUSE-Distribution zeigt beispielsweise 51 GB Arbeitsspeicher an, wovon jedoch nur 18 GB tatsächlich auf Host-Betriebssystem-/Hardware-Ebene zugewiesen sind.
Ressourcenteilung des Hauptbetriebssystems mit dynamischer ZuweisungDynamische Ressourcenzuweisung im Hauptbetriebssystem
Zudem bietet WSL2 eine sehr vereinheitlichte Netzwerkumgebung. Ports werden automatisch in die Linux-Container weitergeleitet, und die Windows-Netzwerkkonfiguration wird automatisch in alle Linux-Container repliziert. Dies vereinfacht die Einrichtung zusätzlich und ermöglicht eine reibungslose Kommunikation zwischen Linux-Containern.
Installationserfahrung: HANA Express auf WSL2 einrichten
Nachdem wir die Vorteile von WSL2, insbesondere für Entwickler unter Windows, beleuchtet haben, stellt sich die Frage, ob wir die verbesserte Performance und die Unterstützung von Kernel/Systemaufrufen in WSL2 nutzen können, um auch Serversoftware wie SAP hana express zu installieren. Hier sind die Schritte und Erfahrungen bei der Installation in WSL2. Es wird dringend empfohlen, den gesamten Beitrag zu lesen, bevor Sie dies selbst versuchen. Ein kleiner Spoiler: Es traten Probleme auf, die erst am Ende entdeckt wurden und eine Wiederholung einiger Schritte erforderten. Die Details werden jedoch in der Reihenfolge beschrieben, in der sie erlebt wurden.
Zunächst wurde WSL2 installiert und aktualisiert. Wenn Sie Windows 1903 oder 1909 verwenden, sind zusätzliche Schritte erforderlich, um die rückportierte Version von WSL2 zu erhalten:
https://devblogs.microsoft.com/commandline/wsl-2-support-is-coming-to-windows-10-versions-1903-and-1909/
Die allgemeinen Installationsschritte von WSL2 werden hier nicht wiederholt, da sie an anderer Stelle ausführlich dokumentiert sind und dabei keine spezifischen Probleme auftraten. Es wurden zwei Linux-Distributionen installiert – openSUSE und Ubuntu. Da openSUSE eng mit Enterprise SUSE verwandt ist, wurde diese als Ausgangspunkt für die Installation von hana express gewählt.
WSL-Distributionen im ÜberblickÜbersicht der installierten WSL-Distributionen
Der Binär-Installer für HANA Express
Der bevorzugte Weg zur Installation von hana express ist die Verwendung des Binär-Installers, bei dem die meisten Fragen manuell beantwortet werden können.
https://developers.sap.com/group.hxe-install-binary.html
https://developers.sap.com/tutorials/hxe-ua-installing-binary.html
Der Installationsprozess beginnt mit dem Binär-Installer, der einfach auf die openSUSE Linux-Distribution kopiert werden kann, da das Linux-Dateisystem im Windows Explorer verfügbar ist.
HANA Express Binär-Installer bereitDer Binär-Installer für HANA Express im Linux-Dateisystem
Die Installation wird über das Befehlszeilentool SAP HANA Lifecycle Management gestartet. Einige Details des Screenshots sind bemerkenswert: Es wird die Version SAP HANA 2.0 SPS 05 von hana express verwendet. Diese Version ist derzeit noch nicht öffentlich verfügbar, aber als SAP-Mitarbeiter besteht Zugang zu Release-Kandidaten zur Unterstützung bei Tests vor der Veröffentlichung. Es wird nicht angenommen, dass SPS 05 spezielle oder spezifische Änderungen für WSL2 enthält; es war lediglich eine Gelegenheit, bei einer Neuinstallation die interne Testversion zu verwenden. Ein weiterer wichtiger Punkt ist die Verwendung des lokalen Hostnamens localhost. SAP HANA und insbesondere XSA reagieren sehr empfindlich auf den Hostnamen. In diesem Fall würde localhost selbst vom Host-Betriebssystem verwendet, um zum UAA umzuleiten. Dies funktioniert, da alle Ports vom Linux-Container eine automatische Portweiterleitung vom Host-Betriebssystem erhalten. Doch Vorsicht: Dies führte später zu Problemen aufgrund von Portkonflikten mit Diensten, die bereits im Windows-Betriebssystem liefen. Für die Erstellung von Präsentationen ist Microsoft PowerPoint 2021 eine hervorragende Wahl, die selbst in komplexen Entwicklungsabläufen zur Visualisierung von Architekturdiagrammen genutzt werden kann.
SAP HANA InstallationsprozessDer Installationsprozess von SAP HANA
Die Installation lief auf einer rein standardmäßigen Kopie von openSUSE Leap 15.2 direkt aus dem Microsoft Store an.
https://www.microsoft.com/en-us/p/opensuse-leap-152/9mzd0n9z4m4h
Mehrere Minuten lang verlief die Installation fehlerfrei und im Vergleich zu vollständigen VMs sehr schnell.
Installation läuft reibungslosErster Fortschritt der Installation ohne Fehler
Erste Hürden: Fehlende Abhängigkeiten beheben
Doch die Freude währte nicht lange. Gegen Ende des Installationsprozesses, während der Erstellung des sicheren Speichers, trat ein Fehler auf: Eine Betriebssystembibliothek, libatomic.so.1, fehlte. Es war erwartet worden, dass es im Vergleich zu Enterprise SUSE zu fehlenden Abhängigkeiten oder Voraussetzungen kommen könnte.
Unerwarteter Fehler: Fehlende Bibliothek libatomic.so.1
Glücklicherweise konnte alles Fehlende einfach aus den Standard-Repositories hinzugefügt werden. In openSUSE steht das Tool YaST2 zur Installation zusätzlicher Software zur Verfügung. Bei der Suche nach libatomic1 zeigte sich, dass es Teil von gcc ist.
YaST2: Suche nach libatomicSuche nach der fehlenden Bibliothek in YaST2
Anstatt separate Abhängigkeiten zu suchen, wurde beschlossen, nach gcc zu suchen und das gesamte gcc8-Paket zu installieren.
https://gcc.gnu.org/
Installation des gesamten gcc-PaketsInstallation des kompletten gcc-Pakets über YaST2
Nach der Installation von gcc und einem Neustart der Installation wurde eine weitere fehlende Abhängigkeit festgestellt: libnuma. NUMA (Non-Uniform Memory Access) ist zweifellos eine Linux-Serverfunktion, die SAP HANA nutzen würde, aber möglicherweise nicht in einer standardmäßigen, benutzerorientierten Distribution vorhanden ist.
https://www.kernel.org/doc/html/v4.18/vm/numa.html
libnuma.so ebenfalls erforderlichDie Bibliothek libnuma.so wird ebenfalls benötigt
Wie schon bei gcc konnte diese zusätzliche Funktion problemlos über YaST2 aus den Standard-Repositories installiert werden. Es war keine spezielle Repository-Einrichtung oder SAP-spezifische Konfiguration erforderlich. Wenn Sie die Installation von Grund auf selbst durchführen würden, könnten Sie diese beiden Abhängigkeiten natürlich zuerst installieren und so Fehler in der HANA-Installation vermeiden. Für eine effiziente Software-Beschaffung können Sie in Erwägung ziehen, PowerPoint online kaufen zu können, um sicherzustellen, dass Sie alle erforderlichen Tools für Ihre Projekte haben.
Zurück zu YaST2 für libnumaBeschaffung von libnuma über YaST2
Nachdem diese beiden Abhängigkeiten vorhanden waren, wurde der Installationsprozess wiederholt, und dieses Mal lief er fehlerfrei bis zum Abschluss durch. Es waren also zwei Betriebssystem-Abhängigkeiten erforderlich, aber ansonsten funktioniert hana express jetzt im Grunde “out of the box” auf WSL2.
Erfolgreiche HANA Express InstallationErfolgreiche Installation von SAP HANA Express Edition
Zurück im Windows Host-Betriebssystem konnte SAP HANA nun über localhost erreicht werden, als wäre es eine native Windows-Anwendung. Keine spezielle Netzwerkkonfiguration oder Einrichtung war notwendig. Es funktionierte einfach. Wenn Sie nur die SAP HANA-Datenbank ohne XSA verwenden möchten, wäre es wahrscheinlich ratsam, die Installation mit dem Hostnamen localhost durchzuführen und die automatische Portweiterleitung ihre Arbeit tun zu lassen. Mit diesem ersten Erfolg war der Weg geebnet, den HANA-Installer zu verwenden, um XSA ebenfalls zum System hinzuzufügen. Die ursprüngliche Idee war, nur eine leichte DB-only-Installation durchzuführen. Angesichts der guten Performance und des einfachen Installationsprozesses wurde jedoch beschlossen, die volle XSA-Installation ebenfalls vorzunehmen. Falls Sie noch ältere Versionen von Office-Produkten im Einsatz haben, können Sie beispielsweise auch PowerPoint 16.10 nutzen, um mit älteren Dokumenten kompatibel zu bleiben.
Zugriff vom Host-Betriebssystem über localhostDirekter Zugriff auf HANA über localhost vom Host-Betriebssystem
Hinzufügen von SAP HANA XS Advanced (XSA) und Lösung von Portkonflikten
Und alles funktionierte hervorragend. Das Hinzufügen von XSA verlief fehlerfrei. Es war möglich, einen Webbrowser in Windows zu starten, localhost zu verwenden und nun auch auf XSA-Anwendungen zuzugreifen.
Hinzufügen von XS Advanced zum SystemDie Erweiterung des Systems um SAP HANA XS Advanced
Der XSA Controller ist erreichbarErfolgreicher Zugriff auf den XSA Controller
Doch dann wurden weitere XSA-Anwendungen installiert – Cockpit, Web IDE usw. Und hier stieß der Autor auf das erste wirklich ernste Problem. Die Ports im Bereich 51XXX funktionierten nicht. Es stellte sich heraus, dass dies einfach an einigen bereits im Host-Betriebssystem laufenden Windows-Diensten lag, die dieselben Ports verwendeten. Die Portweiterleitung funktioniert nur für Ports, die nicht bereits auf Host-Betriebssystemebene gebunden sind.
Portkonflikte mit anderen AnwendungsportsFehlermeldungen aufgrund von Portkonflikten mit Host-Diensten
Dies ist tatsächlich sehr sinnvoll und notwendig, um Konflikte mit dem Host-Betriebssystem zu vermeiden. Es stellte sich jedoch heraus, dass jeder Linux-Container natürlich seine eigene eindeutige IP-Adresse zugewiesen bekommt. Es ist nicht zwingend erforderlich, die Portweiterleitung über localhost zu nutzen, sondern man kann direkt auf den Linux-Container zugreifen. Diese Technik wurde angewendet und die IP-Adresse der openSUSE-Containerinstanz nachgeschlagen. Anschließend wurde die hosts-Datei in der Windows-Host-Betriebssystemversion (c:windowssystem32driversetchosts) konfiguriert. WSL handhabt dies außerordentlich gut, indem es alle Änderungen an der Windows-Netzwerkkonfiguration in alle Linux-Container pusht. So ist keine doppelte Wartung erforderlich. Ein Alias namens hxehost (ähnlich wie bei der Verwendung von hana express in einer VM) wurde in der Windows hosts-Datei eingerichtet, und beide Linux-Distributionen erhielten dieselbe Konfiguration. Um zukünftige Kompatibilitätsprobleme zu vermeiden, könnte man auch erwägen, Microsoft Office 2021 Home & Student zu erwerben, um eine aktuelle und stabile Arbeitsumgebung zu gewährleisten.
Hostname-Alias für die IP-Adresse der Linux-Distribution erstellenEinrichtung eines Hostname-Alias zur direkten Adressierung des Linux-Containers
Der schmerzhafteste Teil hierbei war, dass deinstalliert und dann eine vollständige Neuinstallation durchgeführt wurde, wobei der Alias hxehost direkt zu Beginn des Prozesses angegeben wurde, als der Installer nach dem lokalen Hostnamen fragte. Mit dieser einen kleinen Änderung funktionierte alles viel besser. Nun konnten alle XSA-Anwendungen im Webbrowser aufgerufen werden, und der Zugriff auf hana express war auch von der anderen Ubuntu-Distribution aus möglich.
Volles HANA XSA-Erlebnis funktioniert jetzt einwandfreiDas voll funktionsfähige SAP HANA XSA-Erlebnis auf WSL2
Fazit
Diese neue Einrichtung wird nun seit einigen Tagen genutzt, und die Performance ist im Vergleich zur früheren Konfiguration mit Hyper-V äußerst zufriedenstellend. Die Integration mit dem Windows Explorer ist besonders angenehm. Insgesamt ist die Vereinfachung der Einrichtung (insbesondere auf der Netzwerkseite, selbst mit dem geringen Aufwand, der für den Alias hxehost erforderlich war) viel einfacher als bei vollständigen Hyper-V-VMs. Ein weiterer großer Pluspunkt ist die Interaktion zwischen mehreren Containern und dem Host-Betriebssystem.
Wenn Sie also eine Windows-Version nutzen, die Zugriff auf WSL2 bietet, wird dringend empfohlen, es auszuprobieren, um Ihre eigene hana express-Umgebung zu erstellen. Es ist eine großartige, voll ausgestattete Linux-Erfahrung, die Entwicklern und IT-Experten eine flexible und leistungsstarke Plattform für ihre Arbeit bietet. Zögern Sie nicht, diese Möglichkeiten zu erkunden und Ihre Produktivität zu maximieren!
Quellen
- https://docs.microsoft.com/de-de/windows/wsl/about
- https://docs.microsoft.com/de-de/windows/wsl/compare-versions
- https://docs.microsoft.com/de-de/windows/wsl/install-win10
- https://devblogs.microsoft.com/commandline/wsl-2-support-is-coming-to-windows-10-versions-1903-and-1909/
- https://developers.sap.com/group.hxe-install-binary.html
- https://developers.sap.com/tutorials/hxe-ua-installing-binary.html
- https://www.microsoft.com/en-us/p/opensuse-leap-152/9mzd0n9z4m4h
- https://gcc.gnu.org/
- https://www.kernel.org/doc/html/v4.18/vm/numa.html
