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:
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:
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"
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
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
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
Uruchom pętlę, aby utworzyć wiele maszyn wirtualnych na
numberOfVMs
podstawie zmiennych.for ((suffixNumber=1;suffixNumber<=numberOfVMs;suffixNumber++)); do
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
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::
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.
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
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.