Présentation des instantanés

Cette page décrit ce qu'est un instantané, comment il fonctionne, certains cas d'utilisation fréquents, et présente les bonnes pratiques à suivre pour créer et utiliser des instantanés. Pour apprendre à créer et à gérer des instantanés, ainsi qu'à restaurer des données Filestore à partir d'un instantané, consultez la page Conserver l'état de vos données avec des instantanés.

Qu'est-ce qu'un instantané ?

Un instantané Filestore est l'état préservé de vos données de partage de fichiers au moment de la création de l'instantané. L'instance conserve l'état des fichiers modifiés après la création de l'instantané. Si vous souhaitez restaurer un fichier à l'état préservé dans l'instantané, vous pouvez écraser le fichier actuel avec le fichier du répertoire d'instantané approprié.

Les instantanés sont stockés dans l'instance Filestore et sont des ressources enfants de l'instance. Ils ne répliquent aucune donnée et ne consomment pas de capacité tant que les données de l'instance ne sont pas modifiées. Tous les instantanés d'une instance partagent des données communes, ce qui signifie que l'instance ne conserve que les différences entre les instantanés.

Création d'instantanés

Chaque répertoire d'un partage de fichiers contient un répertoire .snapshot masqué. Chaque répertoire .snapshot contient les instantanés de son répertoire parent que vous créez, par exemple:

foo/
│   bar.txt
│
└───.snapshot
    │
    ├───snap1/
    │        bar.txt
    │
    ├───snap2/
    │        bar.txt
    │
    └───snap3/
             bar.txt

Les instantanés contiennent une vue en lecture seule de tous les fichiers et sous-répertoires qui existent dans son répertoire parent au moment de la création de l'instantané. Tous les attributs de fichier, tels que atime, ownership et les autorisations de lecture/écriture sont conservés.

La création d'instantanés ne prend généralement pas plus de deux minutes, car elle n'implique pas la copie des données et n'affecte pas les performances de l'instance.

Vous pouvez avoir jusqu'à 240 instantanés par instance à la fois. Le nom du partage de fichiers et celui de l'instantané peuvent contenir jusqu'à 78 caractères.

Cohérence des instantanés

Les instantanés Filestore ont une sémantique de cohérence NFSv3. Avant le lancement de la capture d'un instantané, toute écriture que l'instance Filestore reconnaît comme étant écrite dans un espace de stockage stable ou suivie d'un COMMIT confirmé est incluse dans l'instantané. Pour plus d'informations, consultez la section 3.3.7 du document RFC-1813 NFSv3.

Préparer votre partage de fichiers pour optimiser la cohérence des instantanés

La qualité d'un instantané dépend de la capacité de votre application à effectuer la récupération à partir d'instantanés créés lors d'importantes charges de travail d'écriture. Dans la plupart des cas, vous pouvez créer des instantanés avec une bonne cohérence même lorsque vos applications écrivent des données dans le partage de fichiers. Toutefois, si vos applications nécessitent une cohérence stricte, nous vous recommandons d'effectuer l'une ou plusieurs des opérations suivantes :

  • Utilisez l'option d'installation de synchronisation ou ouvrez des fichiers avec O_DIRECT|O_SYNC. Ces deux méthodes améliorent la cohérence, mais ne garantissent pas.
  • Mettez en veille les applications ou les processus du système d'exploitation qui écrivent des données dans le partage de fichiers, et forcez-les à vider leurs modifications au partage de fichiers avant de lancer la création de l'instantané. Pour en savoir plus, consultez fsync(2).
  • Si vos applications nécessitent une cohérence entre plusieurs partages, mettez en pause toutes les applications sur toutes les instances qui écrivent dans tous les partages de fichiers et créez des instantanés de tous les partages de fichiers avant de reprendre vos applications.
  • Si vous avez besoin d'une cohérence au niveau de l'application, arrêtez vos applications et désinstallez le partage de fichiers avant de créer un instantané.

Sémantique NFS du répertoire .snapshot

Les répertoires .snapshot sont des répertoires masqués spéciaux contenant les instantanés pris pour son répertoire parent. Toutes les commandes NFS et bash fonctionnent pour ces répertoires avec les exceptions suivantes:

  • Vous ne pouvez pas créer un fichier ou un répertoire nommé .snapshot, car il est réservé aux instantanés.
  • Le répertoire .snapshot n'est pas répertorié dans les résultats des commandes READDIR ou READDIRPLUS, et n'est pas non plus répertorié dans la commande bash ls -a.
  • Pour passer à un répertoire .snapshot, vous devez saisir explicitement la chaîne .snapshot. Exemple : cd somedir/.snapshot/
  • La saisie semi-automatique pour les commandes shell ne répertorie pas .snapshot comme option.

Supprimer les fichiers capturés dans un instantané

Lorsqu'un fichier est capturé dans un instantané, sa suppression n'augmente pas l'espace disque disponible sur votre instance.

Rétablir l'état d'un instantané

Le rétablissement de l'état d'instantané d'une instance est disponible en tant que fonctionnalité de preview pour les instances SSD et Enterprise à grande échelle.

Lorsque l'état enregistré dans un instantané pour une instance est rétabli, toutes les nouvelles données écrites depuis la création de l'instantané cible sont supprimées et ne peuvent pas être récupérées. Les instantanés créés après l'instantané cible sont également supprimés par le processus de restauration.

Limites des fonctionnalités

  • La fonctionnalité de restauration d'instantanés est une opération destructive, à la fois sur le système de fichiers actif et sur les instantanés les plus récents de la chaîne. Par conséquent, le risque de perte accidentelle de données est plus élevé. Ce comportement est très différent d'une restauration à partir d'une sauvegarde, où la sauvegarde reste dans son état actuel après utilisation, ce qui vous permet d'effectuer une restauration à partir de plusieurs sauvegardes pour trouver la meilleure. Utilisez la fonctionnalité d'annulation avec précaution.

  • Toutes les données écrites après la création de l'instantané cible sont supprimées au début du processus de rétablissement et ne peuvent pas être récupérées. Tous les instantanés plus récents que l'instantané cible sont également supprimés. Par exemple, instantané1, instantané2 et instantané3 sont créés de manière séquentielle. Le rétablissement de l'état capturé dans l'instance "Snapshot2" signifie que l'instantané 3 et toutes les modifications apportées après snapshot3 sont supprimés dans le processus de restauration.

    Le nettoyage de ces données supprimées peut prendre jusqu'à trois jours. La capacité et les performances de l'instance peuvent être affectées pendant cette période.

  • Le rétablissement de l'état d'instantané d'une instance met à jour l'ID du système de fichiers NFS (fsid). Par conséquent, les tentatives d'accès aux clients à l'aide d'installations existantes renvoient des erreurs de gestion de fichiers obsolètes. Il est recommandé de désinstaller tous les clients de l'instance avant l'opération de restauration et de les réinstaller une fois l'opération terminée.

  • Une opération de restauration peut prendre plusieurs heures, en fonction du nombre de fichiers impliqués. Vous devez attendre la fin de l'opération d'annulation avant d'en démarrer une autre.

  • Aucune autre opération, que ce soit sur l'instance ou sur l'instantané, ne peut être exécutée tant que l'opération d'annulation est terminée. Toutes les autres opérations sont refusées ou mises en file d'attente, en fonction de la configuration de l'opération.

  • Actuellement, seules les instances disposant d'un seul partage peuvent rétablir l'état d'instantané. La fonctionnalité de rétablissement de l'instantané ne peut pas être combinée aux multipartages Filestore pour GKE.

Étapes suivantes