Skip to main content
NetApp Solutions
La version française est une traduction automatique. La version anglaise prévaut sur la française en cas de divergence.

Surveillance et redimensionnement automatique de FSX ONTAP à l'aide de la fonction Lambda d'AWS

Contributeurs

Cette page décrit l'automatisation de la surveillance d'AWS FSX ONTAP et du redimensionnement automatique en fonction du seuil.

Présentation : surveillance et redimensionnement automatique de FSX ONTAP via la fonction Lambda d'AWS

FSX ONTAP est un service de stockage cloud haute performance disponible sur AWS qui fournit un stockage de fichiers extrêmement fiable, évolutif, haute performance et riche en fonctionnalités basé sur le célèbre système de fichiers NetApp ONTAP.

FSX ONTAP offre une expérience de déploiement et de gestion fluide. Aucune expertise en stockage n'est requise pour commencer. Pour simplifier la surveillance, il est possible d'utiliser une fonction Lambda d'AWS (qui automatise le redimensionnement de la capacité de stockage totale, de la taille du volume ou de la taille de LUN en fonction du seuil).  Ce document fournit un guide pas à pas pour créer une configuration automatisée qui surveille FSX ONTAP à intervalles réguliers, notifie et redimensionne lorsqu'un seuil spécifié par l'utilisateur est dépassé et informe l'administrateur de l'activité de redimensionnement.

Caractéristiques

La solution offre les fonctionnalités suivantes :

  • Possibilité de surveiller :

    • Utilisation de la capacité de stockage globale de FSX ONTAP

    • Utilisation de chaque volume (provisionnement fin/provisionnement lourd)

    • Utilisation de chaque LUN (provisionnement fin/provisionnement lourd)

  • Possibilité de redimensionner l'un des éléments ci-dessus lorsqu'un seuil défini par l'utilisateur est dépassé

  • Mécanisme d'alerte permettant de recevoir des avertissements d'utilisation et de redimensionner les notifications par e-mail

  • Possibilité de supprimer des instantanés antérieurs au seuil défini par l'utilisateur

  • Possibilité d'obtenir la liste des volumes FlexClone et des snapshots associés

  • Possibilité de contrôler les contrôles à intervalles réguliers

  • Possibilité d'utiliser la solution avec ou sans accès à Internet

  • Possibilité de déploiement manuel ou à l'aide d'AWS CloudFormation Template

  • Possibilité de surveiller plusieurs systèmes de fichiers FSX ONTAP dans un seul VPC

Conditions préalables

Avant de commencer, assurez-vous que les conditions préalables suivantes sont remplies :

  • FSX ONTAP est déployé

  • Sous-réseau privé avec connectivité à FSX ONTAP

  • Le mot de passe « fsxadmin » a été défini pour FSX ONTAP

Architecture générale
  • La fonction Lambda d'AWS effectue des appels d'API vers FSX ONTAP pour récupérer et mettre à jour la taille de la capacité de stockage, des volumes et des LUN.

  • Mot de passe « fsxadmin » stocké sous forme de chaîne sécurisée dans AWS SSM Parameter Store pour une couche de sécurité supplémentaire.

  • Les ingénieurs système AWS (simple Email Service) sont utilisés pour informer les utilisateurs finaux lorsqu'un événement de redimensionnement se produit.

  • Si vous déployez la solution dans un VPC sans accès Internet, les terminaux VPC pour AWS SSM, FSX et ses sont configurés pour permettre à Lambda d'accéder à ces services via le réseau interne AWS.

Cette image illustre l'architecture de haut niveau utilisée dans cette solution.

Déploiement de la solution

Déploiement automatisé

Remarque Couvre le système de fichiers FSX ONTAP unique.

Suivez cette série d'étapes pour terminer le déploiement automatisé de cette solution :

Étape 1 : cloner le référentiel GitHub

Cloner le référentiel GitHub sur votre système local :

git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
Étape 2 : configuration d'un compartiment AWS S3
  1. Accédez à la console AWS > S3 et cliquez sur Create bucket. Créez le compartiment avec les paramètres par défaut.

  2. Une fois dans le compartiment, cliquez sur Upload > Add Files et sélectionnez Utilities.zip dans le référentiel GitHub cloné de votre système.

    Cette image représente la fenêtre S3 avec les fichiers zip en cours de téléchargement

Étape 3 : configuration SMTP des ses d'AWS (requise si aucun accès Internet n'est disponible)

Suivez cette étape si vous souhaitez déployer la solution sans accès à Internet (remarque : des coûts supplémentaires seront associés à la configuration des terminaux VPC).

  1. Accédez à la console AWS > AWS simple Email Service (ses) > SMTP Settings et cliquez sur Create SMTP credentials

  2. Entrez un nom d'utilisateur IAM ou laissez-le à sa valeur par défaut et cliquez sur Créer un utilisateur. Enregistrez le nom d'utilisateur SMTP et le mot de passe SMTP pour une utilisation ultérieure.

    Remarque Ignorez cette étape si la configuration SMTP ses est déjà en place.

    Cette image illustre la fenêtre Créer des informations d'identification SMTP sous AWS ses

Étape 4 : déploiement d'AWS CloudFormation
  1. Accédez à la console AWS > CloudFormation > Créer une pile > avec de nouvelles ressources (Standard).

    Prepare template: Template is ready
    Specify template: Upload a template file
    Choose file: Browse to the cloned GitHub repo and select fsxn-monitoring-solution.yaml

    Cette image illustre la fenêtre de création de pile d'AWS CloudFormation

    Cliquez sur Suivant

  2. Entrez les détails de la pile. Cliquez sur Suivant et cochez la case « Je reconnais qu'AWS CloudFormation peut créer des ressources IAM », puis cliquez sur Envoyer.

    Remarque Si le VPC a-t-il accès à Internet ? Est défini sur Faux, « Nom d'utilisateur SMTP pour les se AWS » et « Mot de passe SMTP pour les se AWS » sont requis. Sinon, ils peuvent être laissés vides.

    Cette image illustre la fenêtre Détails de la pile AWS CloudFormation

    Cette image illustre la fenêtre Détails de la pile AWS CloudFormation

    Cette image illustre la fenêtre Détails de la pile AWS CloudFormation

    Cette image illustre la fenêtre Détails de la pile AWS CloudFormation

  3. Une fois le déploiement de CloudFormation lancé, l'ID d'e-mail mentionné dans l'« ID e-mail de l'expéditeur » est envoyé par e-mail pour lui demander d'autoriser l'utilisation de l'adresse e-mail avec les ingénieurs système d'AWS. Cliquez sur le lien pour vérifier l'adresse e-mail.

  4. Une fois le déploiement de la pile CloudFormation terminé, en cas d'avertissements/notifications, un e-mail sera envoyé à l'ID du destinataire avec les détails de la notification.

    Cette image illustre la notification par e-mail reçue lorsque des notifications sont disponibles

    Cette image illustre la notification par e-mail reçue lorsque des notifications sont disponibles

Déploiement manuel

Remarque Prend en charge la surveillance de plusieurs systèmes de fichiers FSX ONTAP dans un seul VPC.

Suivez la série d'étapes pour terminer le déploiement manuel de cette solution :

Étape 1 : cloner le référentiel GitHub

Cloner le référentiel GitHub sur votre système local :

git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
Étape 2 : configuration SMTP des ses d'AWS (requise si aucun accès Internet n'est disponible)

Suivez cette étape si vous souhaitez déployer la solution sans accès à Internet (remarque : des coûts supplémentaires seront associés à la configuration des terminaux VPC).

  1. Accédez à la console AWS > AWS simple Email Service (ses) > Paramètres SMTP et cliquez sur Créer des informations d'identification SMTP

  2. Entrez un nom d'utilisateur IAM ou laissez-le à sa valeur par défaut et cliquez sur Créer. Enregistrez le nom d'utilisateur et le mot de passe pour une utilisation ultérieure.

    Cette image illustre la fenêtre Créer des informations d'identification SMTP sous AWS ses

Etape 3 : création d'un paramètre SSM pour le mot de passe fsxadmin

Accédez à la console AWS > Parameter Store et cliquez sur Create Parameter.

Name: <Any name/path for storing fsxadmin password>
Tier: Standard
Type: SecureString
KMS key source: My current account
  KMS Key ID: <Use the default one selected>
Value: <Enter the password for "fsxadmin" user configured on FSx ONTAP>

Cliquer sur Créer paramètre. Répétez les étapes ci-dessus pour tous les systèmes de fichiers FSX ONTAP à surveiller.

Cette image illustre la fenêtre de création de paramètres SSM sur la console AWS.

Effectuez les mêmes étapes pour stocker le nom d'utilisateur smtp et le mot de passe smtp si vous déployez la solution sans accès à Internet. Sinon, ignorez l'ajout de ces 2 paramètres.

Étape 4 : Configuration du service de messagerie

Accédez à la console AWS > simple Email Service (ses) et cliquez sur Créer une identité.

Identity type: Email address
Email address: <Enter an email address to be used for sending resizing notifications>

Cliquez sur Créer une identité

L'ID d'e-mail indiqué dans l'ID d'e-mail de l'expéditeur vous est envoyé par e-mail pour vous demander d'autoriser l'utilisation de cette adresse e-mail avec les ingénieurs système d'AWS. Cliquez sur le lien pour vérifier l'adresse e-mail.

Cette image illustre la fenêtre de création d'identité ses sur la console AWS.

Étape 5 : configuration des terminaux VPC (requis si aucun accès Internet n'est disponible)
Remarque Nécessaire uniquement si déployé sans accès à Internet. Des coûts supplémentaires seront associés aux terminaux VPC.
  1. Accédez à la console AWS > VPC > Endpoint et cliquez sur Create Endpoint et entrez les détails suivants :

    Name: <Any name for the vpc endpoint>
    Service category: AWS Services
    Services: com.amazonaws.<region>.fsx
    vpc: <select the vpc where lambda will be deployed>
    subnets: <select the subnets where lambda will be deployed>
    Security groups: <select the security group>
    Policy: <Either choose Full access or set your own custom policy>

    Cliquez sur Créer un point final.

    Cette image illustre la fenêtre de création du point final VPC

    Cette image illustre la fenêtre de création du point final VPC

  2. Suivez le même processus pour créer des points finaux ses et SSM VPC. Tous les paramètres restent les mêmes que ci-dessus, à l'exception des services qui correspondent respectivement à com.amazonaws.<region>.smtp et com.amazonaws.<region>.ssm.

Étape 6 : création et configuration de la fonction Lambda d'AWS
  1. Accédez à la console AWS > AWS Lambda > Functions et cliquez sur Create Function dans la même région que FSX ONTAP

  2. Utilisez le auteur à partir de zéro par défaut et mettez à jour les champs suivants :

    Function name: <Any name of your choice>
    Runtime: Python 3.9
    Architecture: x86_64
    Permissions: Select "Create a new role with basic Lambda permissions"
    Advanced Settings:
      Enable VPC: Checked
        VPC: <Choose either the same VPC as FSx ONTAP or a VPC that can access both FSx ONTAP and the internet via a private subnet>
        Subnets: <Choose 2 private subnets that have NAT gateway attached pointing to public subnets with internet gateway and subnets that have internet access>
        Security Group: <Choose a Security Group>

    Cliquez sur Créer fonction.

    Cette image illustre la fenêtre de création Lambda sur la console AWS.

    Cette image illustre la fenêtre de création Lambda sur la console AWS.

  3. Accédez à la fonction Lambda nouvellement créée > faites défiler jusqu'à la section couches et cliquez sur Ajouter un calque.

    Cette image illustre le bouton d'ajout de couche sur la console de fonction Lambda d'AWS.

  4. Cliquez sur Créer un nouveau calque sous Source du calque

  5. Créez un calque et téléchargez le fichier Utilities.zip. Sélectionnez Python 3.9 comme runtime compatible et cliquez sur Create.

    Cette image illustre la fenêtre Créer une couche sur la console AWS.

  6. Retournez à la fonction Lambda d'AWS > Ajouter un calque > Calques personnalisés et ajoutez le calque des utilitaires.

    Cette image illustre la fenêtre d'ajout de couche sur la console de fonction Lambda d'AWS.

    Cette image illustre les couches ajoutées à la console de fonction Lambda d'AWS.

  7. Accédez à l'onglet Configuration de la fonction Lambda et cliquez sur Modifier sous Configuration générale. Définissez le délai d'attente sur 5 min et cliquez sur Enregistrer.

  8. Accédez à l'onglet autorisations de la fonction Lambda et cliquez sur le rôle attribué. Dans l'onglet autorisations du rôle, cliquez sur Ajouter des autorisations > Créer une stratégie Inline.

    1. Cliquez sur l'onglet JSON et collez le contenu du fichier policy.json à partir du référentiel GitHub.

    2. Remplacez chaque occurrence de ${AWS::AccountId} par votre ID de compte et cliquez sur consulter la politique

    3. Indiquez un nom pour la police et cliquez sur Créer une police

  9. Copiez le contenu de fsxn_monitoring_resize_lambda.py du git repo vers lambda_function.py dans la section Source du code de fonction Lambda d'AWS.

  10. Créez un nouveau fichier au même niveau que lambda_function.py et nommez-le vars.py et copiez le contenu de vars.py du git repo dans le fichier lambda Function vars.py. Mettez à jour les valeurs variables dans vars.py. Définissez les variables de référence ci-dessous et cliquez sur Deploy :

    Nom

    Type

    Description

    FsxList

    Liste

    (Obligatoire) liste de tous les systèmes de fichiers FSX ONTAP à surveiller. Inclure tous les systèmes de fichiers dans la liste pour la surveillance et le redimensionnement automatique.

    FsxMgmtIp

    Chaîne

    (Obligatoire) Entrez « terminal de gestion - adresse IP » dans la console FSX ONTAP sur AWS.

    FsxId

    Chaîne

    (Obligatoire) Entrez l'ID du système de fichiers dans la console FSX ONTAP sur AWS.

    nom d'utilisateur

    Chaîne

    (Obligatoire) Entrez le « nom d'utilisateur de l'administrateur ONTAP » FSX ONTAP à partir de la console FSX ONTAP sur AWS.

    resize_threshold

    Entier

    (Obligatoire) Entrez le pourcentage de seuil de 0 à 100. Ce seuil sera utilisé pour mesurer la capacité de stockage, le volume et l'utilisation de la LUN et lorsque le pourcentage d'utilisation de toute augmentation au-dessus de ce seuil, une activité de redimensionnement se produira.

    fsx_password_ssm_parameter

    Chaîne

    (Obligatoire) Entrez le chemin d'accès utilisé dans AWS Parameter Store pour stocker le mot de passe « fsxadmin ».

    avertir_notification

    BOOL

    (Obligatoire) définissez cette variable sur vrai pour recevoir une notification lorsque l'utilisation de la capacité de stockage/du volume/de la LUN dépasse 75 % mais est inférieure au seuil.

    enable_snapshot_deletion

    BOOL

    (Obligatoire) définissez cette variable sur vrai pour activer la suppression de snapshot au niveau du volume pour les snapshots antérieurs à la valeur spécifiée dans « snapshot_age_Threshold_in_Days ».

    snapshot_age_threshold_in_days

    Entier

    (Obligatoire) Entrez le nombre de jours de snapshots de niveau volume que vous souhaitez conserver. Tous les instantanés antérieurs à la valeur fournie seront supprimés et la même sera notifiée par e-mail.

    accès_internet

    BOOL

    (Obligatoire) définissez cette variable sur vrai si l'accès Internet est disponible à partir du sous-réseau où ce lambda est déployé. Sinon, définissez-le sur Faux.

    région_smtp

    Chaîne

    (Facultatif) si la variable « Internet_Access » est définie sur Faux, entrez la région dans laquelle lambda est déployé. Par exemple US-East-1 (dans ce format)

    smtp_username_ssm_parameter

    Chaîne

    (Facultatif) si la variable "Internet_Access" est définie sur Faux, entrez le nom de chemin utilisé dans AWS Parameter Store pour stocker le nom d'utilisateur SMTP.

    smtp_password_ssm_parameter

    Chaîne

    (Facultatif) si la variable "Internet_Access" est définie sur Faux, entrez le nom de chemin utilisé dans AWS Parameter Store pour stocker le mot de passe SMTP.

    email_expéditeur

    Chaîne

    (Obligatoire) Entrez l'ID d'e-mail enregistré sur ses qui sera utilisé par la fonction Lambda pour envoyer des alertes de notification liées à la surveillance et au redimensionnement.

    email_destinataire

    Chaîne

    (Obligatoire) Entrez l'ID d'e-mail sur lequel vous souhaitez recevoir les notifications d'alerte.

    Cette image illustre le code lambda sur la console de fonction Lambda d'AWS.

  11. Cliquez sur Test, créez un événement de test avec un objet JSON vide et exécutez le test en cliquant sur Invoke pour vérifier si le script fonctionne correctement.

  12. Une fois le test réussi, accédez à Configuration > Triggers > Ajouter un déclencheur.

    Select a Source: EventBridge
    Rule: Create a new rule
    Rule name: <Enter any name>
    Rule type: Schedule expression
    Schedule expression: <Use "rate(1 day)" if you want the function to run daily or add your own cron expression>

    Cliquez sur Ajouter.

    Cette image illustre la fenêtre de création d'un pont d'événements sur la console de fonction Lambda d'AWS.

Conclusion

Avec la solution fournie, il est facile de configurer une solution de surveillance qui surveille régulièrement le stockage FSX ONTAP, le redimensionne en fonction d'un seuil spécifié par l'utilisateur et fournit un mécanisme d'alerte. Ainsi, le processus d'utilisation et de surveillance de FSX ONTAP est transparent et les administrateurs peuvent se concentrer sur les activités stratégiques et le stockage augmente automatiquement lorsque cela est nécessaire.