Verbinding maken met 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. Stel de VM in om opslag te gebruiken die buiten onze Azure Stack Hub en elders in uw datacenter wordt gehost. In dit artikel wordt gekeken naar het gebruik van een Windows-computer als het iSCSI-doel.

U vindt de sjabloon in de GitHub-opslagplaats lucidqdreams fork van Azure Intelligent Edge Patterns . De sjabloon bevindt zich in de map storage-iSCSI . De sjabloon is ontworpen voor het instellen van de infrastructuur 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. Er wordt één script 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 VM die wordt gehost op Azure Stack Hub met een iSCSI-gekoppelde schijf van een on-premises Windows-machine (fysiek of virtueel), waardoor opslag buiten Azure Stack Hub kan worden gekoppeld binnen uw door Azure Stack Hub gehoste VM via het iSCSI-protocol.

Het diagram toont een VM die wordt gehost op Azure Stack Hub en toegang heeft tot een externe iSCSI-gekoppelde schijf.

Vereisten

  • Een on-premises machine (fysiek of virtueel) waarop Windows Server 2016 Datacenter of Windows Server 2019 Datacenter wordt uitgevoerd.
  • 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 subnet van de sjabloon. Controleer dit en maak zo nodig extra correcties.
  • Een RDP Deny-regel wordt toegepast op de tunnel-NSG en moet worden ingesteld op toestaan als u van plan bent om toegang te 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 maakt gebruik van een statisch IP-adres voor de VM 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 parameters _artifactsLocation en _artifactsLocationSasToken de mogelijkheid om uw eigen opslagblob met SAS-token te gebruiken.
  • Deze sjabloon bevat 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 kwamen problemen tegen met meerdere gateways en probeerden een afzonderlijk opslagsubnet te maken om verkeer te isoleren en echt redundant te zijn.
  • Zorg ervoor dat u deze waarden binnen het legale subnet en adresbereik houdt, omdat de implementatie kan mislukken.
  • De PowerShell DSC-pakketten zijn primair bedoeld om te controleren op opnieuw opstarten in behandeling. Deze DSC kan indien nodig verder worden aangepast. Zie omputerManagementDsc voor meer informatie.

Resourcegroepsjabloon (iSCSI-client)

Het diagram toont de resources die vanuit de sjabloon zijn geïmplementeerd om de iSCSI-client te maken die u kunt gebruiken om verbinding te maken met het iSCSI-doel. Met deze sjabloon worden de VM en andere resources geïmplementeerd. Daarnaast wordt de prepare-iSCSIClient.ps1 uitgevoerd en wordt de VM opnieuw opgestart.

Het diagram toont resources die zijn geïmplementeerd vanuit de sjabloon om de iSCSI-client te maken om verbinding te maken met het iSCSI-doel. Het toont een bestandsserver met een intern subnet en NIC (netwerkkaart), interne PIP (Private Internet Protocol) en NSG (netwerkbeveiligingsgroep).

Het implementatieproces

De resourcegroepsjabloon genereert uitvoer, die de invoer is 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 Create-iSCSITarget.ps1 uit met behulp van het IP-adres en de servernaamuitvoer van de sjabloon als in-out parameters voor het script op het iSCSI-doel, wat een virtuele machine of een fysieke server kan zijn.
  4. Gebruik het externe IP-adres of de externe IP-adressen van de iSCSI-doelserver als invoer om het Connect-toiSCSITarget.ps1 script uit te voeren.

Het diagram toont de eerste drie van de vier bovenstaande stappen en bevat invoer en uitvoer. De stappen zijn: Infrastructuur implementeren, iSCSI-doel maken en Verbinding maken met iSCSI.

Invoer voor azuredeploy.json

Parameters standaardinstelling beschrijving
WindowsImageSKU 2019-Datacenter Selecteer de basisinstallatiekopieën van de Virtuele Windows-machine
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. Voer uit 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. Voer uit Connect-toiSCSITarget.ps1 op de iSCSI-client. de Connect-toiSCSITarget.ps1 op de on iSCSI-client 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 vanaf de iSCSI-client verbinding te maken met een iSCSI-doel. Deze stroom is beschikbaar als u het iSCSI-doel zelf maakt. In dit diagram ziet u de uitvoeringsstroom van de PowerShell-scripts. Deze scripts vindt u in de map Script:

In het diagram ziet u de drie scripts die hieronder worden besproken. In volgorde van uitvoering zijn deze: Prepare-iSCSIClient.ps1, (wordt uitgevoerd op de client), iSCSITarget.ps1 maken (wordt uitgevoerd op de doelen) en Connect-toiSCSITarget.ps1 (exectutes op de client).

Prepare-iSCSIClient.ps1

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

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

Het is belangrijk om het systeem opnieuw op te starten na de installatie van deze vereisten. Het MPIO-taakverdelingsbeleid vereist opnieuw opstarten, 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 zijn 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 waar het iSCSI-verkeer vandaan komt
DiskFolder C:\iSCSIVirtualDisks De map en het station waarin de virtuele schijven worden opgeslagen
DiskName DiskName De naam van het schijf-VHDX-bestand
DiskSize 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 de schijf die door het iSCSI-doel wordt gepresenteerd, koppelt 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 waar het iSCSI-verkeer vandaan komt
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