Ansluta till iSCSI-lagring med Azure Stack Hub

Du kan använda mallen i den här artikeln för att ansluta en virtuell Azure Stack Hub-dator (VM) till ett lokalt iSCSI-mål som konfigurerar den virtuella datorn så att den använder lagring som finns utanför vår Azure Stack Hub och någon annanstans i ditt datacenter. Den här artikeln handlar om att använda en Windows-dator som iSCSI-mål.

Du hittar mallen i lucidqdreams-förgreningen för Azure Intelligent Edge Patterns GitHub-lagringsplatsen . Mallen finns i mappen storage-iSCSI . Mallen har utformats för att konfigurera den infrastruktur som krävs på Azure Stack Hub-sidan för att ansluta till ett iSCSI-mål. Detta inkluderar en virtuell dator som fungerar som iSCSI-initierare tillsammans med tillhörande VNet, NSG, PIP och lagring. När mallen har distribuerats måste två PowerShell-skript köras för att slutföra konfigurationen. Ett skript körs på den lokala virtuella datorn (målet) och ett körs på den virtuella Azure Stack Hub-datorn (initieraren). När dessa har slutförts har du lokal lagring tillagd på din virtuella Azure Stack Hub-dator.

Översikt

Diagrammet visar en virtuell dator som finns på Azure Stack Hub med en iSCSI-monterad disk från en Lokal Windows-dator (fysisk eller virtuell) som gör att lagring utanför Azure Stack Hub kan monteras på din virtuella Dator med Azure Stack Hub via iSCSI-protokollet.

Diagrammet visar en virtuell dator som finns på Azure Stack Hub och som har åtkomst till en extern iSCSI-monterad disk.

Krav

  • En lokal dator (fysisk eller virtuell) som kör Windows Server 2016 Datacenter eller Windows Server 2019 Datacenter.
  • Nödvändiga Azure Stack Hub Marketplace-objekt:
    • Windows Server 2016 Datacenter eller Windows Server 2019 Datacenter (senaste versionen rekommenderas).
    • PowerShell DSC-tillägg.
    • Anpassat skripttillägg.
    • En befintlig virtuell eller fysisk dator. Helst har den här datorn två nätverkskort. Detta kan också vara ett annat iSCSI-mål, till exempel ett SAN.

Saker att tänka på

  • En nätverkssäkerhetsgrupp tillämpas på mallundernätet. Granska detta och gör ytterligare justeringar efter behov.
  • En RDP-neka-regel tillämpas på NSG:n för tunneln och måste anges för att tillåta om du tänker komma åt de virtuella datorerna via den offentliga IP-adressen.
  • Den här lösningen tar inte hänsyn till DNS-matchning.
  • Du bör ändra ditt Chapusername och Chappassword. Chappassword måste vara mellan 12 och 16 tecken långt.
  • Den här mallen använder en statisk IP-adress för den virtuella datorn eftersom iSCSI-anslutningen använder den lokala adressen i konfigurationen.
  • Den här mallen använder BYOL Windows License.
  • Du kan också ansluta Linux-baserade system till iSCSI-målen. Instruktioner finns i artikeln om iSCSI-initieraren i ubuntu-dokumentationen.

Alternativ

  • Du kan använda ditt eget Blob Storage-konto och SAS-token med hjälp av _artifactsLocation och _artifactsLocationSasToken parametrar möjligheten att använda din egen lagringsblob med SAS-token.
  • Den här mallen innehåller standardvärden för namn på virtuella nätverk och IP-adresser.
  • Den här konfigurationen har bara ett iSCSI-nätverkskort som kommer från iSCSI-klienten. Vi hade testat ett antal konfigurationer för att använda separata undernät och nätverkskort, men stötte på problem med flera gatewayer och försökte skapa ett separat lagringsundernät för att isolera trafik och faktiskt vara verkligt redundant.
  • Var noga med att hålla dessa värden inom juridiskt undernät och adressintervall eftersom distributionen kan misslyckas.
  • Det primära syftet med PowerShell DSC-paket är att söka efter väntande omstarter. Denna DSC kan anpassas ytterligare om det behövs. Mer information finns i omputerManagementDsc.

Resursgruppsmall (iSCSI-klient)

Diagrammet visar de resurser som distribuerats från mallen för att skapa den iSCSI-klient som du kan använda för att ansluta till iSCSI-målet. Den här mallen distribuerar den virtuella datorn och andra resurser. Dessutom kommer den att köra prepare-iSCSIClient.ps1 och starta om den virtuella datorn.

Diagrammet visar resurser som distribuerats från mallen för att skapa iSCSI-klienten för att ansluta till iSCSI-målet. Den visar en filserver med ett internt undernät och NIC (nätverkskort), intern PIP (Private Internet Protocol) och NSG (Network Security Group).

Distributionsprocessen

Resursgruppsmallen genererar utdata, vilket är avsett att vara indata för nästa steg. Det fokuserar främst på servernamnet och den offentliga IP-adressen för Azure Stack Hub där iSCSI-trafiken kommer. I det här exemplet:

  1. Distribuera infrastrukturmallen.
  2. Distribuera en virtuell Azure Stack Hub-dator till en virtuell dator som finns någon annanstans i ditt datacenter.
  3. Kör Create-iSCSITarget.ps1 med ip-adressen och servernamnets utdata från mallen som in-out-parametrar för skriptet på iSCSI-målet, som kan vara en virtuell dator eller fysisk server.
  4. Använd den externa IP-adressen eller adresserna för iSCSI-målservern som indata för att köra skriptet Connect-toiSCSITarget.ps1 .

Diagrammet visar de tre första stegen ovan och innehåller indata och utdata. Stegen är: Distribuera infrastruktur, Skapa iSCSI-mål och Anslut till iSCSI.

Indata för azuredeploy.json

Parametrar standard beskrivning
WindowsImageSKU 2019-Datacenter Välj den grundläggande virtuella Windows-datoravbildningen
VMSize Standard_D2_v2 Ange vm-storleken
VMName Fileserver VM-namn
adminUsername storageadmin Namnet på administratören för den nya virtuella datorn
adminPassword Lösenordet för administratörskontot för de nya virtuella datorerna. Standardvärdet är prenumerations-ID
VNetName Storage Namnet på det virtuella nätverket. Detta används för att märka resurserna
VNetAddressSpace 10.10.0.0/23 Adressutrymme för VNet
VNetInternalSubnetName Intern Internt undernätsnamn för virtuellt nätverk
VNetInternalSubnetRange 10.10.1.0/24 Adressintervall för internt VNet-undernät
InternalVNetIP 10.10.1.4 Statisk adress för den interna IP-adressen för filservern.
_artifactsLocation
_artifactsLocationSasToken

Distributionssteg

  1. Distribuera iSCSI-klientinfrastruktur med hjälp av azuredeploy.json
  2. Kör Create-iSCSITarget.ps1 på den lokala serverns iSCSI-mål. När mallen har slutförts måste du köra Create-iSCSITarget.ps1 på den lokala serverns iSCSI-mål med utdata från det första steget
  3. Kör Connect-toiSCSITarget.ps1 på iSCSI-klienten. un the Connect-toiSCSITarget.ps1 on iSCSI client with the details of the iSCSI target

Lägga till iSCSI-lagring till befintliga virtuella datorer

Du kan också köra skripten på en befintlig virtuell dator för att ansluta från iSCSI-klienten till ett iSCSI-mål. Det här flödet är om du skapar iSCSI-målet själv. Det här diagrammet visar körningsflödet för PowerShell-skripten. Dessa skript finns i skriptkatalogen:

Diagrammet visar de tre skript som beskrivs nedan. I körningsordningen är de: Prepare-iSCSIClient.ps1 (körs på klienten), Skapa iSCSITarget.ps1 (körs på målen) och Connect-toiSCSITarget.ps1 (exectutes på klienten).

Prepare-iSCSIClient.ps1

Skriptet Prepare-iSCSIClient.ps1 installerar förutsättningarna på iSCSI-klienten, vilket inkluderar;

  • installation av Multipath-IO-tjänster
  • ställa in iSCSI-initierartjänstens start till automatisk
  • aktivera stöd för MPIO för multipath till iSCSI
  • Aktivera automatisk anspråk på alla iSCSI-volymer
  • Ange diskens tidsgräns till 60 sekunder

Det är viktigt att starta om systemet efter installationen av dessa krav. MPIO-belastningsutjämningsprincipen kräver en omstart så att den kan anges.

Create-iSCSITarget.ps1

Skriptet Create-iSCSITarget.ps1 ska köras på lagringsservern. Du kan skapa flera diskar och mål som begränsas av initierare. Du kan köra det här skriptet flera gånger för att skapa många virtuella diskar som du kan ansluta till olika mål. Du kan ansluta flera diskar till ett mål.

Indata standard beskrivning
RemoteServer Fileserver Namnet på servern som ansluter till iSCSI-målet
RemoteServer-IP-adresser 1.1.1.1 IP-adressen som iSCSI-trafiken kommer från
DiskFolder C:\iSCSIVirtualDisks Den mapp och enhet där de virtuella diskarna ska lagras
DiskName DiskName Namnet på diskens VHDX-fil
DiskSize 5 GB VHDX-diskstorleken
TargetName RemoteTarget01 Målnamnet som används för att definiera målkonfigurationen för iSCSI-klienten.
ChapUsername användarnamn Användarnamnet för Chap-autentisering
ChapPassword userP@ssw0rd! Lösenordsnamnet för Chap-autentisering. Det måste vara mellan 12 och 16 tecken

Connect-toiSCSITarget.ps1

Connect-toiSCSITarget.ps1 är det sista skriptet, som körs på iSCSI-klienten och monterar disken som presenteras av iSCSI-målet till iSCSI-klienten.

Indata standard beskrivning
TargetiSCSIAddresses "2.2.2.2","2.2.2.3" IP-adresserna för iSCSI-målet
LocalIPAddresses "10.10.1.4" Det här är en intern IP-adress som iSCSI-trafiken kommer från
LoadBalancePolicy C:\iSCSIVirtualDisks IP-adressen som iSCSI-trafiken kommer från
ChapUsername användarnamn Användarnamnet för Chap-autentisering
ChapPassword userP@ssw0rd! Lösenordsnamnet för Chap-autentisering. Det måste vara mellan 12 och 16 tecken

Nästa steg

Skillnader och överväganden för Azure Stack Hub-nätverk