Een VIRTUELE machine (klassiek) met meerdere NIC's maken met behulp van PowerShell

U kunt virtuele machines (VM's) in Azure maken en meerdere netwerkinterfaces (NIC's) koppelen aan elk van uw VM's. Meerdere NIC's maken scheiding van verkeerstypen tussen NIC's mogelijk. Eén NIC kan bijvoorbeeld communiceren met internet, terwijl een andere alleen communiceert met interne bronnen die niet zijn verbonden met internet. De mogelijkheid om netwerkverkeer over meerdere NIC's te scheiden, is vereist voor veel virtuele netwerkapparaten, zoals oplossingen voor het leveren van toepassingen en WAN-optimalisatie.

Belangrijk

Azure heeft twee verschillende implementatiemodellen voor het maken en werken met resources: Resource Manager en klassiek. Dit artikel gaat over het gebruik van het klassieke implementatiemodel. U doet er verstandig aan voor de meeste nieuwe implementaties het Resource Manager-model te gebruiken. Meer informatie over het uitvoeren van deze stappen met behulp van het Resource Manager implementatiemodel.

Scenario

In dit document wordt een implementatie beschreven die gebruikmaakt van meerdere NIC's in VM's in een specifiek scenario. In dit scenario hebt u een IaaS-workload met twee lagen die wordt gehost in Azure. Elke laag wordt geïmplementeerd in een eigen subnet in een virtueel netwerk (VNet). De front-endlaag bestaat uit verschillende webservers, gegroepeerd in een load balancer-set voor hoge beschikbaarheid. De back-endlaag bestaat uit verschillende databaseservers. De databaseservers worden geïmplementeerd met elk twee NIC's, één voor databasetoegang, de andere voor beheer. Het scenario omvat ook netwerkbeveiligingsgroepen (NSG's) om te bepalen welk verkeer naar elk subnet is toegestaan en NIC in de implementatie. In de volgende afbeelding ziet u de basisarchitectuur van dit scenario:

MultiNIC-scenario

In de volgende stappen wordt een resourcegroep met de naam IaaSStory gebruikt voor de WEBSERVERs en een resourcegroep met de naam IaaSStory-BackEnd voor de DB-servers .

Vereisten

Voordat u de DB-servers kunt maken, moet u de IaaSStory-resourcegroep maken met alle benodigde resources voor dit scenario. Voer de volgende stappen uit om deze resources te maken. Maak een virtueel netwerk door de stappen in het artikel Een virtueel netwerk maken te volgen.

Voorwaarde: installeer de Azure PowerShell-module

Als u de stappen in dit artikel wilt uitvoeren, moet u de Azure PowerShell-module installeren en configureren. Voltooi alle instructies. Nadat de installatie is voltooid, meldt u zich aan bij Azure en selecteert u uw abonnement.

Notitie

U hebt een Azure-account nodig om deze stappen uit te voeren. Als u nog geen Azure-account hebt, kunt u zich registreren voor een gratis proefversie.

De back-end-VM's maken

De back-end-VM's zijn afhankelijk van het maken van de volgende resources:

  • Back-endsubnet. De databaseservers maken deel uit van een afzonderlijk subnet om verkeer te scheiden. In het onderstaande script wordt verwacht dat dit subnet bestaat in een vnet met de naam WTestVnet.
  • Opslagaccount voor gegevensschijven. Voor betere prestaties gebruiken de gegevensschijven op de databaseservers ssd-technologie (Solid State Drive). Hiervoor is een Premium-opslagaccount vereist. Zorg ervoor dat de Azure-locatie die u implementeert ter ondersteuning van Premium Storage.
  • Beschikbaarheidsset. Alle databaseservers worden toegevoegd aan één beschikbaarheidsset om ervoor te zorgen dat ten minste één van de VM's actief is tijdens onderhoud.

Stap 1: het script starten

U kunt het volledige PowerShell-script downloaden dat hier wordt gebruikt. Volg de onderstaande stappen om het script te wijzigen in uw omgeving.

  1. Wijzig de waarden van de onderstaande variabelen op basis van uw bestaande resourcegroep die hierboven is geïmplementeerd in Vereisten.

     $location              = "West US"
     $vnetName              = "WTestVNet"
     $backendSubnetName     = "BackEnd"
    
  2. Wijzig de waarden van de onderstaande variabelen op basis van de waarden die u wilt gebruiken voor uw back-endimplementatie.

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

Stap 2: de benodigde resources voor uw VM's maken

U moet een nieuwe cloudservice en een opslagaccount maken voor de gegevensschijven voor alle VM's. U moet ook een installatiekopieën en een lokaal beheerdersaccount voor de VM's opgeven. Voer de volgende stappen uit om deze resources te maken:

  1. Maak een nieuwe cloudservice.

     New-AzureService -ServiceName $backendCSName -Location $location
    
  2. Maak een nieuw Premium-opslagaccount.

     New-AzureStorageAccount -StorageAccountName $prmStorageAccountName `
     -Location $location -Type Premium_LRS
    
  3. Stel het hierboven gemaakte opslagaccount in als het huidige opslagaccount voor uw abonnement.

     $subscription = Get-AzureSubscription | where {$_.IsCurrent -eq $true}  
     Set-AzureSubscription -SubscriptionName $subscription.SubscriptionName `
     -CurrentStorageAccountName $prmStorageAccountName
    
  4. Selecteer een installatiekopieën voor de virtuele machine.

     $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. Stel de referenties voor het lokale beheerdersaccount in.

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

Stap 3: VM's maken

U moet een lus gebruiken om zoveel vm's te maken als u wilt en de benodigde NIC's en VM's binnen de lus te maken. Voer de volgende stappen uit om de NIC's en VM's te maken.

  1. Start een for lus om de opdrachten te herhalen voor het maken van een VIRTUELE machine en twee NIC's zo vaak als nodig is, op basis van de waarde van de $numberOfVMs variabele.

     for ($suffixNumber = 1; $suffixNumber -le $numberOfVMs; $suffixNumber++){
    
  2. Maak een VMConfig object met de installatiekopieën, grootte en beschikbaarheidsset voor de virtuele machine.

     $vmName = $vmNamePrefix + $suffixNumber
     $vmConfig = New-AzureVMConfig -Name $vmName `
     	-ImageName $image `
     	-InstanceSize $vmSize `
     	-AvailabilitySetName $avSetName
    
  3. Richt de VIRTUELE machine in als een Windows-VM.

     Add-AzureProvisioningConfig -VM $vmConfig -Windows `
     	-AdminUsername $cred.UserName `
     	-Password $cred.GetNetworkCredential().Password
    
  4. Stel de standaard-NIC in en wijs deze toe aan een statisch IP-adres.

     Set-AzureSubnet			-SubnetNames $backendSubnetName -VM $vmConfig
     Set-AzureStaticVNetIP 	-IPAddress ($ipAddressPrefix+$suffixNumber+3) -VM $vmConfig
    
  5. Voeg een tweede NIC toe voor elke VIRTUELE machine.

     Add-AzureNetworkInterfaceConfig -Name ("RemoteAccessNIC"+$suffixNumber) `
     -SubnetName $backendSubnetName `
     -StaticVNetIPAddress ($ipAddressPrefix+(53+$suffixNumber)) `
     -VM $vmConfig
    
  6. Maken naar gegevensschijven voor elke virtuele machine.

     $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. Maak elke virtuele machine en beëindig de lus.

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

Stap 4: het script uitvoeren

Nu u het script hebt gedownload en gewijzigd op basis van uw behoeften, voert u het script uit om de back-enddatabase-VM's met meerdere NIC's te maken.

  1. Sla uw script op en voer het uit vanaf de PowerShell-opdrachtprompt of PowerShell ISE. U ziet de initiële uitvoer, zoals hieronder wordt weergegeven.

     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. Vul de informatie in die nodig is in de prompt voor referenties en klik op OK. De volgende uitvoer wordt geretourneerd.

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

Stap 5: routering configureren binnen het besturingssysteem van de VIRTUELE machine

Azure DHCP wijst een standaardgateway toe aan de eerste (primaire) netwerkinterface die is gekoppeld aan de virtuele machine. Azure wijst geen standaardgateway toe aan extra (secundaire) netwerkinterfaces die zijn gekoppeld aan een virtuele machine. Daarom kunt u standaard niet communiceren met resources buiten het subnet waarin een secundaire netwerkinterface zich bevindt. Secundaire netwerkinterfaces kunnen echter wel communiceren met resources buiten hun subnet. Zie de volgende artikelen voor het configureren van routering voor secundaire netwerkinterfaces: