Conectar-se ao armazenamento iSCSI com o Hub de Azure StackConnect to iSCSI storage with Azure Stack Hub

Você pode usar o modelo neste artigo para conectar uma VM (máquina virtual) do hub de Azure Stack a um destino iSCSI local configure a VM para usar o armazenamento hospedado fora do nosso Hub de Azure Stack e em outro lugar em seu datacenter.You can use the template in this article to connect an Azure Stack Hub virtual machine (VM) to an on-premises iSCSI target set up the VM to use storage hosted outside of our Azure Stack Hub and elsewhere in your datacenter. Este artigo examina o uso de um computador Windows como o destino iSCSI.This article looks at using a Windows machine as the iSCSI target.

Você pode encontrar o modelo no lucidqdreams fork do repositório GitHub de padrões de borda inteligente do Azure .You can find the template in the lucidqdreams fork of Azure Intelligent Edge Patterns GitHub repository. O modelo está na pasta Storage-iSCSI .The template is in the storage-iSCSI folder. O modelo foi projetado para configurar a infraestrutura necessária no lado do hub de Azure Stack para se conectar a um destino iSCSI.The template has been designed to set up up the infrastructure necessary on the Azure Stack Hub side to connect to an iSCSI target. Isso inclui uma máquina virtual que atuará como o iniciador iSCSI junto com sua VNet, NSG, PIP e armazenamento complementares.This includes a virtual machine that will act as the iSCSI Initiator along with its accompanying VNet, NSG, PIP, and storage. Depois que o modelo tiver sido implantado, dois scripts do PowerShell precisarão ser executados para concluir a configuração.After the template has been deployed, two PowerShell scripts need to be, run to complete the configuration. Um script será executado na VM local (destino) e um será executado na VM do hub de Azure Stack (iniciador).One script will be run on the on-premises VM (target) and one will be run on the Azure Stack Hub VM (Initiator). Depois que eles forem concluídos, você terá o armazenamento local adicionado à sua VM do hub de Azure Stack.Once these are completed, you will have on-premises storage added to your Azure Stack Hub VM.

Visão geralOverview

O diagrama mostra uma VM hospedada no Hub Azure Stack com um disco montado em iSCSI de um computador Windows local (físico ou virtual), permitindo que o armazenamento externo ao Hub Azure Stack seja montado dentro de sua VM hospedada no Hub Azure Stack sobre o protocolo iSCSI.The diagram shows a VM hosted on Azure Stack Hub with an iSCSI mounted disk from a Windows machine on premises (physical or virtual) allowing storage external to Azure Stack Hub to mount inside your Azure Stack Hub hosted VM over the iSCSI protocol.

O diagrama mostra uma VM hospedada no Hub de Azure Stack que acessa um disco interno de iSCSI montado.

RequisitosRequirements

  • Um computador local (físico ou virtual) executando o Windows Server 2016 Datacenter ou o Windows Server 2019 datacenter.An on-premises machine (physical or virtual) running Windows Server 2016 Datacenter or Windows Server 2019 Datacenter.
  • Itens do Marketplace do Hub Azure Stack necessários:Required Azure Stack Hub Marketplace items:
    • Windows Server 2016 Datacenter ou Windows Server 2019 datacenter (versão mais recente recomendada).Windows Server 2016 Datacenter or Windows Server 2019 Datacenter (latest build recommended).
    • Extensão de DSC do PowerShell.PowerShell DSC extension.
    • Extensão de script personalizado.Custom Script Extension.
    • Uma máquina virtual ou física existente.An existing virtual or physical machine. Idealmente, essa máquina terá dois adaptadores de rede.Ideally this machine will have two network adapters. Isso também pode ser outro destino iSCSI, como uma SAN, por exemplo.This could also be another iSCSI target such as a SAN for instance.

Itens a serem consideradosThings to consider

  • Um grupo de segurança de rede é aplicado à sub-rede do modelo.A Network Security Group is applied to the template Subnet. Revise isso e faça concessões adicionais, conforme necessário.Review this and make additional allowances as needed.
  • Uma regra de negação de RDP é aplicada ao encapsulamento NSG e precisará ser definida para permitir que se você pretende acessar as VMs por meio do endereço IP público.An RDP Deny rule is applied to the Tunnel NSG and will need to be set to allow if you intend to access the VMs via the Public IP address.
  • Essa solução não leva em conta a resolução de DNS.This solution does not take into account DNS resolution.
  • Você deve alterar seu Chapusername e Chappassword.You should change your Chapusername and Chappassword. O Chappassword deve ter de 12 a 16 caracteres de comprimento.The Chappassword must be 12 to 16 characters in length.
  • Este modelo está usando um endereço IP estático para a VM, pois a conexão iSCSI usa o endereço local na configuração.This template is using a static IP address for the VM as the iSCSI connection uses the local address in the configuration.
  • Este modelo está usando a licença do Windows BYOL.This template is using BYOL Windows License.
  • Você também pode conectar sistemas baseados em Linux aos destinos iSCSI.You can also connect Linux-based systems to the iSCSI targets. Você pode encontrar instruções no artigo iniciador iSCSI na documentação do Ubuntu.You can find instructions in the iSCSI Initiator article in the ubuntu documentation.

OpçõesOptions

  • Você pode usar sua própria conta de armazenamento de BLOBs e token SAS usando o _artifactsLocation e _artifactsLocationSasToken parâmetros a capacidade de usar seu próprio blob de armazenamento com o token SAS.You can use your own Blob storage account and SAS token using the _artifactsLocation and _artifactsLocationSasToken parameters the ability to use your own storage blob with SAS token.
  • Este modelo fornece valores padrão para nomear VNet e endereçamento IP.This template provides default values for VNet naming and IP addressing.
  • Essa configuração tem apenas uma NIC iSCSI proveniente do cliente iSCSI.This configuration only has one iSCSI nic coming from the iSCSI client. Testamos várias configurações para utilizar sub-redes separadas e NICs, no entanto, tiveram problemas com vários gateways e tentando criar uma sub-rede de armazenamento separada para isolar o tráfego e, na verdade, ser verdadeiramente redundante.We had tested a number of configurations to utilize separate subnets and NICs however ran into issues with multiple gateways and trying to create a separate storage subnet to isolate traffic and actually be truly redundant.
  • Tenha cuidado para manter esses valores na sub-rede legal e nos intervalos de endereços, pois a implantação pode falhar.Be careful to keep these values within legal subnet and address ranges as deployment may fail.
  • O objetivo principal dos pacotes DSC do PowerShell é verificar se há reinicializações pendentes.The PowerShell DSC packages primary purpose is to check for pending reboots. Essa DSC pode ser personalizada mais detalhadamente, se necessário.This DSC can be customized further, if needed. Para obter mais informações, consulte omputerManagementDsc.For more information see omputerManagementDsc.

Modelo de grupo de recursos (cliente iSCSI)Resource group template (iSCSI client)

O diagrama mostra os recursos implantados do modelo para criar o cliente iSCSI que você pode usar para se conectar ao destino iSCSI.The diagram shows the resources deployed from the template to create the iSCSI client you can use to connect to the iSCSI target. Este modelo implantará a VM e outros recursos, além disso, executará o prepare-iSCSIClient.ps1 e reiniciará a VM.This template will deploy the VM and other resources, In addition, it will run the prepare-iSCSIClient.ps1 and reboot the VM.

O diagrama mostra os recursos implantados do modelo para criar o cliente iSCSI para se conectar ao destino iSCSI.

O processo de implantaçãoThe Deployment process

O modelo de grupo de recursos gera saída, que deve ser a entrada para a próxima etapa.The resource group template generates output, which is meant to be the input for the next step. Ele se concentra principalmente no nome do servidor e no endereço IP público do hub de Azure Stack em que o tráfego iSCSI é originado.It is mainly focused on the server name and the Azure Stack Hub public IP address where the iSCSI traffic originates. Para este exemplo:For this example:

  1. Implante o modelo de infraestrutura.Deploy the infrastructure template.
  2. Implante uma VM de Hub de Azure Stack em uma VM hospedada em outro lugar em seu datacenter.Deploy an Azure Stack Hub VM to a VM hosted elsewhere in your datacenter.
  3. Execute Create-iSCSITarget.ps1 usando o endereço IP e o nome do servidor saídas do modelo como parâmetros de entrada para o script no destino iSCSI, que pode ser uma máquina virtual ou um servidor físico.Run Create-iSCSITarget.ps1 using the IP address and server name outputs from the template as in-out parameters for the script on the iSCSI target, which can be a virtual machine or physical server.
  4. Use o endereço IP externo ou endereços do servidor de destino iSCSI como entradas para executar o Connect-toiSCSITarget.ps1 script.Use the external IP address or addresses of the iSCSI Target server as inputs to run the Connect-toiSCSITarget.ps1 script.

O diagrama mostra as três primeiras das quatro etapas listadas acima e inclui entradas e saídas.

Entradas para azuredeploy.jsemInputs for azuredeploy.json

ParâmetrosParameters defaultdefault descriçãodescription
WindowsImageSKUWindowsImageSKU 2019-Datacenter2019-Datacenter Selecione a imagem de VM do Windows basePlease select the base Windows VM image
VMSizeVMSize Standard_D2_v2Standard_D2_v2 Insira o tamanho da VMPlease enter the VM size
VMNameVMName FileServerFileServer Nome da VMVM name
adminUsernameadminUsername storageadminstorageadmin O nome do administrador da nova VMThe name of the Administrator of the new VM
adminPasswordadminPassword A senha da conta de administrador das novas VMs.The password for the Administrator account of the new VMs. O valor padrão é ID de assinaturaDefault value is subscription ID
VNetNameVNetName ArmazenamentoStorage O nome da VNet.The name of VNet. Isso será usado para rotular os recursosThis will be used to label the resources
VNetAddressSpaceVNetAddressSpace 10.10.0.0/2310.10.0.0/23 Espaço de endereço para VNetAddress Space for VNet
VNetInternalSubnetNameVNetInternalSubnetName InternaInternal Nome da sub-rede interna da VNetVNet Internal Subnet Name
VNetInternalSubnetRangeVNetInternalSubnetRange 10.10.1.0/2410.10.1.0/24 Intervalo de endereços para sub-rede interna da VNetAddress Range for VNet Internal Subnet
InternalVNetIPInternalVNetIP 10.10.1.410.10.1.4 Endereço estático para o IP interno do servidor de arquivos.Static Address for the internal IP of the File Server.
_artifactsLocation_artifactsLocation
_artifactsLocationSasToken_artifactsLocationSasToken

Etapas de implantação.Deployment steps

  1. Implantar a infraestrutura de cliente iSCSI usando azuredeploy.jsonDeploy iSCSI client Infrastructure using azuredeploy.json
  2. Execute Create-iSCSITarget.ps1 no destino iSCSI do servidor local.Run Create-iSCSITarget.ps1 on the on-premises server iSCSI target. Depois que o modelo for concluído, você precisará executar o Create-iSCSITarget.ps1 no destino iSCSI do servidor local com as saídas da primeira etapaOnce the template completes, you will need to run the Create-iSCSITarget.ps1 on the on-premises server iSCSI target with the outputs from the first step
  3. Executar Connect-toiSCSITarget.ps1 no cliente iSCSI.Run Connect-toiSCSITarget.ps1 on the on iSCSI client. Desmarque a Connect-toiSCSITarget.ps1 no cliente iSCSI em com os detalhes do destino iSCSIun the Connect-toiSCSITarget.ps1 on the on iSCSI client with the details of the iSCSI target

Adicionando armazenamento iSCSI a VMs existentesAdding iSCSI storage to existing VMs

Você também pode executar os scripts em uma máquina virtual existente para se conectar do cliente iSCSI a um destino iSCSI.You can also run the scripts on an existing Virtual Machine to connect from the iSCSI client to a iSCSI target. Esse fluxo é se você estiver criando o destino iSCSI por conta própria.This flow is if you are creating the iSCSI target yourself. Este diagrama mostra o fluxo de execução dos scripts do PowerShell.This diagram shows the execution flow of the PowerShell scripts. Esses scripts podem ser encontrados no diretório de script:These scripts can be found in the Script directory:

O diagrama mostra os três scripts que são discutidos abaixo.

Prepare-iSCSIClient.ps1Prepare-iSCSIClient.ps1

O Prepare-iSCSIClient.ps1 script instala os pré-requisitos no cliente iSCSI, incluindo;The Prepare-iSCSIClient.ps1 script installs the prerequisites on the iSCSI client, this includes;

  • instalação de serviços de e/s de vários caminhosinstallation of Multipath-IO services
  • configuração do serviço iniciador iSCSI iniciar até automáticosetting the iSCSI initiator service start up to automatic
  • Habilitando o suporte para MPIO de vários caminhos para iSCSIenabling support for multipath MPIO to iSCSI
  • Habilitar a reivindicação automática de todos os volumes iSCSIEnable automatic claiming of all iSCSI volumes
  • Definir o tempo limite do disco como 60 segundosSet the disk timeout to 60 seconds

É importante reinicializar o sistema após a instalação desses pré-requisitos.It is important to reboot the system after installation of these prerequisites. A política de balanceamento de carga do MPIO requer uma reinicialização para que possa ser definida.The MPIO load-balancing policy requires a reboot so that it can be set.

Create-iSCSITarget.ps1Create-iSCSITarget.ps1

O Create-iSCSITarget.ps1 script deve ser executado no servidor de armazenamento.The Create-iSCSITarget.ps1 script is to be run on the storage server. Você pode criar vários discos e destinos restritos pelos iniciadores.You can create multiple disks and targets restricted by initiators. Você pode executar esse script várias vezes para criar muitos discos virtuais que podem ser anexados a diferentes destinos.You can run this script multiple times to create many virtual disks you can attach to different targets. Você pode conectar vários discos a um destino.You can connect multi-disks to one target.

EntradaInput defaultdefault descriçãodescription
RemoteServerRemoteServer FileServerFileServer O nome do servidor que se conecta ao destino iSCSIThe name of the server connecting to the iSCSI Target
RemoteServerIPsRemoteServerIPs 1.1.1.11.1.1.1 O endereço IP do qual o tráfego iSCSI será provenienteThe IP Address the iSCSI traffic will be coming from
DiskFolderDiskFolder C:\iSCSIVirtualDisksC:\iSCSIVirtualDisks A pasta e a unidade em que os discos virtuais serão armazenadosThe folder and drive where the virtual disks will be stored
DiskNameDiskName DiskNameDiskName O nome do arquivo VHDX de discoThe name of the disk VHDX file
DiskSizeDiskSize 55GB O tamanho do disco VHDXThe VHDX disk size
TargetNameTargetName RemoteTarget01RemoteTarget01 O nome de destino usado para definir a configuração de destino para o cliente iSCSI.The target name used to define the target configuration for the iSCSI client.
ChapUsernameChapUsername Nome de Usuáriousername O nome de usuário para autenticação CHAPThe username name for Chap authentication
ChapPasswordChapPassword userP@ssw0rd!userP@ssw0rd! O nome da senha para autenticação CHAP.The password name for Chap authentication. Deve ter de 12 a 16 caracteresIt must be 12 to 16 characters

Connect-toiSCSITarget.ps1Connect-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.The Connect-toiSCSITarget.ps1 is the final script, which is run on the iSCSI client and mounts the disk presented by the iSCSI target to the iSCSI client.

EntradaInput defaultdefault descriçãodescription
TargetiSCSIAddressesTargetiSCSIAddresses "2.2.2.2", "2.2.2.3""2.2.2.2","2.2.2.3" Os endereços IP do destino iSCSIThe IP addresses of the iSCSI target
LocalIPAddressesLocalIPAddresses "10.10.1.4""10.10.1.4" Este é o endereço IP interno do qual o tráfego iSCSI será provenienteThis is internal IP Address the iSCSI traffic will be coming from
LoadBalancePolicyLoadBalancePolicy C:\iSCSIVirtualDisksC:\iSCSIVirtualDisks O endereço IP do qual o tráfego iSCSI será provenienteThe IP Address the iSCSI traffic will be coming from
ChapUsernameChapUsername Nome de Usuáriousername O nome de usuário para autenticação CHAPThe username name for Chap authentication
ChapPasswordChapPassword userP@ssw0rd!userP@ssw0rd! O nome da senha para autenticação CHAP.The password name for Chap authentication. Deve ter de 12 a 16 caracteresIt must be 12 to 16 characters

Próximas etapasNext steps

Diferenças e considerações para a rede Azure Stack HubDifferences and considerations for Azure Stack Hub networking