A virtualização é uma área de crescimento exponencial na computação e nas TI, criando "virtualmente" um número ilimitado de possibilidades para os administradores de sistemas. A virtualização já existe há muitos anos, de uma forma ou outra, o problema é ser capaz de compreender os diferentes tipos de virtualização, o que eles oferecem, e como podem ajudar-nos.
A virtualização tem sido definida como a abstracção dos recursos do computador ou como uma técnica para esconder as características físicas dos recursos computacionais da forma como outros sistemas, aplicações ou utilizadores interagem com esses recursos. De facto, virtualização sempre significa abstracção. Tornamos algo transparente adicionando camadas que lidam com traduções, fazendo com que os aspectos anteriormente importantes de um sistema se tornem quase irrelevantes.
Virtualização do Armazenamento
A quantidade de dados que as organizações estão a criar e armazenar, aumenta cada vez mais rapidamente devido à mudança de processos de negócios para aplicações digitais baseadas na Web e essa enorme quantidade de dados está a causar problemas para muitas delas. Em primeiro lugar, muitas aplicações geram mais dados que aqueles que podem ser armazenados fisicamente num único servidor. Depois, muitas aplicações, especialmente as baseadas na Internet, têm várias máquinas que precisam aceder aos mesmos dados. Ter todos os dados numa só máquina pode criar um estrangulamento, para não mencionar o risco que representa a situação em que muitas máquinas podem ser ficar inoperacionais se uma simples máquina, contendo todos os dados da aplicação, sofrer uma falha. Finalmente, o aumento do número de máquinas de backup causa problemas porque tentar criar cópias de segurança de dados é uma tarefa enorme, quando há centenas ou até milhares de máquinas que precisam de backup de dados.
Por estas razões, os dados foram movidos para a virtualização. As empresas utilizam armazenamento centralizado (armazenamento virtualizado), como forma de evitar problemas de acesso a dados. Além disso, a mudança para o armazenamento de dados centralizado pode ajudar as organizações de TI a reduzir custos e melhorar a eficiência da gestão de dados. A premissa básica das soluções de virtualização de armazenamento não é nova. O armazenamento em disco há muito que conta com particionamento para organizar faixas do disco físico e sectores em clusters, e em seguida abstrair clusters em unidades de partição lógica (por exemplo, a unidade C:). Isso permite que o sistema operativo possa ler e gravar dados nos discos locais sem ter em conta a localização física dos bytes individuais nos pratos do disco.
A virtualização de armazenamento cria uma camada de abstracção entre o sistema operativo e os discos físicos utilizados para armazenamento de dados. O armazenamento virtualizado é então independente do local, o que pode permitir a utilização mais eficiente e a melhor gestão do armazenamento. Por exemplo, o software de virtualização de armazenamento, ou dispositivo, cria um espaço lógico e gere de metadados que estabelecem um mapa entre o espaço lógico o espaço em disco físico. A criação do espaço lógico permite uma plataforma de virtualização para apresentar volumes de armazenamento que podem ser criados e alterados dando pouca atenção aos discos subjacente.
A camada de virtualização de armazenamento é onde os recursos de muitos dispositivos de armazenamento diferentes são agrupados de modo a que aparentem ser todos apenas um grande contentor de armazenamento. Este é então gerido por um sistema central que faz tudo parecer muito simples para os administradores de rede. Esta é também uma óptima maneira de monitorizar recursos porque é possível saber exactamente quanto está disponível num determinado momento e cria muito muito menos preocupações quando se trata de backups, etc.
Na maioria dos centros de dados, apenas uma pequena percentagem do armazenamento é usada porque, mesmo com uma SAN, você tem que alocar uma LUN (Logical Unit Number) inteira ao servidor (ou servidores) associado a essa LUN. Imaginemos que uma LUN enche, mas existe espaço em disco disponível noutra LUN. É muito difícil tirar o espaço em disco de uma LUN e dá-lo a outra LUN. Além disso, é muito difícil de misturar e combinar armazenamento e fazê-lo aparecer como um todo.
A virtualização de armazenamento funciona muito bem para espelhamento de tráfego através de uma WAN e para a migração de LUNs de um conjunto de armazenagem para outro, sem tempo de inactividade. Com alguns tipos de virtualização de armazenamento podemos, por exemplo, esquecer onde estão alocados os dados pois migrá-los para outro lugar é muito mais simples. De facto, muitos sistemas migram os dados com base na utilização de modo a optimizar o desempenho.
Tipos de Virtualização do Armazenamento
Existem dois tipos de virtualização no mundo do armazenamento:
Virtualização ao Nível dos Ficheiros
Os requisitos dos serviços de ficheiros estão a crescer devido a uma combinação de muitos factores: populações de clientes em expansão, novas aplicações baseada em ficheiros, tais como distribuição de conteúdos, e uma tendência para o uso de servidores de ficheiros e NAS como plataforma de consolidação de armazenamento por trás da Web e de servidores de aplicações. Combinados, eles elevam as exigências dos serviços de ficheiros a níveis nunca antes alcançados e, em face dessa demanda, o poder de processamento dentro desses servidores de ficheiros está a tornar-se um problema.
A virtualização de ficheiros serve aplicações que precisam aceder aos dados na forma de ficheiros inteiros em vez de bloco a bloco e esses ficheiros normalmente residem em sistemas de ficheiros localizados em dispositivos NAS. Assim, a virtualização de ficheiros lida principalmente com a virtualização dos ficheiros armazenados em caixas NAS, servidores de armazenamento e servidores de ficheiros. A virtualização de ficheiros é também conhecida como File Area Network ou FAN.
Uma FAN é uma forma de agregar os sistemas de ficheiros para que eles possam ser mais facilmente movidos e geridos de forma centralizada através de uma camada lógica conhecida como “espaço de nomes global” (global namespace). Os benefícios são a administração mais fácil do servidor, reorganização e consolidação de ficheiros e isso significa que os ficheiros podem ser movidos sem que o utilizador esteja ciente de que eles podem agora fisicamente num local completamente diferente.
A virtualização de ficheiros aborda os desafios da NAS eliminando as dependências entre os dados acedidos ano nível de ficheiro e o local onde os ficheiros estão fisicamente armazenados. Isso oferece oportunidades para optimizar o uso de armazenamento e consolidação de servidores e de realizar migrações de ficheiros sem interrupções. Requere a instalação de algum software no servidor que usa o armazenamento, mas possibilita coisas como a determinação de utilização ao nível de ficheiro que por sua vez pode ser usada para determinar quais os dados menos acedidos e que podem ser movidos para armazenamento mais lento.
Virtualização ao Nível do Bloco
A necessidade deste tipo de virtualização surgiu porque os utilizadores das SAN descobriram que uma série de importantes serviços de gestão de armazenamento eram restritos aos discos de um conjunto em particular e não poderiam ser expandidos para além disso. Quando todos os discos do conjunto estavam cheios, tinha que se montar um novo conjunto, e isso significava uma coisa nova para gerir. Se o novo conjunto fosse de um fornecedor diferente, surgia o problema de que cada vendedor tem uma arquitectura fechada. Não se podiam gerir a partir da mesma consola, era difícil de replicar os dados entre eles, e assim por diante. A virtualização de armazenamento tenta remediar estes problemas movendo as funções de gestão do controlador de discos para a rede.
A virtualização de blocos refere-se à abstracção (separação) do armazenamento lógico do armazenamento físico para que ele possa ser acedido sem levar em conta o armazenamento físico ou a estrutura heterogénea. A virtualização ao nível de bloco assume o controlo antes do sistema de ficheiros; substitui ou incrementa os controladores existentes e assume o comando ao nível do disco.
Este tipo de virtualização fica no meio da SAN (em frente aos conjuntos de armazenamento) e esconde a localização física dos dados do dispositivo que acede a esses dados. A virtualização ao nível de bloco é geralmente chamada apenas virtualização de armazenamento e serve aplicações, tais como software de base de dados, que necessitam de acesso aos dados ao nível dos blocos. Os discos geralmente (mas não sempre) estão em SANs.
Métodos de Implementação da Virtualização do Armazenamento
Baseado no Anfitrião
Gestores de volume baseados no anfitrião (host) já eram utilizados muito antes da expressão “virtualização de armazenamento” ter sido criada. Este método usa um driver de algum tipo instalado no sistema operativo anfitrião interceptando e, possivelmente, redireccionando pedidos de E/S como uma tarefa privilegiada ou processo. No entanto, uma camada de software (o gestor de volumes) localiza-se acima do driver de disco, intercepta os pedidos de E/S e fornece a pesquisa de metadados e mapeamento de E/S.
O conceito FAN usa isto, mas o software RAID e os gestores de volume são também um exemplo de virtualização de armazenamento baseada no anfitrião. Sistemas operativos mais modernos têm um gestor de volumes lógicos (Logical Volume Manager - LVM em UNIX/Linux ou Logical Disk Manager em Windows), que executa tarefas de virtualização. Volumes (LUNs) apresentados ao sistema anfitrião são geridos por um driver de dispositivo físico tradicional.
Baseado na Rede
Virtualização de armazenamento baseada na rede é verdadeira virtualização operando num dispositivo de rede (normalmente um servidor normal ou switch inteligente) e usando redes iSCSI ou Fibre Channel para se ligar como uma SAN. O switch que fica entre o anfitrião e o armazenamento vai realmente virtualizar todos os pedidos, redireccionando E/S sem o conhecimento do utilizador. Este método não depende do sistema operativo; na verdade o sistema operativo na máquina nem sequer sabe o que está a acontecer. O dispositivo de virtualização fica na SAN e fornece a camada de abstracção entre os anfitriões (hosts) que realizam as E/S e os controladores de armazenamento, proporcionando a capacidade de armazenamento. Este tipo de dispositivos são a forma mais comum e implementada de virtualização.
Baseado no conjunto de discos
Neste tipo de virtualização um controlador de armazenamento primário fornece os serviços de virtualização e permite a ligação directa de outros controladores de armazenamento, ou seja, o conjunto de discos "mestre" vai assumir todas as E/S para todos os outros conjuntos. O controlador primário proporcionará a partilha e serviços de gestão de metadados. Ele pode também fornecer serviços de replicação e migração entre os controladores que está a virtualizar. Este controlador primário deve ser suficientemente rápido para lidar com todo o tráfego de armazenamento agregado e deverá também ser capaz de interagir com todos os conjuntos de disco existentes.
Benefícios da virtualização de armazenamento
Os maiores benefícios da virtualização de armazenamento são:
Aumento da utilização
O benefício mais imediato da virtualização de armazenamento é a maior utilização da capacidade disponível reduzindo o desperdício do espaço de armazenamento. A utilização ineficiente do armazenamento e compras de armazenamento desnecessárias levaram à adopção de soluções de virtualização de armazenamento, que usam a abstracção de espaço em disco físico separado da atribuição lógica desse espaço.
Através da migração de dados para armazenamento mais barato, e espalhando-se as cargas de trabalho mais apropriadamente, pode-se não só aumentar a utilização mas também a visibilidade de qual é a carga de trabalho global em todos os conjuntos de armazenamento. Por exemplo, uma LUN provisionada numa SAN pode reservar espaço que pode vir a não ser usado, ou discos podem ser deixados como não reservados, perdidos e esquecidos em conjuntos de armazenamento espalhados por todo o centro de dados. Com a virtualização, armazenamento que de outra forma não seria utilizado, pode ser agregado em LUNs viáveis e reservadas para as aplicações.
A virtualização permite que o armazenamento disponível em vários sistemas (muitas vezes em subsistemas de armazenamento SAN) seja agregado a fim de que o espaço em disco forme um único recurso lógico. O conjunto de armazenamento virtualizado é então provisionado para uso por utilizadores, servidores e aplicações.
Thin provisioning
Thin provisioning é um método de optimização da eficiência com que o espaço de armazenamento disponível é utilizado, usando a tecnologia de virtualização para dar a ilusão de mais recursos físicos que aqueles que estão realmente disponíveis. Este método funciona em combinação com a virtualização de armazenamento, que é essencialmente um pré-requisito para efectivamente utilizar a tecnologia. Permite que o espaço possa ser facilmente atribuído a servidores, numa base de “só o suficiente” e “mesmo a tempo” e que opera através da atribuição de espaço de armazenamento em disco de uma forma flexível entre vários utilizadores, com base no espaço mínimo exigido por cada um deles em qualquer instante.
No modelo de provisionamento de armazenamento convencional, também conhecido como Fat ou Thick Provisioning, o espaço de armazenamento é atribuído além das necessidades actuais, em antecipação da crescente necessidade e complexidade dos dados. Como resultado, a taxa de utilização é baixa. Grandes quantidades de espaço de armazenamento são pagas, mas podem nunca ser usadas. O software de thin provisioning permite uma maior utilização do armazenamento, eliminando a necessidade de instalar capacidade de disco físico que não é usada.
Na maioria das implementações, o modelo thin provisioning fornece armazenamento para as aplicações a partir de um conjunto comum de armazenamento à medida das necessidades. Com thin provisioning, um administrador de armazenamento atribui armazenamento lógico para uma aplicação, como de costume, mas o sistema liberta a capacidade física somente quando for necessário. Quando a utilização desse mesmo armazenamento se aproxima de um limite pré-determinado (por exemplo 90%), o conjunto automaticamente fornece capacidade de um outro conjunto de armazenamento virtual que expande um volume sem envolver o administrador de armazenamento.
Por exemplo, uma LUN 500 GB pode ser criada com100 GB de espaço de armazenamento para começar. À medida que a aplicação associada usa o espaço em disco, mais espaço em disco pode ser atribuído periodicamente sem ter que recriar a LUN.
Provisionamento Dinâmico
O Provisionamento Dinâmico é similar, permitindo que o tamanho de uma LUN possa crescer ou diminuir, conforme necessário, garantindo que o tamanho de uma LUN é sempre o apropriado para cada aplicação.
Migração de dados sem interrupções
Movimentação de dados não deve exigir um tempo de inactividade. A virtualização de armazenamento de dados suporta a migração e replicação de LUNs entre sistemas de armazenamento. Isto é particularmente útil quando um sistema de armazenamento deve ser desligado para manutenção ou substituição. Com o armazenamento virtualizado, migrações de dados podem ser fluidas e até automatizadas. Simplesmente mudando o esquema de mapeamento, a virtualização pode mover a localização de dados sem interromper as E/S, permitindo a movimentação de dados eficiente e sem interrupções.
Uma vez que o espaço de armazenamento é dissociado de um disco físico ou conjunto de armazenamento, é simples migrar e copiar esse armazenamento virtual entre sistemas ou localizações geográficas. Por exemplo, uma LUN virtual pode ser migrada de um antigo sistema de armazenamento para um mais novo sem fazer nenhum ajuste nas aplicações. Da mesma forma, uma LUN virtual pode ser copiada para outro sistema de armazenamento local para fins de backup, ou replicada para um local de armazenamento exterior para fins de recuperação de desastres.
Gestão Centralizada
Outra grande vantagem da virtualização é que a gestão do armazenamento pode ser muito simplificada. Podem gerir-se vários subsistemas (muitas vezes heterogéneos) de armazenamento através de um mecanismo único: o controlador de virtualização, gerindo um ambiente de armazenamento virtualizado. Um administrador de armazenamento pode ver as tendências de utilização e padrões de crescimento de forma mais clara e fazer melhores decisões de planeamento. A gestão de armazenamento tradicional (tal como a criação e manutenção de grupos RAID) ainda é necessária, mas agora o administrador pode reservar armazenamento a partir de um local central e ver todo o armazenamento disponível a partir de uma única interface.
A virtualização traz eficiência para o ambiente de armazenamento. Reunindo os recursos de armazenamento num único recurso, os administradores podem gerir todo o espaço do agrupamento, independentemente da sua localização. Isto permite uma muito melhor utilização do armazenamento, muitas vezes chegando a 80% ou mais.
Problemas da virtualização de armazenamento
Virtualizar significa dependência extra dos controladores que fazem a virtualização. Deve ser garantido que o controlador de virtualização pode suportar a carga de todos os outros sistemas de disco para quem está a virtualizar. Ou seja, é imprescindível obter um dispositivo extremamente rápido, redundante e com bastante memória, para beneficiar da virtualização de armazenamento.
Maior utilização do armazenamento significa muitas vezes um maior tráfego de armazenamento dos utilizadores e maior tráfego de migração entre sistemas de armazenamento, e isso faz com que a disponibilidade de rede seja sempre a primeira consideração para um fornecedor de soluções.
Com todos os tipos de virtualização deve-se prestar atenção ao facto de que mais pontos únicos de falha são introduzidos, que devem ser contabilizados, e a utilização de recursos é sempre maior que aquela que estimamos. É interessante pensar que o principal benefício da virtualização é maior utilização, mas uma vez que se começa a passar um determinado nível, os recursos começa a esgotar-se rapidamente.
Os fornecedores de soluções também devem considerar a interoperabilidade de produtos de virtualização no ambiente de armazenagem do cliente. Embora possa haver vantagens significativas em virtualizar um ambiente de armazenamento heterogéneo, a verdade é que nem sempre é possível.