Usare gli strumenti di trasferimento dei dati in Azure Stack archiviazioneUse data transfer tools in Azure Stack Storage

Si applica a: Azure Stack sistemi integrati e Azure Stack Development KitApplies to: Azure Stack integrated systems and Azure Stack Development Kit

Azure Stack fornisce un set di servizi di archiviazione per i dischi, i BLOB, le tabelle, le code e le funzioni di gestione degli account.Azure Stack provides a set of storage services for disks, blobs, tables, queues, and account management functions. Alcuni strumenti di archiviazione di Azure sono disponibili se si vuole gestire o spostare i dati da e verso archiviazione Azure Stack.Some Azure Storage tools are available if you want to manage or move data to or from Azure Stack Storage. Questo articolo fornisce una panoramica degli strumenti disponibili.This article provides an overview of the available tools.

I requisiti determinano quale dei seguenti strumenti funziona meglio:Your requirements determine which of the following tools works best for you:

  • AzCopyAzCopy

    Utilità da riga di comando specifica dell'archiviazione che è possibile scaricare per copiare i dati da un oggetto a un altro all'interno o tra gli account di archiviazione.A storage-specific, command-line utility that you can download to copy data from one object to another object within or between your storage accounts.

  • Azure PowerShellAzure PowerShell

    Una shell della riga di comando basata su attività e un linguaggio di scripting progettato appositamente per l'amministrazione del sistema.A task-based, command-line shell and scripting language designed especially for system administration.

  • interfaccia della riga di comando di AzureAzure CLI

    Strumento multipiattaforma open source che fornisce un set di comandi per l'uso con le piattaforme Azure e Azure Stack.An open-source, cross-platform tool that provides a set of commands for working with the Azure and Azure Stack platforms.

  • Microsoft Storage ExplorerMicrosoft storage explorer

    App autonoma facile da usare con un'interfaccia utente.An easy-to-use stand-alone app with a user interface.

  • BlobfuseBlobfuse

    Un driver di file system virtuale per l'archiviazione BLOB di Azure, che consente di accedere ai dati BLOB in blocchi esistenti nell'account di archiviazione tramite Linux file system.A virtual file system driver for Azure Blob Storage, which allows you to access your existing block blob data in your storage account through the Linux file system.

A causa delle differenze dei servizi di archiviazione tra Azure e Azure Stack, potrebbero essere necessari alcuni requisiti specifici per ogni strumento descritto nelle sezioni seguenti.Because of storage services differences between Azure and Azure Stack, there might be some specific requirements for each tool described in the following sections. Per un confronto tra archiviazione Azure Stack e archiviazione di Azure, vedere Azure stack storage: differenze e considerazioni.For a comparison between Azure Stack Storage and Azure Storage, see Azure Stack Storage: Differences and considerations.

AzCopyAzCopy

AzCopy è un'utilità da riga di comando progettata per copiare dati da e verso Microsoft Azure archiviazione BLOB e tabelle usando semplici comandi con prestazioni ottimali.AzCopy is a command-line utility designed to copy data to and from Microsoft Azure blob and table storage using simple commands with optimal performance. È possibile copiare dati da un oggetto a un altro all'interno o tra gli account di archiviazione.You can copy data from one object to another within or between your storage accounts.

Scaricare e installare AzCopyDownload and install AzCopy

Configurazione e limiti di AzCopy 10,1AzCopy 10.1 configuration and limits

AzCopy 10,1 è ora in grado di essere configurato per usare versioni API precedenti.AzCopy 10.1 is now able to be configured to use older API versions. Questo consente il supporto (limitato) per Azure Stack.This enables (limited) support for Azure Stack. Per configurare la versione dell'API per AzCopy per il supporto di Azure Stack, impostare la variabile di ambiente AZCOPY_DEFAULT_SERVICE_API_VERSION su 2017-11-09.To configure the API version for AzCopy to support Azure Stack, set the AZCOPY_DEFAULT_SERVICE_API_VERSION environment variable to 2017-11-09.

Sistema operativoOperating system ComandoCommand
WindowsWindows In un prompt dei comandi usare: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09In a command prompt use: set AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
In PowerShell usare: $env:AZCOPY_DEFAULT_SERVICE_API_VERSION="2017-11-09"In PowerShell use: $env:AZCOPY_DEFAULT_SERVICE_API_VERSION="2017-11-09"
LinuxLinux export AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09
MacOSMacOS export AZCOPY_DEFAULT_SERVICE_API_VERSION=2017-11-09

In AzCopy 10,1, per Azure Stack sono supportate le funzionalità seguenti:In AzCopy 10.1, the following features are supported for Azure Stack:

FunzionalitàFeature Azioni supportateSupported actions
Gestisci contenitoreManage container Creare un contenitoreCreate a container
Elencare il contenuto dei contenitoriList contents of containers
Gestisci processoManage job Visualizza processiDisplay jobs
Riprendere un processoResume a job
Rimuovi BLOBRemove blob Rimuovere un singolo BLOBRemove a single blob
Rimuovi directory virtuale intera o parzialeRemove entire or partial virtual directory
Caricare il fileUpload file Caricare un fileUpload a file
Caricare una directoryUpload a directory
Caricare il contenuto di una directoryUpload the contents of a directory
Scaricare il fileDownload file Scaricare un fileDownload a file
Scaricare una directoryDownload a directory
Scarica il contenuto di una directoryDownload the contents of a directory
Sincronizza fileSynchronize file Sincronizzare un contenitore con un file system localeSynchronize a container to a local file system
Sincronizzare un file system locale con un contenitoreSynchronize a local file system to a container

Nota

  • Azure Stack non supporta la fornitura di credenziali di autorizzazione a AzCopy tramite Azure Active Directory (AD).Azure Stack doesn't support providing authorization credentials to AzCopy by using Azure Active Directory (AD). È necessario accedere agli oggetti di archiviazione su Azure Stack usando un token di firma di accesso condiviso (SAS).You must access storage objects on Azure Stack using a Shared Access Signature (SAS) token.
  • Azure Stack non supporta il trasferimento di dati sincrono tra due percorsi di BLOB Azure Stack e tra archiviazione di Azure e Azure Stack.Azure Stack doesn't support synchronous data transfer between two Azure Stack blob locations, and between Azure Storage and Azure Stack. Non è possibile usare "azcopy CP" per spostare i dati da Azure Stack ad archiviazione di Azure (o viceversa) direttamente con AzCopy 10,1.You can't use "azcopy cp" to move data from Azure Stack to Azure Storage (or the other way around) directly with AzCopy 10.1.

Esempi di comandi AzCopy per il trasferimento dei datiAzCopy command examples for data transfer

Gli esempi seguenti seguono scenari tipici per la copia di dati da e verso Azure Stack BLOB.The following examples follow typical scenarios for copying data to and from Azure Stack blobs. Per altre informazioni, vedere Introduzione a AzCopy.To learn more, see Get started with AzCopy.

Scaricare tutti i BLOB in un disco localeDownload all blobs to a local disk

azcopy cp "https://[account].blob.core.windows.net/[container]/[path/to/directory]?[SAS]" "/path/to/dir" --recursive=true

Caricare un singolo file nella directory virtualeUpload single file to virtual directory

azcopy cp "/path/to/file.txt" "https://[account].blob.core.windows.net/[container]/[path/to/blob]?[SAS]"

Problemi noti di AzCopyAzCopy known issues

  • Qualsiasi operazione AzCopy in una risorsa di archiviazione di file non è disponibile perché l'archiviazione file non è ancora disponibile in Azure Stack.Any AzCopy operation on a file storage isn't available because file storage isn't yet available in Azure Stack.
  • Se si vuole trasferire i dati tra due Azure Stack percorsi BLOB o tra Azure Stack e archiviazione di Azure usando AzCopy 10.1, è necessario scaricare i dati in un percorso locale e quindi ricaricarli nella directory di destinazione in Azure Stack o archiviazione di Azure.If you want to transfer data between two Azure Stack blob locations—or between Azure Stack and Azure Storage by using AzCopy 10.1—you need to download the data to a local location first, and then reupload to the target directory on Azure Stack or Azure Storage. In alternativa, è possibile usare AzCopy 7,1 e specificare il trasferimento con l'opzione /SyncCopy per copiare i dati.Or you can use AzCopy 7.1, and specify the transfer with the /SyncCopy option to copy the data.
  • La versione Linux di AzCopy supporta solo l'aggiornamento 1802 o versioni successive e non supporta il servizio tabelle.The Linux version of AzCopy only supports the 1802 update or later versions and it doesn't support Table service.
  • Se si vogliono copiare dati da e verso il servizio di archiviazione tabelle di Azure, installare AzCopy versione 7.3.0If you want to copy data to and from your Azure Table storage service, then install AzCopy version 7.3.0

Azure PowerShellAzure PowerShell

Azure PowerShell è un modulo che fornisce i cmdlet per la gestione dei servizi in Azure e Azure Stack.Azure PowerShell is a module that provides cmdlets for managing services on both Azure and Azure Stack. Si tratta di una shell della riga di comando basata su attività e di un linguaggio di scripting progettato appositamente per l'amministrazione del sistema.It's a task-based, command-line shell and scripting language designed especially for system administration.

Installare e configurare PowerShell per Azure StackInstall and Configure PowerShell for Azure Stack

Azure Stack moduli compatibili Azure PowerShell sono necessari per lavorare con Azure Stack.Azure Stack compatible Azure PowerShell modules are required to work with Azure Stack. Per altre informazioni, vedere installare PowerShell per Azure stack e configurare l'ambiente powershell dell'utente Azure stack.For more information, see Install PowerShell for Azure Stack and Configure the Azure Stack user's PowerShell environment.

Script di esempio di PowerShell per Azure StackPowerShell Sample script for Azure Stack

In questo esempio si presuppone che PowerShell sia stato installato correttamente per Azure stack.This sample assumes you have successfully Installed PowerShell for Azure Stack. Questo script consentirà di completare la configurazione e di richiedere le credenziali del tenant Azure Stack per aggiungere l'account all'ambiente di PowerShell locale.This script will help you complete the configuration and ask your Azure Stack tenant credentials to add your account to the local PowerShell environment. 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) in tale contenitore.The script will then set the default Azure subscription, create a new storage account in Azure, create a new container in this new storage account, and upload an existing image file (blob) to that container. Dopo aver elencato tutti i BLOB in tale contenitore, lo script creerà una nuova directory di destinazione nel computer locale e scaricherà il file di immagine.After the script lists all blobs in that container, it will create a new destination directory on your local computer and download the image file.

  1. Installare moduli Azure PowerShell compatibili con Azure stack.Install Azure Stack-compatible Azure PowerShell modules.
  2. Scaricare gli strumenti necessari per lavorare con Azure stack.Download the tools required to work with Azure Stack.
  3. Aprire Windows PowerShell ISE ed eseguire come amministratore, quindi fare clic su file > nuovo per creare un nuovo file di script.Open Windows PowerShell ISE and Run as Administrator, then click File > New to create a new script file.
  4. Copiare lo script seguente e incollarlo nel nuovo file di script.Copy the script below and paste it to the new script file.
  5. Aggiornare le variabili dello script in base alle impostazioni di configurazione.Update the script variables based on your configuration settings.

    Nota

    Questo script deve essere eseguito nella directory radice di AzureStack_Tools.This script has to be run at the root directory for AzureStack_Tools.

# begin

$ARMEvnName = "AzureStackUser" # set AzureStackUser as your Azure Stack 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 AzureRM environment that targets your Azure Stack instance
Add-AzureRmEnvironment -Name $ARMEvnName -ARMEndpoint $ARMEndPoint 

# Login
$TenantID = Get-AzsDirectoryTenantId -AADTenantName $AADTenantName -EnvironmentName $ARMEvnName
Add-AzureRmAccount -EnvironmentName $ARMEvnName -TenantId $TenantID 

# Set a default Azure subscription.
Select-AzureRmSubscription -SubscriptionName $SubscriptionName

# Create a new Resource Group 
New-AzureRmResourceGroup -Name $ResourceGroupName -Location $Location

# Create a new storage account.
New-AzureRmStorageAccount -ResourceGroupName $ResourceGroupName -Name $StorageAccountName -Location $Location -Type Standard_LRS

# Set a default storage account.
Set-AzureRmCurrentStorageAccount -StorageAccountName $StorageAccountName -ResourceGroupName $ResourceGroupName 

# Create a new container.
New-AzureStorageContainer -Name $ContainerName -Permission Off

# Upload a blob into a container.
Set-AzureStorageBlobContent -Container $ContainerName -File $ImageToUpload

# List all blobs in a container.
Get-AzureStorageBlob -Container $ContainerName

# Download blobs from the container:
# Get a reference to a list of all blobs in a container.
$blobs = Get-AzureStorageBlob -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 PowerShellPowerShell known issues

La versione corrente del modulo Azure PowerShell compatibile per Azure Stack è 1.2.11 per le operazioni dell'utente.The current compatible Azure PowerShell module version for Azure Stack is 1.2.11 for the user operations. È diverso dalla versione più recente di Azure PowerShell.It's different from the latest version of Azure PowerShell. Questa differenza influisca sull'operazione di servizi di archiviazione nel modo seguente:This difference impacts storage services operation in the following way:

Il formato del valore restituito di Get-AzureRmStorageAccountKey nella versione 1.2.11 include due proprietà: Key1 e Key2, mentre la versione corrente di Azure restituisce una matrice contenente tutte le chiavi dell'account.The return value format of Get-AzureRmStorageAccountKey in version 1.2.11 has two properties: Key1 and Key2, while the current Azure version returns an array containing all the account keys.

# This command gets a specific key for a storage account, 
# and works for Azure PowerShell version 1.4, and later versions.
(Get-AzureRmStorageAccountKey -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-AzureRmStorageAccountKey -ResourceGroupName "RG01" `
-AccountName "MyStorageAccount").Key1

Per ulteriori informazioni, vedere Get-AzureRmStorageAccountKey.For more information, see Get-AzureRmStorageAccountKey.

Interfaccia della riga di comando di AzureAzure CLI

L'interfaccia della riga di comando di Azure è l'esperienza della riga di comando di Azure per gestire le risorse di Azure.The Azure CLI is Azure's command-line experience for managing Azure resources. È possibile installarlo in macOS, Linux e Windows ed eseguirlo dalla riga di comando.You can install it on macOS, Linux, and Windows and run it from the command line.

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 la Azure Resource ManagerAzure CLI is optimized for managing and administering Azure resources from the command line, and for building automation scripts that work against the Azure Resource Manager. Offre molte delle funzioni disponibili nel portale di Azure Stack, incluso l'accesso ai dati avanzati.It provides many of the same functions found in the Azure Stack portal, including rich data access.

Azure Stack richiede l'interfaccia della riga di comando di Azure versione 2,0 o successiva.Azure Stack requires Azure CLI version 2.0 or later. Per altre informazioni sull'installazione e sulla configurazione dell'interfaccia della riga di comando di Azure con Azure Stack, vedere Install and configure Azure stack CLI.For more information about installing and configuring Azure CLI with Azure Stack, see Install and configure Azure Stack CLI. Per altre informazioni su come usare l'interfaccia della riga di comando di Azure per eseguire diverse attività con le risorse nell'account di archiviazione Azure Stack, vedere uso dell'interfaccia dellariga di comando di Azure con archiviazione di Azure.For more information about how to use the Azure CLI to perform several tasks working with resources in your Azure Stack storage account, see Using the Azure CLI with Azure storage.

Script di esempio dell'interfaccia della riga di comando di Azure Azure StackAzure CLI sample script for Azure Stack

Dopo aver completato l'installazione e la configurazione dell'interfaccia della riga di comando, è possibile provare la procedura seguente per usare uno script di esempio di shell di piccole dimensioni per interagire con le risorse di archiviazione Azure Stack.Once you complete the CLI installation and configuration, you can try the following steps to work with a small shell sample script to interact with Azure Stack storage resources. Lo script completa le azioni seguenti:The script completes the following actions:

  • Crea un nuovo contenitore nell'account di archiviazione.Creates a new container in your storage account.
  • Carica un file esistente (sotto forma di BLOB) nel contenitore.Uploads an existing file (as a blob) to the container.
  • Elenca tutti i BLOB nel contenitore.Lists all blobs in the container.
  • Scarica il file in una destinazione nel computer locale specificato.Downloads the file to a destination on your local computer that you specify.

Prima di eseguire questo script, verificare che sia possibile connettersi e accedere al Azure Stack di destinazione.Before you run this script, make sure that you can successfully connect and sign in to the target Azure Stack.

  1. Aprire un editor di testo quindi copiare e incollare lo script precedente nell'editor.Open your favorite text editor, then copy and paste the preceding script into the editor.
  2. Aggiornare le variabili dello script in modo da riflettere le impostazioni di configurazione.Update the script's variables to reflect your configuration settings.
  3. Dopo aver aggiornato le variabili necessarie, salvare lo script e uscire dall'editor.After you've updated the necessary variables, save the script, and exit your editor. I passaggi successivi presuppongono che allo sript sia stato assegnato il nome my_storage_sample.sh.The next steps assume you've named your script my_storage_sample.sh.
  4. Contrassegnare lo script come eseguibile, se necessario:chmod +x my_storage_sample.shMark the script as executable, if necessary: chmod +x my_storage_sample.sh
  5. Eseguire lo script.Execute the script. Ad esempio, in Bash: ./my_storage_sample.shFor example, in Bash: ./my_storage_sample.sh
#!/bin/bash
# A simple Azure Stack 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 ExplorerMicrosoft Azure Storage Explorer

Azure Storage Explorer è un'app autonoma di Microsoft.Azure Storage Explorer is a standalone app from Microsoft. Consente di usare facilmente i dati di archiviazione di Azure e Azure Stack archiviazione nei computer Windows, macOS e Linux.It allows you to easily work with both Azure Storage and Azure Stack Storage data on Windows, macOS, and Linux computers. Se si vuole un modo semplice per gestire i dati di archiviazione Azure Stack, provare a usare Microsoft Azure Storage Explorer.If you want an easy way to manage your Azure Stack Storage data, then consider using Microsoft Azure Storage Explorer.

BlobfuseBlobfuse

Blobfuse è un driver file system virtuale per l'archiviazione BLOB di Azure, che consente di accedere ai dati BLOB in blocchi esistenti nell'account di archiviazione tramite Linux file System.Blobfuse is a virtual file system driver for Azure Blob Storage, which allows you to access your existing block blob data in your storage account through the Linux file system. Archiviazione BLOB di Azure è un servizio di archiviazione di oggetti e pertanto non dispone di uno spazio dei nomi gerarchico.Azure Blob Storage is an object storage service and therefore doesn't have a hierarchical namespace. Blobfuse fornisce questo spazio dei nomi usando lo schema di directory virtuale con l'uso della barra / come delimitatore.Blobfuse provides this namespace using the virtual directory scheme with the use of forward-slash / as a delimiter. Blobfuse funziona sia in Azure che in Azure Stack.Blobfuse works on both Azure and Azure Stack.

Per altre informazioni sul montaggio dell'archiviazione BLOB come file system con Blobfuse in Linux, vedere come montare l'archivio BLOB come file System con Blobfuse.To learn more about mounting blob storage as a file system with Blobfuse on Linux, see How to mount Blob storage as a file system with Blobfuse.

Per Azure Stack, è necessario specificare blobEndpoint durante la configurazione delle credenziali dell'account di archiviazione insieme a AccountName, AccountKey/sasToken e ContainerName.For Azure Stack, blobEndpoint needs to be specified while configuring your storage account credentials along with accountName, accountKey/sasToken, and containerName.

Nel Azure Stack Development Kit (Gabriele), blobEndpoint deve essere myaccount.blob.local.azurestack.external.In the Azure Stack Development Kit (ASDK), the blobEndpoint should be myaccount.blob.local.azurestack.external. In Azure Stack sistema integrato, contattare l'amministratore del cloud se non si è certi dell'endpoint.In Azure Stack integrated system, contact your cloud admin if you're not sure about your endpoint.

è possibile configurare AccountKey e sasToken solo uno alla volta.accountKey and sasToken can only be configured one at a time. Quando si specifica una chiave dell'account di archiviazione, il file di configurazione delle credenziali ha il formato seguente:When a storage account key is given, the credentials configuration file is in the following format:

accountName myaccount 
accountKey myaccesskey== 
containerName mycontainer 
blobEndpoint myaccount.blob.local.azurestack.external

Quando viene fornito un token di accesso condiviso, il file di configurazione delle credenziali ha il formato seguente:When a shared access token is given, the credentials configuration file is in the following format:

accountName myaccount 
sasToken ?mysastoken 
containerName mycontainer 
blobEndpoint myaccount.blob.local.azurestack.external

Passaggi successiviNext steps