VMWare y GPO: Defrag Windows

En sistemas operativos Windows, a partir de Windows Vista y Windows Server 2008 podemos encontramos con que el defragmentador se ejecuta de forma programada de forma predeterminada.

Ubicación tarea programada:


Podemos ver si existe la tarea programada de la siguiente forma:

%windir%\system32\taskschd.msc

Ubicación:

Programador de tareas > Biblioteca del programador de tareas > Microsoft > Windows > Defrag

Nombre de la tarea: ScheduledDefrag

Defrag de Windows en una VM:


Disponemos de información detallada en este enlace:


Como podemos ver, el uso del defragmentador de Windows en una VM, tiene las siguientes consecuencias:

1) Provisionado de discos thin: El defrag puede engordarlos.
2) Linked Clone VMs: Entornos VDI, los ficheros asociados a las diferencias, se engordan durante la ejecución del defrag.
3) VMs Replicadas: Se produce tráfico entre las VMs debido a los cambios de bloques durante la ejecución del defrag.
4) Snapshots de VMs: Los ficheros asociados a las diferencias, se engordan durante la ejecución del defrag.
5) CBT (Change Block Tracking): Utilizado por los sistemas de backup a nivel de hipervisor, mayor número de bloques que han cambiado, mayor tiempo de ejecución en las tareas de backup.
6) Storage vMotion: Utiliza CBT.
7) Generación de I/O de disco durante el proceso de defrag.

Más información acerca del CBT en entornos VMWare VSphere y backup:


En VMs que no tienen snapshots, no están replicadas, utilizan provisionado de disco thick, etc, podríamos ejecutar el defrag de Windows sin consecuencias exceptuando el CBT.

GPO para deshabilitar/habilitar la tarea programada de defrag en VMs Windows:


Podemos controlar en que VMs Windows se ejecuta la tarea programada por defecto de defrag con una GPO.

Para deshabilitar la tarea programada de defrag en VMs Windows, basta con ejecutar sobre las mismas:

schtasks /change /tn "microsoft\windows\defrag\ScheduledDefrag" /disable

Podemos automatizar su ejecución con una GPO de máquina:

Situamos los equipos donde queremos aplicar la GPO en una OU.

Creamos y vinculamos en la OU una GPO de equipo que ejecute un script al iniciar el equipo:

Configuración de equipo > Directivas > Configuración de Windows > Scripts (inicio o apagado) > Inicio

Edición de la GPO

El script contendrá (deshabilita la tarea programada):

schtasks /change /tn "microsoft\windows\defrag\ScheduledDefrag" /disable

Podemos verificar su ejecución en el programador de tareas (taskschd.msc) de Windows sobre un equipo situado en la OU donde se ha aplicado la directiva:

Vista tareas programadas (defrag)

También es posible deshabilitar la tarea programada utilizando PowerShell de la siguiente forma:

Get-ScheduledTask ScheduledDefrag | Disable-ScheduledTask
 

No hay comentarios:

Publicar un comentario