Skip to main content
NetApp Solutions
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

FSX für ONTAP-Überwachung und automatische Resizing mit AWS Lambda-Funktion

Beitragende

Übersicht: Monitoring und Auto-Resizing FSX for ONTAP über AWS Lambda Funktion

FSX for ONTAP ist ein auf AWS verfügbarer Cloud-Storage-Service der Enterprise-Klasse. Er bietet äußerst zuverlässigen, skalierbaren, hochperformanten und funktionsreichen File-Storage auf Basis des beliebten NetApp ONTAP-Filesystems.

FSX für ONTAP bietet eine nahtlose Implementierungs- und Managementerfahrung. Für den Einstieg sind keine Storage-Fachkenntnisse erforderlich. Um das Monitoring zu vereinfachen, kann eine AWS Lambda Funktion (zur Automatisierung der Anpassung der gesamten Storage-Kapazität, Volume-Größe oder LUN-Größe basierend auf Schwellwerten) verwendet werden.  Dieses Dokument enthält eine Schritt-für-Schritt-Anleitung zum Erstellen eines automatisierten Setups, das FSX für ONTAP in regelmäßigen Abständen überwacht, benachrichtigt und skaliert, wenn ein benutzerdefinierter Schwellenwert überschritten wird, und benachrichtigt den Administrator über die Größenanpassungsaktivität.

Funktionen

Die Lösung bietet folgende Funktionen:

  • Überwachung:

    • Nutzung der gesamten Storage-Kapazität von FSX für ONTAP

    • Nutzung jedes Volumes (Thin Provisioning/Thick Provisioning)

    • Nutzung jeder LUN (Thin Provisioning/Thick Provisioning)

  • Möglichkeit, die Größe einer der oben genannten Größen zu ändern, wenn ein benutzerdefinierter Schwellenwert überschritten wird

  • Benachrichtigungsmechanismus, um Nutzungs-Warnungen und Größenanpassungsbenachrichtigungen per E-Mail zu erhalten

  • Fähigkeit zum Löschen von Snapshots, die älter als der benutzerdefinierte Schwellenwert sind

  • Fähigkeit, eine Liste mit FlexClone Volumes und zugehörigen Snapshots zu erhalten

  • Möglichkeit, die Prüfungen in einem regelmäßigen Intervall zu überwachen

  • Möglichkeit, die Lösung mit oder ohne Internetzugang zu nutzen

  • Möglichkeit zur manuellen Bereitstellung oder mithilfe der AWS CloudFormation Template

  • Möglichkeit zur Überwachung mehrerer FSX für ONTAP-Dateisysteme in einer einzigen VPC

Voraussetzungen

Bevor Sie beginnen, stellen Sie sicher, dass die folgenden Voraussetzungen erfüllt sind:

  • FSX für ONTAP ist implementiert

  • Privates Subnetz mit Konnektivität zu FSX for ONTAP

  • Das Passwort „fsxadmin“ wurde für FSX for ONTAP festgelegt

High-Level-Architektur
  • AWS Lambda Funktion macht API-Aufrufe zu FSX for ONTAP zum Abrufen und Aktualisieren der Größe der Speicherkapazität, Volumes und LUNs.

  • „Fsxadmin“-Passwort als sichere Zeichenfolge im AWS SSM-Parameterspeicher für eine zusätzliche Sicherheitsschicht gespeichert.

  • AWS SES (Simple E-Mail Service) werden verwendet, um Endbenutzer zu benachrichtigen, wenn ein Ereignis zur Größenänderung eintritt.

  • Bei der Implementierung der Lösung in einem VPC ohne Internetzugang sind VPC-Endpunkte für AWS SSM, FSX und SES so eingerichtet, dass Lambda diese Services über das interne AWS-Netzwerk erreichen kann.

Dieses Bild zeigt die in dieser Lösung verwendete allgemeine Architektur.

Lösungsimplementierung

Automatisierte Implementierung

Hinweis Deckt einzelnes FSX für ONTAP Dateisystem ab.

Führen Sie die folgenden Schritte aus, um die automatisierte Implementierung dieser Lösung abzuschließen:

Schritt 1: Klonen Sie das GitHub Repository

GitHub-Repository auf Ihrem lokalen System klonen:

git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
Schritt 2: Einrichtung eines AWS S3 Buckets
  1. Navigieren Sie zu AWS Console > S3 und klicken Sie auf Create bucket. Erstellen Sie den Bucket mit den Standardeinstellungen.

  2. Klicken Sie im Bucket auf Upload > Dateien hinzufügen und wählen Sie Utilities.zip aus dem geklonten GitHub-Repository auf Ihrem System aus.

    Dieses Bild zeigt das S3-Fenster mit ZIP-Dateien, die hochgeladen werden

Schritt 3: AWS SES SMTP Setup (erforderlich, wenn kein Internetzugang verfügbar)

Befolgen Sie diesen Schritt, wenn Sie die Lösung ohne Internetzugang bereitstellen möchten (Hinweis: Es entstehen zusätzliche Kosten für die Einrichtung von VPC-Endpunkten).

  1. Navigieren Sie zu AWS Console > AWS Simple Email Service (SES) > SMTP Settings und klicken Sie auf Create SMTP Create

  2. Geben Sie einen IAM-Benutzernamen ein oder lassen Sie ihn auf den Standardwert und klicken Sie auf Create User. Speichern Sie den SMTP-Benutzernamen und das SMTP-Kennwort zur weiteren Verwendung.

    Hinweis Überspringen Sie diesen Schritt, wenn das SES SMTP Setup bereits vorhanden ist.

    Diese Abbildung zeigt das Fenster SMTP-Anmeldeinformationen erstellen unter AWS SES

Schritt 4: Implementierung von AWS CloudFormation
  1. Navigieren Sie zu AWS Console > CloudFormation > Create Stack > with New Resources (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

    Dieses Bild stellt das Fenster „AWS CloudFormation Create Stack“ dar

    Klicken Sie auf Weiter

  2. Geben Sie die Stack-Details ein. Klicken Sie auf Weiter, und aktivieren Sie das Kontrollkästchen für „Ich bestätige, dass AWS CloudFormation möglicherweise IAM-Ressourcen erstellen könnte“, und klicken Sie auf Senden.

    Hinweis Wenn „hat VPC Internetzugang?“ Ist auf falsch, „SMTP Username for AWS SES“ und „SMTP Password for AWS SES“ sind erforderlich. Andernfalls können sie leer gelassen werden.

    Dieses Bild stellt das Fenster „AWS CloudFormation Stack Details“ dar

    Dieses Bild stellt das Fenster „AWS CloudFormation Stack Details“ dar

    Dieses Bild stellt das Fenster „AWS CloudFormation Stack Details“ dar

    Dieses Bild stellt das Fenster „AWS CloudFormation Stack Details“ dar

  3. Sobald die CloudFormation-Implementierung beginnt, erhält die in der „Absender-E-Mail-ID“ genannte E-Mail-ID eine E-Mail mit der Bitte, die Nutzung der E-Mail-Adresse mit AWS SES zu autorisieren. Klicken Sie auf den Link, um die E-Mail-Adresse zu bestätigen.

  4. Sobald die Bereitstellung des CloudFormation-Stacks abgeschlossen ist, wird bei Warnungen/Benachrichtigungen eine E-Mail mit den Benachrichtigungsdetails an die Empfänger-E-Mail-ID gesendet.

    Dieses Bild zeigt die E-Mail-Benachrichtigung, die empfangen wird, wenn Benachrichtigungen verfügbar sind

    Dieses Bild zeigt die E-Mail-Benachrichtigung, die empfangen wird, wenn Benachrichtigungen verfügbar sind

Manuelle Bereitstellung

Hinweis Unterstützt das Monitoring mehrerer FSX für ONTAP-Dateisysteme in einer einzigen VPC.

Führen Sie die folgenden Schritte aus, um die manuelle Bereitstellung dieser Lösung abzuschließen:

Schritt 1: Klonen Sie das GitHub Repository

GitHub-Repository auf Ihrem lokalen System klonen:

git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
Schritt 2: AWS SES SMTP Setup (erforderlich, wenn kein Internetzugang verfügbar)

Befolgen Sie diesen Schritt, wenn Sie die Lösung ohne Internetzugang bereitstellen möchten (Hinweis: Es entstehen zusätzliche Kosten für die Einrichtung von VPC-Endpunkten).

  1. Navigieren Sie zu AWS Console > AWS Simple Email Service (SES) > SMTP Settings und klicken Sie auf Create SMTP credentials

  2. Geben Sie einen IAM-Benutzernamen ein, oder behalten Sie den Standardwert bei, und klicken Sie auf Erstellen. Speichern Sie den Benutzernamen und das Passwort zur weiteren Verwendung.

    Diese Abbildung zeigt das Fenster SMTP-Anmeldeinformationen erstellen unter AWS SES

Schritt 3: SSM-Parameter für fsxadmin-Passwort erstellen

Navigieren Sie zu AWS Console > Parameter Store und klicken Sie auf Parameter erstellen.

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 for ONTAP>

Klicken Sie auf Parameter erstellen.
Wiederholen Sie die oben genannten Schritte für alle FSX für ONTAP-Dateisysteme, die überwacht werden sollen.

Dieses Bild zeigt das Fenster zur Erstellung von SSM-Parametern in der AWS Konsole.

Führen Sie die gleichen Schritte zum Speichern des smtp-Benutzernamens und smtp-Kennworts aus, wenn Sie die Lösung ohne Internetzugang bereitstellen. Andernfalls überspringen Sie das Hinzufügen dieser 2 Parameter.

Schritt 4: E-Mail-Dienst Einrichten

Navigieren Sie zu AWS Console > Simple Email Service (SES) und klicken Sie auf Create Identity.

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

Klicken Sie auf Create Identity

Die in der „Absender-E-Mail-ID“ genannte E-Mail-ID erhält eine E-Mail, in der der Inhaber aufgefordert wird, die Nutzung der E-Mail-Adresse mit AWS SES zu autorisieren. Klicken Sie auf den Link, um die E-Mail-Adresse zu bestätigen.

Dieses Bild zeigt das Fenster zur Erstellung der SES-Identität in der AWS Konsole.

Schritt 5: Einrichtung von VPC-Endpunkten (erforderlich, wenn kein Internetzugang verfügbar ist)
Hinweis Nur erforderlich, wenn die Bereitstellung ohne Internetzugang erfolgt. Mit VPC-Endpunkten sind zusätzliche Kosten verbunden.
  1. Navigieren Sie zu AWS Console > VPC > Endpoints, klicken Sie auf Create Endpoint und geben Sie die folgenden Details ein:

    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>

    Klicken Sie auf Endpunkt erstellen.

    Dieses Bild zeigt das Fenster zur Erstellung des VPC-Endpunkts

    Dieses Bild zeigt das Fenster zur Erstellung des VPC-Endpunkts

  2. Befolgen Sie denselben Prozess für die Erstellung von SES und SSM VPC-Endpunkten. Alle Parameter bleiben wie oben, außer Dienste, die com.amazonaws.<region>.smtp und com.amazonaws.<region>.ssm entsprechen.

Schritt 6: Erstellen und Einrichten der AWS Lambda-Funktion
  1. Navigieren Sie zu AWS Console > AWS Lambda > Functions und klicken Sie in derselben Region wie FSX for ONTAP auf Create Function

  2. Verwenden Sie den Standardwert Author from scratch und aktualisieren Sie die folgenden Felder:

    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 for ONTAP or a VPC that can access both FSx for 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>

    Klicken Sie auf Funktion erstellen.

    Dieses Bild stellt das Fenster Lambda-Erstellung auf der AWS-Konsole dar.

    Dieses Bild stellt das Fenster Lambda-Erstellung auf der AWS-Konsole dar.

  3. Navigieren Sie zur neu erstellten Lambda-Funktion > Blättern Sie nach unten zum Abschnitt Ebenen und klicken Sie auf Ebene hinzufügen.

    Dieses Bild zeigt die Schaltfläche „Layer hinzufügen“ der AWS Lambda Funktionskonsole.

  4. Klicken Sie unter Layer source auf eine neue Ebene erstellen

  5. Erstellen Sie eine Ebene und laden Sie die Datei Utilities.zip hoch. Wählen Sie Python 3.9 als kompatible Laufzeit und klicken Sie auf Create.

    Dieses Bild zeigt das Fenster Create New Layer auf der AWS-Konsole.

  6. Navigieren Sie zurück zur AWS Lambda-Funktion > Layer hinzufügen > Custom Layers und fügen Sie die Dienstprogramme-Ebene hinzu.

    Dieses Bild stellt das Fenster „Layer hinzufügen“ der AWS Lambda-Funktionskonsole dar.

    Dieses Bild zeigt die hinzugefügten Schichten der AWS Lambda Funktionskonsole.

  7. Navigieren Sie zur Registerkarte Konfiguration der Lambda-Funktion und klicken Sie unter Allgemeine Konfiguration auf Bearbeiten. Ändern Sie die Zeitlimit auf 5 Min und klicken Sie auf Speichern.

  8. Navigieren Sie zur Registerkarte Berechtigungen der Lambda-Funktion und klicken Sie auf die zugewiesene Rolle. Klicken Sie auf der Registerkarte Berechtigungen der Rolle auf Berechtigungen hinzufügen > Inline-Richtlinie erstellen.

    1. Klicken Sie auf die Registerkarte JSON und fügen Sie den Inhalt der Datei Policy.json aus dem GitHub repo ein.

    2. Ersetzen Sie jedes Vorkommen von{AWS::AccountID} durch Ihre Konto-ID und klicken Sie auf Prüfrichtlinie

    3. Geben Sie einen Namen für die Richtlinie ein und klicken Sie auf Create Policy

  9. Kopieren Sie den Inhalt von fsxn_Monitoring_Resizing_Lambda.py aus dem git repo in Lambda_Function.py im Abschnitt AWS Lambda Function Code Source.

  10. Erstellen Sie eine neue Datei auf der gleichen Ebene wie lambda_function.py und nennen Sie sie vars.py und kopieren Sie den Inhalt von vars.py aus der git repo in die Datei Lambda Function vars.py. Aktualisieren Sie die Variablenwerte in vars.py. Referenzieren Sie die Variablendefinitionen unten und klicken Sie auf deploy:

    Name

    Typ

    Beschreibung

    FsxList

    Liste

    (Erforderlich) Liste aller zu überwachenden FSX für ONTAP-Dateisysteme.
    Nehmen Sie alle Dateisysteme in die Liste für die Überwachung und die automatische Größenanpassung auf.

    FsxMgmtIp

    Zeichenfolge

    (Erforderlich) Geben Sie in der AWS-Konsole von FSX für ONTAP die IP-Adresse für den Managementendpunkt ein.

    FsxId

    Zeichenfolge

    (Erforderlich) Geben Sie in der AWS-Konsole die „Filesystem-ID“ aus der FSX for ONTAP-Konsole ein.

    Benutzername

    Zeichenfolge

    (Erforderlich) Geben Sie in AWS den FSX for ONTAP „ONTAP Administrator username“ aus der FSX for ONTAP-Konsole ein.

    Resize_threshold

    Ganzzahl

    (Erforderlich) Geben Sie den Prozentwert des Schwellenwerts von 0 bis 100 ein. Dieser Schwellenwert wird verwendet, um die Speicherkapazität, Volume- und LUN-Nutzung zu messen, und wenn die %-Nutzung von Erhöhungen über diesem Schwellenwert erfolgt, erfolgt die Größenänderung.

    fsx_password_ssm_Parameter

    Zeichenfolge

    (Erforderlich) Geben Sie den Pfadnamen ein, der im AWS-Parameter Store zum Speichern des „fsxadmin“-Passworts verwendet wird.

    Warn_notification

    Bool

    (Erforderlich) Setzen Sie diese Variable auf „wahr“, um eine Benachrichtigung zu erhalten, wenn die Storage-Kapazität/Volume/LUN-Auslastung 75 % überschreitet, aber kleiner als der Schwellenwert ist.

    Enable_Snapshot_Deletion

    Bool

    (Erforderlich) Setzen Sie diese Variable auf „true“, um das Löschen von Snapshots auf Volume-Ebene für Snapshots zu ermöglichen, die älter sind als der in „Snapshot_age_threshold_in_days“ angegebene Wert.

    Snapshot_age_threshold_in_days

    Ganzzahl

    (Erforderlich) Geben Sie die Anzahl der Tage an Snapshots auf Volume-Ebene ein, die Sie behalten möchten. Alle Snapshots, die älter als der angegebene Wert sind, werden gelöscht und das gleiche wird per E-Mail benachrichtigt.

    Internet_Access

    Bool

    (Erforderlich) Setzen Sie diese Variable auf true, wenn der Internetzugang über das Subnetz verfügbar ist, in dem diese Lambda bereitgestellt wird. Andernfalls auf False setzen.

    smtp_Region

    Zeichenfolge

    (Optional) Wenn die Variable „Internet_Access“ auf „False“ gesetzt ist, geben Sie die Region ein, in der Lambda bereitgestellt wird. Z. B. US-East-1 (in diesem Format)

    smtp_username_ssm_Parameter

    Zeichenfolge

    (Optional) Wenn die Variable „Internet_Access“ auf „False“ gesetzt ist, geben Sie den Pfadnamen ein, der im AWS-Parameter Store zum Speichern des SMTP-Benutzernamens verwendet wird.

    smtp_password_ssm_Parameter

    Zeichenfolge

    (Optional) Wenn die Variable „Internet_Access“ auf „False“ gesetzt ist, geben Sie den Pfadnamen ein, der im AWS-Parameter Store zum Speichern des SMTP-Passworts verwendet wird.

    Sender_Email

    Zeichenfolge

    (Erforderlich) Geben Sie die auf SES registrierte E-Mail-ID ein, die von der Lambda-Funktion verwendet wird, um Benachrichtigungen bezüglich Überwachung und Größenänderung zu senden.

    Recipient_email

    Zeichenfolge

    (Erforderlich) Geben Sie die E-Mail-ID ein, über die Sie die Benachrichtigungen erhalten möchten.

    Dieses Bild zeigt den Lambda-Code auf der AWS Lambda-Funktionskonsole.

  11. Klicken Sie auf Test, erstellen Sie ein Testereignis mit einem leeren JSON-Objekt und führen Sie den Test durch, indem Sie auf Invoke klicken, um zu überprüfen, ob das Skript ordnungsgemäß ausgeführt wird.

  12. Nach erfolgreichem Test navigieren Sie zu Konfiguration > Trigger > Trigger hinzufügen.

    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>

    Klicken Sie auf Hinzufügen.

    Dieses Bild zeigt das Fenster zur Erstellung der Event Bridge auf der AWS Lambda-Funktionskonsole.

Schlussfolgerung

Mit der bereitgestellten Lösung ist es einfach, eine Überwachungslösung einzurichten, die regelmäßig FSX für ONTAP-Speicher überwacht, die Größe basierend auf einem benutzerdefinierten Schwellenwert ändert und einen Warnungsmechanismus bietet. Dadurch werden FSX for ONTAP nahtlos eingesetzt und überwacht. So haben Administratoren mehr Zeit, sich auf geschäftskritische Aktivitäten zu konzentrieren, während der Storage bei Bedarf automatisch wächst.