Eseguire il backup di una condivisione file di Azure usando PowerShell

Questo articolo descrive come usare Azure PowerShell per eseguire il backup di una condivisione file File di Azure tramite un insieme di credenziali di Servizi di ripristino di Backup di Azure.

Questo articolo spiega come:

  • Configurare PowerShell e registrare il provider di Servizi di ripristino.
  • Creare un insieme di credenziali dei servizi di ripristino.
  • Configurare il backup per una condivisione file di Azure.
  • Eseguire un processo di backup.

Prima di iniziare

  • Altre informazioni sugli insiemi di credenziali di Servizi di ripristino.

  • Esaminare il riferimento ai cmdlet Az.RecoveryServices nella libreria di Azure.

  • Esaminare la gerarchia di oggetti di PowerShell seguente per Servizi di ripristino:

    Gerarchia di oggetti dei servizi di ripristino

Configurare PowerShell

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Nota

Azure PowerShell attualmente non supporta i criteri di backup con pianificazione oraria. Usare il portale di Azure per sfruttare questa funzionalità. Scopri di più

Configurare PowerShell come segue:

  1. Scaricare la versione più recente di Azure PowerShell.

    Nota

    La versione minima di PowerShell necessaria per il backup delle condivisioni file di Azure è Az.RecoveryServices 2.6.0. L'uso della versione più recente, o almeno la versione minima, consente di evitare problemi con gli script esistenti. Installare la versione minima usando il comando powerShell seguente:

    Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0
    
  2. Trovare i cmdlet di PowerShell per Backup di Azure usando questo comando:

    Get-Command *azrecoveryservices*
    
  3. Esaminare gli alias e i cmdlet per Backup di Azure, Azure Site Recovery e l'insieme di credenziali di Servizi di ripristino. Ecco un esempio di ciò che potrebbe essere visualizzato. Non è un elenco completo dei cmdlet.

    Elenco di cmdlet dei Servizi di ripristino

  4. Accedere all'account Azure usando Connect-AzAccount.

  5. Nella pagina Web visualizzata viene richiesto di immettere le credenziali dell'account.

    In alternativa, è possibile includere le credenziali dell'account come parametro nel cmdlet Connect-AzAccount usando -Credential.

    Se si è un partner CSP che lavora per conto di un tenant, specificare il cliente come tenant. Usare il nome di dominio primario del tenant o l'ID tenant. Un esempio è Connect-AzAccount -Tenant "fabrikam.com".

  6. Associare la sottoscrizione che si vuole usare con l'account, perché un account può avere diverse sottoscrizioni:

    Select-AzSubscription -SubscriptionName $SubscriptionName
    
  7. Se si usa Backup di Azure per la prima volta, usare il cmdlet Register-AzResourceProvider per registrare il provider di Servizi di ripristino di Azure con la sottoscrizione:

    Register-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  8. Verificare che i provider siano stati registrati correttamente:

    Get-AzResourceProvider -ProviderNamespace "Microsoft.RecoveryServices"
    
  9. Nell'output del comando verificare che RegistrationState cambi in Registrato. In caso contrario, eseguire di nuovo il cmdlet Register-AzResourceProvider .

Creare un insieme di credenziali di Servizi di ripristino

L'insieme di credenziali di Servizi di ripristino è una risorsa Resource Manager, quindi è necessario inserirla in un gruppo di risorse. È possibile usare un gruppo di risorse esistente oppure creare un gruppo di risorse usando il cmdlet New-AzResourceGroup . Quando si crea un gruppo di risorse, specificare il nome e il percorso.

Seguire questa procedura per creare un insieme di credenziali di Servizi di ripristino:

  1. Se non si dispone di un gruppo di risorse esistente, crearne uno nuovo usando il cmdlet New-AzResourceGroup . In questo esempio viene creato un gruppo di risorse nell'area Stati Uniti occidentali:

    New-AzResourceGroup -Name "test-rg" -Location "West US"
    
  2. Usare il cmdlet New-AzRecoveryServicesVault per creare l'insieme di credenziali. Specificare la stessa posizione dell'insieme di credenziali usato per il gruppo di risorse.

    New-AzRecoveryServicesVault -Name "testvault" -ResourceGroupName "test-rg" -Location "West US"
    

Visualizzare gli insiemi di credenziali in un abbonamento

Per visualizzare tutti gli insiemi di credenziali nella sottoscrizione, usare Get-AzRecoveryServicesVault:

Get-AzRecoveryServicesVault

L'output è simile al seguente. Si noti che l'output fornisce il gruppo di risorse e la posizione associati.

Name              : Contoso-vault
ID                : /subscriptions/1234
Type              : Microsoft.RecoveryServices/vaults
Location          : WestUS
ResourceGroupName : Contoso-docs-rg
SubscriptionId    : 1234-567f-8910-abc
Properties        : Microsoft.Azure.Commands.RecoveryServices.ARSVaultProperties

Impostare il contesto dell'insieme di credenziali

Archiviare l'oggetto vault in una variabile e impostare il contesto dell'insieme di credenziali.

Molti cmdlet Backup di Azure richiedono l'oggetto insieme di credenziali di Servizi di ripristino come input, quindi è pratico archiviare l'oggetto vault in una variabile.

Il contesto dell'insieme di credenziali definisce il tipo di dati protetti nell'insieme di credenziali. Impostarlo usando Set-AzRecoveryServicesVaultContext. Dopo aver impostato il contesto, si applica a tutti i cmdlet successivi.

Nell'esempio seguente viene impostato il contesto dell'insieme di credenziali per testvault:

Get-AzRecoveryServicesVault -Name "testvault" | Set-AzRecoveryServicesVaultContext

Recuperare l'ID dell'insieme di credenziali

Si prevede di deprecare l'impostazione del contesto dell'insieme di credenziali in conformità alle linee guida Azure PowerShell. È invece possibile archiviare o recuperare l'ID dell'insieme di credenziali e passarlo ai comandi pertinenti. Se non è stato impostato il contesto dell'insieme di credenziali o si vuole specificare il comando da eseguire per un determinato insieme di credenziali, passare l'ID dell'insieme di credenziali a -vaultID tutti i comandi pertinenti come indicato di seguito:

$vaultID = Get-AzRecoveryServicesVault -ResourceGroupName "Contoso-docs-rg" -Name "testvault" | select -ExpandProperty ID
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewAFSPolicy" -WorkloadType "AzureFiles" -RetentionPolicy $retPol -SchedulePolicy $schPol -VaultID $vaultID

Configurare un criterio di backup

Un criterio di backup specifica la pianificazione per i backup e il tempo di conservazione dei punti di ripristino di backup.

I criteri di backup sono associati ai criteri di conservazione. Un criterio di conservazione definisce per quanto tempo un punto di recupero viene mantenuto prima dell'eliminazione. È possibile configurare i backup con conservazione giornaliera, settimanale, mensile o annuale. Con più criteri di backup, è anche possibile configurare la conservazione oraria dei backup.

Scegliere un tipo di criterio:

Ecco alcuni cmdlet per i criteri di backup:

Per impostazione predefinita, un'ora di inizio viene definita nell'oggetto criteri di pianificazione. Usare l'esempio seguente per modificare l'ora di inizio all'ora di inizio desiderata. L'ora di inizio desiderata deve essere in ora UTC (Universal Coordinated Time). L'esempio presuppone che l'ora di inizio desiderata sia 01:00 UTC per i backup giornalieri.

$schPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureFiles"
$UtcTime = Get-Date -Date "2019-03-20 01:30:00Z"
$UtcTime = $UtcTime.ToUniversalTime()
$schpol.ScheduleRunTimes[0] = $UtcTime

Importante

È necessario specificare l'ora di inizio solo in più di 30 minuti. Nell'esempio precedente può essere solo "01:00:00" o "02:30:00". L'ora di inizio non può essere "01:15:00".

Nell'esempio seguente i criteri di pianificazione e i criteri di conservazione vengono archiviati nelle variabili. Usa quindi queste variabili come parametri per un nuovo criterio (NewAFSPolicy). NewAFSPolicy effettua un backup giornaliero e lo conserva per 30 giorni.

$schPol = Get-AzRecoveryServicesBackupSchedulePolicyObject -WorkloadType "AzureFiles"
$retPol = Get-AzRecoveryServicesBackupRetentionPolicyObject -WorkloadType "AzureFiles"
New-AzRecoveryServicesBackupProtectionPolicy -Name "NewAFSPolicy" -WorkloadType "AzureFiles" -RetentionPolicy $retPol -SchedulePolicy $schPol

L'output è simile al seguente:

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
NewAFSPolicy           AzureFiles            AzureStorage              10/24/2019 1:30:00 AM

Abilita backup

Dopo aver definito i criteri di backup, è possibile abilitare la protezione per la condivisione file di Azure usando i criteri.

Recuperare un criterio di backup

Per recuperare l'oggetto criteri pertinente, usare Get-AzRecoveryServicesBackupProtectionPolicy. Usare questo cmdlet per visualizzare i criteri associati a un tipo di carico di lavoro o per ottenere criteri specifici.

Recuperare un criterio per un tipo di carico di lavoro

L'esempio seguente recupera i criteri per il tipo di carico di lavoro AzureFiles:

Get-AzRecoveryServicesBackupProtectionPolicy -WorkloadType "AzureFiles"

L'output è simile al seguente:

Name                 WorkloadType       BackupManagementType BackupTime                DaysOfWeek
----                 ------------       -------------------- ----------                ----------
dailyafs             AzureFiles         AzureStorage         1/10/2018 12:30:00 AM

Nota

Il fuso orario del campo BackupTime in PowerShell è in formato UTC. L'orario di backup nel portale di Azure è allineato al fuso orario locale.

Recuperare un criterio specifico

Il criterio seguente recupera i criteri di backup denominati dailyafs:

$afsPol =  Get-AzRecoveryServicesBackupProtectionPolicy -Name "dailyafs"

Abilitare la protezione e applicare i criteri

Abilitare la protezione usando Enable-AzRecoveryServicesBackupProtection. Dopo aver associato il criterio all'insieme di credenziali, i backup vengono attivati in base alla pianificazione dei criteri.

L'esempio seguente abilita la protezione per il test della condivisione file di AzureAzureFS nell'account di archiviazione testStorageAcct, con i criteri dailyafs:

Enable-AzRecoveryServicesBackupProtection -StorageAccountName "testStorageAcct" -Name "testAzureFS" -Policy $afsPol

Il comando attende il completamento del processo di configurazione-protezione e restituisce un output simile all'esempio seguente:

WorkloadName       Operation            Status                 StartTime                                                                                                         EndTime                   JobID
------------             ---------            ------               ---------                                  -------                   -----
testAzureFS       ConfigureBackup      Completed            11/12/2018 2:15:26 PM     11/12/2018 2:16:11 PM     ec7d4f1d-40bd-46a4-9edb-3193c41f6bf6

Per altre informazioni su come ottenere un elenco di condivisioni file per un account di archiviazione, vedere questo articolo.

Avviso importante: Identificazione dell'elemento di backup

In questa sezione viene descritta una modifica importante nei backup delle condivisioni file di Azure in preparazione alla disponibilità generale.

Durante l'abilitazione di un backup per le condivisioni file di Azure, l'utente assegna al cliente un nome di condivisione file come nome dell'entità e viene creato un elemento di backup. Il nome dell'elemento di backup è un identificatore univoco creato dal servizio Backup di Azure. In genere l'identificatore è un nome descrittivo. Ma per gestire lo scenario di eliminazione temporanea, in cui è possibile eliminare una condivisione file e creare un'altra condivisione file con lo stesso nome, l'identità univoca di una condivisione file di Azure è ora un ID.

Per conoscere l'ID univoco di ogni elemento, eseguire il comando Get-AzRecoveryServicesBackupItem con i filtri pertinenti per backupManagementType e WorkloadType per ottenere tutti gli elementi pertinenti. Osservare quindi il campo del nome nell'oggetto/risposta di PowerShell restituito.

È consigliabile elencare gli elementi e quindi recuperare il nome univoco dal campo del nome nella risposta. Usare questo valore per filtrare gli elementi con il parametro Name . In caso contrario, utilizzare il parametro FriendlyName per recuperare l'elemento con il relativo ID.

Importante

Assicurarsi che PowerShell venga aggiornato alla versione minima (Az.RecoveryServices 2.6.0) per i backup delle condivisioni file di Azure. Con questa versione, il filtro FriendlyName è disponibile per il comando Get-AzRecoveryServicesBackupItem .

Passare il nome della condivisione file di Azure al parametro FriendlyName . Se si passa il nome della condivisione file al parametro Name , questa versione genera un avviso per passare il nome al parametro FriendlyName .

L'installazione della versione minima potrebbe causare un errore di script esistenti. Installare la versione minima di PowerShell usando il comando seguente:

Install-module -Name Az.RecoveryServices -RequiredVersion 2.6.0

Attivare un backup su richiesta

Usare Backup-AzRecoveryServicesBackupItem per eseguire un backup su richiesta per una condivisione file di Azure protetta:

  1. Recuperare l'account di archiviazione dal contenitore nell'insieme di credenziali che contiene i dati di backup usando Get-AzRecoveryServicesBackupContainer.
  2. Per avviare un processo di backup, ottenere informazioni sulla condivisione file di Azure usando Get-AzRecoveryServicesBackupItem.
  3. Eseguire un backup su richiesta usando Backup-AzRecoveryServicesBackupItem.

Eseguire il backup su richiesta come segue:

$afsContainer = Get-AzRecoveryServicesBackupContainer -FriendlyName "testStorageAcct" -ContainerType AzureStorage
$afsBkpItem = Get-AzRecoveryServicesBackupItem -Container $afsContainer -WorkloadType "AzureFiles" -FriendlyName "testAzureFS"
$job =  Backup-AzRecoveryServicesBackupItem -Item $afsBkpItem

Il comando restituisce un processo con un ID da tenere traccia, come illustrato nell'esempio seguente:

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   -----
testAzureFS       Backup               Completed            11/12/2018 2:42:07 PM     11/12/2018 2:42:11 PM     8bdfe3ab-9bf7-4be6-83d6-37ff1ca13ab6

Gli snapshot di condivisione file di Azure vengono usati durante l'esecuzione dei backup. In genere il processo termina al momento in cui il comando restituisce questo output.

Passaggi successivi