Usare gli strumenti di trasferimento dei dati in Archiviazione hub di Azure Stack
L'hub di Azure Stack offre un set di servizi di archiviazione per dischi, BLOB, tabelle, code e funzioni di gestione degli account. Alcuni strumenti di archiviazione di Azure sono disponibili se si desidera gestire o spostare i dati da o verso l'archiviazione dell'hub di Azure Stack. Questo articolo offre una panoramica degli strumenti disponibili.
I requisiti determinano quali degli strumenti seguenti funzionano meglio:
-
Utilità della riga di comando specifica dell'archiviazione che è possibile scaricare per copiare i dati da un oggetto a un altro oggetto all'interno o tra gli account di archiviazione.
-
Linguaggio basato su attività, shell della riga di comando e linguaggio di scripting progettato in particolare per l'amministrazione del sistema.
Interfaccia della riga di comando di Azure
Uno strumento open source e multipiattaforma che fornisce un set di comandi per l'uso con le piattaforme di Azure e Azure Stack Hub.
Microsoft Azure Storage Explorer
Un'app autonoma facile da usare con un'interfaccia utente.
-
Driver di file system virtuale per Archiviazione BLOB di Azure, che consente di accedere ai dati BLOB di blocchi esistenti nell'account di archiviazione tramite il file system Linux.
A causa delle differenze dei servizi di archiviazione tra Azure e l'hub di Azure Stack, potrebbero essere presenti alcuni requisiti specifici per ogni strumento descritto nelle sezioni seguenti. Per un confronto tra Archiviazione hub di Azure Stack e Archiviazione di Azure, vedere Archiviazione hub di Azure Stack: differenze e considerazioni.
AzCopy
AzCopy è un'utilità da riga di comando progettata per copiare i dati da e verso BLOB e archiviazione tabelle di Microsoft Azure usando comandi semplici con prestazioni ottimali. È possibile copiare i dati da un oggetto a un altro all'interno o tra gli account di archiviazione.
Scaricare e installare AzCopy
Configurazione e limiti di AzCopy 10.1
AzCopy 10.1 è ora in grado di essere configurato per l'uso delle versioni api precedenti. In questo modo viene abilitato il supporto (limitato) per l'hub di Azure Stack.
Per configurare la versione dell'API per AzCopy per supportare l'hub di Azure Stack, impostare la AZCOPY_DEFAULT_SERVICE_API_VERSION
variabile di ambiente su 2017-11-09
.
Sistema operativo | Comando |
---|---|
Windows | Al prompt dei comandi digitare quanto segue: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09 In PowerShell usare: $env:AZCOPY_DEFAULT_SERVICE_API_VERSION="2017-11-09" |
Linux | export AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09 |
MacOS | export AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09 |
In AzCopy 10.1 le funzionalità seguenti sono supportate per l'hub di Azure Stack:
Funzionalità | Azioni supportate |
---|---|
Gestire il contenitore | Creare un contenitore Elencare il contenuto dei contenitori |
Gestire il processo | Visualizzare i processi Riprendere un processo |
Rimuovere BLOB | Rimuovere un singolo BLOB Rimuovere l'intera directory virtuale o parziale |
Caricare il file | Caricare un file Caricare una directory Caricare il contenuto di una directory |
Scaricare il file | Scaricare un file Scaricare una directory Scaricare il contenuto di una directory |
Sincronizzare il file | Sincronizzare un contenitore in un file system locale Sincronizzare un file system locale in un contenitore |
Nota
- L'hub di Azure Stack non supporta la fornitura di credenziali di autorizzazione a AzCopy usando Microsoft Entra ID. È necessario accedere agli oggetti di archiviazione nell'hub di Azure Stack usando un token firma di accesso condiviso (SAS).
- L'hub di Azure Stack non supporta il trasferimento dei dati sincrono tra due percorsi BLOB dell'hub di Azure Stack e tra Archiviazione di Azure e Hub di Azure Stack. Non è possibile usare "azcopy cp" per spostare i dati dall'hub di Azure Stack all'archiviazione di Azure (o in altro modo) direttamente con AzCopy 10.1.
Esempi di comando AzCopy per il trasferimento dei dati
Gli esempi seguenti seguono scenari tipici per la copia dei dati da e verso i BLOB dell'hub di Azure Stack. Per altre informazioni, vedere Introduzione ad AzCopy.
Scaricare tutti i BLOB in un disco locale
azcopy cp "https://[account].blob.core.windows.net/[container]/[path/to/directory]?[SAS]" "/path/to/dir" --recursive=true
Caricare un singolo file nella directory virtuale
azcopy cp "/path/to/file.txt" "https://[account].blob.core.windows.net/[container]/[path/to/blob]?[SAS]"
Problemi noti di AzCopy
- Qualsiasi operazione azCopy in un archivio file non è disponibile perché l'archiviazione file non è ancora disponibile nell'hub di Azure Stack.
- Se si desidera trasferire i dati tra due percorsi BLOB dell'hub di Azure Stack o tra l'hub di Azure Stack e l'archiviazione di Azure usando AzCopy 10.1, è necessario scaricare prima i dati in una posizione locale e quindi ricaricare la directory di destinazione nell'hub di Azure Stack o nell'archiviazione di Azure. In alternativa, è possibile usare AzCopy 7.1 e specificare il trasferimento con l'opzione /SyncCopy per copiare i dati.
- La versione Linux di AzCopy supporta solo l'aggiornamento 1802 o versioni successive e non supporta il servizio tabelle.
- Per copiare i dati da e verso il servizio di archiviazione tabelle di Azure, installare AzCopy versione 7.3.0
Azure PowerShell
Azure PowerShell è un modulo che fornisce cmdlet per la gestione dei servizi in Azure e nell'hub di Azure Stack. È un linguaggio basato su attività, shell della riga di comando e linguaggio di scripting progettato in particolare per l'amministrazione del sistema.
Installare e configurare PowerShell per l'hub di Azure Stack
I moduli compatibili con l'hub di Azure Stack Azure PowerShell sono necessari per usare l'hub di Azure Stack. Per altre informazioni, vedere Installare PowerShell per l'hub di Azure Stack e configurare l'ambiente PowerShell dell'hub di Azure Stack.
Script di esempio di PowerShell per l'hub di Azure Stack
Questo esempio presuppone che powerShell sia stato installato correttamente per l'hub di Azure Stack. Questo script consente di completare la configurazione e chiedere alle credenziali del tenant dell'hub di Azure Stack di aggiungere l'account all'ambiente PowerShell locale. Lo script imposta quindi la sottoscrizione di Azure predefinita, crea un nuovo account di archiviazione in Azure, crea un nuovo contenitore in questo nuovo account di archiviazione e carica un file di immagine esistente (BLOB) su tale contenitore. Dopo che lo script elenca tutti i BLOB nel contenitore, creerà una nuova directory di destinazione nel computer locale e scarica il file di immagine.
- Installare moduli di Azure PowerShell compatibili con l'hub di Azure Stack.
- Scaricare gli strumenti necessari per usare l'hub di Azure Stack.
- Aprire Windows PowerShell ISE e Esegui come amministratore, quindi fare clic su File>Nuovo per creare un nuovo file di script.
- Copiare lo script seguente e incollarlo nel nuovo file di script.
- Aggiornare le variabili di script in base alle impostazioni di configurazione.
Nota
Questo script deve essere eseguito nella directory radice per AzureStack_Tools.
# begin
$ARMEvnName = "AzureStackUser" # set AzureStackUser as your Azure Stack Hub environment name
$ARMEndPoint = "https://management.local.azurestack.external"
$GraphAudience = "https://graph.windows.net/"
$AADTenantName = "<myDirectoryTenantName>.onmicrosoft.com"
$SubscriptionName = "basic" # Update with the name of your subscription.
$ResourceGroupName = "myTestRG" # Give a name to your new resource group.
$StorageAccountName = "azsblobcontainer" # Give a name to your new storage account. It must be lowercase.
$Location = "Local" # Choose "Local" as an example.
$ContainerName = "photo" # Give a name to your new container.
$ImageToUpload = "C:\temp\Hello.jpg" # Prepare an image file and a source directory in your local computer.
$DestinationFolder = "C:\temp\download" # A destination directory in your local computer.
# Import the Connect PowerShell module"
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
Import-Module .\Connect\AzureStack.Connect.psm1
# Configure the PowerShell environment
# Register an Az environment that targets your Azure Stack Hub instance
Add-AzEnvironment -Name $ARMEvnName -ARMEndpoint $ARMEndPoint
# Login
$TenantID = Get-AzsDirectoryTenantId -AADTenantName $AADTenantName -EnvironmentName $ARMEvnName
Connect-AzAccount -EnvironmentName $ARMEvnName -TenantId $TenantID
# Set a default Azure subscription.
Select-AzSubscription -SubscriptionName $SubscriptionName
# Create a new Resource Group
New-AzResourceGroup -Name $ResourceGroupName -Location $Location
# Create a new storage account.
New-AzStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -Location $Location -Type Standard_LRS
# Set a default storage account.
Set-AzCurrentStorageAccount -StorageAccountName $StorageAccountName -ResourceGroupName $ResourceGroupName
# Create a new container.
New-AzStorageContainer -Name $ContainerName -Permission Off
# Upload a blob into a container.
Set-AzStorageBlobContent -Container $ContainerName -File $ImageToUpload
# List all blobs in a container.
Get-AzStorageBlob -Container $ContainerName
# Download blobs from the container:
# Get a reference to a list of all blobs in a container.
$blobs = Get-AzStorageBlob -Container $ContainerName
# Create the destination directory.
New-Item -Path $DestinationFolder -ItemType Directory -Force
# Download blobs into the local destination directory.
$blobs | Get-AzureStorageBlobContent -Destination $DestinationFolder
# end
Problemi noti di PowerShell
differenza Get-AzStorageAccountKey
La versione corrente del modulo compatibile Azure PowerShell per l'hub di Azure Stack è 1.2.11 per le operazioni dell'utente. È diverso dalla versione più recente di Azure PowerShell. Questa differenza influisce sull'operazione dei servizi di archiviazione nel modo seguente:
Il formato del valore restituito di nella versione 1.2.11 ha due proprietà: Key1
e Key2
, mentre la versione corrente di Get-AzStorageAccountKey
Azure restituisce una matrice contenente tutte le chiavi dell'account.
# This command gets a specific key for a storage account,
# and works for Azure PowerShell version 1.4, and later versions.
(Get-AzStorageAccountKey -ResourceGroupName "RG01" `
-AccountName "MyStorageAccount").Value[0]
# This command gets a specific key for a storage account,
# and works for Azure PowerShell version 1.3.2, and previous versions.
(Get-AzStorageAccountKey -ResourceGroupName "RG01" `
-AccountName "MyStorageAccount").Key1
Per altre informazioni, vedere Get-AzureRMStorageAccountKey.
Copiare BLOB tra cluster dell'hub di Azure Stack
Start-AzStorageBlobCopy
può essere usato per avviare un processo di copia per spostare un BLOB. Quando si imposta la proprietà AbsoluteUri
come URI BLOB in un altro cluster dell'hub di Azure Stack, questo cmdlet può essere usato per copiare BLOB tra due cluster dell'hub di Azure Stack. Assicurarsi che i cluster dell'hub di Azure Stack di origine e di destinazione si trovino nella stessa versione di aggiornamento. L'hub di Azure Stack attualmente non supporta l'uso di Start-AzStorageBlobCopy
per copiare BLOB tra due cluster dell'hub di Azure Stack che hanno distribuito versioni di aggiornamento diverse.
Interfaccia della riga di comando di Azure
L'interfaccia della riga di comando di Azure è l'esperienza della riga di comando di Azure per gestire le risorse di Azure. È possibile installarlo in macOS, Linux e Windows ed eseguirlo dalla riga di comando.
L'interfaccia della riga di comando di Azure è ottimizzata per la gestione e l'amministrazione delle risorse di Azure dalla riga di comando e per la creazione di script di automazione che funzionano con l'Resource Manager di Azure. Offre molte delle stesse funzioni disponibili nel portale dell'hub di Azure Stack, incluso l'accesso ai dati avanzato.
L'hub di Azure Stack richiede l'interfaccia della riga di comando di Azure versione 2.0 o successiva. Per altre informazioni sull'installazione e la configurazione dell'interfaccia della riga di comando di Azure con l'hub di Azure Stack, vedere Installare e configurare l'interfaccia della riga di comando dell'hub di Azure Stack. Per altre informazioni su come usare l'interfaccia della riga di comando di Azure per eseguire diverse attività che usano le risorse nell'account di archiviazione dell'hub di Azure Stack, vedere Uso dell'interfaccia della riga di comando di Azure con Archiviazione di Azure.
Script di esempio dell'interfaccia della riga di comando di Azure per l'hub di Azure Stack
Dopo aver completato l'installazione e la configurazione dell'interfaccia della riga di comando, è possibile provare i passaggi seguenti per usare uno script di esempio della shell di piccole dimensioni per interagire con le risorse di archiviazione dell'hub di Azure Stack. Lo script completa le azioni seguenti:
- Crea un nuovo contenitore nell'account di archiviazione.
- Carica un file esistente (come BLOB) nel contenitore.
- Elenca tutti i BLOB nel contenitore.
- Scarica il file in una destinazione nel computer locale specificato.
Prima di eseguire questo script, assicurarsi di potersi connettere e accedere all'hub di Azure Stack di destinazione.
- Aprire un editor di testo quindi copiare e incollare lo script precedente nell'editor.
- Aggiornare le variabili dello script in modo da riflettere le impostazioni di configurazione.
- Dopo aver aggiornato le variabili necessarie, salvare lo script e uscire dall'editor. I passaggi successivi presuppongono che allo sript sia stato assegnato il nome my_storage_sample.sh.
- Contrassegnare lo script come eseguibile, se necessario:
chmod +x my_storage_sample.sh
- Eseguire lo script. Ad esempio, in Bash:
./my_storage_sample.sh
#!/bin/bash
# A simple Azure Stack Hub storage example script
export AZURESTACK_RESOURCE_GROUP=<resource_group_name>
export AZURESTACK_RG_LOCATION="local"
export AZURESTACK_STORAGE_ACCOUNT_NAME=<storage_account_name>
export AZURESTACK_STORAGE_CONTAINER_NAME=<container_name>
export AZURESTACK_STORAGE_BLOB_NAME=<blob_name>
export FILE_TO_UPLOAD=<file_to_upload>
export DESTINATION_FILE=<destination_file>
echo "Creating the resource group..."
az group create --name $AZURESTACK_RESOURCE_GROUP --location $AZURESTACK_RG_LOCATION
echo "Creating the storage account..."
az storage account create --name $AZURESTACK_STORAGE_ACCOUNT_NAME --resource-group $AZURESTACK_RESOURCE_GROUP --account-type Standard_LRS
echo "Creating the blob container..."
az storage container create --name $AZURESTACK_STORAGE_CONTAINER_NAME --account-name $AZURESTACK_STORAGE_ACCOUNT_NAME
echo "Uploading the file..."
az storage blob upload --container-name $AZURESTACK_STORAGE_CONTAINER_NAME --file $FILE_TO_UPLOAD --name $AZURESTACK_STORAGE_BLOB_NAME --account-name $AZURESTACK_STORAGE_ACCOUNT_NAME
echo "Listing the blobs..."
az storage blob list --container-name $AZURESTACK_STORAGE_CONTAINER_NAME --account-name $AZURESTACK_STORAGE_ACCOUNT_NAME --output table
echo "Downloading the file..."
az storage blob download --container-name $AZURESTACK_STORAGE_CONTAINER_NAME --account-name $AZURESTACK_STORAGE_ACCOUNT_NAME --name $AZURESTACK_STORAGE_BLOB_NAME --file $DESTINATION_FILE --output table
echo "Done"
Microsoft Azure Storage Explorer
Azure Storage Explorer è un'app autonoma di Microsoft. Consente di usare facilmente i dati di Archiviazione di Azure e Archiviazione hub di Azure Stack in computer Windows, macOS e Linux. Se si vuole un modo semplice per gestire i dati di Archiviazione dell'hub di Azure Stack, è consigliabile usare Microsoft Azure Storage Explorer.
- Per altre informazioni sulla configurazione di Azure Storage Explorer per l'uso con l'hub di Azure Stack, vedere Connettere Storage Explorer a una sottoscrizione dell'hub di Azure Stack.
- Per altre informazioni sulle Microsoft Azure Storage Explorer, vedere Introduzione a Storage Explorer
Blobfuse
Blobfuse è un driver del file system virtuale per Archiviazione BLOB di Azure, che consente di accedere ai dati BLOB in blocchi esistenti nell'account di archiviazione tramite il file system Linux. Archiviazione BLOB di Azure è un servizio di archiviazione di oggetti e pertanto non ha uno spazio dei nomi gerarchico. Blobfuse fornisce questo spazio dei nomi usando lo schema di directory virtuale con l'uso di barra /
come delimitatore. Blobfuse funziona sia in Azure che nell'hub di Azure Stack.
Per altre informazioni sul montaggio dell'archiviazione BLOB come file system con Blobfuse in Linux, vedere Come montare l'archiviazione BLOB come file system con Blobfuse.
Per l'hub di Azure Stack, blobEndpoint deve essere specificato durante la configurazione delle credenziali dell'account di archiviazione insieme a accountName, accountKey/sasToken e containerName.
In Azure Stack Development Kit (ASDK) il blobEndpoint deve essere myaccount.blob.local.azurestack.external
. Nel sistema integrato dell'hub di Azure Stack contattare l'amministratore del cloud se non si è certi dell'endpoint.
accountKey e sasToken possono essere configurati solo uno alla volta. Quando viene specificata una chiave dell'account di archiviazione, il file di configurazione delle credenziali è nel formato seguente:
accountName myaccount
accountKey myaccesskey==
containerName mycontainer
blobEndpoint myaccount.blob.local.azurestack.external
Quando viene assegnato un token di accesso condiviso, il file di configurazione delle credenziali è nel formato seguente:
accountName myaccount
sasToken ?mysastoken
containerName mycontainer
blobEndpoint myaccount.blob.local.azurestack.external