Udostępnij za pośrednictwem


Tworzenie maszyny wirtualnej (klasycznej) z wieloma kartami sieciowymi przy użyciu klasycznego interfejsu wiersza polecenia platformy Azure

Maszyny wirtualne można tworzyć na platformie Azure i dołączać wiele interfejsów sieciowych do każdej maszyny wirtualnej. Wiele kart sieciowych umożliwia rozdzielenie typów ruchu między kartami sieciowymi. Na przykład jedna karta sieciowa może komunikować się z Internetem, podczas gdy inna 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 związane z tworzeniem zasobów i pracą z nimi: Resource Manager i model klasyczny. Ten artykuł dotyczy klasycznego modelu wdrożenia. Firma Microsoft zaleca, aby w przypadku większości nowych wdrożeń korzystać z modelu opartego na programie Resource Manager. Dowiedz się, jak wykonać te kroki przy użyciu modelu wdrażania Resource Manager.

Scenariusz

W tym dokumencie przedstawiono wdrożenie, które korzysta 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 frontonu składa się z kilku serwerów internetowych pogrupowanych razem 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, po jednym na potrzeby dostępu do bazy danych, a drugą do zarządzania. Scenariusz obejmuje również sieciowe grupy zabezpieczeń (NSG) do kontrolowania ruchu dozwolonego dla każdej podsieci i karty sieciowej we wdrożeniu. Na poniższej ilustracji przedstawiono podstawową architekturę tego scenariusza:

Scenariusz z wieloma sieciami sieciowych

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 w tym scenariuszu. Aby utworzyć te zasoby, wykonaj poniższe kroki. Utwórz sieć wirtualną, wykonując kroki opisane w artykule Tworzenie sieci wirtualnej .

Wymaganie wstępne: instalowanie interfejsu wiersza polecenia platformy Azure

Aby wykonać kroki opisane w tym artykule, zainstaluj interfejs wiersza polecenia platformy Azure i zaloguj się na platformie Azure.

Uwaga

Jeśli nie masz konta platformy Azure, potrzebujesz go. Zarejestruj się, aby skorzystać z bezpłatnej wersji próbnej tutaj. Ponadto, aby wykonać te czynności, musisz mieć zainstalowane narzędzie do analizowania kodu JSON lub inną bibliotekę JSON.

Wdrażanie maszyn wirtualnych zaplecza

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

  • Konto magazynu dla dysków danych. Aby uzyskać lepszą wydajność, dyski danych na serwerach baz danych będą używać technologii dysków półprzewodnikowych (SSD), która wymaga konta magazynu w warstwie Premium. Upewnij się, że lokalizacja platformy Azure wdrożona w celu obsługi magazynu w warstwie Premium.
  • Karty sieciowe. Każda maszyna wirtualna będzie mieć dwie karty sieciowe, jedną dla dostępu do bazy danych i jedną do zarządzania.
  • Zestaw 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 powłoki bash można pobrać tutaj. Wykonaj następujące kroki, aby zmienić skrypt tak, aby działał w środowisku:

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

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

     backendCSName="IaaSStory-Backend"
     prmStorageAccountName="iaasstoryprmstorage"
     image="0b11de9248dd4d87b18621318e037d37__RightImage-Ubuntu-14.04-x64-v14.2.1"
     avSetName="ASDB"
     vmSize="Standard_DS3"
     diskSize=127
     vmNamePrefix="DB"
     osDiskName="osdiskdb"
     dataDiskPrefix="db"
     dataDiskName="datadisk"
     ipAddressPrefix="192.168.2."
     username='adminuser'
     password='adminP@ssw0rd'
     numberOfVMs=2
    

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

  1. Utwórz nową usługę w chmurze dla wszystkich maszyn wirtualnych zaplecza. Zwróć uwagę na użycie zmiennej $backendCSName dla nazwy grupy zasobów i $location regionu świadczenia usługi Azure.

     azure service create --serviceName $backendCSName \
     	--location $location
    
  2. Utwórz konto magazynu w warstwie Premium dla systemu operacyjnego i dysków danych, które mają być używane przez maszyny wirtualne.

     azure storage account create $prmStorageAccountName \
     	--location $location \
     	--type PLRS
    

Krok 3. Tworzenie maszyn wirtualnych z wieloma kartami sieciowymi

  1. Uruchom pętlę, aby utworzyć wiele maszyn wirtualnych na numberOfVMs podstawie zmiennych.

     for ((suffixNumber=1;suffixNumber<=numberOfVMs;suffixNumber++));
     do
    
  2. Dla każdej maszyny wirtualnej określ nazwę i adres IP każdej z dwóch kart sieciowych.

     nic1Name=$vmNamePrefix$suffixNumber-DA
     x=$((suffixNumber+3))
     ipAddress1=$ipAddressPrefix$x
    
     nic2Name=$vmNamePrefix$suffixNumber-RA
     x=$((suffixNumber+53))
     ipAddress2=$ipAddressPrefix$x
    
  3. Utwórz maszynę wirtualną. Zwróć uwagę na użycie parametru --nic-config zawierającego listę wszystkich kart sieciowych o nazwie, podsieci i adresie IP.

     azure vm create $backendCSName $image $username $password \
     	--connect $backendCSName \
     	--vm-name $vmNamePrefix$suffixNumber \
     	--vm-size $vmSize \
     	--availability-set $avSetName \
     	--blob-url $prmStorageAccountName.blob.core.windows.net/vhds/$osDiskName$suffixNumber.vhd \
     	--virtual-network-name $vnetName \
     	--subnet-names $backendSubnetName \
     	--nic-config $nic1Name:$backendSubnetName:$ipAddress1::,$nic2Name:$backendSubnetName:$ipAddress2::
    
  4. Dla każdej maszyny wirtualnej utwórz dwa dyski danych.

     azure vm disk attach-new $vmNamePrefix$suffixNumber \
     	$diskSize \
     	vhds/$dataDiskPrefix$suffixNumber$dataDiskName-1.vhd
    
     azure vm disk attach-new $vmNamePrefix$suffixNumber \
     	$diskSize \
     	vhds/$dataDiskPrefix$suffixNumber$dataDiskName-2.vhd
     done
    

Krok 4. Uruchamianie skryptu

Po pobraniu i zmianie skryptu w zależności od potrzeb uruchom skrypt, aby utworzyć maszyny wirtualne bazy danych zaplecza z wieloma kartami sieciowymi.

  1. Zapisz skrypt i uruchom go z poziomu terminalu powłoki Bash . Zostaną wyświetlone początkowe dane wyjściowe, jak pokazano poniżej.

     info:    Executing command service create
     info:    Creating cloud service
     data:    Cloud service name IaaSStory-Backend
     info:    service create command OK
     info:    Executing command storage account create
     info:    Creating storage account
     info:    storage account create command OK
     info:    Executing command vm create
     info:    Looking up image 0b11de9248dd4d87b18621318e037d37__RightImage-Ubuntu-14.04-x64-v14.2.1
     info:    Looking up virtual network
     info:    Looking up cloud service
     info:    Getting cloud service properties
     info:    Looking up deployment
     info:    Creating VM
    
  2. Po kilku minutach wykonanie zostanie zakończone i zobaczysz resztę danych wyjściowych, jak pokazano poniżej.

     info:    OK
     info:    vm create command OK
     info:    Executing command vm disk attach-new
     info:    Getting virtual machines
     info:    Adding Data-Disk
     info:    vm disk attach-new command OK
     info:    Executing command vm disk attach-new
     info:    Getting virtual machines
     info:    Adding Data-Disk
     info:    vm disk attach-new command OK
     info:    Executing command vm create
     info:    Looking up image 0b11de9248dd4d87b18621318e037d37__RightImage-Ubuntu-14.04-x64-v14.2.1
     info:    Looking up virtual network
     info:    Looking up cloud service
     info:    Getting cloud service properties
     info:    Looking up deployment
     info:    Creating VM
     info:    OK
     info:    vm create command OK
     info:    Executing command vm disk attach-new
     info:    Getting virtual machines
     info:    Adding Data-Disk
     info:    vm disk attach-new command OK
     info:    Executing command vm disk attach-new
     info:    Getting virtual machines
     info:    Adding Data-Disk
     info:    vm disk attach-new command OK
    

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 Routing w systemie operacyjnym maszyny wirtualnej z wieloma interfejsami sieciowymi.