segunda-feira, 28 de janeiro de 2013
O que é VAAI?? VMware Vsphere Storage APIs for Array Integration
Apesar de ter sido anunciada
há algum tempo (desde o lançamento da versão 4.1), esta funcionalidade ainda
não é muito bem compreendida e aproveitada por aqueles que utilizam o VMware
VSphere como a sua plataforma de virtualização. O objetivo deste post é
apresentar um pouco mais desta tecnologia, apresentando os principais conceitos
por trás de cada uma das funcionalidades oferecidas.
Primeiramente, o que é VAAI?
Como o próprio nome sugere VMware Vsphere Storage APIs – Array
Integration, é um conjunto de APIs (Application
Programming Interface) que permitem uma comunicação entre os hosts ESXi e
os dispositivos de armazenamento (Storage Array). Estas APIs definem um
conjunto de funcionalidades que permitem que o host ESXi transfira para o
storage a carga de execução de determinadas operações de disco, reduzindo com
isso a utilização dos recursos no host ESXi e ao mesmo tempo obtendo um melhor
desempenho na execução destas operações. Por isso essa tecnologia também é
conhecida como “hardware acceleration” ou “hardware offload” APIs, pois
transfere para o hardware a execução de algumas tarefas.
Vamos imaginar a execução de
uma operação de clonagem de uma máquina virtual ou então a realização de um
Storage vMotion de determinado .vmdk, se o local de origem e o local de
destino, do clone e do .vmdk que está sendo movido, é o mesmo, ou seja, são
datastores/LUNs que estão num mesmo storage, porque deixar que essa atividade
seja controlada pelo software, no caso o ESXi, ao invés de transferir para o
hardware (storage) essa responsabilidade, uma vez que o mesmo está muito mais
preparado para executar tais tarefas do que o ESXi?
Como um administrador VMware,
você não quer que seu host ESXi fique ocupado copiando blocos de um lado para o
outro ou executando operações de clonagem. Você não quer que sua rede SAN ou
Ethernet seja entupida com tráfego de Storage vMotion. Você quer ver o seu host
processando as requisições das suas VM’s e gerenciando a sua memória!
Como citei anteriormente, a
primeira versão da VAAI foi lançada juntamente com o VSphere 4.1, porém neste
momento oferecia suporte apenas para armazenamento via bloco (FC, iSCSI e
FCoE). Com o lançamento do VSphere 5.0, houve uma atualização também da VAAI,
dessa vez oferecendo suporte para armazenamento via NAS e também novas
funcionalidades relacionadas com a tecnologia de Thin Provisioning.
VAAI – Armazenamento em bloco
(FC, iSCSI e FCoE)
São três as “funcionalidades”
oferecidas para armazenamento em bloco:
- Atomic
Test & Set (ATS)
Como sabemos, o VMFS é um
sistema de arquivos em cluster, ou seja, permite que vários hosts o acessem ao
mesmo tempo. Mas para que isso ocorra, são necessários alguns mecanismos que
controlem determinadas operações, e um destes mecanismos é o “locking”
(bloqueio). Quando um host ESXi faz alguma atualização nos metadados de um
volume VMFS, este mecanismo de “locking” é necessário para garantir a
integridade do sistema de arquivos e prevenir que um outro host ESXi tente
atualizar esses mesmos metadados simultaneamente. São várias as operações que
exigem este “locking”.
Até o Vsphere 4.0, esse
mecanismo de bloqueio era realizado através de “SCSI Reservations”. Este “SCSI
reservation” bloqueava toda a LUN no qual o VMFS se encontrava, evitando que
outros hosts fizessem atualizações de metadados enquanto um determinado host
possuía o “lock”. Esse era um fator que limitava a utilização de volumes VMFS
muito grandes, devido a problemas de contenção que poderiam ocorrer no caso de
muitas VM’s compartilharem o mesmo datastore.
Com o VAAI, um novo mecanismo
de bloqueio foi introduzido, trata-se do ATS (Atomic Test & Set). O ATS
permite que apenas um setor do disco seja modificado em um volume VMFS,
evitando os problemas de contenção que ocorriam com a utilização do “SCSI
Reservation” e permitindo a criação de volumes VMFS muito maiores.
Esta imagem foi copiada do documento: http://content.dell.com/br/pt/empresa/d/business~smb~sb360~pt/Documents~DFDF_2012_VMWare_Storage.pdf.aspx |
Quando não se tem o VAAI, uma
operação de clone ou migração de dados entre datastores é realizada através de
um driver chamado “Data Mover” presente no VMkernel. Além de demorar demais,
essas operações ainda consomem ciclos de CPU, memória e comando nas filas da
HBA do host.
Com a funcionalidade do XCOPY
(Extended Copy), o ESXi dispara um comando para o Storage, para que ele execute
a cópia dos blocos no lugar do “Data Mover”, resultando em operações muito mais
rápidas e que desoneram o consumo de recursos nos hosts.
Esta imagem foi copiada do documento: http://content.dell.com/br/pt/empresa/d/business~smb~sb360~pt/Documents~DFDF_2012_VMWare_Storage.pdf.aspx |
- Write
Same (Zero)
Quando criamos um disco do tipo THICK,
temos duas opções: Lazy Zeroed ou Eager Zeroed. O “lazy” zera os blocos à
medida que forem sendo utilizados, e o “eager” zera todos os blocos no momento
da sua criação. De qualquer forma, essa operação de zerar os blocos é realizada
através de comandos SCSI que são enviados pelo host, consumindo recursos do
host.
Com o VAAI, os hosts ESXi podem ser
habilitados para enviar um comando SCSI chamado de WRITE_SAME. Este comando
zera uma grande quantidade de blocos de um disco, sem a necessidade de
transferência de dados pelo link de transporte. Algumas das operações que são
beneficiadas por este comando são:
- Operações de clone que possuem como alvo
um disco Eager Zeroed;
- Alocação de novos blocos para discos
THIN;
- Inicialização de blocos ainda não
escritos para discos Lazy Zeroed.
Esta imagem foi copiada do documento: http://content.dell.com/br/pt/empresa/d/business~smb~sb360~pt/Documents~DFDF_2012_VMWare_Storage.pdf.aspx |
VAAI – Armazenamento em NAS (NFS)
Como já citado anteriormente, as
funcionalidades VAAI para NAS foram incluídas a partir da versão VSphere 5.0. A
diferença para o VAAI oferecido para armazenamento em bloco é que para tirar
proveito dessas funcionalidades, será necessária a utilização de plug-in
específico, o qual deverá ser fornecido pelo fabricante do storage.
Esta funcionalidade é
semelhante à funcionalidade XCOPY (Extended Copy) disponibilizada para o
armazenamento em bloco. Ou seja, permite que discos virtuais sejam clonados por
dispositivos NAS ao invés de utilizar o driver “Data Mover”, que consome CPU,
memória e no caso de cópias via NAS, ainda consome banda de rede.
A única diferença entre o
“Full File Clone” e o “XCOPY” é que o Full File Clone não é utilizado em
operações de Storage vMotion, que continuam utilizando o “Data Mover”. Somente
máquinas virtuais que são migradas enquanto estiverem desligadas é que serão
beneficiadas pela funcionalidade do “Full File Clone”.
- Fast File Clone/Native Snapshot Support
Essa funcionalidade permite que a criação
de um sanpshot para uma máquina virtual seja realizada pelo dispositivo de
armazenamento NAS (Storage). Foi lançado previamente com o VMware View 5.1,
através do Vmware View Composer, permitindo que a criação de novos desktops
virtuais usando Linked Clone fosse realizada pelo storage e não mais pelo hosts
ESXi. Para o VSphere 5.1 essa funcionalidade foi extendida para vApps do vCloud
Director.
- Extended
Statistics
Com essa funcionalidade, os administradores
VMware agora podem ter acesso às estatísticas de uso de datastores NFS, o que é
extremamente útil para os casos em que são utilizados datastores “thin-provisioned”,
pois permite que o VSphere exiba as estatísticas de utilização de espaço reais.
Anteriormente, os administradores VMware precisavam de ferramentas de
fornecedores de storage para saber quanto de espaço um disco VMDK “thin” estava
realmente consumindo de um datastore, agora essas informações podem ser vistas
diretamente no VSphere Client.
- Reserve
Space
Em versões anteriores do VSphere, somente
discos virtuais “thin” podiam ser criados em datastores NFS. Com essa nova
funcionalidade “Reserve Space” oferecida pela VAAI, é possível que discos “thick”
sejam criados também em datastores NFS.
VAAI - Thin Provisioning
Quem já fez uso de LUN’s “thin”
com certeza já se deparou com uma situação em que mesmo após deletar uma
máquina virtual de determinado datastore, o espaço que deveria ter sido
liberado com a exclusão dessa VM não apareceu! Ou então, casos em que uma
situação de datastore cheio veio a suspender todas as máquinas virtuais nele
presente.
Algumas dessas “reclamações”,
constantes por parte daqueles que fazem uso da tecnologia “thin provisioning”,
fizeram com que a VMware pensasse em algumas funcionalidades que pudessem
amenizar essa situação e oferecer ao administrador VMware, mais tranquilidade
para trabalhar com essa tecnologia.
- Thin
Provisioning Stun
Visa resolver o problema que
envolvia a suspensão de todas as VM’s presentes em um datastore “thin” caso
esse viesse a ficar com 100% de espaço utilizado. Agora, caso um datastore “thin”
fique com 100% de espaço utilizado, apenas as máquinas virtuais que
necessitarem de mais espaço em disco serão pausadas, as VM’s que não precisarem
de espaço continuarão rodando normalmente. Depois que for alocado mais espaço
para o datastore, as máquinas virtuais que foram pausadas poderão ser
resumidas.
- Thin Provisioning Space Threshold Warning
Com esta nova funcionalidade, um alerta é
exibido no Virtual Center quando um datastore “thin” atinge determinado threshold.
Esse threshold é configurado no storage.
Essa é a funcionalidade que permite a recuperação
de um espaço anteriormente utilizado num datastore “thin” por uma máquina
virtual que tenha sido excluída ou migrada para outro datastore. Através de um
comando chamado SCSI UNMAP, o host ESXi avisa ao storage que determinado
espaço, anteriormente utilizado, pode ser recuperado pelo storage. Com isso, os
storages poderão relatar com maior precisão a utilização de espaço em um
datastore “thin provisioned”.
Esta imagem foi copiada do documento: http://content.dell.com/br/pt/empresa/d/business~smb~sb360~pt/Documents~DFDF_2012_VMWare_Storage.pdf.aspx
|
Na primeira implementação desta funcionalidade
no VSphere 5.0, essas operações de recuperação de espaço eram realizadas
automaticamente, ou seja, assim que a VM era excluída ou migrada, o host ESXi
automaticamente enviava o comando SCSI UNMAP para o storage recuperar aquele
espaço. Devido a alguns problemas de desempenho e de tempo de recuperação
destes espaços em determinados storages, esse esquema foi alterado, e essa
operação agora deve ser disparada manualmente.
Quem quiser saber mais detalhadamente como
esse processo de recuperação de espaço pode ser realizado, o artigo abaixo
explica bem detalhadamente como funciona todo o processo. Vale a pena fazer a
leitura.
Mais detalhes, como por exemplo,
implementação, tuning, verificação de status e etc., sobre a tecnologia VAAI
podem ser encontrados no whitepaper “VMware
vSphere Storage APIs – Array Integration (VAAI)”, através do link abaixo:
Assinar:
Postar comentários (Atom)
Excelente post parabéns.
ResponderExcluirMuito bom.
ResponderExcluirMuito bom garoto!!
ResponderExcluirMuito bom o post.
ResponderExcluirCara parabéns! Post super completo!!!
ResponderExcluirParabéns pelo post meu amigo! Ajudou muito nos meus estudos...
ResponderExcluirParabéns Tiago pelo post. O seu blog esta sendo muito útil para os meus estudos.
ResponderExcluir