In diesem Beitrag erkläre ich, wie man die für die Verwaltung des RAID-Controllers Marvell 88SE9230 im HP Microserver 10. Generation notwendige Software installiert. Die Verwaltung ist auch über ein Tool möglich, das an Stelle des Betriebssystems per UEFI gebootet werden kann, besonders praktisch ist das zum Kontrollieren des RAID-Status aber nicht. HP stellt einen Client für RedHat-basierte Betriebssysteme bereit, allerdings keinen für Debian/Ubuntu. Die Konvertierung dieses Pakets und die weiteren Notwendigen Anpassungen werden hier beschrieben.

Weitere Beiträge aus dieser Reihe:

Download

HPE’s Website ist unglaublich kompliziert zu navigieren und das Verhalten der Links und Navigation macht die Sache wirklich nicht einfacher. Deswegen hier der Downloadlink zur Software, die installiert werden soll: Marvell Storage Utility (MSU) for HPE ProLiant MicroServer Gen10. Die ZIP-Datei enthält ein RPM-Paket.

Update 2020-03-10: Vielen Dank an Ulf für den Hinweis, dass es bei Lenovo die neuere Version 4.1.10 ohne so viel Download-Heckmeck wie bei HPE gibt: Download bei Lenovo.

Installation des Pakets

Um das Paket unter Debian installieren zu können, kann man alien verwenden, was aus dem RPM-Paket ein DEB-Paket macht. Das ist nicht immer erfolgreich und noch seltener empfehlenswert; im vorliegenden Fall habe ich es aber vorher analysiert und nachher getestet – es funktioniert, nach der Installation müssen allerdings noch einige Feineinstellungen manuell getätigt werden.

alien installieren:

sudo apt-get install alien fakeroot

Um das Paket zu übersetzen werden entweder Root-Rechte gebraucht oder man täuscht sie vor:

fakeroot alien MSU-4.1.0.2032-1.x86_64.rpm

Heraus kommt ein Debian-Paket, das zwar die zu installierenden Dateien enthält, nicht aber die ebenfalls im RPM-Paket enthaltenen Scripte, die nach der (De-)Installation laufen sollen. Die in diesen Scripten getätigten Einstellungen werden weiterer Inhalt dieses Beitrags sein; um sich die Original-Scripte anzusehen, kann man das Kommandozeilentool rpm verwenden: rpm -qlp --scripts MSU-4.1.0.2032-1.x86_64.rpm.

Abhängigkeiten

Nicht alle Anhängigkeiten des Pakets sind unter modernen Linux-Distributionen erfüllbar, schließlich ist das Paket für RHEL gemacht und das ist per Definition immer uralt. Neuere Versionen der Abhängigkeiten funktionieren aber problemlos trotzdem. Man muss vor der Installation allerdings vortäuschen, man habe die alten installiert. Dazu kann equivs verwendet werden: es erzeugt leere Pakete, die wählbare Namen und Versionsnummern haben und so die Anforderungen anderer Pakete erfüllen können.

sudo apt-get install equivs
cat <<EOF >> libssl1.0.0.ctl
Section: misc
Priority: optional
Standards-Version: 3.9.2

Package: libssl-1.0.0
Version: 1.0.1
Description: dummy package to install MSU
 Marvel Storage Utility requires old libssl version
 .
 This is just the fake package to satisfy that dependency
EOF
equivs-build libssl1.0.0.ctl

Installation

Zuerst die Abhängigkeiten, dann das Paket. Dann weiter zum nächsten Abschnitt.

sudo dpkg -i libssl-1.0.0_1.0.1_all.deb
sudo dpkg -i msu_4.1.0.2032-2_amd64.deb
sudo apt-get install -f  # um aus Paketquellen erfüllbare Abhängigkeiten aufzulösen

Nacharbeiten

Wie Eingangs schon erwähnt enthält das Paket msu nicht die RedHat-spezifischen Scripte, die nach der Installation sonst ausgeführt würden. Außerdem müssen einige Dateien noch an die richtigen Stellen für Debian bewegt werden. Diese Schritte werden jetzt manuell nachgeholt:

sudo cp /opt/marvell/storage/svc/MSUWebService /etc/init.d/
sudo cp /opt/marvell/storage/svc/MarvellStorageAgent /etc/init.d/
sudo systemctl daemon-reload
sudo install -D -m755 /lib64/libeventshare.so /usr/lib/libeventshare.so
sudo install -D -m755 /lib64/libmvraid.so /usr/lib/libmvraid.so
sudo modprobe sg
echo 'sg'|sudo tee -a /etc/modules
sudo systemctl enable --now MarvellStorageAgent

Die ersten beiden Optionen sind die Startscripte für den Webserver und den Storage Agent, dann werden sie systemd bekannt gemacht, zwei Bibliotheken werden an die für Debian passenden Stellen installiert und der Marvell Storage Agent wird beim Boot automatisch und jetzt gleich manuell gestartet.

In den Zeilen 6 und 7 wird darüber hinaus noch ein etwas älteres Kernel-Modul geladen und zum automatischen Laden vorgemerkt, da die Software von Marvell über dieses Interface kommuniziert. Ohne geht’s nicht.

Benutzung

Nun ist das Marvell Storage Utility installiert. Für Updates ist man vollständig selbst verantwortlich, automatisch geht das leider nicht. Relevant ist das vor allem, weil das Storage Utility mit einem eigenen Apache Webserver und PHP kommt, um eine Weboberfläche zur Konfiguration und Überwachung des RAIDs bereitzustellen. Nachdem diese aber ohnehin nur selten benötigt wird, kann man diese etwa auch nur bei Bedarf starten und danach wieder beenden.

Weboberfläche

Die einfachste Bedienung erlaubt die Weboberfläche, die erst noch gestartet werden muss:

sudo systemctl start MSUWebService

Die Weboberfläche ist dann im Browser erreichbar, unter der IP-Adresse des Servers auf einem eigenen Port: http://ip.des.servers.hier:8845. SSL ist bei der mitgelieferten Konfiguration allerdings wohl nur zum Spaß aktiviert, da man automatisch auf eine nicht-verschlüsselte Verbindung weitergeleitet wird. Man kann sich also sparen, für den Webserver auf Port 8443 eine Ausnahme für das selbst-signierte Zertifikat hinzuzufügen und direkt die Daten unverschlüsselt durch’s (interne) Netzwerk schicken.

Nach Benutzung der Webobrfläche sollte man sie wieder beenden:

sudo systemctl stop MSUWebService

Kommandozeile

Ebenfalls mitgeliefert und mit weniger Sicherheitsproblemen beschwert ist außerdem ein Kommandozeilentool, das die grundlegenden Funktionen ebenfalls bereitstellt:

sudo /opt/marvell/storage/cli/mvcli

Die Verwendung des Tools erklärt sich relativ detailliert unter Zuhilfenahme des Befehls help auf der sich startenden Shell. Mit help rebuild zum Beispiel erfährt man noch mehr Details über Befehle. Um die Kommandozeile wieder zu beenden genügt die Eingabe quit oder Strg+C