Obtener datos e informes de storage en tiempo real de nuestra infraestructura de vSphere

agosto 3, 2016 — por Albert Gris0

main

Assoc. Cat. VirtualitzacióCloudVirtualizacionVMware

Obtener datos e informes de storage en tiempo real de nuestra infraestructura de vSphere

agosto 3, 2016 — por Albert Gris0

Cada vez hay más soluciones de terceros o del propio VMware que nos sirven para monitorizar y analizar nuestra infraestructura. Las infraestructuras van madurando y se vuelven más confiables, hecho que hace que se virtualicen más cargas en ellas. Además, ya prácticamente todas las aplicaciones están soportadas dando niveles de rendimiento a la par o incluso mejores que en entornos físicos. Más consolidación de máquinas virtuales por host, más dispersión y máquinas virtuales más sensibles hacen que la necesidad de monitorizar de manera más exhaustiva sea una realidad

Como decía, hay herramientas de diversos tipos y funcionalidades que sacan, procesan y almacenan datos de rendimiento de nuestra infraestructura virtual para que podamos generar alertas o informes predictivos. Podríamos entrar a valorar muchas de ellas, pero antes creo que es casi obligado conocer las herramientas nativas en vSphere/vCenter. Conocerlas, además de otras ventajas que expondré seguidamente, nos ayudará a conocer “de base” las métricas más críticas que luego podremos explotar con otras soluciones.

Una de estas herramientas nativas es vscsiStats, nativa en ESXi. Con ella, obtendremos datos de caracterización del uso a nivel de Storage de nuestras máquinas virtuales. Qué ventajas supone? Como decimos, es nativa, por lo que ya la tienes incluida en tu hipervisor, es rápida en obtener datos en real-time, puesto que estamos consultando directamente el scheduler de ESXi, es relativamente sencilla de usar (veremos cómo a continuación) y fácilmente podemos exportar los datos que nos aporta. A diferencia de los datos de storage que nos aporta esxtop, otra herramienta nativa de monitorización para ESXi, que solo aplican para almacenamiento basado en iSCSI o Fibre Channel, vscsiStats nos da más variedad de información y sobretodo sin importarle en qué tipo de almacenamiento esté la VM, pues se sacan los datos a nivel de disco virtual.

Podremos sacar información de storage de cualquier VM, pero qué información? Básicamente lo que nos dará vscsiStats son datos de utilización y carácter de las operaciones de I/O de storage durante un periodo de muestreo en forma de histograma, por lo que será importante ejecutar las cargas que queremos monitorizar durante ese momento. Podemos sacar los siguientes histogramas:

  • seekDistance: localidad “espacial” de los I/Os
    • Dada una VM, podemos ver la secuencialidad de los bloques que consulta/escribe. Si un bloque está más cerca que los consultados/leídos inmediatamente antes, se accederá mucho más rápido. En cambio, si el patrón de uso de bloques es muy aleatorio, impactará en el rendimiento. Es interesante juntar patrones de uso común en las mismas LUNs para intentar optimizar el rendimiento.
  • ioLength: tamaño de IO
    • Como comentaba en anteriores posts, es importante alinear las configuraciones en todas las capas que intervienen en el uso de disco, pero a su vez puede resultar muy complejo. Sobretodo a alto nivel, pues puede resultar complicado sacar patrones de IO a nivel de sistema operativo de la VM o incluso la aplicación que use. Con vscsiStats, podremos sacar datos del tamaño de IO real que están utilizando nuestras VMs sin importar qué OS/aplicación estén ejecutando. Por ejemplo, si sabemos el tamaño medio de IO de nuestras VMs, podemos configurar el tamaño de stripe de nuestra cabina a ese valor para maximizar su rendimiento.
  • latency: análisis de latencias
    • Rápidamente podemos sacar analizar qué tiempos de respuesta están teniendo nuestras operaciones de I/O para sacar medias, ver a qué máximos estamos llegando y ver qué latencias son las más comunes.
  • interarrival
    • Nos sacará qué tiempo entre llegada de I/Os están teniendo nuestras VMs.
  • outstandingIOs
    • Al llegar una operación de I/O, se calculan cuantas otras para ese disco virtual están aún pendientes por llegar. Al verlo en histograma, se puede ver que concurrencia de I/Os se tiene para ese disco y ver si hay contención a nivel de profundidad de colas.

Vistas sus posibilidades, vayamos a ver como funciona:

  • Recoger IDs de las VMs y los discos: como hemos visto, vscsiStats se invoca para empezar a captar datos. Estos pueden ser referentes a todas las VMs y todos sus discos o de una VM o disco en concreto.

Si queremos recoger datos de todos los discos y VMs, podemos obviar este primer paso. En caso contrario, deberemos introducir el siguiente comando en la consola de nuestro ESXi (por SSH o DCUI):

# vscsiStats –l

El output serà un listado de las VMs y discos. Los datos que queremos obtener serán el “Virtual Machine worldID” que identificará nuestra VM y el “Virtual SCSI Disk handleID” que identifica el disco virtual. Con estos dos datos, seguimos adelante.

  • Empezamos la recolección de datos: debemos usar la opción “-s” para empezar a capturar datos de uso de nuestras VMs.

Si queremos capturar datos de todas las VMs y discos, tan solo hace falta que ejecutemos el siguiente comando:

# vscsiStats –s

En caso de que querramos monitorizar todos los discos de una VM en concreto, necesitaremos el parámetro “Virtual Machine worldID”:

#vscsiStats –s –w <worldID>

Si queremos concretar más y solo capturar datos de un solo disco virtual necesitaremos el “Virtual Machine worldID” y el “Virtual SCSI Disk handleID”

# vscsiStats –s –w <worldID> -i <handleID>

A partir de ejecutar el comando con la opción –s, empieza el periodo de muestreo que durará (si no indicamos lo contrario) 30 minutos. Si queremos alargárlo, tenemos que volver a ejecutar el comando –s con los parámetros que hayamos especificado anteriormente para “renovar” otros 30 minutos más.

  • Sacar histogramas: una vez hemos empezado a llenar los contadores, ya podemos obtener histogramas del uso. Como hemos visto previamente, hay varios disponibles así que previamente debemos saber cuál queremos sacar. Una vez está claro:
    1. seekDistance: # vscsiStats –p seekDistance
    2. ioLength: # vscsiStats –p ioLength
    3. latency: # vscsiStats –p latency
    4. interrarrival: # vscsiStats –p interarrival
    5. OIOs: #vscsiStats –p outstandingIOs

De esta manera podremos obtener los datos que precisamos en la pantalla de nuestra consola. En el siguiente post veremos como exportar datos con esta herramienta y ver como podemos sacar informes con los datos en excel.

Si te ha gustado visita la segunda entrega de este post!! Obtener datos e informes de storage en tiempo real de nuestra infraestructura de vSphere II .

Dejar comentario

Tu dirección de correo no será publicada Los campos requeridos están marcados con *

dos + catorce =