27 May 2024, 00:00

Azure Files Sync

Share

Présentation

Présentation chez MS
Planification
Guide de déploiement

Fonctionne par groupe de synchronisation (sync group), qui associe un/plusieurs point(s) de terminaison local (server endpoint : le chemin sur le serveur) et un point de terminaison distant (cloud endpoint : un partage Azure Files).
Pass par l’installation d’un agent sur chaque serveur à configurer (supporté à partir de Server 2016, ou 2012R2 avec Windows Management Framework).

Sur le serveur, il est nécessaire que le lecteur soit en accès direct (propriétaire du filesystem), et en NTFS.
Les liens durs et symboliques seront ignorés.

L’accès par clé doit être activé sur le compte de stockage.

Les données seront synchro en bi-directionnel ; toutefois, la propagation cloud -> serveurs locaux sera plus lente que le sens inverse (“This is because Azure Files today lacks an efficient change detection mechanism like Windows Server has, so changes to the Azure file share directly will take time to propagate back to the server endpoints”).
En gros une tâche planifiée (“change detection job”) est déclenchée toutes les 24h, l’agent va alors scanner tous les fichiers et détecter les changements.

Il faut déployer un “Storage Sync Service”.
Un serveur ne peut faire partie que d’un seul “Storage sync Service”. MS conseille globalement d’utiliser un seul SSS.

Maximum 30 partages par serveur.

Mise en place de l’infrastructure

Préparation du serveur

Sur chaque serveur sur lequel l’agent de sync sera installé, désactiver “Internet Explorer Enhanced Security Configuration”.
Gestionnaire de serveur -> Serveur local -> Section “Proprietés” -> Configuration de sécurité renforcée d’IE -> les 2 à Non

Création du Storage Sync Service (SSS)

Azure portal -> Create ressource
chercher “Azure File Sync” -> Create
Choisir l’abonnement Azure ; choisir le groupe de ressources concerné ; donner un nom ;
Le réseau devrait être ok par défaut; Valider la création.

Installation de l’agent de synchronisation

Télécharger ici le paquet correspondant à la version du serveur.
Install classique.
Sera installé dans le dossier : C:\Program Files\Azure\StorageSyncAgent\
Peut être configuré pour utiliser Windows Update.

Inscription du serveur auprès du service de sync

Il faut avoir les rôles Owner ou Contributor sur le SSS.

Au lancement de l’interface Azure Files Sync, il est demandé d’inscrire le serveur. On choisit “AzureCloud”, on se connecte, et on sélectionne la bonne ressource.
Si l’interface ne se lance pas, lancer C:\Program Files\Azure\StorageSyncAgent\ServerRegistration.exe

On peut alors le voir sur le portail Azure, sur la ressource SSS, dans “Sync -> Registered servers”

Création du groupe de synchro

Un groupe de synchro équivaut à un dossier cloud.
Il faut faire la suite pour chaque nouveau groupe de synchronisation.

Azure Portal -> trouver la ressource (par exemple via le groupe de ressource, ou le menu de service “Storage Sync Services”

Sync -> Sync groups -> Create sync group
On donne un nom, on choisit l’abonnement, le compte de stockage, le partage Azure
Le groupe de synchro est alors créé, mais n’a aucun “server endpoint”

Création du point de terminaison serveur

Il faut maintenant créer un SEP (Server EndPoint).
À faire sur chacun des serveurs qui sera dans le groupe de synchro.
Attention, le choix du lecteur et du chemin sur le serveur est définitif ! Il ne pourra pas être modifié par la suite.

Ouvrir le groupe de synchro -> Add server endpoint
Choisir le serveur
Entrer le chemin local des données à synchroniser (avec la lettre de lecteur)
Activer si besoin le cloud tiering

Initial sync : uniquement disponible pour le 1e serveur que l’on synchronise.
MS conseille de conserver “Merge” dans la majorité des cas, même si la source ou la destination est vide.

Initial download : aucun impact si le partage est vide.
“Namespace first, then content” semble adapté pour avoir toutes les données en local.
Ne pourra pas être changé par la suite !

On peut alors valider ; ça va créer le SEP, et la synchro sera déclenchée quelques temps plus tard.

Forcer la synchro

On peut forcer la synchro depuis le cloud vers le serveur avec la commande Invoke-AzStorageSyncChangeDetection.
https://learn.microsoft.com/en-us/powershell/module/az.storagesync/invoke-azstoragesyncchangedetection

On définit nos ressources :

$rgname = "myressourcegroup"  
$sss = "mysyncservice"  
$sgname = "mysyncgroup"

Ensuite, on récupère le GUID du point de terminaison cloud :

$cep = (Get-AzStorageSyncCloudEndpoint -ResourceGroupName $rgname -StorageSyncServiceName $sss -SyncGroupName $sgname).CloudEndpointName

puis on force la synchro :

Invoke-AzStorageSyncChangeDetection -ResourceGroupName $rgname -StorageSyncServiceName $sss -SyncGroupName $sgname -Name $cep

Dépannage

https://learn.microsoft.com/en-us/troubleshoot/azure/azure-storage/files/file-sync/file-sync-troubleshoot-sync-errors

Décommissioner un serveur

https://learn.microsoft.com/en-us/azure/storage/file-sync/file-sync-server-endpoint-delete

Si on veut retirer un serveur, il faut d’abord s’assurer que tous ses changements on bien été transférés vers le cloud.
Observateur d'evts -> Journaux des applications et services -> Microsoft -> File Sync -> Agent -> Telemetry
Chercher un evt 9102 récent.

Autres indications sur le portail Azure :
Storage accounts -> file share -> used size
SSS -> Sync group

  • 0 persistent sync error
  • server endpoint -> sync status
  • Upload et Download ont des timestamps récents

Pour être sûrs que des nouvelles données ne soient plus écrites sur le serveur, on désactive le partage réseau du serveur.
ATTENTION, ne pas modifier les droits d’accès sur le serveur pour empêcher l’accès, sinon cette modification sera répliquée sur Azure.
S’il n’est pas possible de supprimer le partage (par exemple plusieurs dossiers partagés sous un seul chemin), il faudra changer le chemin d’accès sur le serveur (par ex. renommer le dossier) à la fin de la manip.

On peut alors supprimer le “server endpoint”, puis le “cloud endpoint”, puis le groupe de synchro.

Powershell

cd 'C:\Program Files\Azure\StorageSyncAgent'
Import-Module -Name .\StorageSync.Management.ServerCmdlets.dll/subscriptions/114f9a3c-73d1-4aa8-bf49-16617988e42a/resourceGroups/GroupeRessourcesESCDA/providers/Microsoft.StorageSync/storageSyncServices/ServiceSynchroFichiers/registeredServers/6a7b6254-cfb5-438e-9189-0f011cbb5b1f