Admin-Morgen: Fügen Sie auf Dutzenden von Servern Platz für Kaffee hinzu

Jeden Tag muss ich Speicherplatz auf einem, zwei, drei, fünf und manchmal zehn Datenbankservern hinzufügen. Warum? Weil sie sich durch ein natürliches Basenwachstum auszeichnen. Es gibt Hunderte von Servern, alle sind virtuelle Maschinen mit Festplatten mit Thin Provisioning. Wenn ihnen im Voraus viel Platz eingeräumt wird, wird es sicherlich eine Art „Ausreißer“ geben, wie zum Beispiel ein Upgrade mit einem Überlauf an Tischen, das den gesamten Ort verschlingt, und wenn dies nicht der Fall ist, wird es knabbern. Wie Sie wissen, ist Thin Provisioning eine Einbahnstraße, wenn der Ort verschlungen ist, aber dann nicht zurückgegeben werden kann.

Infolgedessen hängen die meisten Server irgendwo in der Nähe der Grenze von 90% des genutzten Speicherplatzes ab - gerade weil eine Warnung an der Grenze von 90% ausgelöst wird. Sobald ich ein wenig, nur ein wenig Speicherplatz gebe - der Server geht in den Bereich von 80% -85% ausgelastet, und nach einem Monat muss wieder ein weiterer Platz hinzugefügt werden. Und trotzdem werde ich nicht viel auf einmal geben - es gibt zu viele Präzedenzfälle mit Ausreißern.

Ich habe die mechanische Arbeit zum Erweitern des Speicherplatzes so oft ausgeführt, dass ich es satt hatte und mich entschied, ihn mit Jenkins zu automatisieren:



Ich entschuldige mich für die etwas mühsame und detaillierte Beschreibung unten, aber wenn es für jemanden nützlich sein kann, dann sind es die kleinen Details, die wichtig sind - auf ihnen verbringen Sie immer die meiste Zeit. Wenn die Details nicht wichtig sind, scrollen Sie sofort zum letzten Bild.

Bevor ich einen Ort hinzufüge, schaue ich mir natürlich den verwendeten% Wachstumsverlauf an, der von meinem geheimen Überwachungssystem automatisch an die Warnung angehängt wird . Am häufigsten natürliches Wachstum:



Und hier ist es besser, zuerst zu verstehen:



Zurück zu Jenkins, das nur eine Schnittstelle zum Powershell-Skript ist. Wir haben viele VMware Vcenters, daher bestimmt eine spezielle SQL-Prozedur unter Verwendung des Servernamens, wo sich der Server befindet und stellt eine Verbindung zu ihm her:



Jetzt lesen wir die Festplattengröße, fügen das Delta hinzu und setzen einen neuen Wert.



Es stimmt, ich nutze dreist die Tatsache, dass alle Server, die wir haben, auf ähnliche Weise gegossen werden, zum Beispiel D: immer Festplatte 2. Wenn Sie dies nicht tun, müssen Sie leiden.

Jetzt wurde die Festplatte in Bezug auf VMware erweitert, jedoch nicht in Bezug auf Gast (Windows). Wir müssen den zugewiesenen Platz nutzen. Führen Sie dazu DISKPART-Befehle im Gast aus.



Wir stopfen die BAT- und IN-Datei dreist in das Stammverzeichnis von D: und verwenden WMIC, um die Maschine zu zwingen, diese Befehle auszuführen. Die Datei doresizeX.bat (X ist der Name des Laufwerks) enthält nur
diskpart <d: \ doresizeX.in> d: \ doresize.out

Und doresizeX.in enthält:
erneut scannen
Wählen Sie Volume X.
verlängern
Ausfahrt

Jetzt ist alles fertig, Sie müssen nur noch ein wenig warten (der Befehl ist asynchron!) Und das Ergebnis lesen und das Unnötige herausfiltern:



Und wir warten auf einen Brief von Jenkins:

Source: https://habr.com/ru/post/de434678/


All Articles