Hallo allerseits!
In diesem Artikel werden wir darüber sprechen, wie wir die Aufgabe der Erweiterung des Speicherplatzes auf einem unserer Server automatisiert haben. Und was ist bei einer so einfachen Aufgabe so schwierig, dass ich sie automatisieren musste - fragen Sie? Nichts, wenn Sie keine kaskadierten, zusammengeführten Mounts verwenden. Ich habe das Gefühl, es gibt noch mehr Fragen !? Na dann, lass uns unter die Katze gehen.
Zunächst möchte ich Ihnen erklären, warum wir eine kaskadenintegrierte Montage verwenden.
Wir haben ein System, das Speicher für kleine Dateien (Dokumentenscans usw.) benötigt. Die durchschnittliche Dateigröße liegt zwischen 200 KB und 1 Megabyte, die Daten sind statisch und ändern sich nicht. Es sind Milliarden von Dateien darin und die Anzahl wächst von Tag zu Tag. Einmal, als das Volumen bereits mehr als 6 TB betrug, wurde uns klar, dass bald Probleme auftreten würden. Eines davon war die Zeit der Sicherung und Wiederherstellung. Dann beschlossen wir, die Daten in Festplatten aufzuteilen, und UnionFS wurde gerufen, um uns dabei zu helfen.
Der Algorithmus wurde wie folgt bestimmt: Die Daten werden nicht mehr als 2 TB auf die Festplatte geschrieben. Am Ende fügen wir der virtuellen Maschine eine neue Festplatte hinzu, markieren sie, fügen sie UnionFS hinzu, übertragen die alte auf ReadOnly, entfernen eine Kopie von ihr, schreiben auf Band und entfernen sie aus der Online-Sicherung.
Wie Sie bereits verstanden haben, stellt dieser Algorithmus hohe Anforderungen an den Administrator - unangenehme Bewegungen und Speicher sind nicht verfügbar. Aus diesem Grund haben wir uns entschlossen, den Faktor Mensch vollständig auszuschließen, und uns daran erinnert, dass wir ZABBIX haben, das dies sehr gut selbst handhaben kann, wenn wir dem Algorithmus ein wenig PowerShell- und Bash-Magie hinzufügen.
Nun dazu, wie das gemacht wird.
In Zabbix wird ein Trigger für freien Speicherplatz konfiguriert und eine Schaltfläche für den manuellen Modus erstellt:

Wenn der Trigger ausgelöst wird, wird im Server-Roboter-Sheduler eine Aufgabe gebildet, auf der sich alle unsere Automatisierungsskripte befinden:
Powershell.exe "Enable-ScheduledTask \PROD_TASKS\Add_HDD_OS0226”
Zum festgelegten Zeitpunkt wird auf dem Server ein Skript gestartet, das:
Fügt die Festplatte der gewünschten VM hinzu:
(Gleichzeitig wählt er das freieste Volumen) $vm = Get-VM -Name $vmName New-HardDisk -VM $vm -CapacityGB $newHDDCapacity -Datastore $datastoreName –ThinProvisioned
Sucht nach Serverzugriffsdetails:
OFFTopWir verwenden ein angepasstes Repository mit Zugriffsdetails basierend auf TeamPass, sodass das Skript den gewünschten Server im System findet und seine Details automatisch empfängt. Dies geschieht, weil wir jeden Monat automatisch alle Passwörter ändern. Dies ist jedoch das Thema eines separaten Artikels
#Generate TeamPass API request string $vmTPReq = " TeamPass" #Send request to TeamPass $vmCreds = Invoke-WebRequest($vmTPReq) -UseBasicParsing | ConvertFrom-Json #Convert credentials $credential = New-Object System.Management.Automation.PSCredential($vmCreds.login,(ConvertTo-SecureString $vmCreds.pw -asPlainText -Force))
Kommt auf SSH:
#Create partition & FS, mount disk to directory, edit fstab...etc. New-SSHSession -ComputerName $vmCreds.url -Credential $credential -Verbose -AcceptKey:$true $results = Invoke-SSHCommand -SessionId 0 -Command "/mnt/autodoit.sh" Remove-SSHSession -Index 0 -Verbose
Markiert es und fügt es dem UnionFS-Mount hinzu:
Leider haben wir zum Zeitpunkt dieses Schreibens einige Probleme im Zusammenhang mit der automatischen Erstellung von Aufgaben in VEEAM zum Archivieren der alten Festplatte und zum Schreiben auf Band nicht gelöst, sodass dies immer noch manuell erfolgt. Aber wir werden das Skript definitiv aktualisieren, sobald wir ein paar Probleme gelöst haben.
Gepostet von Vitaliy
Rosman (
PBCVIT ).
Ein Stück Code zum Kleben von Arrays wurde ehrlich ausgeliehen, Links zum Autor wurden im Code gespeichert.
Es gibt keine Beschwerden gegen UnionFS, es arbeitet seit mehr als zwei Jahren stabil.
Die Frage, warum die Speicherung im Allgemeinen organisiert ist, ist im Allgemeinen rhetorisch. Akzeptieren Sie sie einfach so, wie sie ist.
Bitte beachten Sie, dass für verschiedene Systeme unterschiedliche Arten der Laufwerkszuordnung verwendet werden müssen. Sei daher vorsichtig und Kraft wird mit dir kommen.