I/O Analyzer
Neste documento vamos rever uma utilidade dos Labs da VMware que nos servirá para testar o nosso sistema de armazenamento, Sob um virtual appliance chamado VMware IO Analyzer. Este simples appliance mostrará gráficos de desempenho ao nível da VM e do host, Utilizará para isso o Iometer & esxtop,
Iremos transferir o appliance a partir da web de VMware Labs, virá em formato OVF e iremos importá-lo com o cliente VMware na nossa infraestrutura virtual.
Uma vez implementado o appliance, antes de o ligar, podemos criar-lhe um disco rígido adicional que será onde faremos os testes, indicaremos que o disco esteja pré-preenchido com ‘Thick Provision Eager Zeroed’ y lo ubicaremos en el datastore donde querramos hacer las pruebas. Borraremos además el de 100Mb que trae,
Encendemos el appliance virtual, entramos na sua consola y selecionaremos a opção de “Configure Network” para configurar los parámetros de red,
Configuraremos un direcionamiento IP estático o dinámico.
Una vez estemos ya con una sessão iniciada y podremos desde outro equipo conectarnos com um navegador.
Deberemos agregar los hosts en los cuales tenemos los appliance de IO Analyzer para realizar el benchmark en nuestra SAN, tudo isto a partir de “IOMETER TESTS”
Posteriormente selecionaremos cada host, cada vapp de IO Analyzer, un Workload para testear y la dirección IP del vapp. Introduciremos várias MV's contra distintos/mismos datastores para comprobar el comportamiento de la(s) cabine(s). Indicaremos um mínimo de 120 segundos, recomendável entre 5 e 10 ata.
Podemos guardar estas configurações para carregá-las posteriormente, vêm várias templates de exemplo, neste caso utilizarei a ‘Exchange_2007.icf’, además de las siguientes:
– Troca 2003 – 4k block 80% Random – 60% Leer
– Troca 2007 – 8k block 80% Random – 55% Leer
– Servidor SQL – 16k block 100% Random -66% Leer
– Oracle OLTP – 8k block 88% Random – 72% Leer
– Oracle DW – 32k block 20% Random – 90% Leer
– Max IOPS 4k block 0% Random – 100% Leer
– Max TP – 32k block 0 % Random – 100% Leer
* Se não obtivermos resultados e tivermos um erro ‘InvalidEsxtopCsvFile’ poderá ser que não temos ligação aos hosts ou que temos algum carácter especial na password de root (resolver-se-ia introduzindo o carácter ” antes do símbolo).
Durante o processo de stress veremos como nas VM do IO Analyzer carregará o Iometer de forma automatizada, poderemos ir ao separador “Exibição de Resultados” para ir vendo o processo antes de esperar pelos relatórios 🙂
Uma vez transpassado o tempo, iremos a la pestaña “RESULTADOS” & escolheremos o relatório. Esta imagem é de um ambiente 'laboratório'’ muito pobre, no qual apenas digitalizámos um disco a partir de um vApp num datastore.
Observaremos algumas estatísticas a nível do guest (vista do appliance do Iometer) e a nível do host (esxtop). A nível do guest:
– IOPS: Número de operações de I/O por segundo.
– ReadIOPS: Número de operações de leitura por segundo.
– WriteIOPS: Número de operações de escrita por segundo.
– MBPS: Throughput total por segundo.
– ReadMBPS: Throughput de leitura por segundo.
– WriteMBPS: Throughput de escrita por segundo.
A nível de host:
– CMD’s: Número de operações de I/O por segundo.
– READS/s: Número de operações de leitura por segundo.
– WRITES/s: Número de operações de escrita por segundo.
– MBREADS/s: Throughput de leitura por segundo.
– MBWRITES/s: Throughput de escrita por segundo.
– DAVG/cmd (msec): A latência entre as HBA e os discos.
– KAVG/cmd (msec): Latência criada pelo vmkernel (deveria ser próxima de 0.00 em).
– GAVG/cmd (sec): Latência total vista pelo guest (DAVG + KAVG)
– QAVG/cmd (sec): A latência média da fila.
Dados como referência:
– Discos de 7200 rpm (SATA) entre 75 – 100 IOPS.
– Discos de 10K rpm (SATA) entre 125 – 150 IOPS.
– Discos de 10K rpm (SAS) envelope 140 IOPS.
– Discos de 15K rpm (SAS) entre 175 – 210 IOPS.
– Discos SSD desde 6000 IOPS!!!
Esta outra imagem, com um desempenho um pouco maior já que é um ambiente de 'produção', veremos el escaneo combinado de dos máquinas sobre dos datastores distintos ubicados en dos cabinas distinas, nos serviría como comparativa clara.
Se quisermos, podremos grabar el comportamiento de una de nuestras máquinas con un proceso manual en el que exportaremos nuestra carga actual para luego importarlo en IO Analyzer. Para ello nos apoyaremos en el comando ‘vscsiStats’ para obtener las estadísticas de la MV, si ejecutamos ‘vscsiStats -l’ nos listará todas las MVs de este host con sus worldGroupID (GID) y sus discos virtuales (handleID). Con ‘vscsiStats -s -t -w GID -i handleID’ comenzaremos a recolectar la información de la carga en dicho vHD para posteriormente reproducirlo. Guardaremos en un archivo la traza con ‘logchannellogger vscsiStats-traceChannel /tmp/stats.log’
Pararemos el proceso con 'CTR + X’ cuando tengamos suficiente información, además pararemos el proceso de recolección con 'vscsiStats -x -w GID -i handleID'.
Con 'vscsiStats -e /tmp/stats.log > /tmp/stats.csv’ converteremos los resultados en un fichero CSV.
Lo primero será subir las trazas desde “TRACE UPLOAD”, indicarle un nombre & Descrição, le daremos la ruta completa del fichero en formato CSV además del nombre del host que lo tiene & el password de root. “Carregar”,
Selecionaremos como antes un host, la vapp de IOAnalyzer y la traza recién generada, indicaremos el disco donde realizará el análisis, la velocidad de ejecución (0.5x, 1.0x, 2.0x…) & Nós damos “Executar”,
E é isso, veremos el resultado de unos análisis previamente ejecutados en otra MV que hemos trasladado a esta para probar un nuevo almacenamiento, etc…






















































