Creare una macchina virtuale (classica) con più schede di interfaccia di rete tramite l'interfaccia della riga di comando classica di Azure
È possibile creare macchine virtuali (VM) in Azure e collegare più interfacce di rete (NIC) a ciascuna delle macchine virtuali. Più schede di interfaccia rete consentono la separazione dei tipi di traffico tra schede di interfaccia di rete. Ad esempio, una scheda di interfaccia di rete può comunicare con Internet, mentre un'altra comunica solo con le risorse interne non connesse a Internet. La possibilità di separare il traffico di rete tra più schede di interfaccia di rete è necessaria per molte appliance virtuali di rete, ad esempio soluzioni di ottimizzazione WAN e di distribuzione delle applicazioni.
Importante
Azure offre due modelli di distribuzione diversi per creare e usare le risorse: Resource Manager e distribuzione classica. Questo articolo illustra l'uso del modello di distribuzione classica. Microsoft consiglia di usare il modello di Gestione risorse per le distribuzioni più recenti. Informazioni su come eseguire questi passaggi usando il modello di distribuzione Resource Manager.
Scenario
In questo documento verrà illustrata una distribuzione che usa più schede di rete nelle macchine virtuali in uno scenario specifico. In questo scenario, si ha a disposizione un carico di lavoro IaaS a due livelli ospitato in Azure. Ogni livello viene distribuito nella propria subnet in una rete virtuale (VNet). Il livello di front-end è costituito da diversi server web, raggruppati in un bilanciamento del carico impostato per una disponibilità elevata. Il livello di back-end è costituito da più server di database. I server di database verranno distribuiti con due schede di rete, una per l'accesso al database, l'altra per la gestione. Lo scenario include anche i gruppi di sicurezza di rete (NSGs) per controllare quale traffico è consentito per ogni subnet, e la scheda di rete nella distribuzione. Nella figura seguente viene illustrata l'architettura di base di questo scenario.
La procedura seguente usa un gruppo di risorse denominato IaaSStory per i server Web e un gruppo di risorse denominato IaaSStory-BackEnd per i server di database.
Prerequisiti
Prima di creare i server di database, è necessario creare il gruppo di risorse IaaSStory con tutte le risorse richieste per questo scenario. Per creare le risorse, seguire questa procedura. Creare una rete virtuale seguendo la procedura riportata nell'articolo Creare una rete virtuale.
Prerequisito: installare l'interfaccia della riga di comando di Azure
Per eseguire la procedura descritta in questo articolo, installare l'interfaccia della riga di comando di Azure e accedere ad Azure.
Nota
Se non si dispone di un account Azure, è necessario procurarsene uno. Iscriversi per ottenere una versione di valutazione gratuita qui. Inoltre, per seguire la procedura è necessario avere jq o un altro strumento o libreria di analisi JSON installato.
Distribuire le macchine virtuali di back-end
Le macchine virtuali di back-end dipendono dalla creazione delle risorse seguenti:
- Account di archiviazione per dischi dati. Per migliorare le prestazioni, i dischi dati sui server di database utilizzano la tecnologia SSD (Solid State Drive), che richiede un account di archiviazione premium. Verificare la posizione di Azure che viene distribuita per supportare l'archiviazione premium.
- Schede di interfaccia di rete. Ogni macchina virtuale ha due schede di rete, una per l'accesso al database e una per la gestione.
- Set di disponibilità. Tutti i server di database vengono aggiunti a un singolo set di disponibilità, per garantire che almeno una delle macchine virtuali sia attiva e in esecuzione durante la manutenzione.
Passaggio 1 - avviare lo script
È possibile scaricare lo script di bash completo utilizzato qui. Per modificare lo script da usare nell'ambiente, seguire questa procedura:
Modificare i valori delle variabili indicate di seguito in base al gruppo di risorse esistente distribuito in precedenza in Prerequisiti.
location="useast2" vnetName="WTestVNet" backendSubnetName="BackEnd"
Modificare i valori delle variabili indicate di seguito in base ai valori che si desidera usare per la distribuzione di back-end.
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
Passaggio 2 - Creare le risorse necessarie per le macchine virtuali
Creare un nuovo servizio cloud per tutte le macchine virtuali di back-end. Si noti l'utilizzo della
$backendCSName
variabile per il nome del gruppo di risorse e$location
per l'area di Azure.azure service create --serviceName $backendCSName \ --location $location
Creare un account di archiviazione premium per i dischi dati e del sistema operativo da usare mediante le macchine virtuali.
azure storage account create $prmStorageAccountName \ --location $location \ --type PLRS
Passaggio 3 - creare macchine virtuali con più NIC
Avviare un ciclo per creare più macchine virtuali, in base alle
numberOfVMs
variabili.for ((suffixNumber=1;suffixNumber<=numberOfVMs;suffixNumber++)); do
Per ogni macchina virtuale, specificare il nome e l’indirizzo IP di ciascuna delle due schede di rete.
nic1Name=$vmNamePrefix$suffixNumber-DA x=$((suffixNumber+3)) ipAddress1=$ipAddressPrefix$x nic2Name=$vmNamePrefix$suffixNumber-RA x=$((suffixNumber+53)) ipAddress2=$ipAddressPrefix$x
Creare la macchina virtuale Si noti l'utilizzo del parametro
--nic-config
, contenente un elenco di tutte le schede di rete con nome, subnet e indirizzo 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::
Per ogni macchina virtuale, creare due dischi dati.
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
Passaggio 4 - Eseguire lo script.
Una volta scaricato e modificato lo script in base alle esigenze, eseguire lo script per creare macchine virtuali del database di back-end con più schede di rete.
Salvare lo script ed eseguirlo dal terminale Bash . Verrà visualizzato l'output iniziale, come illustrato di seguito.
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
Dopo alcuni minuti, l'esecuzione verrà terminata e il resto dell'output verrà visualizzato come mostrato di seguito.
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
Passaggio 5 - Configurare il routing all'interno del sistema operativo della VM
Azure DHCP assegna un gateway predefinito alla prima interfaccia di rete (primaria) associata alla macchina virtuale. Azure non assegna un gateway predefinito ad altre interfacce di rete (secondarie) associate a una macchina virtuale. Di conseguenza, per impostazione predefinita, non è possibile comunicare con risorse esterne alla subnet in cui si trova un'interfaccia di rete secondaria. Le interfacce di rete secondarie possono tuttavia comunicare con risorse esterne alla loro subnet. Per configurare il routing per le interfacce di rete secondarie, vedere Routing within a virtual machine operating system with multiple network interfaces (Routing in un sistema operativo di macchina virtuale con più interfacce di rete).