Chubascos Blog

Chubascos tecnológicos para quitarnos la neblina de las tecnologías de la nube! Viva la lluvia!

Archivos por Etiqueta: passthrough

Yet Another VCAP-DCA post – Sección 1 – Objetivo 1.1 / Parte 3

Hola,

En esta entrada nos meteremos de lleno en “Capacidad y habilidades del objetivo 1.1. A ver hasta donde llegamos hoy.

Conocimiento:
Identificar tipos de RAID.
Identificar tipos de HBA soportadas.
Identificar formatos de discos virtuales.

Capacidad y habilidades para:
*Determinar los casos de uso y configurar VMware DirectPath I/O.*
Determinar los requerimientos y configurar NPIV.
Determinar el nivel de RAID apropiado para distintos tipos de cargas en las VMs.
Aplicar las best practices de VMware para almacenamiento.
Entender los casos de uso para RAWs (Raw Device Mapping).
Configurar los filtros de almacenamiento de vCenter.
Entender y aplicar la VMFS re-signaturing (traducir esto como “re-firma” me suena raro).
Entender y aplicar masking de LUNs utilizando comandos del tipo PSA.
Analizar los I/O de las cargas de trabajo para determinar los requerimientos de I/O del almancenamiento.
Identificar y etiquetar dispositivos SSD.
Administrar la aceleración por hardware para VAAI.
Configurar y administrar almacenamiento “profil-driven”.
Preparar el almacenamiento para mantenimiento.
Upgradear la infraestructura de almacenamiento de VMware.

Herramientas:
vSphere Installation and Setup 5.5 – http://goo.gl/nUXi7i
vSphere Storage 5.5 – http://goo.gl/bO5VlT
vSphere Command-Line Interface Concepts and Examples – http://goo.gl/T3X6DV

Cliente de vSphere/Cliente Web de vSphere
vscsiStats
vSphere CLI:
esxcli
vifs
vmkfstools
esxtop/resxtop

Contenido:

Determinar los casos de uso y configurar VMware DirectPath I/O.
Empezaremos por ver qué es VMware DirectPath I/O. Me sería imposible sintetizar más la propia descripción que VMWare hace de esta característica por lo que traduciré su definición y agregaré algunas líneas.

DirectPath I/O permite a las VMs acceder a las funciones de los dispositivos PCI de forma directa, en plataformas que dispongan de una unidad de gestión de I/O de memoria o de sus siglas en inglés “IOMMU”, habilitada en la BIOS.
Para AMD es AMD-Vi y para Intel es VT-d. Realmente quien permite este acceso directo es el hardware…DirectPath I/O en VMware es la característica que permite aprovechar esta funcionalidad del hardware.

Las siguientes funcionalidades no están disponibles para las VMs que tengan DirectPath I/O:
– Añadir o quitar dispositivos virtuales en caliente (Hot add).
– Operaciones de suspend/resume.
– Operaciones de record/play.
– Fault tolerance.
– High availability.
– vMotion (cambio lo que pone el doc. de VMware ya que no mencionan en esta sección lo de vMotion, sino que aquí ponen DRS).
– Snapshots.

Las siguientes funcionalidades están sólo disponibles para las VMs que tengan DirectPath I/O configurado en UCS de Cisco con switches distribuidos VM-FEX.
– vMotion
– Añadir o quitar dispositivos virtuales en caliente (Hot add).
– Operaciones de suspend/resume.
– High availability.
– DRS (venga va…lo ponemos 🙂 ).
– Snapshots.

Una limitación que no vi en el link que os comento (en la bibliografía están todos los links de donde saco la info) es que un dispositivo con DirectPath I/O no puede ser presentado a más de una VM por con DirectPath I/O (sí se podría presentar a otra VM mediante emulación/paravirtualización aunque parece que da problemas). Tampoco mencionan NIOC. Aunque sea obvia, está bien mencionarla creo.
Adicionalmente, en los configurations maximums vemos los máximos soportados de esta tecnología (ojo que mezcla DirectPath I/O con SR-IOV que veremos más adelante).


VMDirectPath PCI/PCIe devices per host 8
SR-IOV Number of virtual functions 64 (43 en NICs Intel soportadas y 64 en NICs Emulex)
SR-IOV Number of 10G pNICs 8
VMDirectPath PCI/PCIe devices per virtual machine 4 (hasta 6 si 2 de ellos son Teradici)

Creo que este tipo de lista es importante prestarle atención…me late a mi que se pueden esperar preguntas del tipo “configura DRS en el cluster” y que luego resulta que hay máquinas que tienen DirectPath I/O habilitado y uno se vuelva loco buscando el motivo por el cual esas VMs no migran. Esas preguntillas que a uno tanto le gustan en un test jejeje!

Ok…hasta aquí la definición pero no es lo que pedía el bluprint. Por tanto, cuáles son los casos de uso de una tecnología del estilo y más aun sabiendo que tiene tantas limitaciones excepto en los UCS?

La respuesta parece fácil: RENDIMIENTO.
Como sabréis, vSphere ofrece a las VMs 3 formas de gestionar los I/Os de red. Mediante emulación (e1000 por ejemplo), paravirtualización (vmxnet3 por ejemplo) y accediendo directamente al dispositivo (ahí entra DirectPath I/O). Sabido es también que el rendimiento de una vmxnet3 es muy alto y soporta perfectamente cargas de más 10Gbs sin problemas. Entonces ¿DirectPath qué es lo que aporta? Lo que aporta esta tecnología es descargar a nuestro micro de la tarea de tener que gestionar una carga tan elevada de I/Os y LATENCIAS más bajas en las comunicaciones. Además de RENDIMIENTO, también pueden existir ciertas características físicas de nuestras NICs que serán aprovechadas por nuestras VMs si pueden hablar directamente con la NIC. Este es el caso de TCP offload engine para algunas HBA/S.O.s o SSL offload.
El secreto de cuándo utilizar DirectPath I/O y cuándo no, es cuando queremos obtener el máximo rendimiento de una VM que deberá gestionar un número muy elevado de paquetes IP. Estamos hablando en el orden de los 300.000 por segundo! Para cargas de unas 8.000, el rendimiento es el mismo que con una NIC paravirtual y en casos como los de servidores de base de datos donde pueden haber muchos menos paquetes pero de tamaños mayores, el rendimiento es MEJOR en tarjetas virtuales que en una con DirectPath I/O!!! 🙂 Esto no lo sabía yo jejeje! Si estáis preparando el examen del VCAP-DCA, repito, no os quedéis con lo que yo escribo aquí ya que se trata de un resumen de las cosas que leí. Id a las fuentes. En este caso podréis ver las gráficas de rendimiento y las cargas que VMware testeó. Adicionalmente y de forma explícita, VMware recomienda este tipo de adaptadores para cargas muy sensibles a las latencias y cita el caso de las aplicaciones de “stock traiding”. Existe una diferencia de unos 10microsegundos (no confundir con ms) en las latencias de un test de round-trip.

Vamos a configurar DirectPath I/O

1. Desde el vSphere WebClient (no utilizaré el cliente instalable para nada…limitaré el estudio al Cliente Web. Adaptarse o morir 🙂 )

Home > Hosts and Clusters > Seleccionar el host > Manage > Advanced y hasta aquí llego porque recibo el mensaje de “DirectPath I/O Not supported”. Si no fuera así, se listarían los dispositivos que soportan esta tecnología.
Un icono verde significa que el dispositivo está activado y habilitado para DirectPath I/O.
Un icono naranja significa que el estado del dispositivo ha cambiado y que el host debe ser reiniciado para poder utilizar el dispositivo.

Como nota al margen, VMware requiere que antes de quitar un dispositivo que se utiliza para DirectPath I/O, se deshabilite el mismo ANTES de quitarlo. Si nos queremos ahorrar el reinicio, una forma poco ortodoxa de deshabilitar DirectPath I/O podría ser descargar el módulo. Para ello se podría ejecutar: /usr/lib/vmware/vmkmod/vmkload_mod -u vtd

Ahora que está el dispositivo habilitado en el host, es hora de configurarlo en una VM.

Home > VM and Templates > Seleccionar la VM (no sé si ha de estar apagada o puede estar encendida, en cualquier caso supongo que deberá reiniciarse puesto que DirectPath I/O no soporta Hot Add > Manage > VM Hardware > Edit > New device > PCI Device y hasta aquí llego sin dispositivos que lo soporten en mi lab. En la bibliografía veréis que hay un link con alguien que sí lo configura y muestra las capturas de pantalla.

Al añadir este tipo de dispositivo, se creará de forma automática una reserva de memoria igual al tamaño de la RAM de la VM.

Para configurar DirectPath I/O para que la VM soporte vMotion. Aquí simplemente copio y pego los pasos de la guía oficial de VMware.


You can enable DirectPath I/O with vMotion for virtual machines in a datacenter on a Cisco UCS system that has at least one supported Cisco UCS Virtual Machine Fabric Extender (VM-FEX) distributed switch.
Prerequisites

Enable high performance network I/O on at least one Cisco UCS port profile on a supported Cisco VM-FEX distributed switch. For supported switches and switch configuration, see Cisco’s documentation at http://www.cisco.com/go/unifiedcomputing/b-series-doc.

Power off the virtual machine.
Procedure
1 Log in to the vSphere Client and select the VMs and Templates inventory view.
2 Right-click the virtual machine to modify and click Edit Settings.
3 On the Resources tab, select Memory.
4 Select Unlimited.
5 On the Hardware tab, select the network adapter to configure as a passthrough device.
6 Select a port profile with high performance enabled from the network label drop-down menu, and click OK.
7 Power on the virtual machine.
After the virtual machine is powered on, DirectPath I/O appears as Active on the Hardware tab of the virtual machine properties dialog box.”

Bibliografía utilizada en este post:
http://goo.gl/veuhRb
http://en.wikipedia.org/wiki/X86_virtualization
http://goo.gl/nQQ6Z1
http://goo.gl/wWxl5
http://www.vmware.com/pdf/vsphere5/r55/vsphere-55-configuration-maximums.pdf
http://goo.gl/mOvPdd
http://goo.gl/RYSwws
http://goo.gl/rkRu1K
http://theithollow.com/2012/07/vmdirectpath-io-basic-setup/
http://www.vmware.com/files/pdf/techpaper/network-io-latency-perf-vsphere5.pdf
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1001805
http://en.wikipedia.org/wiki/Round-trip_delay_time
http://infrastructureadventures.com/tag/directpath-io/
http://www.vmware.com/files/pdf/techpaper/vsp_4_vmdirectpath_host.pdf
http://www.vm-help.com/esx40i/VMDirectPath/fix_config_issues.php
http://www.valcolabs.com/2012/05/12/objective-1-1-implement-and-manage-complex-storage-solutions/

Hubiera querido tratar más temas en el post pero creo que por hoy es suficiente 🙂 Por favor, dejad vuestros comentarios, sugerencias y aportaciones que serán bienvenidos!

Hasta la próxima,
Sebastián Greco

Anuncios