Ligar ao armazenamento iSCSI com o Azure Stack Hub

Pode utilizar o modelo neste artigo para ligar uma máquina virtual (VM) do Azure Stack Hub a um destino iSCSI no local para configurar a VM para utilizar o armazenamento alojado fora do nosso Azure Stack Hub e noutros locais do seu datacenter. Este artigo analisa a utilização de um computador Windows como o destino iSCSI.

Pode encontrar o modelo no fork lucidqdreams do repositório gitHub padrões do Azure Intelligent Edge . O modelo está na pasta storage-iSCSI . O modelo foi concebido para configurar a infraestrutura necessária no lado do Azure Stack Hub para ligar a um destino iSCSI. Isto inclui uma máquina virtual que funcionará como Iniciador iSCSI, juntamente com a VNet, NSG, PIP e armazenamento que acompanham. Após a implementação do modelo, têm de ser executados dois scripts do PowerShell para concluir a configuração. Será executado um script na VM no local (destino) e um será executado na VM (Iniciador) do Azure Stack Hub. Assim que estes estiverem concluídos, terá o armazenamento no local adicionado à VM do Azure Stack Hub.

Descrição Geral

O diagrama mostra uma VM alojada no Azure Stack Hub com um disco montado iSCSI a partir de um computador Windows no local (físico ou virtual), permitindo que o armazenamento externo ao Azure Stack Hub seja montado dentro da VM alojada do Azure Stack Hub através do protocolo iSCSI.

O diagrama mostra uma VM alojada no Azure Stack Hub a aceder a um disco iSCSI externo montado.

Requisitos

  • Uma máquina no local (física ou virtual) com Windows Server 2016 Datacenter ou Windows Server 2019 Datacenter.
  • Itens necessários do Marketplace do Azure Stack Hub:
    • Windows Server 2016 Datacenter ou Windows Server 2019 Datacenter (compilação mais recente recomendada).
    • Extensão do DSC do PowerShell.
    • Extensão de Script Personalizado.
    • Uma máquina virtual ou física existente. Idealmente, este computador terá duas placas de rede. Também pode ser outro destino iSCSI, como uma SAN, por exemplo.

Aspetos a considerar

  • É aplicado um Grupo de Segurança de Rede à Sub-rede do modelo. Reveja este procedimento e faça licenças adicionais conforme necessário.
  • Uma regra de Negação de RDP é aplicada ao NSG do Túnel e terá de ser definida para permitir se pretender aceder às VMs através do endereço IP Público.
  • Esta solução não tem em conta a resolução de DNS.
  • Deve alterar o seu Chapusername e Chappassword. O Chappassword tem de ter entre 12 e 16 carateres.
  • Este modelo está a utilizar um endereço IP estático para a VM, uma vez que a ligação iSCSI utiliza o endereço local na configuração.
  • Este modelo está a utilizar a Licença BYOL do Windows.
  • Também pode ligar sistemas baseados em Linux aos destinos iSCSI. Pode encontrar instruções no artigo Do Iniciador iSCSI na documentação do ubuntu.

Opções

  • Pode utilizar a sua própria conta de armazenamento de Blobs e token de SAS com os parâmetros _artifactsLocation e _artifactsLocationSasToken a capacidade de utilizar o seu próprio blob de armazenamento com o token SAS.
  • Este modelo fornece valores predefinidos para nomenclatura de VNet e endereçamento IP.
  • Esta configuração tem apenas uma nic iSCSI proveniente do cliente iSCSI. Testámos várias configurações para utilizar sub-redes e NICs separadas, no entanto, deparámo-nos com problemas com vários gateways e a tentar criar uma sub-rede de armazenamento separada para isolar o tráfego e ser verdadeiramente redundante.
  • Tenha cuidado para manter estes valores dentro da sub-rede legal e dos intervalos de endereços, uma vez que a implementação pode falhar.
  • O objetivo principal dos pacotes do DSC do PowerShell é verificar se existem reinícios pendentes. Este DSC pode ser personalizado ainda mais, se necessário. Para obter mais informações , veja omputerManagementDsc.

Modelo de grupo de recursos (cliente iSCSI)

O diagrama mostra os recursos implementados a partir do modelo para criar o cliente iSCSI que pode utilizar para ligar ao destino iSCSI. Este modelo irá implementar a VM e outros recursos. Além disso, irá executar o prepare-iSCSIClient.ps1 e reiniciar a VM.

O diagrama mostra os recursos implementados a partir do modelo para criar o cliente iSCSI para ligar ao destino iSCSI. Mostra um servidor de ficheiros com uma sub-rede interna e NIC (cartão de rede), PIP interno (Private Internet Protocol) e NSG (Grupo de Segurança de Rede).

O processo de implementação

O modelo do grupo de recursos gera a saída, que se destina a ser a entrada para o próximo passo. Concentra-se principalmente no nome do servidor e no endereço IP público do Azure Stack Hub onde o tráfego iSCSI tem origem. Neste exemplo:

  1. Implementar o modelo de infraestrutura.
  2. Implemente uma VM do Azure Stack Hub numa VM alojada noutro local no seu datacenter.
  3. Execute Create-iSCSITarget.ps1 com o endereço IP e as saídas de nome do servidor do modelo como parâmetros in-out para o script no destino iSCSI, que pode ser uma máquina virtual ou um servidor físico.
  4. Utilize o endereço IP externo ou os endereços do servidor de destino iSCSI como entradas para executar o Connect-toiSCSITarget.ps1 script.

O diagrama mostra os três primeiros passos listados acima e inclui entradas e saídas. Os passos são: Implementar Infraestrutura, Criar Destino iSCSI e Ligar ao iSCSI.

Entradas para azuredeploy.json

Parâmetros predefinição descrição
WindowsImageSKU 2019-Datacenter Selecione a imagem base da VM do Windows
VMSize Standard_D2_v2 Introduza o tamanho da VM
VMName FileServer o nome da VM
adminUsername storageadmin O nome do Administrador da nova VM
adminPassword A palavra-passe da conta de Administrador das novas VMs. O valor predefinido é o ID da subscrição
VNetName Armazenamento O nome da VNet. Isto será utilizado para etiquetar os recursos
VNetAddressSpace 10.10.0.0/23 Espaço de Endereços da VNet
VNetInternalSubnetName Interno Nome da Sub-rede Interna da VNet
VNetInternalSubnetRange 10.10.1.0/24 Intervalo de Endereços da Sub-rede Interna da VNet
InternalVNetIP 10.10.1.4 Endereço Estático para o IP interno do Servidor de Ficheiros.
_artifactsLocation
_artifactsLocationSasToken

Passos da implementação

  1. Implementar a Infraestrutura de Cliente iSCSI com azuredeploy.json
  2. Execute Create-iSCSITarget.ps1 no destino iSCSI do servidor no local. Assim que o modelo estiver concluído, terá de executar o Create-iSCSITarget.ps1 no destino iSCSI do servidor no local com as saídas do primeiro passo
  3. Execute Connect-toiSCSITarget.ps1 no cliente iSCSI. un the Connect-toiSCSITarget.ps1 on the on iSCSI client with the details of the iSCSI target (anular a Connect-toiSCSITarget.ps1 no cliente iSCSI com os detalhes do destino iSCSI

Adicionar armazenamento iSCSI a VMs existentes

Também pode executar os scripts numa Máquina Virtual existente para ligar do cliente iSCSI a um destino iSCSI. Este fluxo é se estiver a criar o destino iSCSI. Este diagrama mostra o fluxo de execução dos scripts do PowerShell. Estes scripts podem ser encontrados no diretório Script:

O diagrama mostra os três scripts que são discutidos abaixo. Por ordem de execução, são: Prepare-iSCSIClient.ps1( é executado no cliente), Criar iSCSITarget.ps1 (executa nos destinos) e Connect-toiSCSITarget.ps1 (exectutes no cliente).

Prepare-iSCSIClient.ps1

O Prepare-iSCSIClient.ps1 script instala os pré-requisitos no cliente iSCSI, isto inclui;

  • instalação de serviços Multipath-IO
  • definir o início automático do serviço iniciador iSCSI
  • ativar o suporte do MPIO multipath para iSCSI
  • Ativar a afirmação automática de todos os volumes iSCSI
  • Definir o tempo limite do disco para 60 segundos

É importante reiniciar o sistema após a instalação destes pré-requisitos. A política de balanceamento de carga do MPIO requer um reinício para que possa ser definida.

Create-iSCSITarget.ps1

O Create-iSCSITarget.ps1 script deve ser executado no servidor de armazenamento. Pode criar vários discos e destinos restritos por iniciadores. Pode executar este script várias vezes para criar muitos discos virtuais que pode anexar a destinos diferentes. Pode ligar vários discos a um destino.

Entrada predefinição descrição
RemoteServer FileServer O nome do servidor a ligar ao Destino iSCSI
RemoteServerIPs 1.1.1.1 O Endereço IP do qual o tráfego iSCSI será proveniente
DiskFolder C:\iSCSIVirtualDisks A pasta e a unidade onde os discos virtuais serão armazenados
DiskName DiskName O nome do ficheiro VHDX do disco
DiskSize 5 GB O tamanho do disco VHDX
TargetName RemoteTarget01 O nome de destino utilizado para definir a configuração de destino para o cliente iSCSI.
ChapUsername nome de utilizador O nome de utilizador da autenticação chap
ChapPassword userP@ssw0rd! O nome da palavra-passe da autenticação chap. Tem de ter entre 12 e 16 carateres

Connect-toiSCSITarget.ps1

O Connect-toiSCSITarget.ps1 é o script final, que é executado no cliente iSCSI e monta o disco apresentado pelo destino iSCSI para o cliente iSCSI.

Entrada predefinição descrição
TargetiSCSIAddresses "2.2.2.2","2.2.2.3" Os endereços IP do destino iSCSI
LocalIPAddresses "10.10.1.4" Este é o Endereço IP interno do qual o tráfego iSCSI será proveniente
LoadBalancePolicy C:\iSCSIVirtualDisks O Endereço IP do qual o tráfego iSCSI será proveniente
ChapUsername nome de utilizador O nome de utilizador da autenticação chap
ChapPassword userP@ssw0rd! O nome da palavra-passe da autenticação chap. Tem de ter entre 12 e 16 carateres

Passos seguintes

Diferenças e considerações sobre a rede do Azure Stack Hub