Esercizio - Aggiungere un disco dati a una macchina virtuale
L'attività dello studio legale presso cui si lavora sta aumentando ed è necessario creare un nuovo server Web Linux per archiviare documenti critici provenienti da varie fonti, ossia clienti, altri studi legali e forze dell'ordine. Il server Web consente di caricare i documenti e archiviarli su disco.
Suggerimento
Questo esercizio usa Linux come esempio, ma il processo di base per la creazione di macchine virtuali e l'aggiunta di dischi è lo stesso per Windows. La differenza principale riguarda il partizionamento e la formattazione del disco. In Windows è possibile connettersi alla macchina virtuale tramite Desktop remoto e usare gli strumenti integrati di Gestione disco o distribuire uno script PowerShell simile allo script Bash che si userà per questo esercizio.
L'obiettivo è creare una VM Linux e collegare un nuovo disco rigido virtuale (VHD) denominato uploadDataDisk1 per archiviare la directory /uploads
.
Impostare i valori predefiniti dell'interfaccia della riga di comando di Azure
L'interfaccia della riga di comando di Azure consente di impostare i valori predefiniti in modo che non sia necessario ripetere questa operazione ogni volta che si esegue un comando.
È possibile specificare il valore predefinito della posizione o dell'area geografica di Azure. Questa è la posizione in cui si trova la macchina virtuale di Azure.
La posizione è preferibilmente non accessibile ai clienti. In questo caso, selezionare l'area più vicina tra le località disponibili per l'ambiente sandbox di Azure.
La sandbox gratuita consente di creare risorse in un subset delle aree globali di Azure. Selezionare un'area nell'elenco durante la creazione delle risorse:
- westus2
- Stati Uniti centro-meridionali
- centralus
- eastus
- westeurope
- Asia sud-orientale
- japaneast
- brazilsouth
- australiasoutheast
- centralindia
Usare il comando
az configure
per impostare la località predefinita da usare. Sostituire eastus con la posizione scelta nel passaggio precedente.az configure --defaults location=eastus
Suggerimento
È possibile usare il pulsante Copia per copiare i comandi negli Appunti. Per incollare, fare clic con il pulsante destro del mouse su una nuova riga nel terminale di Cloud Shell e scegliere Incolla oppure usare i tasti di scelta rapida MAIUSC+INS (⌘+V in macOS).
Impostare il nome del gruppo di risorse predefinito per il gruppo di risorse preconfigurato creato tramite la sandbox di Azure:
[gruppo di risorse sandbox] az configure --defaults group="<rgn>[sandbox Resource Group]</rgn>"
Creare una macchina virtuale Linux
Qui si crea una macchina virtuale Linux per ospitare il server Web.
Eseguire il comando
az vm create
per creare una macchina virtuale Ubuntu Linux.az vm create \ --name support-web-vm01 \ --image Canonical:UbuntuServer:16.04-LTS:latest \ --size Standard_DS1_v2 \ --admin-username azureuser \ --generate-ssh-keys
- Il nome della macchina virtuale è support-web-vm01.
- La dimensione è Standard_DS1_v2.
- Il nome utente dell'amministratore è azureuser. In realtà, questo nome può essere uno qualsiasi.
- L'argomento
--generate-ssh-keys
genera una coppia di chiavi SSH tramite cui l'utente può connettersi alla macchina virtuale tramite SSH.
La distribuzione della VM richiede alcuni minuti. Quando la VM è pronta vengono visualizzate le relative informazioni in formato JSON. Ecco un esempio:
{ "fqdns": "", "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Compute/virtualMachines/support-web-vm01", "location": "eastus", "macAddress": "00-0D-3A-10-63-0A", "powerState": "VM running", "privateIpAddress": "10.0.0.4", "publicIpAddress": "104.211.38.211", "resourceGroup": "aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e", "zones": "" }
Nota
In questa lezione questa macchina virtuale viene usata per imparare a gestire i dischi. In pratica, si potrebbe anche installare un server Web e altro software ed eseguire
az vm open-port
per rendere disponibili al mondo esterno le porte necessarie.
Aggiungere un disco dati vuoto alla macchina virtuale
Qui si crea un disco dati vuoto e lo si collegherà alla VM. Inizialmente, la dimensione del disco dati è 64 GB. In un secondo momento, si monterà il disco nella directory /uploads
della macchina virtuale.
Suggerimento
Ai fini dell'apprendimento, la macchina virtuale e il disco dati verranno creati in due fasi distinte. In pratica, è possibile specificare l'argomento --data-disk-sizes-gb
per il comando az vm create
per aggiungere dischi dati quando viene creata la macchina virtuale.
Eseguire il comando
az vm disk attach
seguente per aggiungere un nuovo disco vuoto alla macchina virtuale.az vm disk attach \ --vm-name support-web-vm01 \ --name uploadDataDisk1 \ --size-gb 64 \ --sku Premium_LRS \ --new
Questo comando:
- Denomina il disco uploadDataDisk1.
- Imposta le dimensioni su 64 GB.
- Specifica di usare l'archiviazione premium con ridondanza locale.
Per usare il disco, è necessario partizionarlo e formattarlo. Di seguito viene illustrato come procedere.
Inizializzare e formattare il disco dati
L'unità dati vuota deve essere inizializzata e formattata. Il processo per farlo è identico a quello usato per i dischi fisici.
Per le attività occasionali è possibile connettersi manualmente alla VM tramite SSH ed eseguire i comandi necessari. Tuttavia, per rendere il processo più ripetibile e meno soggetto a errori, è possibile specificare i comandi in uno script Bash o PowerShell (se disponibile).
L'uso di uno script per automatizzare il processo comporta un altro vantaggio: lo script funge da documentazione per la modalità di esecuzione del processo. Altri utenti possono leggere lo script e comprendere come è configurato il sistema. Se si presenta l'esigenza di modificare il processo, è possibile modificare lo script e testarlo su una VM temporanea prima di distribuire le modifiche all'ambiente di produzione.
Per automatizzare il processo in questa lezione, è possibile usare l'estensione per script personalizzati. L'estensione per script personalizzati è un modo semplice per scaricare ed eseguire script nelle macchine virtuali di Azure. È solo uno dei tanti modi in cui è possibile configurare il sistema dopo aver preparato e attivato la macchina virtuale.
È possibile archiviare gli script in Archiviazione di Azure o in una posizione pubblica, ad esempio GitHub. Gli script possono essere eseguiti manualmente o come parte di una distribuzione più automatizzata. In questo caso, si esegue un comando dell'interfaccia della riga di comando di Azure per scaricare uno script Bash predefinito da GitHub ed eseguirlo nella VM.
Ai fini dell'apprendimento, si eseguiranno anche alcuni comandi nella VM per verificare che sia configurata come previsto.
Eseguire
az vm show
per ottenere l'indirizzo IP pubblico della macchina virtuale e salvare l'indirizzo IP come una variabile Bash.ipaddress=$(az vm show \ --name support-web-vm01 \ --show-details \ --query [publicIps] \ --output tsv)
Eseguire il comando
ssh
seguente per eseguire il comandolsblk
nella VM tramite una connessione SSH che usa la variabile datiipaddress
creata nel passaggio precedente. È importante ricordare cheazureuser
è il nome utente amministratore usato per creare la macchina virtuale. Se si sceglie un nome diverso, usare quello. Immettere yes quando richiesto.ssh azureuser@$ipaddress lsblk
L'output del comando deve essere simile al seguente.
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 7G 0 disk └─sdb1 8:17 0 7G 0 part /mnt sr0 11:0 1 628K 0 rom sdc 8:32 0 64G 0 disk sda 8:0 0 30G 0 disk ├─sda14 8:14 0 4M 0 part ├─sda15 8:15 0 106M 0 part /boot/efi └─sda1 8:1 0 29.9G 0 part /
Si noti che l'unità da 64 GB (
sdc
) creata non è montata. L'unità è elencata in questo modo perché non è ancora inizializzata.Eseguire il comando
az vm extension set
seguente per eseguire lo script Bash predefinito nella VM.Avviso
Lo script modifica
/etc/fstab
. Se il file/etc/fstab
non viene modificato in modo corretto, il sistema potrebbe non essere disponibile per l'avvio. Testare sempre le modifiche alla configurazione in un sistema temporaneo prima di distribuirle nell'ambiente di produzione. Per informazioni su come modificare correttamente il file, fare riferimento alla documentazione della distribuzione. Nell'ambiente di produzione è anche consigliabile creare un backup del file in modo che, se necessario, sia possibile ripristinare la configurazione.az vm extension set \ --vm-name support-web-vm01 \ --name customScript \ --publisher Microsoft.Azure.Extensions \ --settings '{"fileUris":["https://raw.githubusercontent.com/MicrosoftDocs/mslearn-add-and-size-disks-in-azure-virtual-machines/master/add-data-disk.sh"]}' \ --protected-settings '{"commandToExecute": "./add-data-disk.sh"}'
Durante l'esecuzione del comando, è possibile esaminare lo script Bash in una scheda separata del browser.
Per riassumere, lo script:
- Esegue il partizionamento dell'unità
/dev/sdc
. - Crea un file system ext4 nell'unità.
- Creare la directory
/uploads
, usata come punto di montaggio. - Collega il disco al punto di montaggio.
- Aggiorna
/etc/fstab
in modo che l'unità venga montata automaticamente dopo il riavvio del sistema.
- Esegue il partizionamento dell'unità
Per verificare la configurazione, eseguire lo stesso comando
ssh
usato in precedenza per eseguire il comandolsblk
nella macchina virtuale tramite una connessione SSH.ssh azureuser@$ipaddress lsblk
Si dovrebbe constatare che
sdc/sdc1
è partizionata e montata nella directory/uploads
prevista.NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sdb 8:16 0 7G 0 disk └─sdb1 8:17 0 7G 0 part /mnt sr0 11:0 1 628K 0 rom sdc 8:32 0 64G 0 disk └─sdc1 8:33 0 64G 0 part /uploads sda 8:0 0 30G 0 disk ├─sda14 8:14 0 4M 0 part ├─sda15 8:15 0 106M 0 part /boot/efi └─sda1 8:1 0 29.9G 0 part /
Suggerimento
Alcuni kernel di Linux supportano la funzionalità TRIM per rimuovere i blocchi inutilizzati sui dischi. Questa funzionalità è disponibile per i dischi di Azure e consente di risparmiare denaro se si creano file di grandi dimensioni che poi vengono eliminati. Vedere la documentazione di Azure per informazioni su come attivare questa funzionalità.
Riepilogo
Durante l'esercizio è stato creato un disco dati e collegato alla macchina virtuale. L'estensione per script personalizzati è stata usata per eseguire uno script Bash predefinito nella VM e rendere il processo più ripetibile. Lo script Bash partiziona, formatta e monta il disco in modo da renderlo accessibile in scrittura al server Web.
Ora che il disco della VM è pronto, esaminiamo più in dettaglio i vari tipi di dischi che è possibile creare. La principale decisione riguarda la scelta tra archiviazione Standard o Premium.