Bonjour à tous!
Dans cet article, nous expliquerons comment nous avons automatisé la tâche d'extension de l'espace disque sur l'un de nos serveurs. Et qu'est-ce qui est difficile dans une tâche si simple que j'ai dû l'automatiser - demandez-vous? Rien si vous n'utilisez pas de montures fusionnées en cascade. Je sens qu'il y a plus de questions!? Eh bien, passons sous le chat.
Tout d'abord, je vais vous expliquer pourquoi nous utilisons un montage intégré en cascade.
Nous avons un système qui a besoin de stockage pour les petits fichiers (numérisation de documents, etc.). La taille moyenne d'un fichier est de 200 Ko à 1 mégaoctet, les données sont statiques, ne changent pas. Il contient des milliards de fichiers et leur nombre augmente chaque jour. Une fois, lorsque le volume était déjà supérieur à 6 To, nous avons réalisé que les problèmes allaient bientôt commencer, dont le moment de la sauvegarde et de la restauration. Ensuite, nous avons décidé de diviser les données en disques, et UnionFS a été appelé pour nous aider.
L'algorithme a été déterminé comme suit: les données sont écrites sur le disque pas plus de 2 To, à la fin, nous ajoutons un nouveau disque à la machine virtuelle, le marquons, l'ajoutons à UnionFS, transférons l'ancien à ReadOnly, supprimons-en une copie, écrivez sur bande, supprimez-le de la sauvegarde en ligne.
Comme vous l'avez déjà compris, cet algorithme est assez exigeant pour l'attention de l'administrateur - aucun mouvement maladroit et stockage n'est disponible. Par conséquent, nous avons décidé d'exclure complètement le facteur humain et nous sommes souvenus que nous avons ZABBIX, qui peut très bien gérer cela nous-mêmes si nous ajoutons un peu de PowerShell et de magie Bash à l'algorithme.
Maintenant, comment cela se fait.
Dans Zabbix, un déclencheur pour l'espace libre est configuré et un bouton pour le mode manuel est créé:

Lorsque le déclencheur est déclenché, une tâche se forme dans le sheduler serveur-robot sur lequel se trouvent tous nos scripts d'automatisation:
Powershell.exe "Enable-ScheduledTask \PROD_TASKS\Add_HDD_OS0226”
A l'heure fixée, un script est lancé sur le serveur qui:
Ajoute le disque à la VM souhaitée:
(en même temps il choisit le volume le plus libre) $vm = Get-VM -Name $vmName New-HardDisk -VM $vm -CapacityGB $newHDDCapacity -Datastore $datastoreName –ThinProvisioned
Recherche les détails d'accès au serveur:
OFFTopNous utilisons un référentiel personnalisé de détails d'accès basé sur TeamPass, de sorte que le script trouve le serveur souhaité dans le système et reçoit ses détails automatiquement. Cela se fait parce que chaque mois, nous changeons automatiquement tous les mots de passe, mais c'est le sujet d'un article séparé
#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))
Livré sur 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
Le marque et l'ajoute au montage UnionFS:
Malheureusement, au moment de la rédaction de ce document, nous n'avions pas résolu plusieurs problèmes liés à la création automatique de tâches dans VEEAM pour l'archivage de l'ancien disque et l'écriture sur bande, donc cela se fait toujours manuellement. Mais nous mettrons définitivement à jour le script dès que nous aurons résolu quelques problèmes.
Publié par Vitaliy
Rosman (
PBCVIT ).
Un morceau de code pour coller des tableaux a été honnêtement emprunté, des liens vers l'auteur ont été enregistrés dans le code.
Il n'y a aucune plainte contre UnionFS qui fonctionne de manière stable depuis plus de deux ans.
La question de savoir pourquoi le stockage est organisé en général est généralement rhétorique, il suffit de l'accepter tel quel.
Veuillez noter que différents types de mappage de lecteur doivent être utilisés pour différents systèmes. par conséquent, soyez prudent et la force vous accompagnera.