Udostępnij przez


Tworzenie maszyny wirtualnej (klasycznej) z wieloma kartami sieciowymi przy użyciu programu PowerShell

Maszyny wirtualne można tworzyć na platformie Azure i dołączać do każdej maszyny wirtualnej wiele interfejsów sieciowych. Wiele interfejsów sieciowych umożliwia rozdzielenie typów ruchu między nimi. Na przykład jedna karta sieciowa może komunikować się z Internetem, a druga komunikuje się tylko z zasobami wewnętrznymi, które nie są połączone z Internetem. Możliwość oddzielenia ruchu sieciowego między wieloma kartami sieciowymi jest wymagana w przypadku wielu wirtualnych urządzeń sieciowych, takich jak dostarczanie aplikacji i rozwiązania optymalizacji sieci WAN.

Ważne

Platforma Azure ma dwa różne modele wdrażania do tworzenia zasobów i pracy z nimi: Resource Manager i klasyczny. Ten artykuł dotyczy klasycznego modelu wdrożenia. Firma Microsoft zaleca, aby większość nowych wdrożeń korzystała z modelu usługi Resource Manager. Dowiedz się, jak wykonać te kroki z wykorzystaniem modelu wdrożeń Resource Manager .

Scenariusz

W tym dokumencie przedstawiono wdrożenie korzystające z wielu kart sieciowych na maszynach wirtualnych w określonym scenariuszu. W tym scenariuszu masz dwuwarstwowe obciążenie IaaS hostowane na platformie Azure. Każda warstwa jest wdrażana we własnej podsieci w sieci wirtualnej. Warstwa front-end składa się z kilku serwerów internetowych, zgrupowanych w zestawie modułu równoważenia obciążenia, w celu zapewnienia wysokiej dostępności. Warstwa zaplecza składa się z kilku serwerów baz danych. Serwery baz danych są wdrażane z dwiema kartami sieciowymi, jedna do dostępu do bazy danych, a druga do zarządzania. Scenariusz obejmuje również sieciowe grupy zabezpieczeń w celu kontrolowania ruchu dozwolonego dla każdej podsieci oraz karty sieciowej we wdrożeniu. Na poniższej ilustracji przedstawiono podstawową architekturę tego scenariusza:

Scenariusz MultiNIC

W poniższych krokach użyto grupy zasobów o nazwie IaaSStory dla serwerów sieci WEB i grupy zasobów o nazwie IaaSStory-BackEnd dla serwerów BAZY danych.

Wymagania wstępne

Przed utworzeniem serwerów bazy danych należy utworzyć grupę zasobów IaaSStory ze wszystkimi niezbędnymi zasobami dla tego scenariusza. Aby utworzyć te zasoby, wykonaj poniższe kroki. Utwórz sieć wirtualną, wykonując kroki opisane w artykule Tworzenie sieci wirtualnej.

Wymagania wstępne: Instalacja modułu Azure PowerShell

Aby wykonać kroki opisane w tym artykule, musisz zainstalować i skonfigurować moduł Azure PowerShell. Pamiętaj, aby wykonać wszystkie instrukcje. Po zakończeniu instalacji zaloguj się do platformy Azure i wybierz swoją subskrypcję.

Uwaga

Do wykonania tych kroków jest potrzebne konto platformy Azure. Jeśli nie masz konta platformy Azure, możesz utworzyć konto bezpłatnej wersji próbnej.

Utwórz VMy zaplecza

Maszyny wirtualne backendu zależą od utworzenia następujących zasobów:

  • podsieć backendu. Serwery baz danych będą częścią oddzielnej podsieci, aby rozdzielić ruch. Poniższy skrypt oczekuje, że ta podsieć będzie istnieć w sieci wirtualnej o nazwie WTestVnet.
  • Konto magazynowe dla dysków danych. Aby uzyskać lepszą wydajność, dyski danych na serwerach baz danych będą używać technologii SSD, która wymaga konta magazynu Premium. Upewnij się, że lokalizacja platformy Azure, do której wdrażasz, obsługuje magazyn Premium.
  • Zestaw zapewnienia dostępności. Wszystkie serwery baz danych zostaną dodane do jednego zestawu dostępności, aby upewnić się, że co najmniej jedna z maszyn wirtualnych jest uruchomiona podczas konserwacji.

Krok 1. Uruchamianie skryptu

Pełny skrypt programu PowerShell używany można pobrać tutaj. Wykonaj poniższe kroki, aby zmienić skrypt tak, aby działał w twoim środowisku.

  1. Zmień wartości poniższych zmiennych na podstawie istniejącej grupy zasobów wdrożonej powyżej w Wymagania wstępne.

     $location              = "West US"
     $vnetName              = "WTestVNet"
     $backendSubnetName     = "BackEnd"
    
  2. Zmień wartości poniższych zmiennych na podstawie wartości, których chcesz użyć do wdrożenia backendu.

     $backendCSName         = "IaaSStory-Backend"
     $prmStorageAccountName = "iaasstoryprmstorage"
     $avSetName             = "ASDB"
     $vmSize                = "Standard_DS3"
     $diskSize              = 127
     $vmNamePrefix          = "DB"
     $dataDiskSuffix        = "datadisk"
     $ipAddressPrefix       = "192.168.2."
     $numberOfVMs           = 2
    

Krok 2. Tworzenie niezbędnych zasobów dla maszyn wirtualnych

Musisz utworzyć nową usługę w chmurze i konto magazynu dla dysków danych dla wszystkich maszyn wirtualnych. Należy również określić obraz i konto administratora lokalnego dla maszyn wirtualnych. Aby utworzyć te zasoby, wykonaj następujące kroki:

  1. Utwórz nową usługę w chmurze.

     New-AzureService -ServiceName $backendCSName -Location $location
    
  2. Utwórz nowe konto pamięci masowej Premium.

     New-AzureStorageAccount -StorageAccountName $prmStorageAccountName `
     -Location $location -Type Premium_LRS
    
  3. Ustaw konto magazynu utworzone powyżej jako aktualne konto magazynu dla subskrypcji.

     $subscription = Get-AzureSubscription | where {$_.IsCurrent -eq $true}  
     Set-AzureSubscription -SubscriptionName $subscription.SubscriptionName `
     -CurrentStorageAccountName $prmStorageAccountName
    
  4. Wybierz obraz maszyny wirtualnej.

     $image = Get-AzureVMImage `
     | where{$_.ImageFamily -eq "SQL Server 2014 RTM Web on Windows Server 2012 R2"} `
     | sort PublishedDate -Descending `
     | select -ExpandProperty ImageName -First 1
    
  5. Ustaw poświadczenia konta administratora lokalnego.

     $cred = Get-Credential -Message "Enter username and password for local admin account"
    

Krok 3. Tworzenie maszyn wirtualnych

Musisz użyć pętli, aby utworzyć dowolną liczbę maszyn wirtualnych i utworzyć niezbędne karty sieciowe i maszyny wirtualne w ramach pętli. Aby utworzyć karty sieciowe i maszyny wirtualne, wykonaj następujące kroki.

  1. Uruchom pętlę for, aby powtórzyć polecenia w celu utworzenia maszyny wirtualnej i dwóch kart sieciowych tyle razy, ile to konieczne, na podstawie wartości zmiennej $numberOfVMs.

     for ($suffixNumber = 1; $suffixNumber -le $numberOfVMs; $suffixNumber++){
    
  2. Utwórz obiekt VMConfig określający obraz, rozmiar i zestaw dostępności dla maszyny wirtualnej.

     $vmName = $vmNamePrefix + $suffixNumber
     $vmConfig = New-AzureVMConfig -Name $vmName `
     	-ImageName $image `
     	-InstanceSize $vmSize `
     	-AvailabilitySetName $avSetName
    
  3. Aprowizuj maszynę wirtualną jako maszynę wirtualną z systemem Windows.

     Add-AzureProvisioningConfig -VM $vmConfig -Windows `
     	-AdminUsername $cred.UserName `
     	-Password $cred.GetNetworkCredential().Password
    
  4. Ustaw domyślną kartę sieciową i przypisz jej statyczny adres IP.

     Set-AzureSubnet			-SubnetNames $backendSubnetName -VM $vmConfig
     Set-AzureStaticVNetIP 	-IPAddress ($ipAddressPrefix+$suffixNumber+3) -VM $vmConfig
    
  5. Dodaj drugą kartę sieciową dla każdej maszyny wirtualnej.

     Add-AzureNetworkInterfaceConfig -Name ("RemoteAccessNIC"+$suffixNumber) `
     -SubnetName $backendSubnetName `
     -StaticVNetIPAddress ($ipAddressPrefix+(53+$suffixNumber)) `
     -VM $vmConfig
    
  6. Utwórz dwa dyski danych dla każdej maszyny wirtualnej.

     $dataDisk1Name = $vmName + "-" + $dataDiskSuffix + "-1"    
     Add-AzureDataDisk -CreateNew -VM $vmConfig `
     -DiskSizeInGB $diskSize `
     -DiskLabel $dataDisk1Name `
     -LUN 0
    
     $dataDisk2Name = $vmName + "-" + $dataDiskSuffix + "-2"   
     Add-AzureDataDisk -CreateNew -VM $vmConfig `
     -DiskSizeInGB $diskSize `
     -DiskLabel $dataDisk2Name `
     -LUN 1
    
  7. Utwórz każdą maszynę wirtualną i zakończ pętlę.

     New-AzureVM -VM $vmConfig `
     -ServiceName $backendCSName `
     -Location $location `
     -VNetName $vnetName
     }
    

Krok 4. Uruchamianie skryptu

Po pobraniu i dostosowaniu skryptu do swoich potrzeb, uruchom go, aby utworzyć maszyny wirtualne bazy danych back-end z wieloma interfejsami sieciowymi.

  1. Zapisz skrypt i uruchom go z wiersza polecenia programu PowerShell lub programu PowerShell ISE. Zostaną wyświetlone początkowe dane wyjściowe, jak pokazano poniżej.

     OperationDescription    OperationId                          OperationStatus
    
     New-AzureService        xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
     New-AzureStorageAccount xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
    
     WARNING: No deployment found in service: 'IaaSStory-Backend'.
    
  2. Wypełnij dane wymagane w oknie uwierzytelniania i kliknij przycisk OK. Zwracane są następujące dane wyjściowe.

     New-AzureVM             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
     New-AzureVM             xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Succeeded
    

Krok 5. Konfigurowanie routingu w systemie operacyjnym maszyny wirtualnej

Usługa Azure DHCP przypisuje bramę domyślną do pierwszego (podstawowego) interfejsu sieciowego dołączonego do maszyny wirtualnej. Platforma Azure domyślnie nie przypisuje domyślnej bramy do dodatkowych interfejsów sieciowych dołączonych do maszyny wirtualnej. Dlatego domyślnie nie można komunikować się z zasobami poza podsiecią, w której znajduje się dodatkowy interfejs sieciowy. Dodatkowe interfejsy sieciowe mogą jednak komunikować się z zasobami poza podsiecią. Aby skonfigurować routing dla pomocniczych interfejsów sieciowych, zobacz następujące artykuły: