Montare l'archiviazione file di Azure su VM Linux usando SMB

Questo articolo descrive come usare il servizio di archiviazione file di Azure su una VM Linux usando un montaggio SMB con l'interfaccia della riga di comando di Azure. L'archiviazione file di Azure offre condivisioni file nel cloud usando il protocollo SMB standard.

L'archiviazione file offre condivisioni file nel cloud che usano il protocollo SMB standard. È possibile montare una condivisione di file da qualsiasi sistema operativo che supporta SMB 3.0. Quando si usa un montaggio SMB in Linux è possibile eseguire facilmente copie di backup in un percorso di archiviazione affidabile e permanente supportato da un Contratto di servizio.

Lo spostamento di file da una VM a un montaggio SMB ospitato nell'archiviazione file è un ottimo modo per eseguire il debug dei log, La stessa condivisione SMB può essere montata in locale in workstation Mac, Linux o Windows. SMB non è la soluzione migliore per eseguire lo streaming di log applicazioni o Linux in tempo reale perché il protocollo SMB non è stato creato per la gestione di attività di registrazione così impegnative. Per raccogliere l'output di log applicazioni o Linux è preferibile usare uno strumento dedicato con livello di registrazione unificato come Fluentd piuttosto che SMB.

Questa guida richiede l'interfaccia della riga di comando di Azure 2.0.4 o versioni successive. Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

Creare un gruppo di risorse

Creare un gruppo di risorse denominato myResourceGroup nella posizione Stati Uniti orientali.

az group create --name myResourceGroup --location eastus

Creare un account di archiviazione

Creare un nuovo account di archiviazione nel gruppo di risorse creato usando az storage account create. Questo esempio crea un account di archiviazione denominato mySTORAGEACCTrandom< number> e inserisce il nome dell'account di archiviazione nella variabile STORAGEACCT. I nomi degli account di archiviazione devono essere univoci, usando $RANDOM si aggiunge un numero al nome e lo si rende univoco.

STORAGEACCT=$(az storage account create \
    --resource-group "myResourceGroup" \
    --name "mystorageacct$RANDOM" \
    --location eastus \
    --sku Standard_LRS \
    --query "name" | tr -d '"')

Ottenere la chiave di archiviazione

Quando si crea un account di archiviazione, le chiavi dell'account vengono create a coppie perché possano essere ruotate senza interrompere il servizio. Quando si passa alla seconda chiave della coppia, viene creata una nuova coppia di chiavi. Le nuove chiavi dell'account di archiviazione vengono sempre create a coppie in modo da avere sempre a disposizione almeno una chiave dell'account di archiviazione non usata alla quale passare.

Visualizzare le chiavi dell'account di archiviazione tramite il comando az storage account keys list. Questo esempio archivia il valore della chiave 1 nella variabile STORAGEKEY.

STORAGEKEY=$(az storage account keys list \
    --resource-group "myResourceGroup" \
    --account-name $STORAGEACCT \
    --query "[0].value" | tr -d '"')

Creare una condivisione file

Creare la condivisione File di archiviazione usando az storage share create.

I nomi condivisione devono essere costituiti da lettere minuscole, numeri e trattini singoli, ma non possono iniziare con un trattino. Per dettagli su come denominare condivisioni e file, vedere Denominazione e riferimento a condivisioni, directory, file e metadati.

Questo esempio crea una condivisione denominata myshare con una quota di 10 GiB.

az storage share create --name myshare \
    --quota 10 \
    --account-name $STORAGEACCT \
    --account-key $STORAGEKEY

Creare un punto di montaggio

Per montare la condivisione file di Azure nel computer Linux, è necessario assicurarsi di avere il pacchetto cifs-utils installato. Per le istruzioni di installazione consultare Installare il pacchetto cifs-utils per la distribuzione Linux.

File di Azure usa il protocollo SMB, che comunica sulla porta TCP 445. Se si verificano problemi di montaggio della condivisione file di Azure, assicurarsi che il firewall non blocchi la porta TCP 445.

mkdir -p /mnt/MyAzureFileShare

Montare la condivisione

Montare la condivisione file di Azure nella directory locale.

sudo mount -t cifs //$STORAGEACCT.file.core.windows.net/myshare /mnt/MyAzureFileShare -o vers=3.0,username=$STORAGEACCT,password=$STORAGEKEY,dir_mode=0777,file_mode=0777,serverino

Il comando riportato sopra usa il comando mount per montare la condivisione file di Azure e opzioni specifiche per cifs. In particolare, le opzioni file_mode e dir_mode impostano file e directory sull'autorizzazione 0777. L'autorizzazione 0777 concede a tutti gli utenti l'autorizzazione di lettura, scrittura ed esecuzione. È possibile modificare queste autorizzazioni sostituendo i valori con altre autorizzazioni chmod. È anche possibile usare altre opzioni cifs, ad esempio gid o uid.

Rendere permanente il montaggio

Quando si riavvia la VM Linux, durante la fase di arresto viene smontata la condivisione SMB montata. Per consentire il rimontaggio della condivisione SMB all'avvio, aggiungere una riga a /etc/fstab di Linux. Linux usa il file fstab per elencare i file system da montare durante la fase di avvio. Aggiungendo la condivisione SMB si garantisce che la condivisione di archiviazione file costituisca un file system montato in modo permanente per la VM Linux. L'aggiunta della condivisione SMB di archiviazione file in una nuova VM è possibile quando si usa cloud-init.

//myaccountname.file.core.windows.net/mystorageshare /mnt/mymountpoint cifs vers=3.0,username=mystorageaccount,password=myStorageAccountKeyEndingIn==,dir_mode=0777,file_mode=0777

Per aumentare la sicurezza negli ambienti di produzione, è consigliabile archiviare le credenziali di fuori di fstab.

Passaggi successivi