Partager via


Restaurer Azure Files avec PowerShell

Cet article explique comment restaurer un partage de fichiers entier ou des fichiers spécifiques à partir d’un point de restauration créé par le service Sauvegarde Azure à l’aide d’Azure PowerShell. Vous pouvez également restaurer Azure Files à l’aide du portail Azure, d’Azure CLI, de l’API REST.

Vous pouvez restaurer un partage de fichiers entier ou des fichiers spécifiques sur le partage. Vous pouvez restaurer à l’emplacement d’origine ou à un autre emplacement.

Avertissement

Vérifiez que la version de PowerShell est mise à niveau vers la version minimale d'« Az.RecoveryServices 2.6.0 » pour les sauvegardes AFS. Pour plus d'informations, reportez-vous à la section détaillant les conditions de ce changement.

Notes

  • La restauration d’Azure Files est prise en charge uniquement dans le même abonnement lors de l’utilisation de PowerShell ou de l’interface CLI.
  • La restauration inter-régions n’est pas prise en charge à l’aide de PowerShell ou de l’interface CLI.
  • Sauvegarde Azure prend désormais en charge la restauration de plusieurs fichiers ou dossiers à l'emplacement d'origine ou à un autre emplacement à l'aide de PowerShell. Pour en savoir plus, reportez-vous à cette section du document.

Récupérer des points de récupération

Utilisez Get-AzRecoveryServicesBackupRecoveryPoint pour lister tous les points de récupération correspondant à l’élément sauvegardé.

Dans le script suivant :

  • La variable $rp est un tableau de points de récupération des 7 derniers jours pour l’élément de sauvegarde sélectionné.
  • Le tableau est trié dans l’ordre chronologique inverse, le point de récupération le plus récent détenant l’index 0.
  • Utilisez l'indexation de tableau PowerShell standard pour sélectionner le point de récupération.
  • Dans l’exemple, $rp[0] sélectionne le dernier point de récupération.
$vault = Get-AzRecoveryServicesVault -ResourceGroupName "azurefiles" -Name "azurefilesvault"
$Container = Get-AzRecoveryServicesBackupContainer -ContainerType AzureStorage -Status Registered -FriendlyName "afsaccount" -VaultId $vault.ID
$BackupItem = Get-AzRecoveryServicesBackupItem -Container $Container -WorkloadType AzureFiles -VaultId $vault.ID -FriendlyName "azurefiles"
$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -VaultId $vault.ID -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime()
$rp[0] | fl

Le résultat ressemble à ce qui suit.

FileShareSnapshotUri : https://testStorageAcct.file.core.windows.net/testAzureFS?sharesnapshot=2018-11-20T00:31:04.00000
                       00Z
RecoveryPointType    : FileSystemConsistent
RecoveryPointTime    : 11/20/2018 12:31:05 AM
RecoveryPointId      : 86593702401459
ItemName             : testAzureFS
Id                   : /Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/Micros                      oft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;teststorageRG;testStorageAcct/protectedItems/AzureFileShare;testAzureFS/recoveryPoints/86593702401462
WorkloadType         : AzureFiles
ContainerName        : storage;teststorageRG;testStorageAcct
ContainerType        : AzureStorage
BackupManagementType : AzureStorage

Une fois le point de récupération approprié sélectionné, vous restaurez le partage de fichiers ou le fichier à l’emplacement d’origine, ou à un autre emplacement.

Restaurer un partage de fichiers vers un autre emplacement

Utilisez AzRecoveryServicesBackupItem de restauration pour restaurer jusqu’au point de récupération sélectionné. Spécifiez ces paramètres pour identifier l’autre emplacement :

  • TargetStorageAccountName : Compte de stockage sur lequel le contenu sauvegardé est restauré. Le compte de stockage cible doit se trouver au même emplacement que le coffre.
  • TargetFileShareName : partages de fichiers dans le compte de stockage cible sur lequel le contenu sauvegardé est restauré.
  • TargetFolder : dossier sous le partage de fichiers sur lequel les données sont restaurées. Si le contenu sauvegardé doit être restauré dans le dossier racine, indiquez les valeurs du dossier cible sous forme de chaîne vide.
  • ResolveConflict : Instruction en cas de conflit avec les données restaurées. Accepte Remplacer ou Ignorer.

Exécutez la cmdlet avec les paramètres comme suit :

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -TargetStorageAccountName "TargetStorageAcct" -TargetFileShareName "DestAFS" -TargetFolder "testAzureFS_restored" -ResolveConflict Overwrite

La commande retourne un travail avec un ID à suivre, comme indiqué dans l’exemple suivant.

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   -----
testAzureFS        Restore              InProgress           12/10/2018 9:56:38 AM                               9fd34525-6c46-496e-980a-3740ccb2ad75

Restaurer Azure Files à un autre emplacement

Utilisez AzRecoveryServicesBackupItem de restauration pour restaurer jusqu’au point de récupération sélectionné. Spécifiez ces paramètres pour identifier l’autre emplacement et pour identifier de façon unique le fichier que vous souhaitez restaurer.

  • TargetStorageAccountName : Compte de stockage sur lequel le contenu sauvegardé est restauré. Le compte de stockage cible doit se trouver au même emplacement que le coffre.
  • TargetFileShareName : partages de fichiers dans le compte de stockage cible sur lequel le contenu sauvegardé est restauré.
  • TargetFolder : dossier sous le partage de fichiers sur lequel les données sont restaurées. Si le contenu sauvegardé doit être restauré dans le dossier racine, indiquez les valeurs du dossier cible sous forme de chaîne vide.
  • SourceFilePath : chemin absolu du fichier, à restaurer dans le partage de fichiers, sous forme de chaîne. Ce chemin d’accès est le même que celui utilisé dans la cmdlet PowerShell Get-AzStorageFile.
  • SourceFileType : Indique si un répertoire ou un fichier est sélectionné. Accepte Répertoire ou Fichier.
  • ResolveConflict : Instruction en cas de conflit avec les données restaurées. Accepte Remplacer ou Ignorer.

Les paramètres supplémentaires (SourceFilePath and SourceFileType) concernent uniquement le fichier individuel que vous souhaitez restaurer.

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -TargetStorageAccountName "TargetStorageAcct" -TargetFileShareName "DestAFS" -TargetFolder "testAzureFS_restored" -SourceFileType File -SourceFilePath "TestDir/TestDoc.docx" -ResolveConflict Overwrite

Cette commande retourne un travail avec un ID à suivre, comme indiqué dans la section précédente.

Restaurer Azure Files et fichiers à l’emplacement d’origine

En cas de restauration à l’emplacement d’origine, vous ne devez pas spécifier tous les paramètres liés à la destination/cible. Seul ResolveConflict doit être fourni.

Remplacer les fichiers Azure

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -ResolveConflict Overwrite

Remplacer les fichiers Azure

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -SourceFileType File -SourceFilePath "TestDir/TestDoc.docx" -ResolveConflict Overwrite

Restaurer plusieurs fichiers ou dossiers à l'emplacement d'origine ou à un autre emplacement

Utilisez la commande Restore-AzRecoveryServicesBackupItem en transmettant le chemin de tous les fichiers ou dossiers que vous souhaitez restaurer en tant que valeur du paramètre MultipleSourceFilePath.

Restaurer plusieurs fichiers

Dans le script suivant, nous tentons de restaurer les fichiers FileSharePage.png et MyTestFile.txt.

$vault = Get-AzRecoveryServicesVault -ResourceGroupName "azurefiles" -Name "azurefilesvault"

$Container = Get-AzRecoveryServicesBackupContainer -ContainerType AzureStorage -Status Registered -FriendlyName "afsaccount" -VaultId $vault.ID

$BackupItem = Get-AzRecoveryServicesBackupItem -Container $Container -WorkloadType AzureFiles -VaultId $vault.ID -FriendlyName "azurefiles"

$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -VaultId $vault.ID

$files = ("FileSharePage.png", "MyTestFile.txt")

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -MultipleSourceFilePath $files -SourceFileType File -ResolveConflict Overwrite -VaultId $vault.ID -VaultLocation $vault.Location

Restaurer plusieurs répertoires

Dans le script suivant, nous tentons de restaurer les répertoires zrs1_restore et Restore.

$vault = Get-AzRecoveryServicesVault -ResourceGroupName "azurefiles" -Name "azurefilesvault"

$Container = Get-AzRecoveryServicesBackupContainer -ContainerType AzureStorage -Status Registered -FriendlyName "afsaccount" -VaultId $vault.ID

$BackupItem = Get-AzRecoveryServicesBackupItem -Container $Container -WorkloadType AzureFiles -VaultId $vault.ID -FriendlyName "azurefiles"

$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -VaultId $vault.ID

$files = ("Restore","zrs1_restore")

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -MultipleSourceFilePath $files -SourceFileType Directory -ResolveConflict Overwrite -VaultId $vault.ID -VaultLocation $vault.Location

Vous devez obtenir un résultat semblable à ce qui suit :

WorkloadName         Operation         Status          StartTime                EndTime       JobID
------------         ---------         ------          ---------                -------       -----
azurefiles           Restore           InProgress      4/5/2020 8:01:24 AM                    cd36abc3-0242-44b1-9964-0a9102b74d57

Si vous souhaitez restaurer plusieurs fichiers ou dossiers à un autre emplacement, utilisez les scripts ci-dessus en spécifiant les valeurs de paramètre liées à l’emplacement cible, comme expliqué ci-dessus dans Restaurer Azure Files vers un autre emplacement.

Étapes suivantes

Gérez les sauvegardes Azure Files à l’aide du portail Azure, d’Azure PowerShell, d’Azure CLI, de l’API REST.