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.
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.
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:
- Distribuera infrastrukturmallen.
- Distribuera en virtuell Azure Stack Hub-dator till en virtuell dator som finns någon annanstans i ditt datacenter.
- 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. - Använd den externa IP-adressen eller adresserna för iSCSI-målservern som indata för att köra skriptet
Connect-toiSCSITarget.ps1
.
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
- Distribuera iSCSI-klientinfrastruktur med hjälp av
azuredeploy.json
- 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 - 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:
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 |