Der Server

Anfang 2018 haben wir uns einen neuen Server zusammengebaut. Diesmal keine mini-Version eines enterprise Produktes, sondern mit consumer-hardware.
Diese Entscheidung beruht darauf, dass wir bei unserem alten Server die meisten der enterprise Features am Ende eh nicht mehr nutzen konnten, da diese nachträglich mit einem jährlichen Abo lizensiert wurden.

Die neue Hardware:

Backups

Da durch die Neuanschaffung der alte Server von HP überflüssig wurde, haben wir uns entschieden, diesen als Server für nightly backups einzurichten:

Dafür fährt der neue Asus jede Nacht den HP über ein management-interface hoch. Dann startet der Asus per rsync ein inkrementelles backup, das die spezifizierten Datein und Ordner, wie z.B. Nextcloud, auf den HP synced. Der Asus weiss dabei nicht, in welches Verzeichnis er auf dem HP schreibt. Um Kollisionen oder Überschreiben zu verhindern, generiert der Asus für jedes Backup (also im Normalfall jede Nacht ein Mal) einen zuälligen identifier, der mit jeder Dateiübertragung an den backup-server geschickt wird, sodass dieser alle Übertragungen mit dem selben identifier in das selbe Verzeichnis chrooten kann. Somit wird ausgeschlossen, dass unabsichtlich zwei Backup-Vorgänge in das gleiche remote Verzeichnis schreiben können.
Wichtig war dabei vor allem, dass der Asus selbst den Backup-Code ausführt, da für das Backup einige Dinge auf dem Asus mit root Rechten erledigt werden müssen: Gitlab hat eine eigene Routine, um ein backup zu dumpen, Datenbanken müssen gedumped werden, manche Server müssen heruntergefahren werden, bevor ein sicheres Backup der Files erstellt werden kann.

Management Interfaces auf Consumer Hardware?

Bei der Anschaffung habe ich versucht, den Wust von Informationen über Intels vPro zu durchdringen, da ich des öfteren gelesen habe, dass Intel in vPro fähigen mainboards eine recht mächtige remote management Platform namens Intel AMT verbaut. Diese ist ohne CPU auf dem mainboard lauffähig und kann den powerstate des PCs ändern. Sie befindet sich also in einem tiefen negativen Ring und hat daher Zugriff auf mehr oder weniger alles: Es wäre ein sharing des Netzwerkpors mit dem host OS möglich, ein streamen des VGA-outputs über das Netzwerk, das mounten von Bootmedien über das Netzwerk...
Berichten zufolge wurde diese Platform vor mehreren Jahren in Kooperation mit amerikanischen Geheimdiensten entwickelt und die Jahre danach vergleichsweise offensiv von Intel vermarktet. Später habe ich aber festgestellt, dass AMT nur noch für Intels enterprise Produkte verfügbar ist, obwohl davon auszugehen ist, dass der AMT code auch weiterhin in den BIOS/UEFIs von Intel vorhanden ist (siehe Projekte, die sich mit dem Entfernen von unnötigem Intel-code von Mainboards beschäftigen). Im Jahr 2017 wurde übrigens ein Remote Elevation of Privilege bug in AMT gefunden (CVE-2017-5689, SA-00075).
Da AMT nicht öffentlich dokumentiert ist, hätte es für mich keinerlei Mehrwert, falls es denn nun auf dem mainboard vorhanden ist.

Intel i5-7600T CPU

Bei der Wahl der CPU hatten wir v.a. neben der T version (TDP: 35W) auch noch den i5-7600K (TDP: 91W) der gleichen Generation im Hinterkopf. Die Versprechen bzgl der Energiespaarfeatures haben uns dann zum Kauf der T version verleitet. War diese Entscheidung Rückblickend gut?

Zusammenfassend lässt sich sagen: der i5-T und der i5-K sind exakt die gleiche CPU. Der einzige Unterschied sind die Taktungsmodi: Der K lässt sich manuell takten, der U versucht sch selbst möglichst energiespaarend zu takten. Das heisst aber tatsächlich nicht, dass er sich unter Last anders verhält als der i5-K. Unter Last verbrauchen beide CPUs recht genau gleich viel: Im Peak habe ich beim i5-U sogar bis zu 90W messen können (bei angemessener Kühlung). Der i5-T ist also keineswegs architektonisch effizienter als der i5-K - er drosselt lediglich die Taktung automatisch bis auf 800MHz herunter, um im IDLE die angegebenen 35W TDP zu erreichen.

i5-7600T power consumption benchmark Ergebnisse

Gemessen wurde der Stromverbrauch des Netzteils mit einem billigen Messgerät mit einem minimalen setup.
IDLE: 34W bei 800MHz
syntetischer Stresstest: 75W bei 3.5GHz
apache: 36893 requests/sec bei 67W
php-singlecore-benchmark: 48W
passmark on windows: 60W bei multicore, 50W im singlecore