Virtualização de armazenamento - Storage virtualization

Em ciência da computação , virtualização de armazenamento é "o processo de apresentar uma visão lógica dos recursos de armazenamento físico para" um sistema de computador host, "tratando todas as mídias de armazenamento (disco rígido, disco óptico, fita, etc.) na empresa como um único pool de armazenamento. "

Um "sistema de armazenamento" também é conhecido como array de armazenamento, array de disco ou arquivador . Os sistemas de armazenamento normalmente usam hardware e software especiais junto com unidades de disco para fornecer armazenamento muito rápido e confiável para computação e processamento de dados. Os sistemas de armazenamento são complexos e podem ser considerados como um computador de propósito especial projetado para fornecer capacidade de armazenamento junto com recursos avançados de proteção de dados. As unidades de disco são apenas um elemento em um sistema de armazenamento, junto com o hardware e o software incorporado para fins especiais dentro do sistema.

Os sistemas de armazenamento podem fornecer armazenamento acessado por bloco ou armazenamento acessado por arquivo. O acesso em bloco é normalmente fornecido por Fibre Channel , iSCSI , SAS , FICON ou outros protocolos. O acesso a arquivos geralmente é fornecido por meio de protocolos NFS ou SMB .

No contexto de um sistema de armazenamento, existem dois tipos principais de virtualização que podem ocorrer:

  • A virtualização de bloco usada neste contexto se refere à abstração (separação) do armazenamento lógico (partição) do armazenamento físico para que ele possa ser acessado independentemente do armazenamento físico ou da estrutura heterogênea. Essa separação permite aos administradores do sistema de armazenamento maior flexibilidade na forma como gerenciam o armazenamento para os usuários finais.
  • A virtualização de arquivos aborda os desafios do NAS , eliminando as dependências entre os dados acessados ​​no nível do arquivo e o local onde os arquivos são armazenados fisicamente. Isso oferece oportunidades para otimizar o uso de armazenamento e consolidação de servidor e para realizar migrações de arquivos sem interrupções.

Virtualização de blocos

Remapeamento do espaço de endereço

A virtualização de armazenamento ajuda a obter independência de localização, abstraindo a localização física dos dados. O sistema de virtualização apresenta ao usuário um espaço lógico para armazenamento de dados e lida com o processo de mapeamento para o local físico real.

É possível ter várias camadas de virtualização ou mapeamento. Então, é possível que a saída de uma camada de virtualização possa ser usada como entrada para uma camada superior de virtualização. A virtualização mapeia o espaço entre os recursos de back-end e os recursos de front-end. Nesse caso, "back-end" se refere a um número de unidade lógica (LUN) que não é apresentado a um computador ou sistema host para uso direto. Um LUN ou volume "front-end" é apresentado a um host ou sistema de computador para uso.

A forma real do mapeamento dependerá da implementação escolhida. Algumas implementações podem limitar a granularidade do mapeamento, o que pode limitar os recursos do dispositivo. As granularidades típicas variam de um único disco físico até algum pequeno subconjunto (múltiplos de megabytes ou gigabytes) do disco físico.

Em um ambiente de armazenamento baseado em bloco, um único bloco de informações é endereçado usando um identificador de LUN e um deslocamento dentro desse LUN - conhecido como endereçamento de bloco lógico (LBA).

Metadados

O software ou dispositivo de virtualização é responsável por manter uma visão consistente de todas as informações de mapeamento para o armazenamento virtualizado. Essas informações de mapeamento costumam ser chamadas de metadados e são armazenadas como uma tabela de mapeamento.

O espaço de endereço pode ser limitado pela capacidade necessária para manter a tabela de mapeamento. O nível de granularidade e o espaço endereçável total impactam diretamente no tamanho dos metadados e, portanto, na tabela de mapeamento. Por esse motivo, é comum haver trade-offs entre a quantidade de capacidade endereçável e a granularidade ou granularidade de acesso.

Um método comum para lidar com esses limites é usar vários níveis de virtualização. Em vários sistemas de armazenamento implantados hoje, é comum utilizar três camadas de virtualização.

Algumas implementações não usam uma tabela de mapeamento e, em vez disso, calculam os locais usando um algoritmo. Essas implementações utilizam métodos dinâmicos para calcular a localização no acesso, em vez de armazenar as informações em uma tabela de mapeamento.

Redirecionamento de E / S

O software ou dispositivo de virtualização usa os metadados para redirecionar as solicitações de E / S. Ele receberá uma solicitação de I / O de entrada contendo informações sobre a localização dos dados em termos de disco lógico (vdisk) e a traduz em uma nova solicitação de I / O para a localização do disco físico.

Por exemplo, o dispositivo de virtualização pode:

  • Receba uma solicitação de leitura para vdisk LUN ID = 1, LBA = 32
  • Execute uma pesquisa de metadados para LUN ID = 1, LBA = 32 e encontre este mapeia para LUN ID físico = 7, LBA0
  • Envia uma solicitação de leitura para o LUN ID = 7 físico, LBA0
  • Recebe os dados de volta do LUN físico
  • Envia os dados de volta ao originador como se tivessem vindo do vdisk LUN ID = 1, LBA32

Capacidades

A maioria das implementações permite o gerenciamento heterogêneo de dispositivos de armazenamento de vários fornecedores dentro do escopo de uma determinada matriz de suporte de implementação. Isso significa que os recursos a seguir não estão limitados a um único dispositivo do fornecedor (como acontece com recursos semelhantes fornecidos por controladores de armazenamento específicos) e são de fato possíveis em dispositivos de diferentes fornecedores.

Replicação

As técnicas de replicação de dados não se limitam aos dispositivos de virtualização e, como tal, não são descritas aqui em detalhes. No entanto, a maioria das implementações fornecerá alguns ou todos esses serviços de replicação.

Quando o armazenamento é virtualizado, os serviços de replicação devem ser implementados acima do software ou dispositivo que está executando a virtualização. Isso é verdade porque é apenas acima da camada de virtualização que uma imagem verdadeira e consistente do disco lógico (vdisk) pode ser copiada. Isso limita os serviços que algumas implementações podem implementar - ou os torna seriamente difíceis de implementar. Se a virtualização for implementada na rede ou superior, isso tornará qualquer serviço de replicação fornecido pelos controladores de armazenamento subjacentes inúteis.

  • Replicação remota de dados para recuperação de desastres
    • Espelhamento síncrono - em que a conclusão de E / S é retornada apenas quando o site remoto reconhece a conclusão. Aplicável para distâncias mais curtas (<200 km)
    • Espelhamento assíncrono - em que a conclusão de E / S é retornada antes que o site remoto tenha confirmado a conclusão. Aplicável para distâncias muito maiores (> 200 km)
  • Instantâneos pontuais para copiar ou clonar dados para diversos usos

Pooling

Os recursos de armazenamento físico são agregados em pools de armazenamento, a partir dos quais o armazenamento lógico é criado. Mais sistemas de armazenamento, que podem ser de natureza heterogênea, podem ser adicionados como e quando necessário, e o espaço de armazenamento virtual aumentará na mesma quantidade. Esse processo é totalmente transparente para os aplicativos que usam a infraestrutura de armazenamento.

Gerenciamento de Disco

O software ou dispositivo que fornece virtualização de armazenamento torna-se um gerenciador de disco comum no ambiente virtualizado. Os discos lógicos (vdisks) são criados pelo software ou dispositivo de virtualização e são mapeados (tornados visíveis) para o host ou servidor necessário, fornecendo assim um local ou forma comum para gerenciar todos os volumes no ambiente.

Recursos aprimorados são fáceis de fornecer neste ambiente:

  • Provisionamento dinâmico para maximizar a utilização do armazenamento
    • Isso é relativamente fácil de implementar, pois o armazenamento físico só é alocado na tabela de mapeamento quando é usado.
  • Expansão e redução do disco
    • Mais armazenamento físico pode ser alocado adicionando à tabela de mapeamento (assumindo que o sistema em uso pode lidar com a expansão online)
    • Da mesma forma, os discos podem ser reduzidos em tamanho removendo algum armazenamento físico do mapeamento (os usos para isso são limitados, pois não há garantia do que reside nas áreas removidas)

Benefícios

Migração de dados sem interrupções

Um dos principais benefícios de abstrair o host ou servidor do armazenamento real é a capacidade de migrar dados enquanto mantém o acesso de E / S simultâneo.

O host só conhece o disco lógico (o LUN mapeado) e, portanto, quaisquer alterações no mapeamento de metadados são transparentes para o host. Isso significa que os dados reais podem ser movidos ou replicados para outro local físico sem afetar a operação de nenhum cliente. Quando os dados foram copiados ou movidos, os metadados podem simplesmente ser atualizados para apontar para o novo local, liberando assim o armazenamento físico no local antigo.

O processo de mover o local físico é conhecido como migração de dados . A maioria das implementações permite que isso seja feito de uma maneira sem interrupções, ou seja, simultaneamente, enquanto o host continua a realizar E / S para o disco lógico (ou LUN).

A granularidade do mapeamento determina a rapidez com que os metadados podem ser atualizados, quanta capacidade extra é necessária durante a migração e com que rapidez o local anterior é marcado como livre. Quanto menor a granularidade, mais rápida é a atualização, menos espaço necessário e mais rápido o armazenamento antigo pode ser liberado.

Existem muitas tarefas do dia a dia que um administrador de armazenamento deve realizar, que podem ser realizadas de forma simples e simultânea usando técnicas de migração de dados.

  • Movendo dados de um dispositivo de armazenamento superutilizado.
  • Movendo dados para um dispositivo de armazenamento mais rápido conforme as necessidades exigem
  • Implementando uma política de gerenciamento do ciclo de vida da informação
  • Migração de dados de dispositivos de armazenamento mais antigos (sendo descartados ou off-lease)

Melhor utilização

A utilização pode ser aumentada em virtude dos serviços de pooling, migração e thin provisioning. Isso permite que os usuários evitem a compra e o provisionamento excessivo de soluções de armazenamento. Em outras palavras, esse tipo de utilização por meio de um pool compartilhado de armazenamento pode ser alocado de maneira fácil e rápida, pois é necessário para evitar restrições na capacidade de armazenamento que muitas vezes prejudicam o desempenho do aplicativo.

Quando toda a capacidade de armazenamento disponível é agrupada, os administradores do sistema não precisam mais procurar discos que tenham espaço livre para alocar a um determinado host ou servidor. Um novo disco lógico pode ser simplesmente alocado do pool disponível ou um disco existente pode ser expandido.

O pooling também significa que toda a capacidade de armazenamento disponível pode ser potencialmente usada. Em um ambiente tradicional, um disco inteiro seria mapeado para um host. Isso pode ser maior do que o necessário, desperdiçando espaço. Em um ambiente virtual, o disco lógico (LUN) é atribuído à capacidade exigida pelo host em uso.

O armazenamento pode ser atribuído onde for necessário naquele momento, reduzindo a necessidade de adivinhar quanto um determinado host precisará no futuro. Usando o Thin Provisioning , o administrador pode criar um disco lógico thin provisioned muito grande, portanto, o sistema que o usa pensa que tem um disco muito grande desde o primeiro dia.

Menos pontos de gestão

Com a virtualização de armazenamento, vários dispositivos de armazenamento independentes, mesmo se espalhados por uma rede, parecem ser um único dispositivo de armazenamento monolítico e podem ser gerenciados centralmente.

No entanto, o gerenciamento tradicional do controlador de armazenamento ainda é necessário. Ou seja, a criação e manutenção de matrizes RAID , incluindo gerenciamento de erros e falhas.

Riscos

Retirando uma implementação com falha

Uma vez que a camada de abstração está no lugar, apenas o virtualizador sabe onde os dados realmente residem no meio físico. Fazer backup de um ambiente de armazenamento virtual, portanto, requer a reconstrução dos discos lógicos como discos contíguos que podem ser usados ​​de maneira tradicional.

A maioria das implementações fornecerá alguma forma de procedimento de retrocesso e, com os serviços de migração de dados, é pelo menos possível, mas demorado.

Interoperabilidade e suporte do fornecedor

A interoperabilidade é um facilitador chave para qualquer software ou dispositivo de virtualização. Ele se aplica aos controladores de armazenamento físico reais e aos hosts, seus sistemas operacionais, software multipath e hardware de conectividade.

Os requisitos de interoperabilidade diferem com base na implementação escolhida. Por exemplo, a virtualização implementada em um controlador de armazenamento não adiciona sobrecarga extra à interoperabilidade baseada em host, mas exigirá suporte adicional de outros controladores de armazenamento se eles forem virtualizados pelo mesmo software.

A virtualização baseada em switch pode não exigir interoperabilidade de host específica - se usar técnicas de cracking de pacotes para redirecionar a E / S.

Os dispositivos baseados em rede têm o mais alto nível de requisitos de interoperabilidade, pois precisam interoperar com todos os dispositivos, armazenamento e hosts.

Complexidade

A complexidade afeta várias áreas:

  • Gerenciamento do ambiente: embora uma infraestrutura de armazenamento virtual se beneficie de um único ponto de gerenciamento de serviço de replicação e disco lógico, o armazenamento físico ainda deve ser gerenciado. A determinação de problemas e o isolamento de falhas também podem se tornar complexos, devido à camada de abstração.
  • Design de infraestrutura: a ética de design tradicional pode não se aplicar mais, a virtualização traz uma ampla gama de novas idéias e conceitos para pensar (conforme detalhado aqui)
  • O software ou dispositivo em si: Algumas implementações são mais complexas para projetar e codificar - baseado em rede, especialmente em projetos in-band (simétricos) - essas implementações realmente lidam com as solicitações de E / S e, portanto, a latência se torna um problema.

Gerenciamento de metadados

A informação é um dos ativos mais valiosos nos ambientes de negócios atuais. Depois de virtualizados, os metadados são a cola no meio. Se os metadados forem perdidos, todos os dados reais também serão perdidos, pois seria virtualmente impossível reconstruir as unidades lógicas sem as informações de mapeamento.

Qualquer implementação deve garantir sua proteção com níveis apropriados de backups e réplicas. É importante ser capaz de reconstruir os metadados no caso de uma falha catastrófica.

O gerenciamento de metadados também tem implicações no desempenho. Qualquer software ou dispositivo de virtualização deve ser capaz de manter todas as cópias dos metadados atômicas e rapidamente atualizáveis. Algumas implementações restringem a capacidade de fornecer certas funções de atualização rápida, como cópias point-in-time e cache, onde atualizações super rápidas são necessárias para garantir latência mínima para a E / S real que está sendo executada.

Desempenho e escalabilidade

Em algumas implementações, o desempenho do armazenamento físico pode realmente ser melhorado, principalmente devido ao armazenamento em cache. O armazenamento em cache, entretanto, requer a visibilidade dos dados contidos na solicitação de E / S e, portanto, é limitado a software e dispositivos de virtualização simétrica e in-band. No entanto, essas implementações também influenciam diretamente a latência de uma solicitação de I / O (perda de cache), devido à necessidade de fluxo de I / O através do software ou dispositivo. Supondo que o software ou dispositivo seja projetado de forma eficiente, esse impacto deve ser mínimo quando comparado com a latência associada aos acessos ao disco físico.

Devido à natureza da virtualização, o mapeamento de lógico para físico requer algum poder de processamento e tabelas de pesquisa. Portanto, cada implementação adicionará uma pequena quantidade de latência.

Além das preocupações com o tempo de resposta, o rendimento deve ser considerado. A largura de banda de entrada e saída do software de pesquisa de metadados impacta diretamente a largura de banda disponível do sistema. Em implementações assimétricas, onde a pesquisa de metadados ocorre antes de as informações serem lidas ou gravadas, a largura de banda é menos preocupante, pois os metadados são uma pequena fração do tamanho real de E / S. O fluxo simétrico dentro da banda através de designs é diretamente limitado por seu poder de processamento e larguras de banda de conectividade.

A maioria das implementações fornece alguma forma de modelo de scale-out, em que a inclusão de software adicional ou instâncias de dispositivo fornece maior escalabilidade e potencialmente maior largura de banda. As características de desempenho e escalabilidade são diretamente influenciadas pela implementação escolhida.

Abordagens de implementação

  • Baseado em host
  • Com base em dispositivo de armazenamento
  • Baseado em rede

Baseado em host

A virtualização baseada em host requer software adicional em execução no host, como uma tarefa ou processo privilegiado. Em alguns casos, o gerenciamento de volume é integrado ao sistema operacional e, em outros, é oferecido como um produto separado. Os volumes (LUNs) apresentados ao sistema host são controlados por um driver de dispositivo físico tradicional. No entanto, uma camada de software (o gerenciador de volume) reside acima do driver do dispositivo de disco, intercepta as solicitações de E / S e fornece a pesquisa de metadados e o mapeamento de E / S.

A maioria dos sistemas operacionais modernos tem alguma forma de gerenciamento de volume lógico embutido (no Linux chamado Logical Volume Manager ou LVM; no Solaris e FreeBSD, camada zpool do ZFS ; no Windows chamado Logical Disk Manager ou LDM), que executa tarefas de virtualização.

Nota: Os gerenciadores de volume baseados em host já estavam em uso muito antes de o termo virtualização de armazenamento ser cunhado.

Prós
  • Simples de projetar e codificar
  • Suporta qualquer tipo de armazenamento
  • Melhora a utilização do armazenamento sem restrições de provisionamento thin
Contras
  • Utilização de armazenamento otimizada apenas por host
  • A replicação e a migração de dados só são possíveis localmente para esse host
  • O software é exclusivo para cada sistema operacional
  • Não é uma maneira fácil de manter as instâncias do host em sincronia com outras instâncias
  • A recuperação de dados tradicional após uma falha na unidade de disco do servidor é impossível

Exemplos específicos

Com base em dispositivo de armazenamento

Assim como a virtualização baseada em host, várias categorias existem há anos e só recentemente foram classificadas como virtualização. Dispositivos de armazenamento de dados simples, como unidades de disco rígido individuais , não fornecem virtualização. Mas mesmo as matrizes de disco mais simples fornecem uma abstração lógica para física, já que usam esquemas RAID para unir vários discos em uma única matriz (e possivelmente dividir a matriz em volumes menores).

As matrizes de disco avançadas costumam apresentar clonagem, instantâneos e replicação remota. Geralmente, esses dispositivos não oferecem os benefícios da migração ou replicação de dados em armazenamento heterogêneo, pois cada fornecedor tende a usar seus próprios protocolos proprietários.

Uma nova geração de controladores de matriz de disco permite a conexão downstream de outros dispositivos de armazenamento. Para os fins deste artigo, discutiremos apenas o estilo posterior que realmente virtualiza outros dispositivos de armazenamento.

Conceito

Um controlador de armazenamento primário fornece os serviços e permite a conexão direta de outros controladores de armazenamento. Dependendo da implementação, podem ser do mesmo fornecedor ou de fornecedores diferentes.

O controlador primário fornecerá os serviços de gerenciamento de metadados e pooling. Ele também pode fornecer serviços de replicação e migração entre os controladores que é.

Prós
  • Sem requisitos adicionais de hardware ou infraestrutura
  • Oferece a maioria dos benefícios da virtualização de armazenamento
  • Não adiciona latência a I / Os individuais
Contras
  • Utilização de armazenamento otimizada apenas nos controladores conectados
  • A replicação e a migração de dados só são possíveis entre os controladores conectados e o dispositivo do mesmo fornecedor para suporte de longa distância
  • Conexão do controlador downstream limitada à matriz de suporte dos fornecedores
  • Latência de E / S, acessos sem cache exigem que o controlador de armazenamento primário emita uma solicitação de E / S de downstream secundária
  • Aumento no recurso de infraestrutura de armazenamento, o controlador de armazenamento primário requer a mesma largura de banda que os controladores de armazenamento secundário para manter a mesma taxa de transferência

Baseado em rede

Virtualização de armazenamento operando em um dispositivo baseado em rede (normalmente um servidor padrão ou switch inteligente) e usando redes iSCSI ou FC Fibre Channel para se conectar como SAN . Esses tipos de dispositivos são a forma de virtualização mais comumente disponível e implementada.

O dispositivo de virtualização fica na SAN e fornece a camada de abstração entre os hosts que executam a E / S e os controladores de armazenamento que fornecem a capacidade de armazenamento.

Prós
  • Virtualização de armazenamento verdadeiramente heterogêneo
  • O cache de dados (benefício de desempenho) é possível quando dentro da banda
  • Interface única de gerenciamento para todo o armazenamento virtualizado
  • Serviços de replicação em dispositivos heterogêneos
Contras
  • Matrizes de interoperabilidade complexas - limitadas pelo suporte dos fornecedores
  • Difícil de implementar atualizações rápidas de metadados em dispositivos baseados em comutação
  • Fora da banda requer software baseado em host específico
  • In-band pode adicionar latência ao I / O
  • In-band, o mais complicado de projetar e codificar
Baseado em dispositivo vs. baseado em switch

Existem duas implementações comumente disponíveis de virtualização de armazenamento baseada em rede, baseada em dispositivo e baseada em switch . Ambos os modelos podem fornecer os mesmos serviços, gerenciamento de disco, pesquisa de metadados, migração de dados e replicação. Ambos os modelos também requerem algum hardware de processamento para fornecer esses serviços.

Dispositivos baseados em dispositivo são dispositivos de hardware dedicados que fornecem conectividade SAN de uma forma ou de outra. Eles ficam entre os hosts e o armazenamento e, no caso de dispositivos em banda (simétricos), podem fornecer todos os benefícios e serviços discutidos neste artigo. As solicitações de E / S são direcionadas ao próprio dispositivo, que realiza o mapeamento de metadados antes de redirecionar a E / S enviando sua própria solicitação de E / S para o armazenamento subjacente. O dispositivo in-band também pode fornecer armazenamento em cache de dados, e a maioria das implementações fornece alguma forma de armazenamento em cluster de dispositivos individuais para manter uma visão atômica dos metadados, bem como dos dados de cache.

Dispositivos baseados em switch, como o nome sugere, residem no hardware de switch físico usado para conectar os dispositivos SAN. Eles também ficam entre os hosts e o armazenamento, mas podem usar técnicas diferentes para fornecer o mapeamento de metadados, como cracking de pacotes para espionar solicitações de I / O de entrada e executar o redirecionamento de I / O. É muito mais difícil garantir atualizações atômicas de metadados em um ambiente comutado e serviços que requerem atualizações rápidas de dados e metadados podem ser limitados em implementações comutadas.

In-band vs. out-of-band

Dispositivos de virtualização in-band , também conhecidos como simétricos , ficam no caminho de dados entre o host e o armazenamento. Todas as solicitações de I / O e seus dados passam pelo dispositivo. Os hosts executam E / S para o dispositivo de virtualização e nunca interagem com o dispositivo de armazenamento real. O dispositivo de virtualização, por sua vez, executa E / S para o dispositivo de armazenamento. Cache de dados, estatísticas sobre o uso de dados, serviços de replicação, migração de dados e provisionamento thin são facilmente implementados em um dispositivo in-band.

Dispositivos de virtualização fora da banda , também conhecidos como assimétricos , às vezes são chamados de servidores de metadados . Esses dispositivos executam apenas as funções de mapeamento de metadados. Isso requer software adicional no host que sabe primeiro solicitar a localização dos dados reais. Portanto, uma solicitação de I / O do host é interceptada antes de deixar o host, uma pesquisa de metadados é solicitada do servidor de metadados (isso pode ser por meio de uma interface diferente da SAN) que retorna a localização física do dados para o host. As informações são então recuperadas por meio de uma solicitação de E / S real para o armazenamento. O armazenamento em cache não é possível, pois os dados nunca passam pelo dispositivo.

Virtualização baseada em arquivo

Um sinônimo usado para virtualização NAS.

Veja também

Referências