En esta ocasión mostramos como utilizar y manejar la herramienta de Citrix XenServer DataBase Tool, una herramienta de línea de comandos, pensado para analizar XenServer a partir de la versión 4.x.

Esta utilidad de línea de comandos se ha desarrollado para analizar una versión 4.x (o superior) de XenServer a través del archivo de base de datos 5.x, objetos de lista de clase, sus datos, y su conexión, o los correspondientes objetos de clases dentro de las relaciones de clase se describe en el SDK de XenServer. Esta herramienta es utilizada para ayudar en temas de depuración, así como la manipulación de objetos de la clase.

Debido a que esta es una utilidad de línea de comandos, la ejecución está destinada a ser ejecutada en linea de comando y toda su salida es textual y es enviada a la salida estándard. La utilidad tiene dos ejecutables. Una para Windows y otra para Linux.

Descarga de la Herramienta:

Podeis descargar la herramienta indicada, del siguiente icono:

Utilizando DBTool

Existen dos maneras de utilizar dbtool. Desde un entorno Windows o desde el propio servidor XenServer. Sea como sea, deberemos descomprimir el fichero .ZIP en el entorno adecuado. Una vez descomprimido tendremos un ejecutable para proceder a utilizar la herramienta.

En windows: dbtool.exe
En Linux: dbtool

Entorno Windows

Para  poder utilizar dicha herramienta, nos es necesario disponer de acceso a la BD de XenServer, para ello, deberemos exportar el fichero .db para poder consultar el mismo desde nuestra herramienta CLI.

En Linux

Una vez extraida la herramienta dbtool en nuestro XenServer, podemos utilizar la misma para consultar en “solo lectura” la bd de XenServer.  // dar permisos de ejecución sobre la misma //.

XenServer Database

La base de datos de XenServer es llamada state.db y esta situada en /var/xapi/state.db. Esta la podemos copiar, mediante scp o realizando un cp en un recurso compartido, a nuestra máquina windows para analizar posteriormente o analizar de manera online en el propio servidor de XenServer.

Obtenida la BD, el uso de la herramienta, tanto en Linux como en Windows es el mismo

La sintaxys del comando es muy sencilla. Utilizando el comando sin ningún argumento podremos ver una lista de sus opciones:

syntax: dbtool [options] database_file

options: -a          dump all

-i          list ISOs and CDs

-l          list available objects

-o object   list by object

-t          list VM templates

-u uuid     list by uuid

-v          verbose

-ver        version

Veamos algunas de las opciones disponibles.

Con la opción “-l” podemos ver una lista de los Objetos disponibles para consulta. Con los mismos, y la opción “-o Object” podemos ver detalles por objeto.

C:\dbtool>dbtool -o VM E:ts_iso\state.db

database type: XML - XS 5.x

VM count: 62

VM 0 (template)

VM 1 (template)

...

VM 14 (template)

VM 15 (template)

VM 16

name__label:                 ctx-dc00

uuid:                        dc7e9b59-fd60-1161-d04b-63d6c90630ee

host resident:               ctx-host0

uuid:                      a424c046-c773-46e6-96ea-66e494de6c72

host affinity:               ctx-host0

uuid:                      a424c046-c773-46e6-96ea-66e494de6c72

VM metrics uuid:             849adc0e-b01c-c61c-3a9a-8045abcb8081

VBD device                   hda

uuid:                      cf65f831-683a-6581-8e0e-ede2b85b4c57

VBD device                   hdd

uuid:                      a67ac4e7-fd1f-49bc-d3f8-1a8ee682b48f

VIF device:                  0

uuid:                      1462a750-11d7-93c7-f48c-8b6d55931bc9

console uuid:                5332051b-3199-ea73-b35e-2d679d85feb9

Aquí podemos ver el total de VMs contabilizadas, tanto Template como VM en funcionamiento, tras ello nos muestra al detalle las VM del pool de XenServer (en este caso lass 16 primeras son templates) para posteriormente dar mas detalle a nivel de UUID de las VM de nuestro servidor. En este caso podemos ver el DC.

Podemos ver la información UUID por VIF, con la opción “-o VIF”

C:\dbtool>dbtool -o VIF E:ts_iso\state.db

database type: XML - XS 5.x

VIF count: 14

VIF 0

uuid:                      1f279c15-6eba-d41b-a12a-4d3490f7ec14

VM:                        Join Domain Now

uuid:                    ec506310-da11-05f1-3a4b-3689977ebbc8

network:                   Pool-wide network associated with eth0

uuid:                    958b6f96-2018-9d7e-9a3b-53c321a85605

bridge:                    xenbr0

PIF device:                eth0

uuid:                    8d70628b-a744-5cda-cfaa-f2eade6ec444

VIF 1

uuid:                      a9d7025d-9efb-b35f-e16a-affb45defa85

VM:                        ctx-liscense

uuid:                    b0cc3821-a255-9b38-6c2d-aecd1ec227ef

network:                   Pool-wide network associated with eth0

uuid:                    958b6f96-2018-9d7e-9a3b-53c321a85605

bridge:                    xenbr0

PIF device:                eth0

uuid:                    8d70628b-a744-5cda-cfaa-f2eade6ec444

Consultar por UUID:

C:\dbtool>dbtool -u 6f963fca-d28f-79b0-93c2-7382ace38928 E:\ts_iso\state.db

database type: XML - XS 5.x

VM

name__label:                 XenApp running with TS 120days

uuid:                        6f963fca-d28f-79b0-93c2-7382ace38928

host affinity:               ctx-host0

uuid:                      a424c046-c773-46e6-96ea-66e494de6c72

VM snapshot of:              ctx-xapp01

uuid:                      3ddca9ae-a9a5-ea80-ccff-2ee1f4cb4383

VM metrics uuid:             a68b66db-4739-cb20-1fa6-e8aaba681881

VBD device                   hda

uuid:                      2ab13a5d-6076-a7dd-92b0-c3466ffd6530

VBD device                   hdd

uuid:                      cef9c3fe-f959-bafe-36fb-f633d9d8babf

VIF device:                  0

uuid:                      f961e720-a68c-5935-a287-89e47f51fec9

Con la opción -a, haremos un volcado de toda la BD sobre la salida Standard, o podemos redireccionarlo a un fichero para su posterior analisis. Para redireccionar la salida sobre un fichero, utilizaremos el operador >.

C:\dbtool>dbtool -a E:\ts_iso\state.db > E:\ts_iso\volcado.txt

El redireccionado de la salida es usable en todos los casos, y muy útil para el analisis.

dbtool con la opción “-l” nos muestra una lista de los objetos utilizables en las consultas dónde pasemos el parametro -o Object. Estos objetos són los mostrados a continuación:

available objects (not case-sensitive):

object                 description
--------------------------------------------------------
Bond                   network interface bond
PBD                    physical block device
PIF_metrics            physical network interface metrics
PIF                    physical network interface
SM                     storage manager plugin
SR                     storage repository
VBD                    virtual block device
VBD_metrics            virtual block device metrics
VDI                    virtual disk interface
VIF                    virtual network interface
VIF_metrics            virtual network interface metrics
VLAN                   virtual local area network
VM                     virtual machine
VM_guest_metrics       virtual machine guest metrics
VM_metrics             virtual machine metrics
VTPM                   virtual trusted platform module
console                virtual machine console
crashdump              virtaul machine crashdump
event                  asynchronous event
host                   physical host
host_cpu               physical CPU
host_crashdump         host crashdump
host_metrics           host metrics
host_patch             host patch
network                virtual network
pool                   pool of hosts
pool_patch             pool patch
schema_version         ???
session                session
task                   asynchronous task
user                   user
message                message
data_source            data source
blob                   blob

Podemos ampliar la información de la salida mediante la opción “-V” (verbose mode). Veamos la diferencia consultando una VIF:

No utulizando la opción Verbose.

[root@ctx-host0 x]# ./dbtool -u f961e720-a68c-5935-a287-89e47f51fec9  /var/xapi/state.db
database type: XML - XS 5.x
VIF
uuid:                      f961e720-a68c-5935-a287-89e47f51fec9
VM:                        XenApp running with TS 120days
uuid:                    6f963fca-d28f-79b0-93c2-7382ace38928
network:                   Pool-wide network associated with eth0
uuid:                    958b6f96-2018-9d7e-9a3b-53c321a85605
bridge:                    xenbr0
PIF device:                eth0
uuid:                    8d70628b-a744-5cda-cfaa-f2eade6ec444

Utilizando la opción Verbose:

[root@ctx-host0 x]# ./dbtool -u f961e720-a68c-5935-a287-89e47f51fec9 -v  /var/xapi/state.db
database type: XML - XS 5.x
VIF
uuid:                      f961e720-a68c-5935-a287-89e47f51fec9
MAC:                       f6:6c:72:f6:ae:42
MTU:                       1500
qos__supported_algorithms: ()
other_config:              ()
allowed_operations:        ('attach')
qos__algorithm_params:     ()
qos__algorithm_type:       
device:                    0
MAC_autogenerated:         false
current_operations:        ()
status_detail:             
runtime_properties:        ()
status_code:               0
currently_attached:        true
reserved:                  false
VM:                        XenApp running with TS 120days
uuid:                    6f963fca-d28f-79b0-93c2-7382ace38928
network:                   Pool-wide network associated with eth0
uuid:                    958b6f96-2018-9d7e-9a3b-53c321a85605
bridge:                    xenbr0
PIF device:                eth0
uuid:                    8d70628b-a744-5cda-cfaa-f2eade6ec444

Por último con la opción “-ver” veremos la información relativa a la propia herramienta, relativa a su versión y al creador de la misma.

[root@ctx-host0 x]# ./dbtool -ver
dbtool - XenServer database tool
v0.1 (beta) 11/2008 [ Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla ]

Actualizado (Martes, 02 de Noviembre de 2010 13:31)