Programmer des instantanés Filestore Enterprise


<ph type="x-smartling-placeholder">
</ph> Ce document explique comment utiliser Cloud Scheduler pour planifier et vous aider protéger les instantanés Filestore.

Ce document s'adresse aux décisionnaires IT, aux administrateurs de sauvegarde pour les administrateurs de reprise après sinistre qui souhaitent en savoir plus sur des instantanés Filestore programmés.

Objectifs

  • Configurer les fonctions Cloud Run et le fichier de configuration JSON
  • créer une tâche Cloud Scheduler ;
  • Créez des instantanés Filestore programmés et attribuez-leur des libellés.
  • Surveiller le processus de création des instantanés

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 le les ressources que vous avez créées. Pour en savoir plus, consultez Effectuer un 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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  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. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  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 qui prend en charge Fonctions Cloud Run d'instantané Filestore.

Modèle de déploiement prenant en charge les fonctions d&#39;instantané Filestore avec Cloud Run.

Le job Cloud Scheduler se coordonne avec les fonctions Cloud Run pour programmer et générer des instantanés et des fichiers journaux Filestore. La sont disponibles dans le partage Filestore.

Limitations connues

Lorsque vous préparez la configuration d'un programmeur d'instantanés pour Filestore Compute Engine, tenez compte des limites suivantes:

  • La fonction ne supprime qu'un seul instantané si nécessaire, même si La règle de conservation comporte plus d'instantanés de planificateur que ceux définis dans la règle de configuration, ou si le fichier de configuration des règles de conservation est mises à jour pour conserver moins d'instantanés qu'auparavant.
  • Si vous réduisez 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 le paramètre, vous devez supprimer manuellement.
  • Étant donné que l'ID d'instantané est limité à 75 caractères, la durée de conservation le nom de la règle est limité à 50 caractères.

Préparer votre environnement

Dans cette section, vous allez configurer vos variables d'environnement, cloner le dépôt, et 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 Run, et Cloud Scheduler.
    • GCP_REGION: région Google Cloud dans laquelle vous souhaitez installer l'instance Filestore Enterprise, la fonction Cloud Run et Cloud Scheduler.
    • APP_ENGINE_REGION: une région du Liste des emplacements App Engine dans lesquels vous souhaitez installer App Engine. Tenez compte des exigences suivantes: <ph type="x-smartling-placeholder">
        </ph>
      • Un projet Google Cloud ne peut comporter qu'une seule instance App Engine. la région App Engine ne peut pas être modifiée par la suite.
      • Le job Cloud Scheduler et l'instance App Engine doivent se trouver dans dans la même région.
        • Par exemple, si les ressources Cloud Scheduler utilisent us-central1, utilisez l'équivalent App Engine us-central.
        • 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 donner au fonction Cloud Run.
    • SCHEDULER_NAME: nom que vous souhaitez donner au Cloud Scheduler.
    • SCHEDULER_EXPRESSION: Cloud Scheduler une expression Cron, par exemple, 10 0 * * *. Pour en savoir plus, consultez Configurez des job Cron Cron.
    • SCHEDULER_TZ: fuseau horaire de la Cloud Scheduler, au format de 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 nouvellement créé (par exemple, scheduler-sa).

Créer un compte de service

Dans cette section, vous allez créer un compte de service dédié, et gérer la fonction Cloud Run et le job Cloud Scheduler.

Lorsque vous suivez cette procédure, le compte de service requiert les éléments suivants : autorisations:

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

Pour en savoir plus, consultez la page Autorisations IAM Filestore. ou les autorisations IAM pour les fonctions Cloud Run.

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

  1. Dans Cloud Shell, créez un rôle dédié pour l'instantané. 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 l'instance Filestore Enterprise que vous souhaitez utiliser Cloud Shell, créez les variables suivantes:

    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: instance Filestore Enterprise nom
    • SHARE_NAME: nom du partage de l'instance Filestore Enterprise
    • NUMERIC_IN_GB: partage d'instances Filestore Enterprise taille (nombre compris entre 1 024 et 10 240, par incréments de 256)
    • VPC_NAME: nom du réseau VPC sur lequel vous souhaitez installer le Instance Filestore Enterprise
  2. Si vous n'en avez pas encore, créez une instance Filestore:

    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 une instance App Engine

Dans cette section, vous allez créer App Engine projet Google Cloud. Cela vous permet de créer un job Cloud Scheduler dans la suite de ce tutoriel.

Un projet Google Cloud ne peut comporter qu'un seul environnement App Engine. vous ne pourrez pas modifier la région par la suite.

  • Si vous n'en avez pas encore, créez un App Engine:

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

Créer le fichier de configuration JSON

Le fichier de configuration JSON peut contenir jusqu'à huit fichiers Filestore en raison d'une limitation des fonctions Cloud Run. Si vous avez plus de huit instances Filestore pour programmer des instantanés, utilisez des Jobs Cloud Scheduler.

  • Dans Cloud Shell, créez un fichier nommé request.json, puis 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 de l'instantané. type de conservation, qui est incorporé dans le 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 accédez au répertoire:

  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 Run

Dans Cloud Shell, créez la solution de la fonction Cloud Run:

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

Le job Cloud Scheduler doit se trouver dans une région équivalente à la Région App Engine.

Dans Cloud Shell, créez un job Cloud Scheduler avec un ou plusieurs 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 "0 20 * * *" --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 du job que vous avez créé, cliquez sur . Actions > Forcez l'exécution d'un job.

  3. Cliquez sur Actualiser.

    • Si la tâche s'exécute correctement, la colonne Résultat de la dernière exécution affiche un horodatage de la dernière tâche ayant abouti.
    • Si la tâche échoue, procédez comme suit:

      1. Accédez à la page Cloud Functions.

        Accéder à Cloud Functions

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

      3. Recherchez un message d'erreur et résolvez les problèmes en conséquence.

  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 dispose d'une avec le format de nom suivant:

    sched-RETENTION_NAME-DATE-TIME
    

    Par exemple, sched-daily-20220315-120640.

Effectuer un nettoyage

Afin d'éviter que des frais ne soient facturés sur votre compte Cloud Platform pour les ressources utilisé dans ce tutoriel, supprimez le projet qui contient 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.

Étape suivante