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.
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 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:
- Implementar o modelo de infraestrutura.
- Implemente uma VM do Azure Stack Hub numa VM alojada noutro local no seu datacenter.
- 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. - Utilize o endereço IP externo ou os endereços do servidor de destino iSCSI como entradas para executar o
Connect-toiSCSITarget.ps1
script.
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
- Implementar a Infraestrutura de Cliente iSCSI com
azuredeploy.json
- 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 - 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:
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 |