Nawiązywanie połączenia z magazynem iSCSI za pomocą usługi Azure Stack Hub

Możesz użyć szablonu w tym artykule, aby połączyć maszynę wirtualną usługi Azure Stack Hub z lokalnym obiektem docelowym iSCSI, aby używać magazynu hostowanego poza usługą Azure Stack Hub i w innym miejscu w centrum danych. W tym artykule omówiono używanie maszyny z systemem Windows jako obiektu docelowego iSCSI.

Szablon można znaleźć w rozwidleniu lucidqdreams repozytorium GitHub Intelligent Edge Patterns . Szablon znajduje się w folderze storage-iSCSI . Szablon został zaprojektowany tak, aby skonfigurować infrastrukturę niezbędną po stronie usługi Azure Stack Hub w celu nawiązania połączenia z obiektem docelowym iSCSI. Obejmuje to maszynę wirtualną, która będzie działać jako inicjator iSCSI wraz z towarzyszącymi sieciami wirtualnymi, sieciową grupą zabezpieczeń, pip i magazynem. Po wdrożeniu szablonu należy uruchomić dwa skrypty programu PowerShell, aby ukończyć konfigurację. Jeden skrypt zostanie uruchomiony na lokalnej maszynie wirtualnej (docelowej), a jeden zostanie uruchomiony na maszynie wirtualnej usługi Azure Stack Hub (inicjator). Po zakończeniu tych czynności będziesz mieć magazyn lokalny dodany do maszyny wirtualnej usługi Azure Stack Hub.

Omówienie

Na diagramie przedstawiono maszynę wirtualną hostowaną w usłudze Azure Stack Hub z zainstalowanym dyskiem iSCSI z komputera z systemem Windows lokalnie (fizycznym lub wirtualnym), która umożliwia instalację magazynu zewnętrznego z usługą Azure Stack Hub w ramach hostowanej maszyny wirtualnej usługi Azure Stack Hub za pośrednictwem protokołu iSCSI.

Na diagramie przedstawiono maszynę wirtualną hostowaną w usłudze Azure Stack Hub, która uzyskuje dostęp do zewnętrznego zainstalowanego dysku iSCSI.

Wymagania

  • Maszyna lokalna (fizyczna lub wirtualna) z systemem Windows Server 2016 Datacenter lub Windows Server 2019 Datacenter.
  • Wymagane elementy witryny Azure Stack Hub Marketplace:
    • Windows Server 2016 Datacenter lub Windows Server 2019 Datacenter (zalecana najnowsza kompilacja).
    • Rozszerzenie DSC programu PowerShell.
    • Rozszerzenie niestandardowego skryptu.
    • Istniejąca maszyna wirtualna lub fizyczna. Najlepiej, aby ta maszyna miała dwie karty sieciowe. Może to być również inny obiekt docelowy iSCSI, taki jak sieć SAN na przykład.

Zagadnienia do rozważenia

  • Sieciowa grupa zabezpieczeń jest stosowana do podsieci szablonu. Zapoznaj się z tym i w razie potrzeby dokonaj dodatkowych uprawnień.
  • Reguła odmowy protokołu RDP jest stosowana do sieciowej grupy zabezpieczeń tunelu i musi zostać ustawiona tak, aby zezwolić na dostęp do maszyn wirtualnych za pośrednictwem publicznego adresu IP.
  • To rozwiązanie nie uwzględnia rozpoznawania nazw DNS.
  • Należy zmienić nazwę Chapusername i Chappassword. Chappassword musi mieć długość od 12 do 16 znaków.
  • Ten szablon używa statycznego adresu IP dla maszyny wirtualnej, ponieważ połączenie iSCSI używa lokalnego adresu w konfiguracji.
  • Ten szablon korzysta z licencji byOL systemu Windows.
  • Systemy oparte na systemie Linux można również połączyć z obiektami docelowymi iSCSI. Instrukcje można znaleźć w artykule inicjatora iSCSI w dokumentacji systemu Ubuntu.

Opcje

  • Możesz użyć własnego konta usługi Blob Storage i tokenu SAS przy użyciu _artifactsLocation i parametrów _artifactsLocationSasToken możliwość używania własnego obiektu blob magazynu z tokenem SAS.
  • Ten szablon zawiera wartości domyślne dla nazewnictwa sieci wirtualnej i adresowania IP.
  • Ta konfiguracja ma tylko jedną kartę sieciową iSCSI pochodzącą z klienta iSCSI. Przetestowaliśmy wiele konfiguracji, aby korzystać z oddzielnych podsieci i kart sieciowych, jednak napotkaliśmy problemy z wieloma bramami i próbowano utworzyć oddzielną podsieć magazynu w celu odizolowania ruchu i faktycznie być naprawdę nadmiarowe.
  • Zachowaj ostrożność, aby zachować te wartości w podsieci prawnej i zakresach adresów, ponieważ wdrożenie może zakończyć się niepowodzeniem.
  • Podstawowym celem pakietów DSC programu PowerShell jest sprawdzenie oczekujących ponownych uruchomień. W razie potrzeby można dostosować tę usługę DSC. Aby uzyskać więcej informacji, zobacz omputerManagementDsc.

Szablon grupy zasobów (klient iSCSI)

Na diagramie przedstawiono zasoby wdrożone z szablonu w celu utworzenia klienta iSCSI, którego można użyć do nawiązania połączenia z obiektem docelowym iSCSI. Ten szablon wdroży maszynę wirtualną i inne zasoby, a ponadto uruchomi prepare-iSCSIClient.ps1 i uruchomi ponownie maszynę wirtualną.

Na diagramie przedstawiono zasoby wdrożone z szablonu w celu utworzenia klienta iSCSI w celu nawiązania połączenia z obiektem docelowym iSCSI. Przedstawia serwer plików z wewnętrzną podsiecią i kartą sieciową (kartą sieciową), wewnętrznym serwerem PIP (prywatnym protokołem internetowym) i sieciową grupą zabezpieczeń (sieciową grupą zabezpieczeń).

Proces wdrażania

Szablon grupy zasobów generuje dane wyjściowe, które mają być danymi wejściowymi dla następnego kroku. Koncentruje się głównie na nazwie serwera i publicznym adresie IP usługi Azure Stack Hub, z którego pochodzi ruch iSCSI. W tym przykładzie:

  1. Wdrażanie szablonu infrastruktury.
  2. Wdróż maszynę wirtualną usługi Azure Stack Hub na maszynie wirtualnej hostowanej w innym miejscu w centrum danych.
  3. Uruchom Create-iSCSITarget.ps1 polecenie przy użyciu adresu IP i danych wyjściowych nazwy serwera z szablonu jako parametrów wyjściowych skryptu na obiekcie docelowym iSCSI, który może być maszyną wirtualną lub serwerem fizycznym.
  4. Użyj zewnętrznego adresu IP lub adresów serwera docelowego iSCSI jako danych wejściowych, aby uruchomić Connect-toiSCSITarget.ps1 skrypt.

Na diagramie przedstawiono pierwsze trzy z czterech kroków wymienionych powyżej oraz dane wejściowe i wyjściowe. Kroki to: Wdrażanie infrastruktury, tworzenie obiektu docelowego iSCSI i łączenie się z interfejsem iSCSI.

Dane wejściowe dla pliku azuredeploy.json

Parametry default opis
WindowsImageSKU 2019-Datacenter Wybierz podstawowy obraz maszyny wirtualnej z systemem Windows
maszyny wirtualnej (VMSize Standardowa_D2_v2 Wprowadź rozmiar maszyny wirtualnej
VMName FileServer Nazwa maszyny wirtualnej
adminUsername storageadmin Nazwa administratora nowej maszyny wirtualnej
adminPassword Hasło do konta administratora nowych maszyn wirtualnych. Wartość domyślna to identyfikator subskrypcji
Nazwa sieci wirtualnej Storage Nazwa sieci wirtualnej. Zostanie ona użyta do etykietowania zasobów
VNetAddressSpace 10.10.0.0/23 Przestrzeń adresowa dla sieci wirtualnej
VNetInternalSubnetName Wewnętrzny Nazwa wewnętrznej podsieci sieci wirtualnej
VNetInternalSubnetRange 10.10.1.0/24 Zakres adresów dla wewnętrznej podsieci sieci wirtualnej
InternalVNetIP 10.10.1.4 Statyczny adres wewnętrznego adresu IP serwera plików.
_artifactsLocation
_artifactsLocationSasToken

Kroki wdrażania

  1. Wdrażanie infrastruktury klienta iSCSI przy użyciu polecenia azuredeploy.json
  2. Uruchom polecenie Create-iSCSITarget.ps1 na obiekcie docelowym iSCSI serwera lokalnego. Po zakończeniu pracy szablonu należy uruchomić Create-iSCSITarget.ps1 na obiekcie docelowym iSCSI serwera lokalnego z danymi wyjściowymi z pierwszego kroku
  3. Uruchom Connect-toiSCSITarget.ps1 polecenie na kliencie iSCSI. un the Connect-toiSCSITarget.ps1 on the on iSCSI client with details of the iSCSI target (usuń Connect-toiSCSITarget.ps1 na kliencie iSCSI) ze szczegółami obiektu docelowego iSCSI

Dodawanie magazynu iSCSI do istniejących maszyn wirtualnych

Skrypty można również uruchomić na istniejącej maszynie wirtualnej, aby nawiązać połączenie z klienta iSCSI z obiektem docelowym iSCSI. Ten przepływ jest tworzony samodzielnie, jeśli tworzysz obiekt docelowy iSCSI. Ten diagram przedstawia przepływ wykonywania skryptów programu PowerShell. Te skrypty można znaleźć w katalogu Script:

Na diagramie przedstawiono trzy skrypty omówione poniżej. W kolejności wykonywania są to: Prepare-iSCSIClient.ps1 , (wykonywane na kliencie), Tworzenie iSCSITarget.ps1 (wykonywanie na obiektach docelowych) i Connect-toiSCSITarget.ps1 (exectutes na kliencie).

Prepare-iSCSIClient.ps1

Skrypt Prepare-iSCSIClient.ps1 instaluje wymagania wstępne na kliencie iSCSI, w tym;

  • instalacja usług Multipath-IO
  • Ustawianie uruchamiania usługi inicjatora iSCSI na automatyczne
  • włączanie obsługi wielościeżkowego we/wy na interfejs iSCSI
  • Włączanie automatycznego oświadczeń wszystkich woluminów iSCSI
  • Ustaw limit czasu dysku na 60 sekund

Po zainstalowaniu tych wymagań wstępnych należy ponownie uruchomić system. Zasady równoważenia obciążenia MPIO wymagają ponownego uruchomienia, aby można je było ustawić.

Create-iSCSITarget.ps1

Skrypt Create-iSCSITarget.ps1 ma być uruchamiany na serwerze magazynu. Można utworzyć wiele dysków i obiektów docelowych ograniczonych przez inicjatorów. Ten skrypt można uruchomić wiele razy, aby utworzyć wiele dysków wirtualnych, które można dołączyć do różnych obiektów docelowych. Można połączyć wiele dysków z jednym obiektem docelowym.

Dane wejściowe default opis
Remoteserver FileServer Nazwa serwera łączącego się z obiektem docelowym iSCSI
RemoteServerIPs 1.1.1.1 Adres IP, z poziomu których będzie pochodzić ruch iSCSI
Folder dysku C:\iSCSIVirtualDisks Folder i dysk, na którym będą przechowywane dyski wirtualne
DiskName DiskName Nazwa pliku VHDX dysku
DiskSize 5 GB Rozmiar dysku VHDX
TargetName RemoteTarget01 Nazwa docelowa używana do definiowania konfiguracji docelowej klienta iSCSI.
ChapUsername nazwa użytkownika Nazwa użytkownika na potrzeby uwierzytelniania protokołu Chap
ChapPassword userP@ssw0rd! Nazwa hasła na potrzeby uwierzytelniania protokołu Chap. Musi mieć od 12 do 16 znaków

Connect-toiSCSITarget.ps1

Jest Connect-toiSCSITarget.ps1 to końcowy skrypt, który jest uruchamiany na kliencie iSCSI i instaluje dysk przedstawiony przez obiekt docelowy iSCSI do klienta iSCSI.

Dane wejściowe default opis
TargetiSCSIAddresses "2.2.2.2","2.2.2.3" Adresy IP obiektu docelowego iSCSI
LocalIPAddresses "10.10.1.4" Jest to wewnętrzny adres IP, z których będzie pochodzić ruch iSCSI
LoadBalancePolicy C:\iSCSIVirtualDisks Adres IP, z poziomu których będzie pochodzić ruch iSCSI
ChapUsername nazwa użytkownika Nazwa użytkownika na potrzeby uwierzytelniania protokołu Chap
ChapPassword userP@ssw0rd! Nazwa hasła na potrzeby uwierzytelniania protokołu Chap. Musi mieć od 12 do 16 znaków

Następne kroki

Różnice i zagadnienia dotyczące sieci usługi Azure Stack Hub