Como configurar o ISCSI Server (Target) e o cliente (Iniciador) no Debian 9

Como configurar o ISCSI Server (Target) e o cliente (Iniciador) no Debian 9

No mundo do data center, grande capacidade Redes de área de armazenamento (San) tornaram -se o padrão mínimo. À medida que os provedores de nuvem e a virtualização também continuam causando impactos maciços no mundo da tecnologia, a necessidade de ainda mais espaço de armazenamento de SAN se tornou evidente.

A maioria dos hardware da SAN é composta por um controlador minimalista (ou conjunto de controladores) e uma grande coleção de unidades de alta capacidade, todas configuradas para suportar grandes quantidades de disponibilidade de dados e integridade.

Muitos desses produtos especializados são fabricados por grandes fornecedores como NetApp, Dell Equalogic, HP Storageworks ou EMC e têm preços anexados a eles que apenas as maiores empresas podem pagar.

Realisticamente, esses dispositivos nada mais são do que grandes matrizes de disco rígido com um controlador, proporcionando o espaço desses discos rígidos para clientes em rede. Muitas tecnologias existem ao longo dos anos que fornecem essa funcionalidade ou funcionalidade semelhante a um preço substancialmente mais barato.

O Debian Gnu/Linux A distribuição fornece pacotes que permitem que um sistema Debian sirva o objetivo de um dispositivo de armazenamento de nível corporativo a uma mera fração do custo! Isso permite que todos, desde usuários domésticos básicos ou grandes centros de dados, obtenham os benefícios do armazenamento da SAN sem ter que gastar uma fortuna em uma solução proprietária de fornecedores.

Este artigo analisará como um sistema Debian 9 (Stretch) pode ser configurado para servir o espaço em disco usando um sistema conhecido como Interface de pequenos computadores da Internet ou ISCSI abreviado. ISCSI é um protocolo de internet (IP) padrão baseado no fornecimento de armazenamento em bloco (disco rígido) para outros sistemas. O ISCSI funciona em um modelo de servidor cliente, mas usa nomes diferentes para distinguir o cliente do servidor.

Na terminologia ISCSI, o servidor que está servindo o 'espaço em disco'é conhecido como um ISCSI 'Alvo'E o sistema que está solicitando/utilizando o espaço em disco é conhecido como ISCSI'Iniciador'. Então, em outras palavras, um 'Iniciador'Solicita o armazenamento de bloqueio de um'Alvo'.

Configuração do ambiente

Este guia passará por uma configuração básica envolvendo um simples ISCSI servidor (alvo) e cliente (iniciador) ambos correndo Debian 9 (alongamento).

Debian ISCSI Target: 192.168.56.101/24 Armazenar: Contém dois discos rígidos extras para serem usados ​​como armazenamento na configuração do ISCSI Iniciador Debian ISCSI: 192.168.56.102/24 

A rede pode ser vista como abaixo:

Diagrama de rede ISCSI Debian ISCSI

Configuração de destino do Debian ISCSI

No ISCSI mundo, o alvo é considerado o host que contém os dispositivos de armazenamento a serem usados ​​pelo iniciador.

Neste artigo, o servidor com o IP de 192.168.56.101 está sendo usado como o alvo. Todas as configurações serão feitas nesse host para esta seção.

A primeira etapa é a instalação dos pacotes necessários para permitir que o sistema Debian sirva ISCSI alvos. Este pacote de software é conhecido como Estrutura de destino (Tgt).

O outro item que está sendo usado para este guia é o Gerenciamento de volume lógico (Lvm) ferramentas como Volumes lógicos (Eu contra) será usado como apoio de armazenamento para o alvo ISCSI.

Ambos os pacotes podem ser instalados com os seguintes comandos.

# atualização apt-get # apt-get install tgt lvm2 

Depois que os pacotes forem instalados, Lvm será usado para preparar os discos rígidos no alvo para uso como um ISCSI LUN. O primeiro comando é usado para preparar os discos para inclusão em uma configuração LVM. Certifique -se de modificar o comando conforme necessário para diferentes cenários!

# lsblk (usado apenas para confirmar os discos a serem usados ​​na configuração LVM) # pvcreate /dev /sd b, c 
Confirme e crie configuração LVM

Uma vez que os discos foram preparados com o acima 'pvcreate'Comando, é hora de criar um grupo de volume desses discos particulares. O grupo de volume é necessário para criar o Volumes lógicos que agirá como o ISCSI armazenamento mais tarde.

Para criar um grupo de volume, o 'vgcreate'Comando é necessário.

# vgcreate tecmint_iscsi /dev /sd b, c # vgs (só necessário para confirmar a criação do grupo de volume) 
Crie Grupo de Volume no Debian

Observe na saída acima de que o sistema responde que o Grupo de volume foi criado, mas é sempre uma boa ideia verificar como visto acima com o 'VGSComando. A capacidade disso grupo de volume é apenas 9.99 GB. Embora este seja um grupo de volume particularmente pequeno, o processo seria o mesmo para discos de maior capacidade!

O próximo passo é a criação do volume lógico que atuará como o disco para o ISCSI cliente (iniciador). Para este exemplo, a totalidade do grupo de volume será usado, mas não é necessário.

O volume lógico será criado usando o 'LvcreateComando.

# lvcreate -l 100%tecmint_lun1 tecmint_iscsi # lvs (simplesmente usado para confirmar a criação do volume lógico) 
Crie volume lógico no Debian

O de cima 'Lvcreate'O comando pode ser um pouco confuso à primeira vista, mas o quebra é como tal:

  • LvCreate - Comando usado para criar o volume lógico.
  • -l 100%grátis - Crie o volume lógico usando todo o espaço livre do grupo de volume.
  • -n Tecmint_lun1 - O nome do volume lógico a ser criado.
  • Tecmint_iscsi - O nome do grupo de volume para criar o volume lógico dentro.

Uma vez o volume lógico foi criado, é hora de criar o real LUN (Número da unidade lógica). O LUN será o dispositivo de armazenamento que o iniciador vai se conectar e usar mais tarde.

Criando um LUN é muito simples e requer apenas alguns passos. O primeiro passo será a criação do arquivo de configuração. Este arquivo residirá no '/etc/tgt/conf.d'Diretório e para este artigo será chamado'Tecmint_iscsi.conf'.

Para criar este arquivo, use um editor de texto.

# nano/etc/tgt/conf.d/tecmint_iscsi.conf 

Dentro deste arquivo, todas as informações de configuração necessárias para isso LUN será configurado. Existem muitas opções que podem ser colocadas neste arquivo, mas por enquanto um básico LUN com mútuo Desafio protocolo de autenticação de handshake (INDIVÍDUO) será configurado.

A definição do LUN existirá entre dois 'alvo' declarações. Para obter mais parâmetros que podem ir na declaração de destino, revise a página manual para o 'alvos.conf'arquivo emitindo'Homem 5 alvos.conf'.

 # Dispositivo fornecido como um ISCSI Target Backing-Store/Dev/Mapper/Tecmint_iscsi-Tecmint_lun1 Iniciador-Address 192.168.56.102 IndomingUser Tecmint-discsi-User Passpering Debian-discsi-Target SecretPass  

Há muita coisa acontecendo acima. Uma explicação rápida pode ser útil para a maioria.

  • O primeiro linha começa o particular ISCSI LUN configuração. Neste caso o LUN rotulado 'iqn.2018-02.Tecmint.com: lun1'. O 'iqn'Parte indica que este será um nome qualificado iSCSI. O '2018-02'É uma combinação de data escolhida arbitrariamente. 'Tecmint.com'É o domínio que esse lun em particular pertence. Finalmente, o 'LUN1'é usado como o nome para este alvo em particular.
  • O segundo A linha acima ilustra um comentário. Os comentários podem existir nos arquivos de configuração de destino e devem ser precedidos com um '#'Símbolo.
  • O terceiro linha é onde existe o espaço de armazenamento real que será usado pelo iniciador. Nesse caso, o apoio de armazenamento será o volume lógico que foi criado anteriormente no guia.
  • O quarto linha é o endereço IP que é esperado do iniciador. Embora este não seja um item de configuração necessário, ele pode ajudar a aumentar a segurança.
  • O quinto linha é o nome de usuário/senha recebido. Muito parecido com o endereço do iniciador acima, esse parâmetro também não é necessário, mas pode ajudar a proteger o LUN. Como este guia também está cobrindo o ISCSI Mutual Chap, este parâmetro é necessário. Esta linha indica o nome de usuário e a senha que o alvo esperará do iniciador para se conectar a este LUN.
  • O sexto Line é o nome de usuário/senha que o alvo fornecerá ao iniciador para permitir a autenticação mútua do CHAP. Normalmente, este parâmetro não é necessário, mas este artigo está cobrindo a autenticação de CHAP mútuo, para que este parâmetro seja necessário.
  • A linha final é a declaração de fechamento para a definição de destino. Preste atenção à barra de fechamento na frente do alvo de palavras -chave!

Depois que as configurações apropriadas para o LUN forem digitadas, salve as alterações e saia do editor de texto. Se estiver usando Nano, bater Ctrl+o Para salvar e depois bater Ctrl+x Para sair de Nano.

Crie arquivo de configuração LUN

Depois que o arquivo de configuração for criado, o tgt O serviço deve ser reiniciado tgt está ciente do novo alvos e a configuração associada.

Isso pode ser feito com um dos seguintes comandos e depende do sistema init em uso.

# Serviço TGT RESTART (para sistemas sysv init) # SystemCtl Reiniciar TGT (para sistemas Systemd init) 

Uma vez tgt foi reiniciado, é importante verificar para garantir que o ISCSI Target está sendo disponibilizado de acordo com o arquivo de configuração criado.

Isso pode ser realizado com o 'tgtadmComando.

# tgtadm -Modo Target -Show (isso mostrará todos os alvos) 
Mostre todos os alvos ISCSI

Isso conclui a configuração do alvo. A próxima seção funcionará através da configuração do iniciador.

Configuração do Iniciador ISCSI Debian ISCSI

O próximo passo usando o configurado anteriormente ISCSI Target é a configuração do Iniciador ISCSI.

Um sistema Debian 9 diferente será usado como o iniciador Neste artigo, mas qualquer sistema que possa utilizar o protocolo ISCSI pode se conectar ao destino configurado anteriormente; Isso pode incluir hipervisores como Xenserver/Esxi ou outras distribuições como Red Hat, Debian ou Ubuntu.

O primeiro passo neste processo para isso Iniciador Debian é a instalação dos pacotes adequados para ISCSI.

# atualização apt-get # install apt-get 

Depois que o apt terminar a configuração do aberto-discsi pacotes, o Iniciador ISCSI A configuração pode começar. O primeiro passo será se comunicar com o alvo Para obter as informações de configuração inicial para o alvo preparado.

# iscsiadm -m descoberta -t st -p 192.168.56.101 

Quando esse comando for executado, ele responderá com o nome do LUN configurado anteriormente para este host em particular. O comando acima também gerará dois arquivos para as informações de LUN recém -descobertas.

Conecte o servidor de destino ISCSI

Agora o arquivo criado para este nó precisará ter o INDIVÍDUO informações configuradas para isso ISCSI Target para realmente ser acessível pelo iniciador.

Tecnicamente, essas informações podem ser configuradas para todo o sistema como um todo, mas no caso de um host se conectar a diferentes LUNS Com credenciais diferentes, colocar essas credenciais no arquivo de configuração de nós específicos pode mitigar quaisquer problemas.

O arquivo de configuração do nó existirá no diretório '/etc/iscsi/nós/'e terá um diretório por LUN disponível. No caso deste artigo (observe que os caminhos mudarão se os nomes/endereços IP forem alterados).

#/etc/iscsi/nós/iqn.2018-02.Tecmint.com \: lun1/192.168.56.101 \, 3260 \, 1/padrão 

Para trabalhar com este arquivo, qualquer editor de texto pode ser usado.

# nano/etc/iscsi/nós/iqn.2018-02.Tecmint.com \: lun1/192.168.56.101 \, 3260 \, 1/padrão 

Dentro deste arquivo, haverá várias opções já configuradas para os respectivos alvo que foram determinados durante o 'ISCSIADM'Comando executado anteriormente.

Desde este debian em particular alvo/iniciador A configuração está usando mútuos INDIVÍDUO, Mais algumas opções precisam ser alteradas e adicionadas a este arquivo e depois um login para o ISCSI Target realizado.

As mudanças neste arquivo são:

nó.sessão.Auth.AuthMethod = Chap #Nó de autenticação de capítulo.sessão.Auth.Nome de usuário = Tecmint-discsi-User #Target to Initiator Authentication Node.sessão.Auth.Senha = senha #Target to Initiator Authentication Node.sessão.Auth.UserName_in = Debian-discsi-Target #initiator para direcionar o nó de autenticação.sessão.Auth.Password_in = SecretPass #Initiator para direcionar a autenticação 

As opções acima permitirão isso alvo para autenticar para o iniciador bem como permitir o iniciador para autenticar para o alvo.

Há outra opção nesse arquivo específico que pode precisar ser alterado dependendo das preferências do administrador e que é o 'nó.comece'Parâmetro.

Se seguir este guia, o 'nó.comece'A opção será definida como'manual' neste ponto. Isso pode não ser desejado. Se o administrador deseja ter o ISCSI Target conectado quando o sistema é iniciado, mude 'manual' para 'automático' Como tal:

nó.startup = automático 

Depois que as alterações acima forem feitas, salve o arquivo e saia. Neste ponto Iniciador Open-UCSI o serviço precisa ser reiniciado para ler essas novas alterações e se conectar ao ISCSI Target.

Isso pode ser realizado com um dos seguintes comandos, dependendo do sistema init em uso.

# Serviço Reiniciar o Open-UCSI (para Sysv Init Systems) # SystemCtl Reiniciar o Open-Uncsi (para sistemas Systemd init) 
Reinicie o iniciador ISCSI aberto

Observe na caixa verde acima que o Iniciador ISCSI foi capaz de fazer login no alvo. Para confirmar ainda mais que o ISCSI Target está realmente disponível para o iniciador, Podemos verificar o sistema para unidades de disco extras disponíveis usando o 'LSBLK'Comando e verificando a saída para unidades extras.

# lsblk 
Verifique o disco de destino ISCSI

O outro comando que pode ser usado no iniciador Para confirmar uma conexão com o alvo é 'ISCSIADM' Como tal:

# ISCSIADM -M Sessão 
Confirme a conexão com o alvo ISCSI

O local final para confirmar uma conexão seria no alvo ele mesmo usando o 'tgtadmComando para listar quaisquer conexões ISCSI.

# tgtadm -Mode Conn --p Show - -Tid 1 
Liste conexões ISCSI

A partir deste ponto, o recém -anexado ISCSI O dispositivo pode ser usado semelhante a qualquer disco normalmente anexado! Particionamento, criação do sistema de arquivos, montagem e/ou montagem persistente podem ser tratados normalmente.

Um grande cautela a estar ciente de ISCSI dispositivos é se o ISCSI Target contém sistemas de arquivos importantes necessários como o iniciador está inicializando, certifique -se de usar o '_netdev'entrada no'/etc/fstab'arquivo para garantir que o dispositivo iSCSI esteja conectado antes que o sistema continue a inicialização!