Connettersi all'archiviazione iSCSI con l'hub di Azure Stack

È possibile usare il modello in questo articolo per connettere una macchina virtuale (VM) dell'hub di Azure Stack a una destinazione iSCSI locale, configurare la macchina virtuale per usare l'archiviazione ospitata all'esterno dell'hub di Azure Stack e altrove nel data center. Questo articolo esamina l'uso di un computer Windows come destinazione iSCSI.

È possibile trovare il modello nel fork lucidqdreams del repository GitHub modelli di Intelligent Edge di Azure . Il modello si trova nella cartella storage-iSCSI . Il modello è stato progettato per configurare l'infrastruttura necessaria sul lato hub di Azure Stack per connettersi a una destinazione iSCSI. Include una macchina virtuale che fungerà da iniziatore iSCSI insieme alla rete virtuale, al gruppo di sicurezza di rete, al pip e all'archiviazione associati. Dopo aver distribuito il modello, è necessario eseguire due script di PowerShell per completare la configurazione. Uno script verrà eseguito nella macchina virtuale locale (destinazione) e uno verrà eseguito nella macchina virtuale dell'hub di Azure Stack (Iniziatore). Al termine, l'archiviazione locale verrà aggiunta alla macchina virtuale dell'hub di Azure Stack.

Panoramica

Il diagramma mostra una macchina virtuale ospitata nell'hub di Azure Stack con un disco montato iSCSI da un computer Windows locale (fisico o virtuale) che consente l'archiviazione esterna all'hub di Azure Stack per il montaggio all'interno della macchina virtuale ospitata nell'hub di Azure Stack tramite il protocollo iSCSI.

Il diagramma mostra una macchina virtuale ospitata nell'hub di Azure Stack che accede a un disco iSCSI esterno montato.

Requisiti

  • Una macchina locale (fisica o virtuale) che esegue Windows Server 2016 Datacenter o Windows Server 2019 Datacenter.
  • Elementi del Marketplace dell'hub di Azure Stack necessari:
    • Windows Server 2016 Datacenter o Windows Server 2019 Datacenter (build più recente consigliata).
    • Estensione DSC di PowerShell.
    • Estensione di script personalizzati.
    • Una macchina virtuale o fisica esistente. Idealmente, questo computer avrà due schede di rete. Potrebbe anche trattarsi di un'altra destinazione iSCSI, ad esempio una SAN.

Aspetti da considerare

  • Un gruppo di sicurezza di rete viene applicato alla subnet del modello. Esaminare questo e apportare ulteriori quote in base alle esigenze.
  • Una regola di negazione RDP viene applicata al gruppo di sicurezza di rete tunnel e deve essere impostata per consentire se si intende accedere alle macchine virtuali tramite l'indirizzo IP pubblico.
  • Questa soluzione non tiene conto della risoluzione DNS.
  • È necessario modificare chapusername e chappassword. Il carattere Chappassword deve avere una lunghezza da 12 a 16 caratteri.
  • Questo modello usa un indirizzo IP statico per la macchina virtuale perché la connessione iSCSI usa l'indirizzo locale nella configurazione.
  • Questo modello usa la licenza di Windows BYOL.
  • È anche possibile connettere sistemi basati su Linux alle destinazioni iSCSI. Per istruzioni, vedere l'articolo Iniziatore iSCSI nella documentazione di Ubuntu.

Opzioni

  • È possibile usare il proprio account di archiviazione BLOB e il token di firma di accesso condiviso usando i parametri _artifactsLocation e _artifactsLocationSasToken la possibilità di usare il PROPRIO BLOB di archiviazione con token di firma di accesso condiviso.
  • Questo modello fornisce i valori predefiniti per la denominazione della rete virtuale e l'indirizzamento IP.
  • Questa configurazione ha una sola scheda di interfaccia di rete iSCSI proveniente dal client iSCSI. È stata testata una serie di configurazioni per usare subnet e schede di interfaccia di rete separate, ma si sono verificati problemi con più gateway e si è tentato di creare una subnet di archiviazione separata per isolare il traffico e in realtà essere veramente ridondante.
  • Prestare attenzione a mantenere questi valori all'interno di subnet legali e intervalli di indirizzi perché la distribuzione potrebbe non riuscire.
  • Lo scopo principale dei pacchetti DSC di PowerShell è verificare la presenza di riavvii in sospeso. Questo DSC può essere ulteriormente personalizzato, se necessario. Per altre informazioni, vedere omputerManagementDsc.

Modello di gruppo di risorse (client iSCSI)

Il diagramma mostra le risorse distribuite dal modello per creare il client iSCSI che è possibile usare per connettersi alla destinazione iSCSI. Questo modello distribuirà la macchina virtuale e altre risorse, inoltre, eseguirà il prepare-iSCSIClient.ps1 e riavvia la macchina virtuale.

Il diagramma mostra le risorse distribuite dal modello per creare il client iSCSI per connettersi alla destinazione iSCSI. Mostra un file server con una subnet interna e una scheda di interfaccia di rete (scheda di rete), PIP interno (protocollo Internet privato) e un gruppo di sicurezza di rete (gruppo di sicurezza di rete).

Processo di distribuzione

Il modello del gruppo di risorse genera l'output, che deve essere l'input per il passaggio successivo. È incentrato principalmente sul nome del server e sull'indirizzo IP pubblico dell'hub di Azure Stack in cui ha origine il traffico iSCSI. Per questo esempio:

  1. Distribuire il modello di infrastruttura.
  2. Distribuire una macchina virtuale dell'hub di Azure Stack in una macchina virtuale ospitata altrove nel data center.
  3. Eseguire Create-iSCSITarget.ps1 usando l'indirizzo IP e i nomi del server restituiti dal modello come parametri in uscita per lo script nella destinazione iSCSI, che può essere una macchina virtuale o un server fisico.
  4. Usare l'indirizzo IP esterno o gli indirizzi del server di destinazione iSCSI come input per eseguire lo Connect-toiSCSITarget.ps1 script.

Il diagramma mostra i primi tre dei quattro passaggi elencati in precedenza e include input e output. I passaggi sono: Distribuire l'infrastruttura, Creare la destinazione iSCSI e Connettersi a iSCSI.

Input per azuredeploy.json

Parameters default description
WindowsImageSKU 2019-Datacenter Selezionare l'immagine della macchina virtuale Windows di base
VMSize Standard_D2_v2 Immettere le dimensioni della macchina virtuale
VMName FileServer Nome della VM.
adminUsername storageadmin Nome dell'amministratore della nuova macchina virtuale
adminPassword Password per l'account amministratore delle nuove macchine virtuali. Il valore predefinito è l'ID sottoscrizione
VNetName Archiviazione Nome della rete virtuale. Verrà usato per etichettare le risorse
VNetAddressSpace 10.10.0.0/23 Spazio indirizzi per la rete virtuale
VNetInternalSubnetName Interno Nome subnet interna della rete virtuale
VNetInternalSubnetRange 10.10.1.0/24 Intervallo di indirizzi per la subnet interna della rete virtuale
InternalVNetIP 10.10.1.4 Indirizzo statico per l'indirizzo IP interno del file server.
_artifactsLocation
_artifactsLocationSasToken

Passaggi di distribuzione

  1. Distribuire l'infrastruttura client iSCSI usando azuredeploy.json
  2. Eseguire Create-iSCSITarget.ps1 nella destinazione iSCSI del server locale. Al termine del modello, sarà necessario eseguire il Create-iSCSITarget.ps1 nella destinazione iSCSI del server locale con gli output del primo passaggio
  3. Eseguire Connect-toiSCSITarget.ps1 nel client iSCSI. un il Connect-toiSCSITarget.ps1 nel client iSCSI con i dettagli della destinazione iSCSI

Aggiunta di archiviazione iSCSI alle macchine virtuali esistenti

È anche possibile eseguire gli script in una macchina virtuale esistente per connettersi dal client iSCSI a una destinazione iSCSI. Questo flusso è se si sta creando manualmente la destinazione iSCSI. Questo diagramma mostra il flusso di esecuzione degli script di PowerShell. Questi script sono disponibili nella directory Script:

Il diagramma mostra i tre script descritti di seguito. In ordine di esecuzione, sono: Prepare-iSCSIClient.ps1, (viene eseguito nel client), Crea iSCSITarget.ps1 (viene eseguito sulle destinazioni) e Connect-toiSCSITarget.ps1 (exectutes nel client).

Prepare-iSCSIClient.ps1

Lo Prepare-iSCSIClient.ps1 script installa i prerequisiti nel client iSCSI, inclusi;

  • installazione di servizi Multipath-IO
  • impostazione dell'avvio automatico del servizio iniziatore iSCSI
  • abilitazione del supporto per MPIO multipath in iSCSI
  • Abilitare la richiesta automatica di tutti i volumi iSCSI
  • Impostare il timeout del disco su 60 secondi

È importante riavviare il sistema dopo l'installazione di questi prerequisiti. Il criterio di bilanciamento del carico MPIO richiede un riavvio in modo che possa essere impostato.

Create-iSCSITarget.ps1

Lo Create-iSCSITarget.ps1 script deve essere eseguito nel server di archiviazione. È possibile creare più dischi e destinazioni limitati dagli iniziatori. È possibile eseguire questo script più volte per creare molti dischi virtuali che è possibile collegare a destinazioni diverse. È possibile connettere più dischi a una destinazione.

Input default description
RemoteServer FileServer Nome del server che si connette alla destinazione iSCSI
RemoteServerIPs 1.1.1.1 Indirizzo IP da cui proviene il traffico iSCSI
DiskFolder C:\iSCSIVirtualDisks Cartella e unità in cui verranno archiviati i dischi virtuali
DiskName DiskName Nome del file VHDX del disco
DiskSize 5 GB Dimensioni del disco VHDX
TargetName RemoteTarget01 Nome di destinazione usato per definire la configurazione di destinazione per il client iSCSI.
ChapUsername username Nome utente per l'autenticazione Chap
ChapPassword userP@ssw0rd! Nome della password per l'autenticazione Chap. Deve essere da 12 a 16 caratteri

Connect-toiSCSITarget.ps1

Connect-toiSCSITarget.ps1 è lo script finale, che viene eseguito nel client iSCSI e monta il disco presentato dalla destinazione iSCSI al client iSCSI.

Input default description
TargetiSCSIAddresses "2.2.2.2","2.2.2.3" Indirizzi IP della destinazione iSCSI
LocalIPAddresses "10.10.1.4" Si tratta di un indirizzo IP interno da cui verrà proveniente il traffico iSCSI
LoadBalancePolicy C:\iSCSIVirtualDisks Indirizzo IP da cui proviene il traffico iSCSI
ChapUsername username Nome utente per l'autenticazione Chap
ChapPassword userP@ssw0rd! Nome della password per l'autenticazione Chap. Deve essere da 12 a 16 caratteri

Passaggi successivi

Differenze e considerazioni per la rete dell'hub di Azure Stack