Todos los días tengo que agregar espacio en uno, dos, tres, cinco y, a veces, diez servidores de bases de datos. Por qué Porque se caracterizan por un crecimiento natural de bases. Hay cientos de servidores, todos ellos son máquinas virtuales con discos en aprovisionamiento delgado. Si se les da mucho espacio de antemano, entonces seguramente habrá algún tipo de "fugitivo", como una actualización con un desbordamiento de tablas, que devorará todo este lugar, y si no lo hace, mordisqueará. Como sabe, el aprovisionamiento delgado es unidireccional, si el lugar está engullido, pero no se puede devolver.
Como resultado, la mayoría de los servidores pasan el tiempo cerca del límite del 90% del espacio utilizado, precisamente porque se activa una alerta en el límite del 90%. Tan pronto como doy un poco, solo un poco de espacio: el servidor va a la región del 80% -85% utilizado, y después de un mes, se debe agregar nuevamente otro lugar. Y, sin embargo, no daré mucho de una vez: hay demasiados precedentes con los fugitivos.
Hice el trabajo mecánico de expandir el espacio en el disco con tanta frecuencia que me cansé y decidí automatizarlo con Jenkins:

Pido disculpas por la descripción un tanto tediosa y detallada a continuación, pero si puede ser útil para alguien, son los pequeños detalles los que son importantes: es en ellos que siempre pasas la mayor parte del tiempo. Si los detalles no son importantes, desplácese inmediatamente a la última imagen.
Por supuesto, antes de agregar un lugar, miro el espacio utilizado% historial de crecimiento, adjuntado automáticamente a la alerta por
mi sistema de monitoreo secreto . Muy a menudo, crecimiento natural:

Y aquí es mejor entender primero:

De vuelta a Jenkins, que es solo una interfaz para el script Powershell. Tenemos muchos VMware Vcenters, por lo que un procedimiento SQL especial que utiliza el nombre del servidor determina dónde se encuentra el servidor y se conecta a él:

Ahora leemos el tamaño del disco, agregamos el delta y establecemos un nuevo valor.

Es cierto, descaradamente aprovecho el hecho de que todos los servidores que tenemos se emiten de manera similar, por ejemplo, D: siempre el disco duro 2. Si no lo hace, tendrá que sufrir.
Ahora el disco se ha expandido en términos de VMware, pero no en términos de invitado (Windows). Debemos usar el espacio asignado. Para hacer esto, ejecute los comandos DISKPART dentro del invitado.

Rellenamos descaradamente el archivo BAT e IN en la raíz de D: y usamos WMIC para forzar a la máquina a ejecutar estos comandos. El archivo doresizeX.bat (X es el nombre de la unidad) contiene solo
diskpart <d: \ doresizeX.in> d: \ doresize.out
Y doresizeX.in contiene:
volver a escanear
seleccione volumen X
extender
salir
Ahora todo está listo, solo tiene que esperar un poco (¡el comando es asíncrono!) Y leer el resultado, filtrando lo innecesario:

Y estamos esperando una carta de Jenkins:
