Con el comando ViewDbChk, puede resolver inconsistencias en las bases de datos que almacenan información sobre máquinas virtuales de escritorio en un grupo de escritorios automatizado y en hosts RDS de una granja automatizada.

En un entorno de Horizon 7, la información sobre máquinas virtuales de escritorio y sobre los hosts RDS de una granja automatizada se almacena en las siguientes ubicaciones:

  • La base de datos LDAP
  • La base de datos vCenter Server
  • Solo para las máquinas de clones vinculados de View Composer: la base de datos de View Composer

Normalmente, puede recuperarse de un error que ocurra durante el aprovisionamiento u otras operaciones si elimina o reinicia una máquina virtual de escritorio o un host RDS mediante Horizon Administrator. En raras ocasiones, es posible que la información de distintas bases de datos sobre una máquina que esté en estado de error sea incoherente y no se pueda recuperar del error usando Horizon Administrator. Es posible que perciba uno de los siguientes síntomas:

  • El aprovisionamiento falla y muestra un mensaje de error que indica que la máquina virtual con especificación de entrada ya existe.
  • La recomposición de un grupo de escritorios falla y muestra un mensaje de error que indica un fallo en Desktop Composer y que la máquina virtual con especificación de entrada ya existe.
  • Horizon Administrator muestra que una máquina de escritorio o un host RDS está bloqueado en estado de eliminación.
  • No puede eliminar un grupo de escritorios o una granja automatizada.
  • No puede eliminar una máquina de escritorio o un host RDS.
  • En la pestaña Inventario de Horizon Administrator, falta el estado de un host RDS o de una máquina de escritorio.

Use el comando ViewDbChk para resolver las inconsistencias en la base de datos en situaciones en las cuales estas provoquen que una máquina de escritorio o un host RDS entre en un estado de error irrecuperable o eviten que una tarea de Horizon Administrator se complete correctamente. El comando ViewDbChk tiene las siguientes características:

  • ViewDbChk se instala automáticamente cuando instala el servidor estándar de Horizon o el servidor de réplica de Horizon. La utilidad no se instala al instalar el servidor de seguridad de Horizon.
  • ViewDbChk es un comando que puede ejecutar desde el símbolo de sistema de Windows o desde un script.
  • ViewDbChk admite granjas automatizadas y grupos de escritorios automatizados de máquinas virtuales completas, así como con clones vinculados de View Composer.
  • Cuando quiera eliminar una máquina, ViewDbChk realizará una comprobación de estado en la máquina y le pedirá que confirme también si aparentemente la máquina está correcta.
  • ViewDbChk puede eliminar entradas de LDAP erróneas o incompletas.
  • ViewDbChk admite entrada y salida mediante conjuntos de caracteres I18N.
  • ViewDbChk no elimina datos de usuario. Para una máquina virtual de escritorio completa, ViewDbChk elimina la máquina virtual del inventario pero no la elimina del disco. En una máquina virtual de escritorio de clones vinculados, ViewDbChk elimina la máquina virtual y archiva los discos de usuario en la carpeta raíz en el caso de los almacenes de datos VMFS, o bien en una subcarpeta llamada archiveUDD en el caso de los almacenes de datos vSAN y Virtual Volumes.
  • ViewDbChk no admite hosts RDS ni máquinas de escritorio sin administrar en una granja manual.

Sintaxis de ViewDbChk

ViewDbChk --findDesktop --desktopName <desktop pool or farm name> [--verbose]

ViewDbChk --enableDesktop --desktopName <desktop pool or farm name> [--verbose]

ViewDbChk --disableDesktop --desktopName <desktop pool or farm name> [--verbose]

ViewDbChk --findMachine --desktopName <desktop pool or farm name> --machineName <machine name> [--verbose]

ViewDbChk --removeMachine --machineName <machine name> [--desktopName <desktop pool or farm name>] [--force] [--noErrorCheck] [--verbose]

ViewDbChk --scanMachines [--desktopName <desktop pool or farm name>] [--limit <maximum deletes>] [--force] [--verbose]

ViewDbChk --help [--commandName] [--verbose]

Parámetros de ViewDbChk

Parámetro Descripción
--findDesktop Encuentra un grupo de escritorios o una granja.
--enableDesktop Habilita un grupo de escritorios o una granja.
--disableDesktop Deshabilita un grupo de escritorios o una granja.
--findMachine Encuentra una máquina.
--removeMachine Elimina una máquina del grupo de escritorios o de la granja. Antes de eliminar una máquina, ViewDbChk pide al usuario que deshabilite el grupo de escritorios o la granja. Después de eliminar la máquina, ViewDbChk pide al usuario que vuelva a habilitar la granja o el grupo de escritorios.
--scanMachines Busca máquinas que estén en estado de error o de error de clonación o a las que les falten máquinas virtuales, muestra las máquinas con problemas agrupadas por granja o grupo de escritorios y ofrece la posibilidad de eliminar las máquinas. Antes de eliminar una máquina, ViewDbChk pide al usuario que deshabilite el grupo de escritorios o la granja. Después de eliminar todas las máquinas con errores de un grupo de escritorios o de una granja, ViewDbChk pide al usuario que rehabilite el grupo de escritorios o la granja.
--help Muestra la sintaxis de ViewDbChk.
--desktopName <desktop name> Especifica el nombre del grupo de escritorios o de la granja.
--machineName <machine name> Especifica el nombre de la máquina.
--limit <maximum deletes> Limita el número de máquinas que ViewDbChk puede eliminar. El valor predeterminado es 1.
--force Fuerza la eliminación de la máquina sin confirmación del usuario.
--noErrorCheck Fuerza la eliminación de las máquinas que no tengan errores.
--verbose Habilita el registro detallado.
Nota: Todos los nombres de los parámetros distinguen entre mayúsculas y minúsculas.

Ejemplo de uso de ViewDbChk

Una máquina de escritorio llamada lc-pool2-2 está en estado de error y no se puede eliminar mediante Horizon Administrator. Use ViewDbChk para eliminarla del entorno de Horizon 7.

C:\Program Files\VMware\VMware View\Server\tools\bin\viewdbchk.cmd --removeMachine --machineName lc-pool2-2 
Looking for desktop pool "lc-pool2" in LDAP...
   Desktop Pool Name: lc-pool2
   Desktop Pool Type: AUTO_LC_TYPE
   VM Folder: /vdi/vm/lc-pool2/
   Desktop Pool Disabled: false
   Desktop Pool Provisioning Enabled: true
Looking for machine "/vdi/vm/lc-pool2/lc-pool2-2" in vCenter...
   Connecting to vCenter "https://10.133.17.3:443/sdk". This may take some time...
Checking connectivity...
   Connecting to View Composer "https://10.133.17.3:18443". This may take some time...
The desktop pool "lc-pool2" must be disabled before proceeding. Do you want to disable the desktop pool? (yes/no):yes
Found machine "lc-pool2-2"
   VM Name: lc-pool2-2
   Creation Date: 1/25/15 1:20:26 PM PST
   MOID: vm-236
   Clone Id: b12a9ed2-8535-44ee-a9d6-6c9b5cf6f878
   VM Folder: /vdi/vm/lc-pool2/lc-pool2-2
   VM State: ERROR
Do you want to remove the desktop machine "lc-pool2-2"? (yes/no):yes
Shutting down VM "/vdi/vm/lc-pool2/lc-pool2-2"...
Archiving persistent disks...
Destroying View Composer clone "b12a9ed2-8535-44ee-a9d6-6c9b5cf6f878"...
Removing ThinApp entitlements for machine "/vdi/vm/lc-pool2/lc-pool2-2"...
Removing machine "/vdi/vm/lc-pool2/lc-pool2-2" from LDAP...
Running delete VM scripts for machine "/vdi/vm/lc-pool2/lc-pool2-2"...
Do you want to enable the desktop pool "lc-pool2"? (yes/no):yes