Programmer des instantanés Filestore Enterprise


Ce document explique comment planifier et protéger vos instantanés Filestore à l'aide de Cloud Scheduler.

Ce document est destiné aux décideurs informatiques, aux administrateurs des sauvegardes et aux administrateurs de reprise après sinistre qui souhaitent en savoir plus ou créer des instantanés Filestore programmés.

Objectifs

  • Configurez Cloud Functions et le fichier de configuration JSON.
  • créer une tâche Cloud Scheduler ;
  • Créer et étiqueter des instantanés Filestore programmés
  • Surveillez le processus de création de l'instantané.

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Une fois ce tutoriel terminé, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez Nettoyage.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Activer les API Filestore, Cloud Scheduler, Cloud Functions, App Engine, and Cloud Build.

    Activer les API

  5. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  6. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  7. Activer les API Filestore, Cloud Scheduler, Cloud Functions, App Engine, and Cloud Build.

    Activer les API

Modèle de déploiement

Le schéma suivant illustre le modèle de déploiement compatible avec l'instantané Filestore Cloud Functions.

Modèle de déploiement compatible avec les instantanés Cloud Functions Filestore.

La tâche Cloud Scheduler se coordonne avec Cloud Functions pour planifier et générer des instantanés Filestore et des fichiers journaux. Les instantanés sont disponibles dans le partage Filestore.

Limitations connues

Lorsque vous préparez à configurer un planificateur d'instantanés pour des instances Filestore, tenez compte des limites suivantes:

  • La fonction supprime un seul instantané si nécessaire, même s'il y a plus d'instantanés du programmeur que ceux définis dans le fichier de configuration des règles de conservation, ou si le fichier de configuration des règles de conservation est mis à jour pour conserver moins d'instantanés qu'auparavant.
  • Si vous diminuez la valeur numérique de snapshots dans le fichier de configuration JSON, les instantanés redondants de l'instance ne sont pas automatiquement supprimés. Si vous modifiez ce paramètre, vous devez supprimer manuellement les instantanés redondants.
  • Étant donné que la limite de l'ID d'instantané est de 75 caractères, le nom de la règle de conservation est limité à 50 caractères.

Préparer votre environnement

Dans cette section, vous allez configurer les variables d'environnement, cloner le dépôt, puis créer les applications et les fichiers dont vous avez besoin pour ce tutoriel.

Définir des variables d'environnement

  • Dans Cloud Shell, saisissez la commande suivante :
gcloud components update
  • Dans Cloud Shell, créez les variables suivantes:

    export PROJECT_ID=PROJECT_ID
    export GCP_REGION=GCP_REGION
    export APP_ENGINE_REGION=APP_ENGINE_REGION
    export FUNCTION_NAME=FUNCTION_NAME
    export SCHEDULER_NAME=SCHEDULER_NAME
    export SCHEDULER_EXPRESSION="SCHEDULER_EXPRESSION"
    export SCHEDULER_TZ=SCHEDULER_TZ
    export SERVICE_ACCOUNT_NAME=SERVICE_ACCOUNT_NAME
    

    Remplacez les éléments suivants :

    • PROJECT_ID: ID du projet Google Cloud dans lequel vous souhaitez installer l'instance Filestore Enterprise, la fonction Cloud et le planificateur Cloud.
    • GCP_REGION: région Google Cloud dans laquelle vous souhaitez installer l'instance Filestore Enterprise, la fonction Cloud et Cloud Scheduler.
    • APP_ENGINE_REGION: région de la liste d'emplacements App Engine dans laquelle vous souhaitez installer App Engine. Tenez compte des exigences suivantes :
      • Un projet Google Cloud ne peut avoir qu'une seule instance App Engine, et la région App Engine ne peut pas être modifiée ultérieurement.
      • La tâche Cloud Scheduler et l'instance App Engine doivent se trouver dans la même région.
        • Par exemple, si les ressources Cloud Scheduler utilisent us-central1, utilisez l'équivalent us-central d'App Engine.
        • App Engine applique une convention d'attribution de noms unique pour certaines régions. Pour en savoir plus, consultez la liste des emplacements App Engine.
    • FUNCTION_NAME: nom que vous souhaitez attribuer à la fonction Cloud.
    • SCHEDULER_NAME: nom que vous souhaitez attribuer au Cloud Scheduler.
    • SCHEDULER_EXPRESSION: expression Cron Cloud Scheduler (par exemple, 10 0 * * *). Pour en savoir plus, consultez la section Configurer les job Cron Cron.
    • SCHEDULER_TZ: fuseau horaire de Cloud Scheduler, au format nom de la liste des fuseaux horaires de la base de données tz, par exemple America/Los_Angeles.
    • SERVICE_ACCOUNT_NAME: nom du compte de service que vous venez de créer, par exemple scheduler-sa.

Créer un compte de service

Dans cette section, vous allez créer un compte de service dédié, ce qui vous permet de créer et de gérer la fonction Cloud et la tâche Cloud Scheduler.

Lorsque vous suivez cette procédure, le compte de service nécessite les autorisations suivantes:

  • file.instances.get
  • file.snapshots.list
  • file.snapshots.create
  • file.operations.get
  • file.snapshots.delete
  • cloudfunctions.functions.invoke

Pour en savoir plus, consultez Autorisations IAM Filestore ou Autorisations IAM Cloud Functions.

Pour créer le compte de service, procédez comme suit :

  1. Dans Cloud Shell, créez un rôle dédié au programmeur d'instantanés avec les autorisations requises:

    gcloud iam roles create snapshot_scheduler --project $PROJECT_ID --permissions file.instances.get,file.snapshots.list,file.snapshots.create,file.operations.get,file.snapshots.delete,logging.logEntries.create,cloudfunctions.functions.invoke --stage GA
    
  2. Créez le compte de service :

    gcloud iam service-accounts create $SERVICE_ACCOUNT_NAME --project $PROJECT_ID
    
  3. Associez le rôle au compte de service:

    gcloud projects add-iam-policy-binding $PROJECT_ID --member serviceAccount:$SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com --role projects/$PROJECT_ID/roles/snapshot_scheduler
    

Créer une instance Filestore Enterprise

  1. Si vous n'avez pas encore créé de variables d'environnement pour une instance Filestore Enterprise que vous souhaitez utiliser, créez les variables suivantes dans Cloud Shell:

    export FILESTORE_INSTANCE_ID=FILESTORE_INSTANCE_ID
    export FILESTORE_SHARE_NAME=SHARE_NAME
    export FILESTORE_SHARE_SIZE=NUMERIC_IN_GB
    export NETWORK_NAME=VPC_NAME
    

    Remplacez les éléments suivants :

    • FILESTORE_INSTANCE_ID: nom de l'instance Filestore Enterprise
    • SHARE_NAME: nom du partage d'instance Filestore Enterprise
    • NUMERIC_IN_GB: taille de partage de l'instance Filestore Enterprise, soit un nombre compris entre 1024 et 10 240, par incréments de 256
    • VPC_NAME: nom du réseau VPC sur lequel vous souhaitez installer l'instance Filestore Enterprise
  2. Créez une instance Filestore si vous n'en avez pas encore:

    gcloud filestore instances create $FILESTORE_INSTANCE_ID --network name=$NETWORK_NAME --file-share=capacity=$FILESTORE_SHARE_SIZE,name=$FILESTORE_SHARE_NAME --tier ENTERPRISE --project=$PROJECT_ID --location=$GCP_REGION
    

Pour en savoir plus, consultez la page Créer des instances.

Créer un App Engine

Dans cette section, vous allez créer un environnement App Engine pour votre projet Google Cloud. Cela vous permettra de créer une tâche Cloud Scheduler plus tard dans ce tutoriel.

Un projet Google Cloud ne peut avoir qu'un seul App Engine, et la région ne peut pas être modifiée ultérieurement.

  • Si vous n'avez pas encore de service App Engine, créez-en un dans Cloud Shell:

    gcloud app create --region=$APP_ENGINE_REGION --project=$PROJECT_ID
    

Créer le fichier de configuration JSON

Le fichier de configuration JSON peut comporter jusqu'à huit instances Filestore en raison d'une limitation de Cloud Functions. Si vous disposez de plus de huit instances Filestore pour planifier les instantanés, utilisez des tâches Cloud Scheduler supplémentaires.

  • Dans Cloud Shell, créez un fichier nommé request.json et modifiez le contenu en fonction de votre environnement:

    {
                "retention_policy": "RETENTION_NAME",
                "instances": [
                    {"instance_path": "projects/PROJECT_ID/locations/GCP_REGION/instances/FILESTORE_INSTANCE_ID/",
                        "snapshots": NUMBER_OF_SNAPSHOTS
                    }
                ]
    }
    

    Remplacez les éléments suivants :

    • RETENTION_NAME: nom du type de conservation de vos instantanés, qui fait partie du nom de l'instantané (par exemple, daily).
    • NUMBER_OF_SNAPSHOTS: nombre d'instantanés.

Cloner le dépôt

Clonez le dépôt de l'atelier, puis saisissez le répertoire suivant:

  1. Dans Cloud Shell, clonez le dépôt de l'atelier:

    git clone https://github.com/GoogleCloudPlatform/Filestore-Snapshot-Scheduler
    

    Le résultat ressemble à ce qui suit :

    Cloning into Filestore-Snapshot-Scheduler
    
  2. Saisissez le répertoire:

    cd Filestore-Snapshot-Scheduler
    

Créer la fonction Cloud

Dans Cloud Shell, créez la solution Cloud Functions:

gcloud functions deploy $FUNCTION_NAME --region $GCP_REGION --runtime=python39 --trigger-http --source scheduler/ --timeout 540 --service-account $SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com --entry-point main --project $PROJECT_ID

Exemple :

gcloud functions deploy scheduler_func --region us-central1 --runtime=python39 --trigger-http --source scheduler/ --timeout 540 --service-account scheduler-sa@project1.iam.gserviceaccount.com --entry-point main --project project1

Créer une tâche Cloud Scheduler

La tâche Cloud Scheduler doit se trouver dans une région équivalente à la région App Engine.

Dans Cloud Shell, créez une tâche Cloud Scheduler avec un ou plusieurs planificateurs sur la même instance Filestore:

gcloud scheduler jobs create http $SCHEDULER_NAME --schedule "$SCHEDULER_EXPRESSION" --uri "https://$GCP_REGION-$PROJECT_ID.cloudfunctions.net/$FUNCTION_NAME"  --http-method POST --message-body-from-file ../request.json --oidc-service-account-email $SERVICE_ACCOUNT_NAME@$PROJECT_ID.iam.gserviceaccount.com --time-zone $SCHEDULER_TZ --project $PROJECT_ID

Dans l'exemple suivant, le planificateur quotidien s'exécute à 20h :

gcloud scheduler jobs create http daily_scheduler --schedule "20 0 * * *" --uri "https://us-central1-project1.cloudfunctions.net/scheduler_func"  --http-method POST --message-body-from-file ../request.json --oidc-service-account-email scheduler-sa@project1.iam.gserviceaccount.com --time-zone America/Los_angeles --project project1

Valider les instantanés Filestore programmés

  1. Dans la console Google Cloud, accédez à la page Cloud Scheduler.

    Accéder à Cloud Scheduler

  2. Sur la ligne de la tâche que vous avez créée, cliquez sur Actions > Forcer l'exécution d'une tâche.

  3. Cliquez sur Actualiser.

    • Si la tâche a bien été exécutée, la colonne Résultat de la dernière exécution indique le code temporel de la dernière tâche réussie.
    • Si la tâche échoue, procédez comme suit:

      1. Accédez à la page Cloud Functions.

        Accéder aux fonctions Cloud

      2. Sur la ligne de la fonction que vous avez créée, cliquez sur Actions > Afficher les journaux.

      3. Recherchez un message d'erreur et résolvez le problème.

  4. Dans la console Google Cloud, accédez à la page Instances Filestore.

  5. Dans la liste Instances, sélectionnez votre instance et assurez-vous qu'elle possède un instantané au format de nom suivant:

    sched-RETENTION_NAME-DATE-TIME

    Par exemple, sched-daily-20220315-120640.

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre compte Cloud Platform, supprimez le projet contenant les ressources.

Supprimer le projet

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Étapes suivantes