VMware

Realizar vacuum y purgar tablas de base de datos vPostgres en VCSA 6.x

Esta semana estuve frente al mismo problema en dos ambientes vSphere diferentes: falta de espacio en disco para la partición storage/seat la cual es exclusiva para la base de datos vPostgres de vCenter que almacena datos, tareas, estadísticas y eventos de vCenter.

Si esta partición llega a llenarse se tendrían problemas de inestabilidad al acceder a vCenter; en mi caso el problema fue que los objetos de inventario no se cargaban de manera correcta al ingresar al cliente web, y en otras ocasiones se mostraban los objetos de inventario; pero no se podían realizar acciones sobre ellos.

En circunstancias normales donde la base de datos no presenta problemas de corrupción, lo que debemos hacer es; reclamar espacio purgando las tablas de la base de datos con el proceso llamado “vacuum’.

¿Como reclamar espacio en /storage/db en vCenter  6.x?

Una de las mejores practicas antes modificar una base de datos de una maquina virtual en nuestro ambiente vSphere es realizar un snapshot; para así tener un punto de restauración en caso de que algo suceda y poder recuperar nuestro equipo.

Una vez que tengamos listo el snapshot vamos a proceder a purgar la base de datos vPostgres siguiendo los pasos a continuación:

        1. Abrir una sesión SSH al vCenter y habilitar el shell:

          Command> shell.set --enabled true
          Command> shell
          VCSA:~ #
        2. Verificar el espacio libre en la partición storage/db

          VCSA:~ # df -h | grep storage/db

          Detener el servicio de vCenter:

          VCSA:~ # service-control --stop vmware-vpxd
        3. Obtener la contraseña para la base de datos de vPostgres

          VCSA:~ #cat /etc/vmware-vpx/embedded_db.cfg | grep PASSWORD
        4. Entrar a la base de datos utilizando uno de los siguientes comandos:

          /opt/vmware/vpostgres/9.4/bin/psql -d VCDB postgres
          sudo /opt/vmware/vpostgres/9.4/bin/vacuumdb -a -e -v -f -U postgres > /tmp/vacuumdb.log

          Nota: 9.4 es la versión de vPostgres la cual puede variar según su ambiente.

        5. Purgar las tablas de la base de datos:

          VCDB=# TRUNCATE TABLE vpx_event CASCADE
          VCDB=# \q
          

          Nota:solo es necesario si se utiliza el primer comando mostrado en el paso 4.

        6. Verificar el nuevo espacio libre en la partición storage/db

          VCSA:~ # df -h | grep storage/db
        7. Iniciar el servicio vpxd nuevamente

          VCSA:~ # service-control –-start vpxd
          

Si luego de seguir los pasos mencionados la base de datos vPostgres sigue creciendo en circunstancias esperadas. Se deberá incrementar la capacidad del disco virtual de la maquina virtual de vCenter donde se encuentre la partición storage/seat y luego ejecutar el comando vpxd_servicecfg storage lvm autogrow, el cual va a extender automáticamente los volúmenes lógicos a los que se les haya aumentado su volumen físico.

Escribe tu comentario

Este sitio utiliza Akismet para disminuir el smap. Aprenda más de como sus comentarios son procesados.

Oscar Zuñiga

Oscar Zuñiga

Senior Virtualization Engineer. vExpert 2019 / VCP-DCV / JNCIP-SEC / CCNA R&S
Ingeniero Senior especialista en virtualización de Centros de Datos (SDDC) con 4 años de experiencia en IT. Apasionado por temas relacionados con virtualización y sistemas informáticos. Cuenta con el galardón VMware vExpert; además de certificaciones Cisco, Juniper, Linux y VMware
EnglishPortugueseSpanish