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 spam. Aprenda más de como sus comentarios son procesados.

Oscar Zuñiga

Oscar Zuñiga

Multi-Cloud Solutions Architect | Cloud Specialist | vExpert⭐⭐ | VCAP-DCV Deploy 2020 | Blogger | Trainer
8 years of experience in the IT area, working on virtualization projects and architecture of Cloud Data Centers. Extensive experience in designing Hybrid Cloud solutions in the principal hyperscalers to achieve innovation and improvements in current designs with the latest cloud technologies.Leadership in projects of high importance in the industry such as large companies and world-class suppliers.
EnglishPortugueseSpanish