La replica di oggetti copia in modo asincrono i BLOB in blocchi tra un account di archiviazione di origine e un account di destinazione. Quando si configura la replica di oggetti, si crea un criterio di replica che specifica l'account di archiviazione di origine e l'account di destinazione. Un criterio di replica include una o più regole che specificano un contenitore di origine e un contenitore di destinazione e indicano i BLOB in blocchi del contenitore di origine che verranno replicati. Per altre informazioni sulla replica di oggetti, vedere Replica di oggetti per BLOB in blocchi.
Questo articolo descrive come configurare un criterio di replica di oggetti usando il portale di Azure, PowerShell o l'interfaccia della riga di comando di Azure. È anche possibile usare una delle librerie client del provider di risorse di Archiviazione di Azure per configurare la replica degli oggetti.
Prerequisiti
Prima di configurare la replica degli oggetti, creare gli account di archiviazione di origine e di destinazione, se non esistono già. Gli account di origine e di destinazione possono essere account di archiviazione per utilizzo generico v2 o account BLOB in blocchi Premium. Per altre informazioni, vedere Creare un account di archiviazione di Azure.
La replica di oggetti richiede che il controllo delle versioni blob sia abilitato sia per l'account di origine che per quello di destinazione e che il feed delle modifiche del blob sia abilitato per l'account di origine. Per altre informazioni sul controllo delle versioni dei BLOB, vedere Controllo delle versioni dei BLOB. Per altre informazioni sul feed di modifiche, vedere Supporto del feed di modifiche in Archiviazione BLOB di Azure. Tenere presente che l'abilitazione di queste funzionalità può comportare costi aggiuntivi.
Per configurare i criteri di replica degli oggetti per un account di archiviazione, è necessario essere assegnati al ruolo Collaboratore di Azure Resource Manager, all'ambito dell'account di archiviazione o a un livello superiore. Per altre informazioni, vedere Ruoli predefiniti di Azure nella documentazione del controllo degli accessi in base al ruolo di Azure.
La replica di oggetti non è ancora supportata negli account con uno spazio dei nomi gerarchico abilitato.
Se si ha accesso sia agli account di archiviazione di origine che a quello di destinazione, è possibile configurare i criteri di replica degli oggetti in entrambi gli account. Gli esempi seguenti illustrano come configurare la replica di oggetti con il portale di Azure, PowerShell o l'interfaccia della riga di comando di Azure.
Quando si configura la replica di oggetti nel portale di Azure, è sufficiente configurare i criteri nell'account di origine. Il portale di Azure crea automaticamente i criteri nell'account di destinazione dopo averlo configurato per l'account di origine.
Per creare criteri di replica nel portale di Azure, seguire questa procedura:
Passare all'account di archiviazione della fonte nel portale di Azure.
In Gestione dati selezionare Replica di oggetti.
Selezionare Crea regole di replica.
Seleziona la sottoscrizione di destinazione e l'account di archiviazione.
Nella sezione Dettagli coppia contenitori, selezionare un contenitore dall'account di origine e uno dall'account di destinazione. È possibile creare fino a 10 coppie di contenitori per ogni criterio di replica dal portale di Azure. Per configurare più di 10 coppie di contenitori (fino a 1000), vedere Configurare la replica di oggetti usando un file JSON.
L'immagine seguente mostra un set di regole di replica.
Se necessario, specificare uno o più filtri per copiare solo i BLOB che corrispondono a un modello di prefisso. Ad esempio, se si specifica un prefisso b, vengono replicati solo i BLOB il cui nome inizia con tale lettera. È possibile specificare una directory virtuale come parte del prefisso. È possibile aggiungere un massimo di cinque corrispondenze di prefisso. La stringa di prefisso non supporta caratteri jolly.
L'immagine seguente mostra i filtri che limitano i BLOB copiati come parte di una regola di replica.
Per impostazione predefinita, l'ambito di copia è impostato per copiare solo nuovi oggetti. Per copiare tutti gli oggetti nel contenitore o per copiare oggetti a partire da una data e un'ora personalizzate, selezionare il collegamento di modifica e configurare l'ambito di copia per la coppia di contenitori.
L'immagine seguente mostra un ambito di copia personalizzato che copia gli oggetti da una data e un'ora specificate.
Selezionare Salva e applica per creare i criteri di replica e avviare la replica dei dati.
Dopo aver configurato la replica di oggetti, il portale di Azure visualizza i criteri e le regole di replica, come illustrato nell'immagine seguente.
Per creare criteri di replica con PowerShell, installare prima la versione 2.5.0 o successiva del modulo Az.Storage PowerShell. Per altre informazioni sull'installazione di Azure PowerShell, vedere Installare Azure PowerShell con PowerShellGet.
Nell'esempio seguente viene illustrato come creare prima un criterio di replica nell'account di destinazione e quindi nell'account di origine. Ricordare di sostituire i valori tra parentesi angolari con valori personalizzati:
# Sign in to your Azure account.
Connect-AzAccount
# Set variables.
$rgName = "<resource-group>"
$srcAccountName = "<source-storage-account>"
$destAccountName = "<destination-storage-account>"
$srcContainerName1 = "source-container1"
$destContainerName1 = "dest-container1"
$srcContainerName2 = "source-container2"
$destContainerName2 = "dest-container2"
# Enable blob versioning and change feed on the source account.
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-EnableChangeFeed $true `
-IsVersioningEnabled $true
# Enable blob versioning on the destination account.
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-IsVersioningEnabled $true
# List the service properties for both accounts.
Get-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName
Get-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $destAccountName
# Create containers in the source and destination accounts.
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $srcAccountName |
New-AzStorageContainer $srcContainerName1
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $destAccountName |
New-AzStorageContainer $destContainerName1
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $srcAccountName |
New-AzStorageContainer $srcContainerName2
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $destAccountName |
New-AzStorageContainer $destContainerName2
# Define replication rules for each container.
$rule1 = New-AzStorageObjectReplicationPolicyRule -SourceContainer $srcContainerName1 `
-DestinationContainer $destContainerName1 `
-PrefixMatch b
$rule2 = New-AzStorageObjectReplicationPolicyRule -SourceContainer $srcContainerName2 `
-DestinationContainer $destContainerName2 `
-MinCreationTime 2021-09-01T00:00:00Z
# Create the replication policy on the destination account.
$destPolicy = Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId default `
-SourceAccount $srcAccountName `
-Rule $rule1,$rule2
# Create the same policy on the source account.
Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-InputObject $destPolicy
Per creare criteri di replica con l'interfaccia della riga di comando di Azure, installare prima di tutto l'interfaccia della riga di comando di Azure versione 2.11.1 o successiva. Per altre informazioni, vedere Attività iniziali con l’interfaccia della riga di comando di Azure.
Abilitare quindi il controllo delle versioni dei BLOB negli account di archiviazione di origine e di destinazione e abilitare il feed di modifiche nell'account di origine chiamando il comando az storage account blob-service-properties update . Ricordare di sostituire i valori tra parentesi angolari con valori personalizzati:
az login
az storage account blob-service-properties update \
--resource-group <resource-group> \
--account-name <source-storage-account> \
--enable-versioning \
--enable-change-feed
az storage account blob-service-properties update \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--enable-versioning
Creare i contenitori di origine e di destinazione nei rispettivi account di archiviazione.
az storage container create \
--account-name <source-storage-account> \
--name source-container-1 \
--auth-mode login
az storage container create \
--account-name <source-storage-account> \
--name source-container-2 \
--auth-mode login
az storage container create \
--account-name <dest-storage-account> \
--name dest-container-1 \
--auth-mode login
az storage container create \
--account-name <dest-storage-account> \
--name dest-container-2 \
--auth-mode login
Creare un nuovo criterio di replica e una regola associata nell'account di destinazione chiamando az storage account or-policy create.
az storage account or-policy create \
--account-name <dest-storage-account> \
--resource-group <resource-group> \
--source-account <source-storage-account> \
--destination-account <dest-storage-account> \
--source-container source-container-1 \
--destination-container dest-container-1 \
--min-creation-time '2021-09-01T00:00:00Z' \
--prefix-match a
Archiviazione di Azure imposta l'ID del criterio per il nuovo criterio quando questo viene creato. Per aggiungere altre regole al criterio, è necessario chiamare az storage account or-policy rule add e specificare l'ID del criterio.
az storage account or-policy rule add \
--account-name <dest-storage-account> \
--resource-group <resource-group> \
--source-container source-container-2 \
--destination-container dest-container-2 \
--policy-id <policy-id> \
--prefix-match b
Quindi, crea la policy nell'account di origine usando l'ID della policy.
az storage account or-policy show \
--resource-group <resource-group> \
--account-name <dest-storage-account> \
--policy-id <policy-id> |
az storage account or-policy create --resource-group <resource-group> \
--account-name <source-storage-account> \
--policy "@-"
Se non si dispone delle autorizzazioni per l'account di archiviazione di origine o se si vogliono usare più di 10 coppie di contenitori, è possibile configurare la replica di oggetti nell'account di destinazione e fornire un file JSON contenente la definizione dei criteri a un altro utente per creare lo stesso criterio nell'account di origine. Ad esempio, se l'account di origine si trova in un tenant Microsoft Entra diverso dall'account di destinazione, è possibile usare questo approccio per configurare la replica degli oggetti.
Per informazioni su come creare un file JSON contenente la definizione dei criteri, vedere File di definizione dei criteri.
Annotazioni
La replica di oggetti tra tenant è consentita per impostazione predefinita per un account di archiviazione. Per impedire la replica tra tenant, è possibile impostare la proprietà AllowCrossTenantReplication per impedire la replica di oggetti tra tenant per gli account di archiviazione. Per altre informazioni, vedere Impedire la replica di oggetti nei tenant di Microsoft Entra.
Gli esempi in questa sezione illustrano come configurare i criteri di replica degli oggetti nell'account di destinazione e quindi ottenere il file JSON per tale criterio che un altro utente può usare per configurare i criteri nell'account di origine.
Per configurare la replica di oggetti nell'account di destinazione con un file JSON nel portale di Azure, seguire questa procedura:
Creare un file JSON locale che definisce i criteri di replica nell'account di destinazione. Impostare il campo policyId su predefinito affinché Azure Storage definisca l'ID della politica.
Un modo semplice per creare un file JSON che definisce un criterio di replica consiste innanzitutto nel creare un criterio di replica di test tra due account di archiviazione nel portale di Azure. È quindi possibile scaricare le regole di replica e modificare il file JSON in base alle esigenze.
Passare alle impostazioni di replica degli oggetti per l'account di destinazione nel portale di Azure.
Selezionare Carica regole di replica.
Caricare il file JSON. Il portale di Azure visualizza i criteri e le regole che verranno creati, come illustrato nell'immagine seguente.
Selezionare Carica per creare i criteri di replica nell'account di destinazione.
È quindi possibile scaricare un file JSON contenente la definizione di criteri che è possibile fornire a un altro utente per configurare l'account di origine. Per scaricare questo file JSON, seguire questa procedura:
Passare alle impostazioni di replica degli oggetti per l'account di destinazione nel portale di Azure.
Selezionare il pulsante Altro accanto al criterio da scaricare, quindi selezionare Scarica regole, come illustrato nell'immagine seguente.
Salvare il file JSON nel computer locale per condividerlo con un altro utente per configurare i criteri nell'account di origine.
Il file JSON scaricato include l'ID del criterio che Azure Storage ha creato per il criterio nell'account di destinazione. È necessario usare lo stesso ID della politica per configurare la replica di oggetti nell'account di origine.
Tenere presente che il caricamento di un file JSON per creare criteri di replica per l'account di destinazione tramite il portale di Azure non crea automaticamente gli stessi criteri nell'account di origine. Un altro utente deve creare la regola sull'account di origine prima che Azure Storage inizi a replicare gli oggetti.
Per scaricare un file JSON contenente la definizione dei criteri di replica per l'account di destinazione da PowerShell, chiamare il comando Get-AzStorageObjectReplicationPolicy per restituire i criteri. Convertire quindi il criterio in JSON e salvarlo come file locale, come illustrato nell'esempio seguente. Ricordarsi di sostituire i valori tra parentesi angolari e il percorso del file con i propri valori:
$rgName = "<resource-group>"
$destAccountName = "<destination-storage-account>"
$destPolicy = Get-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $destAccountName
$destPolicy | ConvertTo-Json -Depth 5 > c:\temp\json.txt
Per usare il file JSON per definire i criteri di replica nell'account di origine con PowerShell, recuperare il file locale e convertirlo da JSON a un oggetto . Chiamare quindi il comando Set-AzStorageObjectReplicationPolicy per configurare i criteri nell'account di origine, come illustrato nell'esempio seguente.
Quando si esegue l'esempio, assicurarsi di impostare il -ResourceGroupName parametro sul gruppo di risorse per l'account di origine e sul -StorageAccountName parametro sul nome dell'account di origine. Ricordarsi anche di sostituire i valori tra parentesi angolari e il percorso del file con i propri valori:
$object = Get-Content -Path C:\temp\json.txt | ConvertFrom-Json
Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-PolicyId $object.PolicyId `
-SourceAccount $object.SourceAccount `
-DestinationAccount $object.DestinationAccount `
-Rule $object.Rules
Per scrivere la definizione della politica di replica per l'account di destinazione in un file JSON dall'interfaccia della riga di comando di Azure, chiamare il comando az storage account or-policy show e reindirizzare l'output su un file.
L'esempio seguente scrive la definizione dei criteri in un file JSON denominato policy.json. Ricordarsi di sostituire i valori tra parentesi angolari e il percorso del file con i propri valori:
az storage account or-policy show \
--account-name <dest-account-name> \
--policy-id <policy-id> > policy.json
Per usare il file JSON per configurare i criteri di replica nell'account di origine con l'interfaccia della riga di comando di Azure, chiamare il comando az storage account or-policy create e fare riferimento al file policy.json . Ricordarsi di sostituire i valori tra parentesi angolari e il percorso del file con i propri valori:
az storage account or-policy create \
-resource-group <resource-group> \
--source-account <source-account-name> \
--policy @policy.json
Abilitare le metriche di replica
È possibile abilitare le metriche di replica nei criteri di replica di oggetti nuovi ed esistenti. L'osservazione delle metriche potrebbe richiedere alcuni minuti.
È possibile abilitare le metriche usando il pannello Oggetto Replicazione dalla nuova colonna Metriche o modificando la sezione Modifica regole di un criterio da "..." nella riga del criterio OR.
L'abilitazione delle metriche è supportata nell'API versione 2021-08-01 e successive. È possibile aggiungere il nuovo campo delle metriche ai criteri di replica. Campione:
{
"sourceAccount": "<source-account-name>",
"destinationAccount": "<destination-account-name>",
"metrics":
{
"enabled": true
},
"rules":
[
{
"ruleId": "<rule-id>",
"sourceContainer": "<source-container-name>",
"destinationContainer": "<destination-container-name>"
}
]
}
Se si abilitano le metriche su un criterio configurato per copiare i dati esistenti, è possibile osservare una quantità crescente all'inizio mentre il criterio lavora nella fase iniziale del processo di elencazione. Una volta completato, verrà avviata la replica.
Visualizzare le metriche di replica
È possibile fare clic sul collegamento Visualizza dalla colonna Metriche per visualizzare le metriche di monitoraggio
Per visualizzare ulteriormente le metriche in Monitoraggio di Azure, fare clic sul grafico di una metrica. In questo modo si passerà alla visualizzazione Metriche di Monitoraggio di Azure con altre funzionalità di filtro.
Controllare lo stato di replica di un BLOB
È possibile controllare lo stato della replica per un blob nell'account di origine usando il portale di Azure, PowerShell o Azure CLI. Le proprietà di replica degli oggetti non vengono popolate finché la replica non è stata completata o non è riuscita.
Per controllare lo stato della replica per un BLOB nell'account di origine nel portale di Azure, seguire questa procedura:
- Passare all'account di origine nel portale di Azure.
- Individuare il contenitore che include il blob di origine.
- Selezionare il BLOB per visualizzarne le proprietà. Se il BLOB è stato replicato correttamente, nella sezione Replica oggetti lo stato è impostato su Completa. Sono elencati anche l'ID dei criteri di replica e l'ID per la regola che regola la replica degli oggetti per questo contenitore.
Per controllare lo stato della replica di un BLOB nell'account di origine con PowerShell, ottieni il valore della proprietà ReplicationStatus degli oggetti di replica, come illustrato nell'esempio seguente. Ricordare di sostituire i valori tra parentesi angolari con valori personalizzati:
$ctxSrc = (Get-AzStorageAccount -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName).Context
$blobSrc = Get-AzStorageBlob -Container $srcContainerName1 `
-Context $ctxSrc `
-Blob <blob-name>
$blobSrc.BlobProperties.ObjectReplicationSourceProperties[0].Rules[0].ReplicationStatus
Per controllare lo stato della replica per un BLOB nell'account di origine con Azure CLI, ottieni il valore della proprietà stato della replica degli oggetti, come illustrato nell'esempio seguente.
az storage blob show \
--account-name <source-account-name> \
--container-name <source-container-name> \
--name <source-blob-name> \
--query 'objectReplicationSourceProperties[].rules[].status' \
--output tsv \
--auth-mode login
Se lo stato di replica per un BLOB nell'account di origine indica un errore, esaminare le possibili cause seguenti:
- Assicurarsi che i criteri di replica degli oggetti siano configurati nell'account di destinazione.
- Verificare che il contenitore di destinazione esista ancora.
- Se il BLOB di origine è stato crittografato con una chiave fornita dal cliente come parte di un'operazione di scrittura, la replica degli oggetti avrà esito negativo. Per altre informazioni sulle chiavi fornite dal cliente, vedere Fornire una chiave di crittografia in una richiesta all'archiviazione BLOB.
Rimuovere un criterio di replica
Per rimuovere un criterio di replica e le regole associate, usare il portale di Azure, PowerShell o l'interfaccia della riga di comando.
Per rimuovere un criterio di replica nel portale di Azure, seguire questa procedura:
- Passare all'account di archiviazione della fonte nel portale di Azure.
- In Impostazioni selezionare Replica di oggetti.
- Selezionare il pulsante Altro accanto al nome del criterio.
- Selezionare Elimina regole.
Per rimuovere un criterio di replica, eliminare il criterio sia dall'account di origine che da quello di destinazione. L'eliminazione del criterio comporta anche l'eliminazione di tutte le regole associate.
# Remove the policy from the destination account.
Remove-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-PolicyId $destPolicy.PolicyId
# Remove the policy from the source account.
Remove-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-PolicyId $destPolicy.PolicyId
Per rimuovere un criterio di replica, eliminare il criterio sia dall'account di origine sia dall'account di destinazione. L'eliminazione del criterio comporta anche l'eliminazione di tutte le regole associate.
az storage account or-policy delete \
--policy-id <policy-id> \
--account-name <source-storage-account> \
--resource-group <resource-group>
az storage account or-policy delete \
--policy-id <policy-id> \
--account-name <dest-storage-account> \
--resource-group <resource-group>
N/A
Comportamento durante la ricreazione di un criterio di replica di oggetti
Quando un criterio di replica di oggetti viene eliminato e ricreato nella stessa coppia di contenitori di origine e di destinazione, Azure considera i nuovi criteri come una relazione di replica completamente separata. Si applica il comportamento seguente:
Viene generato un nuovo ID criterio per i criteri ricreati.
Tutte le attività di replica associate ai criteri precedenti vengono terminate.
Al contenitore di destinazione viene assegnato un nuovo blocco di replica associato al nuovo ID della politica.
Lo stato di replica dei criteri precedenti non viene riutilizzato.
Comportamento della replica dopo la ricreazione di un criterio di replica di oggetti
Dopo aver ricreato i criteri, Azure tenta nuovamente la replica per i BLOB idonei e il risultato dipende dalla disponibilità della cronologia delle versioni del BLOB nell'account di origine:
Se un BLOB di origine non dispone di versioni precedenti disponibili nella destinazione: Azure determina che il BLOB è già stato copiato con un criterio precedente. La ri-replica di quel BLOB non riesce. Solo le nuove scritture BLOB (o le nuove versioni create dopo la ricreazione dei criteri) vengono replicate correttamente.
Se un BLOB di origine ha versioni precedenti disponibili nella destinazione: Azure è in grado di replicare nuovamente il BLOB. il blob viene nuovamente copiato nella destinazione come nuova versione. In questo modo è possibile ripetere correttamente la replica dei BLOB esistenti senza incoerenza dei dati.
Passaggi successivi