Verbinding maken naar iSCSI-opslag met Azure Stack Hub

U kunt de sjabloon in dit artikel gebruiken om een virtuele Machine (VM) van Azure Stack Hub te verbinden met een on-premises iSCSI-doel waarmee de VIRTUELE machine wordt ingesteld voor het gebruik van opslag die buiten onze Azure Stack Hub en elders in uw datacenter wordt gehost. In dit artikel wordt gekeken naar het gebruik van een Windows machine als het iSCSI-doel.

U vindt de sjabloon in de lucidq dreams fork van Azure Intelligent Edge Patterns GitHub opslagplaats. De sjabloon bevindt zich in de map Storage-iSCSI . De sjabloon is ontworpen om de infrastructuur in te stellen die nodig is aan de Zijde van Azure Stack Hub om verbinding te maken met een iSCSI-doel. Dit omvat een virtuele machine die fungeert als de iSCSI-initiator, samen met het bijbehorende VNet, NSG, PIP en opslag. Nadat de sjabloon is geïmplementeerd, moeten er twee PowerShell-scripts worden uitgevoerd om de configuratie te voltooien. Eén script wordt uitgevoerd op de on-premises VM (doel) en één script wordt uitgevoerd op de Azure Stack Hub-VM (initiator). Zodra deze zijn voltooid, hebt u on-premises opslag toegevoegd aan uw Azure Stack Hub-VM.

Overzicht

In het diagram ziet u een virtuele machine die wordt gehost op Azure Stack Hub met een iSCSI-gekoppelde schijf vanaf een on-premises Windows machine (fysiek of virtueel) zodat opslag buiten Azure Stack Hub kan worden gekoppeld binnen uw gehoste AZURE Stack Hub-VM via het iSCSI-protocol.

The diagram shows a VM hosted on Azure Stack Hub accessing an external iSCSI mounted disk.

Vereisten

  • Een on-premises machine (fysiek of virtueel) met Windows Server 2016 Datacenter of Windows Server 2019 Datacenter.
  • Vereiste Azure Stack Hub Marketplace-items:
    • Windows Server 2016 Datacenter of Windows Server 2019 Datacenter (meest recente build aanbevolen).
    • PowerShell DSC-extensie.
    • Aangepaste scriptextensie.
    • Een bestaande virtuele of fysieke machine. Idealiter heeft deze computer twee netwerkadapters. Dit kan ook een ander iSCSI-doel zijn, zoals bijvoorbeeld een SAN.

Aandachtspunten

  • Er wordt een netwerkbeveiligingsgroep toegepast op het sjabloonsubnet. Bekijk dit en maak zo nodig extra vergoedingen.
  • Er wordt een RDP-regel voor weigeren toegepast op de Tunnel NSG en moet zo worden ingesteld dat u toegang wilt krijgen tot de VM's via het openbare IP-adres.
  • Deze oplossing houdt geen rekening met DNS-omzetting.
  • U moet uw Chapusername en Chappassword wijzigen. Het Chappassword moet 12 tot 16 tekens lang zijn.
  • Deze sjabloon gebruikt een statisch IP-adres voor de virtuele machine omdat de iSCSI-verbinding het lokale adres in de configuratie gebruikt.
  • Deze sjabloon maakt gebruik van BYOL Windows Licentie.
  • U kunt ook Linux-systemen verbinden met de iSCSI-doelen. U vindt instructies in het artikel iSCSI Initiator in de ubuntu-documentatie.

Opties

  • U kunt uw eigen Blob Storage-account en SAS-token gebruiken met behulp van de _artifactsLocation en _artifactsLocationSasToken parameters de mogelijkheid om uw eigen opslagblob met SAS-token te gebruiken.
  • Deze sjabloon biedt standaardwaarden voor VNet-naamgeving en IP-adressering.
  • Deze configuratie heeft slechts één iSCSI-nic die afkomstig is van de iSCSI-client. We hadden een aantal configuraties getest om afzonderlijke subnetten en NIC's te gebruiken, maar er kwamen problemen met meerdere gateways en probeerden een afzonderlijk opslagsubnet te maken om verkeer te isoleren en daadwerkelijk redundant te zijn.
  • Zorg ervoor dat deze waarden binnen het juridische subnet en adresbereiken blijven, omdat de implementatie kan mislukken.
  • Het primaire doel van de PowerShell DSC-pakketten is om te controleren op opnieuw opstarten in behandeling. Deze DSC kan indien nodig verder worden aangepast. Zie omputerManagementDsc voor meer informatie.

Resourcegroepsjabloon (iSCSI-client)

In het diagram ziet u de resources die zijn geïmplementeerd op basis van de sjabloon om de iSCSI-client te maken die u kunt gebruiken om verbinding te maken met het iSCSI-doel. Met deze sjabloon worden de VIRTUELE machine en andere resources geïmplementeerd. Daarnaast wordt de prepare-iSCSIClient.ps1 uitgevoerd en wordt de VIRTUELE machine opnieuw opgestart.

The diagram shows resources deployed from the template to create the iSCSI client to connect to the iSCSI target. It shows a file server with an internal subnet and NIC (network card), internal PIP (Private Internet Protocol), and NSG (Network Security Group).

Het implementatieproces

Met de resourcegroepsjabloon wordt uitvoer gegenereerd. Dit is de invoer voor de volgende stap. Het is voornamelijk gericht op de servernaam en het openbare IP-adres van Azure Stack Hub waar het iSCSI-verkeer vandaan komt. Voor dit voorbeeld:

  1. Implementeer de infrastructuursjabloon.
  2. Implementeer een Azure Stack Hub-VM op een VM die elders in uw datacenter wordt gehost.
  3. Voer deze opdracht Create-iSCSITarget.ps1 uit met behulp van het IP-adres en de servernaam van de sjabloon als in-out parameters voor het script op het iSCSI-doel. Dit kan een virtuele machine of fysieke server zijn.
  4. Gebruik het externe IP-adres of de adressen van de iSCSI-doelserver als invoer om het Connect-toiSCSITarget.ps1 script uit te voeren.

The diagram shows the first three of the four steps listed above, and includes inputs and outputs. The steps are: Deploy Infrastructure, Create iSCSI Target, and Connect to iSCSI.

Invoer voor azuredeploy.json

Parameters standaardinstelling Beschrijving
WindowsImageSKU 2019-Datacenter Selecteer de basis-Windows VM-installatiekopieën
VMSize Standard_D2_v2 Voer de VM-grootte in
VMName Fileserver VM-naam
adminUsername storageadmin De naam van de beheerder van de nieuwe VM
adminPassword Het wachtwoord voor het beheerdersaccount van de nieuwe VM's. Standaardwaarde is abonnements-id
VNetName Storage De naam van het VNet. Dit wordt gebruikt om de resources te labelen
VNetAddressSpace 10.10.0.0/23 Adresruimte voor VNet
VNetInternalSubnetName Intern Naam van intern VNet-subnet
VNetInternalSubnetRange 10.10.1.0/24 Adresbereik voor intern VNet-subnet
InternalVNetIP 10.10.1.4 Statisch adres voor het interne IP-adres van de bestandsserver.
_artifactsLocation
_artifactsLocationSasToken

Implementatiestappen

  1. ISCSI-clientinfrastructuur implementeren met behulp van azuredeploy.json
  2. Uitvoeren Create-iSCSITarget.ps1 op het iSCSI-doel van de on-premises server. Zodra de sjabloon is voltooid, moet u de Create-iSCSITarget.ps1 uitvoeren op het iSCSI-doel van de on-premises server met de uitvoer van de eerste stap
  3. Uitvoeren Connect-toiSCSITarget.ps1 op de iSCSI-client. de Connect-toiSCSITarget.ps1 op de iSCSI-client opheffen met de details van het iSCSI-doel

iSCSI-opslag toevoegen aan bestaande VM's

U kunt de scripts ook uitvoeren op een bestaande virtuele machine om verbinding te maken vanaf de iSCSI-client met een iSCSI-doel. Deze stroom is als u zelf het iSCSI-doel maakt. In dit diagram ziet u de uitvoeringsstroom van de PowerShell-scripts. Deze scripts vindt u in de scriptmap:

The diagram shows the three scripts that are discussed below. In order of execution, they are: Prepare-iSCSIClient.ps1, (executes on the client), Create iSCSITarget.ps1 (executes on the targets), and Connect-toiSCSITarget.ps1 (exectutes on the client).

Prepare-iSCSIClient.ps1

Het Prepare-iSCSIClient.ps1 script installeert de vereisten op de iSCSI-client, inclusief;

  • installatie van Multipath-IO-services
  • instellen dat de iSCSI-initiatorservice automatisch wordt gestart
  • ondersteuning inschakelen voor MPIO met meerdere paden naar iSCSI
  • Automatisch claimen van alle iSCSI-volumes inschakelen
  • De time-out van de schijf instellen op 60 seconden

Het is belangrijk om het systeem opnieuw op te starten na de installatie van deze vereisten. Voor het MPIO-taakverdelingsbeleid moet opnieuw worden opgestart, zodat het kan worden ingesteld.

Create-iSCSITarget.ps1

Het Create-iSCSITarget.ps1 script moet worden uitgevoerd op de opslagserver. U kunt meerdere schijven en doelen maken die worden beperkt door initiators. U kunt dit script meerdere keren uitvoeren om veel virtuele schijven te maken die u aan verschillende doelen kunt koppelen. U kunt meerdere schijven verbinden met één doel.

Invoer standaardinstelling Beschrijving
RemoteServer Fileserver De naam van de server die verbinding maakt met het iSCSI-doel
RemoteServerIPs 1.1.1.1 Het IP-adres van het iSCSI-verkeer komt van
DiskFolder C:\iSCSIVirtualDisks De map en het station waar de virtuele schijven worden opgeslagen
DiskName DiskName De naam van het VHDX-bestand van de schijf
Schijven aanpassen 5 GB De grootte van de VHDX-schijf
TargetName RemoteTarget01 De doelnaam die wordt gebruikt om de doelconfiguratie voor de iSCSI-client te definiëren.
ChapUsername gebruikersnaam De gebruikersnaamnaam voor Chap-verificatie
ChapPassword userP@ssw0rd! De wachtwoordnaam voor Chap-verificatie. Het moet 12 tot 16 tekens zijn

Connect-toiSCSITarget.ps1

Het Connect-toiSCSITarget.ps1 is het laatste script, dat wordt uitgevoerd op de iSCSI-client en koppelt de schijf die door het iSCSI-doel wordt gepresenteerd aan de iSCSI-client.

Invoer standaardinstelling Beschrijving
TargetiSCSIAddresses "2.2.2.2","2.2.2.3" De IP-adressen van het iSCSI-doel
LocalIPAddresses "10.10.1.4" Dit is een intern IP-adres waar het iSCSI-verkeer vandaan komt
LoadBalancePolicy C:\iSCSIVirtualDisks Het IP-adres van het iSCSI-verkeer komt van
ChapUsername gebruikersnaam De gebruikersnaamnaam voor Chap-verificatie
ChapPassword userP@ssw0rd! De wachtwoordnaam voor Chap-verificatie. Het moet 12 tot 16 tekens zijn

Volgende stappen

Verschillen en overwegingen voor Azure Stack Hub-netwerken