Pesquisa de site

Como criar e adicionar repositórios de armazenamento Citrix XenServer - Parte 4


No quarto artigo desta série XenServer, serão discutidas soluções de armazenamento. Assim como as redes, as soluções de armazenamento no XenServer costumam ser difíceis de entender no início. Antes de iniciar qualquer configuração, a nova terminologia e conceitos envolvidos no armazenamento XenServer devem ser discutidos.

Atualização: Em maio de 2016, a Citrix lançou a nova versão da plataforma XenServer 7. Para instalação siga: Nova instalação do XenServer 7.

O XenServer introduz vários termos novos na lista de terminologia de armazenamento tradicional. Embora a compreensão dos conceitos seja sempre importante ao trabalhar com qualquer sistema de TI, o armazenamento não é tão crucial quanto o artigo anterior que aborda conceitos de rede. No entanto, este artigo ainda dedicará algum tempo para explicar e tentar esclarecer esses conceitos de armazenamento.

A primeira coisa a lembrar com o armazenamento XenServer é que temos armazenamento para o host XenServer real e também temos armazenamento para o convidado ou máquinas virtuais que serão executadas no host XenServer. Conceitualmente, isso é simples de entender, mas gerenciá-lo pode ser uma tarefa difícil se o administrador não estiver familiarizado com os propósitos de cada um dos aspectos de armazenamento.

O primeiro termo é conhecido como ‘SR’ ou Repositório de Armazenamento. Este é sem dúvida o termo mais importante no armazenamento XenServer, pois representa o meio físico no qual os discos da máquina virtual serão armazenados e recuperados. Os repositórios de armazenamento podem ser qualquer um dos vários tipos diferentes de sistemas de armazenamento, incluindo armazenamento local conectado fisicamente ao host XenServer, iSCSI/Fibre Channel LUN, compartilhamentos de arquivos de rede NFS ou armazenamento em um dispositivo de armazenamento Dell/NetApp.

Os repositórios de armazenamento podem ser compartilhados ou dedicados e podem suportar vários recursos úteis, como clonagem rápida, alocação esparsa (armazenamento provisionado conforme a necessidade da máquina virtual) e imagens de disco virtual redimensionáveis (mais sobre isso posteriormente).

Os repositórios de armazenamento, SR, são conectados logicamente a um host XenServer com o que é conhecido como um Dispositivo de Bloco Físico, mais comumente referido como ‘PBD’. O PBD é simplesmente uma referência a um local de armazenamento. Esses objetos PBD podem ser “conectados” a um host XenServer para permitir que esse host leia/grave informações naquele repositório de armazenamento.

O objetivo dos repositórios de armazenamento é principalmente armazenar os arquivos de Virtual Disk Image (VDI) da máquina virtual. Os arquivos VDI são pontos em um SR que foram alocados para armazenar o sistema operacional e outros arquivos da máquina virtual em execução no host XenServer. Os arquivos VDI podem ser de vários tipos diferentes. O tipo é determinado pelo tipo de repositório de armazenamento.

Os tipos comuns de VDI no XenServer são volumes lógicos (LV) gerenciados pelo Logical Volume Manager, disco rígido virtual (VHD) ou podem ser números de unidade lógica (LUN) em um dispositivo de armazenamento Dell ou NetApp. Observação: este artigo usará LUNs em um dispositivo de armazenamento Dell.

Esses arquivos VDI são conectados logicamente a máquinas virtuais por meio de um objeto conhecido como Virtual Block Device, comumente referido como ‘VBD’. Esses objetos VBD podem ser anexados a convidados virtuais, o que permite que a máquina convidada acesse os dados armazenados naquele VDI específico em um respectivo SR.

Assim como a rede no XenServer, ler sobre armazenamento é uma coisa, mas ser capaz de ver o relacionamento entre cada um desses itens geralmente solidifica os conceitos. Os diagramas comuns usados para representar os conceitos de armazenamento do XenServer muitas vezes confundem os novatos, pois os diagramas costumam ser lidos de maneira linear. Abaixo está uma imagem emprestada da Citrix.

Muitas pessoas leem isso linearmente da esquerda para a direita, pensando que cada parte é um dispositivo físico separado. Este não é o caso e muitas vezes leva a muita confusão sobre como funciona o armazenamento XenServer. O gráfico abaixo tenta explicar os conceitos de uma forma menos linear, mas mais pragmática.

Esperamos que o gráfico acima não confunda ainda mais as pessoas sobre o armazenamento XenServer. A segunda imagem é uma tentativa de mostrar as conexões lógicas (PBD e VBD) usadas para conectar XenServers e convidados ao armazenamento remoto por meio de uma conexão de rede real.

Com a conceituação fora do caminho; a configuração pode começar. Lembrando do primeiro artigo desta série, este guia usa um dispositivo de armazenamento iSCSI Dell PS5500E para o armazenamento dos discos da máquina virtual (convidados). Este guia não abordará a configuração do dispositivo Dell iSCSI.

Configuração do sistema:

  1. XenServer 6.5 instalado e corrigido (Parte 1 da série)
  2. Dispositivo iSCSI Dell PS5500E (outros dispositivos iSCSI podem ser usados, bastando substituir as informações do ambiente quando necessário).
  3. Interfaces de rede XenServer configuradas (Parte 3 da série).
  4. O dispositivo iSCSI e o XenServer podem se ver logicamente (por meio do utilitário ping).
  5. Servidor CIFS (SAMBA) executando e hospedando um compartilhamento de arquivos ISO de CD (não obrigatório, mas muito útil).

Criação do repositório de armazenamento Citrix XenServer

Este primeiro processo passará pelas etapas de criação de um iniciador iSCSI de software do host XenServer para o Dell PS5500E.

Este LUN específico usa o Protocolo de Autenticação Challenge-Handshake (CHAP) para restringir o acesso ao volume iSCSI a determinadas partes autorizadas.

Para criar o repositório de armazenamento, ocorrerá um comando tradicional ‘xe’. As informações iSCSI adequadas precisam ser obtidas antes de criar o repositório de armazenamento.

Passar o parâmetro ‘sr-probe’ para o utilitário ‘xe’ instruirá o XenServer a consultar um dispositivo de armazenamento para o IQN iSCSI (nome qualificado iSCSI).

O primeiro comando parecerá intenso no início, mas não é tão ruim quanto parece.


xe sr-probe type=lvmoiscsi device-config:target=X.X.X.X device-config:chapuser="tecmint" device-config:chappassword="tecmint_chap"

Este primeiro comando é necessário para reunir o SCSI IQN para a configuração do repositório de armazenamento. Antes de prosseguir, vamos dar uma olhada em todas as partes deste comando.

  1. sr-probe – Usado para consultar o dispositivo iSCSI em busca de informações sobre o volume criado para este host XenServer.
  2. type= Usado para informar ao XenServer o tipo de repositório de armazenamento. Isso irá variar dependendo do sistema que está sendo usado. Devido ao uso do Dell PS5500, lvm sobre iSCSI é usado neste comando. Certifique-se de modificar para se adequar ao tipo de dispositivo de armazenamento.
  3. device-config:target= Usado para informar ao XenServer qual dispositivo iSCSI consultar por endereço IP.
  4. device-config:chapuser= Isso é usado para autenticar o dispositivo iSCSI. Neste exemplo, um volume iSCSI foi criado anteriormente para o usuário “tecmint ”. Ao enviar o nome de usuário e a senha neste comando, o dispositivo iSCSI responderá com as informações necessárias para finalizar a criação do repositório de armazenamento.
  5. device-config:chappassword= Esta é a senha para o nome de usuário CHAP acima.

Assim que o comando for inserido e enviado, o XenServer tentará fazer login no dispositivo iSCSI e retornará algumas informações necessárias para realmente adicionar este dispositivo iSCSI como um repositório de armazenamento.

Abaixo está o que o sistema de teste retornou deste comando.


Error code: SR_BACKEND_FAILURE_96
Error parameters: , The SCSIid parameter is missing or incorrect , <?xml version"1.0" ?>
<iscsi-target-iqns>
        <TGT>
                 <Index>
                              0
                 </Index>
                 <IPAddress>
                 </IPAddress>
                 <TargetIQN>
                              iqn.2001-05.com.equallogic:0-8a096-0d9a4ab02-46600020343560ef-xenct-xen2
                 </TargetIQN>
        </TGT>
        <TGT>
                 <Index>
                 
                 </Index>
                 <IPAddress>

                 </IPAddress>
                 <TargetIQN>

                 </TargetIQN>
        </TGT>
</iscsi-target-iqns>

A peça destacada aqui é conhecida como iSCSI IQN. Isto é muito importante e necessário para determinar o SCSIid do repositório de armazenamento. Com estas novas informações, o comando anterior pode ser modificado para obter o SCSIid.


xe sr-probe type=lvmoiscsi device-config:target=X.X.X.X device-config:targetIQN=iqn.2001-05.com.equallogic:0-8a0906-0d9a4ab02-46600020343560ef-xenct-xen2 device-config:chapuser="tecmint" device-config:chappassword="tecmint_chap"

A única coisa adicionada ao comando é a sub-rotina targetIQN. Ao emitir este novo comando, o sistema responderá com a última informação necessária para criar um repositório de armazenamento iSCSI. Essa última informação é o ID SCSI.


Error code: SR_BACKEND_FAILURE_107
Error parameters: , The SCSIid parameter is missing or incorrect , <?xml version"1.0" ?>
<iscsi-target>
        <LUN>
                 <vendor>
                        EQLOGIC
                 </vendor>
                 <serial>
                 </serial>
                 <LUNid>
                         0
                 </LUNid>
                 <size>
                         107379425280
                 </size>
                 <SCSIid>
                         36090a028b04a9a0def60353420006046
                 </SCSIid>
        </LUN>
</iscsi-target>

A partir deste ponto, todas as peças necessárias para criar um repositório de armazenamento iSCSI estão disponíveis e é hora de emitir o comando para adicionar este SR a este XenServer específico. A criação do Repositório de Armazenamento a partir das informações combinadas é feita da seguinte forma:


xe sr-create name-label="Tecmint iSCSI Storage" type=lvmoiscsi content-type=user device-config:target=X.X.X.X device-config:port=3260 device-config:targetIQN=iqn.2001-05.com.equallogic:0-8a0906-0d9a4ab02-46600020343560ef-xenct-xen2 device-config:chapuser="tecmint" device-config:chappassword="tecmint_chap" device-config:SCSIid=36090a028b04a9a0def60353420006046

Se tudo correr bem, o sistema se conectará ao dispositivo iSCSI e retornará o UUID do repositório de armazenamento recém-adicionado.


bea6caa4-ecab-8509-33a4-2cda2599fb75

A saída UUID é um ótimo sinal! Tal como acontece com todas as tarefas de administração do sistema, é sempre uma boa ideia confirmar se o comando foi bem-sucedido. Isso pode ser feito com outro comando ‘xe’.


xe sr-list name-label="Tecmint iSCSI Storage"
Saída de amostra

uuid ( RO)                 : bea6caa4-ecab-8509-33a4-2cda2599fb75
          name-label ( RW) : Tecmint iSCSI Storage
    name-description ( RW) :
                host ( RO) : xenct-xen2
                type ( RO) : lvmoiscsi
        content-type ( RO) : user

A partir da saída CLI, este XenServer se conectou com sucesso ao dispositivo Dell iSCSI e está pronto para armazenar arquivos VDI convidados.

Criação de repositório de armazenamento ISO

A próxima série de etapas percorre o processo de criação de uma biblioteca ISO. Os arquivos ISO são normalmente imagens de mídia de instalação de disco compacto (CD).

Ao ter um repositório de armazenamento especial criado para esses arquivos ISO, a instalação de novos convidados pode ser feita muito rapidamente. Quando um administrador deseja criar um novo convidado, ele pode simplesmente selecionar um dos arquivos ISO que existem nesta biblioteca ISO em vez de ter que colocar fisicamente um CD em um XenServer no pool.

Esta parte do guia irá assumir que o usuário tem um servidor SAMBA funcionando. Se um servidor SAMBA não estiver configurado, sinta-se à vontade para ler este artigo sobre como concluir esta tarefa no Red Hat/Fedora (terei um guia do servidor Debian SAMBA no futuro):

  1. Configure o servidor Samba para compartilhamento de arquivos

A primeira etapa é reunir as credenciais e informações de configuração necessárias para a biblioteca SAMBA ISO. Assim que o nome de usuário, a senha e as informações de conectividade estiverem disponíveis, uma variante simples do comando ‘xe’ pode ser usada para conectar a biblioteca SAMBA ao XenServer.


xe-mount-iso-sr //<servername>/ISO -o username=<user>,password=<password>

Este comando não exibirá nada na tela, a menos que falhe. Para confirmar se ele realmente montou o compartilhamento ISO do SAMBA, emita outro comando ‘xe’:


xe sr-list
Saída de amostra

uuid ( RO)                 : 1fd75a51-10ee-41b9-9614-263edb3f40d6
          name-label ( RW) : Remote ISO Library on: //                  /ISO
    name-description ( RW) :
                host ( RO) : xenct-xen2
                type ( RO) : iso
        content-type ( RO) : iso

Este host XenServer agora está configurado com um repositório de armazenamento iSCSI e também com uma biblioteca CIFS ISO para armazenar mídia de instalação para máquinas virtuais (convidados).

As próximas etapas serão a criação de máquinas virtuais e a conexão desses sistemas às redes adequadas do artigo anterior sobre redes.