Manhã do administrador: adicione espaço em dezenas de servidores para café

Todos os dias tenho que adicionar espaço em um, dois, três, cinco e às vezes dez servidores de banco de dados. Porque Porque eles são caracterizados por um crescimento natural de bases. Existem centenas de servidores, todos eles são máquinas virtuais com discos em thin provisioning. Se eles receberem muito espaço com antecedência, certamente haverá algum tipo de "fuga", como uma atualização com excesso de tabelas, que devorará todo esse lugar e, se não o fizer, irá mordiscar. Como você sabe, o provisionamento thin é uma via de mão única, se o local for devorado, mas não poderá ser devolvido.

Como resultado, a maioria dos servidores fica em algum lugar próximo à borda do espaço de 90% usado - precisamente porque um alerta é acionado na borda de 90%. Assim que eu ceder um pouco, apenas um pouco de espaço - o servidor vai para a região de 80% a 85% usada e, após um mês, outro local precisa ser adicionado novamente. E, no entanto, não darei muito de uma só vez - há muitos precedentes com fugitivos.

Fiz o trabalho mecânico de expandir o espaço em disco com tanta frequência que me cansei e decidi automatizá-lo com Jenkins:



Peço desculpas pela descrição um tanto tediosa e detalhada abaixo, mas, se puder ser útil a alguém, são os pequenos detalhes que são importantes - é neles que você sempre passa mais tempo. Se os detalhes não forem importantes, role imediatamente para a última foto.

É claro que, antes de adicionar um local, observo o espaço usado% de histórico de crescimento, anexado automaticamente ao alerta pelo meu sistema de monitoramento secreto . Na maioria das vezes, crescimento natural:



E aqui é melhor entender primeiro:



Voltando ao Jenkins, que é apenas uma interface para o script do Powershell. Temos muitos VMware Vcenters, portanto, um procedimento SQL especial usando o nome do servidor determina onde o servidor está localizado e se conecta a ele:



Agora lemos o tamanho do disco, adicionamos o delta e definimos um novo valor.



É verdade que aproveito descaradamente o fato de que todos os servidores que temos são projetados de maneira semelhante, por exemplo, D: sempre Disco rígido 2. Se você não o fizer, precisará sofrer.

Agora, o disco foi expandido em termos de VMware, mas não em termos de convidado (Windows). Nós devemos usar o espaço alocado. Para fazer isso, execute os comandos DISKPART dentro do convidado.



Nós descaradamente colocamos o arquivo BAT e IN na raiz do D: e usamos o WMIC para forçar a máquina a executar esses comandos. O arquivo doresizeX.bat (X é o nome da unidade) contém apenas
diskpart <d: \ doresizeX.in> d: \ doresize.out

E doresizeX.in contém:
redigitalizar
selecione o volume X
estender
sair

Agora tudo está pronto, basta aguardar um pouco (o comando é assíncrono!) E ler o resultado, filtrando o desnecessário:



E estamos aguardando uma carta de Jenkins:

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


All Articles