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:

  • AzCopy

    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.

  • Azure PowerShell

    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.

  • Blobfuse

    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

Scaricare AzCopy V10+.

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.

  1. Installare moduli di Azure PowerShell compatibili con l'hub di Azure Stack.
  2. Scaricare gli strumenti necessari per usare l'hub di Azure Stack.
  3. Aprire Windows PowerShell ISE e Esegui come amministratore, quindi fare clic su File>Nuovo per creare un nuovo file di script.
  4. Copiare lo script seguente e incollarlo nel nuovo file di script.
  5. 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.

  1. Aprire un editor di testo quindi copiare e incollare lo script precedente nell'editor.
  2. Aggiornare le variabili dello script in modo da riflettere le impostazioni di configurazione.
  3. 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.
  4. Contrassegnare lo script come eseguibile, se necessario:chmod +x my_storage_sample.sh
  5. 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.

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

Passaggi successivi