Ich bin an die Grenzen meiner Storagelösung gestoßen - es musste mehr Platz her...
Die Storagelösung bestand aus einem dedizierten Gehäuse mit 4 hot-swappable 3,5-Zoll Festplatteneinschüben. Darin war ein Mikro-ATX-Board versteckt, das ich mit einem relativen Standard-Linux betreibe. Die Platten hatte ich mittels Software-Raid zu einem Raid5 zusammengefasst und auf diesem daraus resultierenden Device ein LVM-Setup erstellt. Zugriff erfolgt meist per sshfs, seltener mittels Samba (CIFS). Weitere Interfaces sind nicht aktiviert.
Nachdem ich an die Grenzen der Speicherkapazität stieß, überlegte ich, wie ich diese erweitern könnte. Es wäre möglich gewesen, größere Platten einzubauen, aber da dies bedeutet hätte, alle vier Platten tauschen zu müssen und damit die Überwindung eines nicht unerheblichen Anschaffungswiderstandes einhergegangen wäre - nicht zu reden von der Tatsache, dass ich nur ungern funktionierende Hardware entsorge - erschien diese Option nicht als erste Wahl. Zweite Option war die Konfiguration und der Bau eines komplett neuen Rechners. Diese Option erwog ich vor allem in der Zeit der RMA bei Crucial - wäre es mit dem Umtausch nichts geworden, hätte ich schweren Herzens meinen Dockerserver beerdigt und einen Server für Docker- als auch Storagezwecke geschaffen.
Die Ersatzspeichermodule kamen aber nach über 2 Monaten doch noch an und so entschied ich mich dafür, ein geräumiges Gehäuse für mindestens 6 Platten und ein neues Netzteil anzuschaffen. Da ich die Speicherkapazität erhähen wollte kam dazu noch eine neue Platte und - da das Mainboard extra für das damalige NAS angeschafft wurde, enthielt es nur Konnektoren für 4 Platten - eine Interfacekarte mit weiteren Sata-Anschlüssen, die der einzige PCIe-Slot des Mainboards aufnehmen konnte. So bin ich immer noch flexibel genug, später auf ein schnelleres Mainboard umzusteigen, habe aber auch mein unmittelbares Ziel erreicht.
Nachdem die Hardware endlich vollständig eingetroffen war, konnte es an den Umbau gehen. Der eigentliche Vorgang der Verpflanzung der alten Komponenten in das neue Gehäuse war erfreulich unkompliziert. Nun ging es an das Hinzufügen der neuen Platte.
Nach dem Hinzufügen ist die Platte zunächst einmal als "Spare" gekennzeichnet. Man muss sie noch aktivieren, was ein reshape des Raid-Verbunds auslöst. Wer das schon einmal versucht hat, wird wissen, dass das einen deutlich messbaren Zeitraum lang dauert - bei mir waren es tatsächlich deutlich über 24 Stunden.
Es existieren im Internet natürlich viele Tipps, wie man diesen Prozess beschleunigen kann. Allerdings sollte man beachten, dass man den Wert dev.raid.speed_limit_min nicht zu hoch einstellt - damit kann man dafür sorgen, dass der Rechner nur noch mit dem Raid beschäftigt ist und man es nicht mehr nutzen kann. Wer also so wie ich nebenher ein paar Filme ansehen möchte, die auf dem Raid gespeichert sind, sollte diesen Wert nicht zu hoch einstellen. Bei mir war das Raid nicht mehr benutzbar, wenn ich hier 50000 angab. Bei einem Wert von 10000 hingegen konnte ich ganz normal damit arbeiten - wenn auch nicht bei voller Geschwindigkeit. Wichtig ist hier der Wert dev.raid.speed_limit_max - den nämlich versucht das System immer dann zu erreichen, wenn keine andere IO-Last mit höherer Priorität da ist.
Danach kann man - in meinem Fall - die neue Speicherkapazität auf die vorhandenen logical volumes verteilen oder neue anlegen - ganz nach Bedarf. In der Zwischenzeit hatte ich Gelegenheit, die Telegraf-Konfiguration entsprechend abzuändern, sodass das Monitoring in Grafana auch mit der neuen Platte funktionierte.
Dadurch stellte ich auch ein sehr seltsames Phänomen fest: nämlich, dass meine Platten nicht mehr in den Standby-Modus gingen, nachdem die neue Platte integriert war. Der Grund dafür war ein spezieller Modus für EXT4-Dateisysteme, die nicht mehr alle INodes sofort allozieren, sondern dies während des laufenden Betriebs nach und nach tun. Dadurch wird ständig in kurzen Abständen auf die Platten geschrieben, die dadurch natürlich nicht in Standby-Modus gehen können... Ich fand die Lösung dafür natürlich auch im Internet!
Multi-User-WebDAV, Docker, GitHub
17.11.2019
Nachdem ich mich in letzter Zeit verstärkt mit Docker und dem zugehörigen Ökosystem beschäftige, habe ich begonnen, verschiedenste Dienste in Containern zu testen um zu sehen, ob in manchen Fällen LXC oder KVM nicht doch die bessere Wahl wäre...
Weiterlesen...Android Basteln C und C++ Chaos Datenbanken Docker dWb+ ESP Wifi Garten Geo Go GUI Gui Hardware Java Jupyter Komponenten Links Linux Markdown Markup Music Numerik OpenSource PKI-X.509-CA Python QBrowser Rants Raspi Revisited Security Software-Test sQLshell TeleGrafana Verschiedenes Video Virtualisierung Windows Upcoming...
In eigener Sache...
Weiterlesen...Ich habe eine neue Java Swing Komponente erstellt: Es handelt sich um einen Wrapper für von JToolBar abgeleitete Klassen, die die Werkzeugleiste minimieren und sie nur dann einblenden, wenn der Mauszeiger über ihnen schwebt.
Weiterlesen...Ich habe bereits in einem früheren Artikel über meine ersten Erfolge berichtet, der sQLshell auf Basis des bestehenden Codes aus dem Projekt EBMap4D eine bessere Integration für Geo-Daten zu spendieren und entsprechende Abfragen, bzw. deren Ergebnisse auf einer Kartenansicht zu visualisieren.
Weiterlesen...Manche nennen es Blog, manche Web-Seite - ich schreibe hier hin und wieder über meine Erlebnisse, Rückschläge und Erleuchtungen bei meinen Hobbies.
Wer daran teilhaben und eventuell sogar davon profitieren möchte, muss damit leben, daß ich hin und wieder kleine Ausflüge in Bereiche mache, die nichts mit IT, Administration oder Softwareentwicklung zu tun haben.
Ich wünsche allen Lesern viel Spaß und hin und wieder einen kleinen AHA!-Effekt...
PS: Meine öffentlichen Codeberg-Repositories findet man hier.