Virtualisierter Server – RAID-Controller Marvell 88SE9230 unter Debian live verwalten
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:
- automatische DNS-Einträge für IPv6-Adressen mit wechselndem Präfix
- Puppet-Module: Apache-VHosts mit SSL und Kerberos aus FreeIPA sichern
- Kerberos-basiertes Single-Sign-On (SSO) für SSH und Firefox
- Authentifizierung gegen FreeIPA für Proxmox, pfsense, Puppet und Postfix
- Domäne mit FreeIPA
- Puppet strukturieren mit Profilen, Environments, r10k und git
- Mail-Relay für die VMs mit Postfix und Sendgrid
- SSL überall mit Let’s Encrypt, verteilt durch Puppet
- Puppet Server aufsetzen
- pfsense-Firewall zur Einteilung des Netzwerks mit ipv4 und ipv6
- IPv6-Vorüberlegungen
- Hardware-Setup und Proxmox
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