Skip to main content
NetApp Solutions
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

FSX per il monitoraggio ONTAP e il ridimensionamento automatico mediante la funzione lambda di AWS

Collaboratori

Panoramica: Monitoraggio e ridimensionamento automatico di FSX per ONTAP tramite la funzione AWS Lambda

FSX per ONTAP è un servizio di cloud storage Enterprise first-party disponibile su AWS che offre un file storage altamente affidabile, scalabile, ad alte performance e ricco di funzionalità, costruito sul popolare file system NetApp ONTAP.

FSX per ONTAP offre un'esperienza di implementazione e gestione perfetta. Per iniziare, non è richiesta alcuna competenza in ambito storage. Per semplificare il monitoraggio, è possibile utilizzare una funzione lambda AWS (per automatizzare il ridimensionamento della capacità di storage totale, delle dimensioni del volume o delle dimensioni del LUN in base alla soglia).  Questo documento fornisce una guida dettagliata alla creazione di un'installazione automatica che monitora FSX per ONTAP a intervalli regolari, notifica e ridimensiona quando viene superata una soglia specificata dall'utente e notifica all'amministratore l'attività di ridimensionamento.

Caratteristiche

La soluzione offre le seguenti funzionalità:

  • Possibilità di monitorare:

    • Utilizzo della capacità di storage complessiva di FSX per ONTAP

    • Utilizzo di ciascun volume (thin provisioning/thick provisioning)

    • Utilizzo di ciascun LUN (thin provisioning/thick provisioning)

  • Possibilità di ridimensionare uno qualsiasi dei punti precedenti in caso di superamento di una soglia definita dall'utente

  • Meccanismo di avviso per ricevere avvisi sull'utilizzo e ridimensionare le notifiche via e-mail

  • Possibilità di eliminare snapshot precedenti alla soglia definita dall'utente

  • Possibilità di ottenere un elenco di volumi e snapshot FlexClone associati

  • Possibilità di monitorare i controlli a intervalli regolari

  • Possibilità di utilizzare la soluzione con o senza accesso a Internet

  • Possibilità di implementare manualmente o utilizzando AWS CloudFormation Template

  • Possibilità di monitorare più file system FSX per ONTAP in un unico VPC

Prerequisiti

Prima di iniziare, assicurarsi che siano soddisfatti i seguenti prerequisiti:

  • Viene implementato FSX per ONTAP

  • Subnet privata con connettività a FSX per ONTAP

  • La password "fsxadmin" è stata impostata per FSX per ONTAP

Architettura high-level
  • La funzione AWS Lambda effettua chiamate API a FSX per ONTAP per recuperare e aggiornare le dimensioni della capacità di storage, dei volumi e delle LUN.

  • Password "fsxadmin" memorizzata come stringa sicura in AWS SSM Parameter Store per un ulteriore livello di sicurezza.

  • AWS SES (Simple Email Service) viene utilizzato per notificare agli utenti finali quando si verifica un evento di ridimensionamento.

  • Se si implementa la soluzione in un VPC senza accesso a Internet, gli endpoint VPC per AWS SSM, FSX e se sono configurati in modo da consentire a Lambda di raggiungere questi servizi tramite la rete interna di AWS.

Questa immagine mostra l'architettura di alto livello utilizzata in questa soluzione.

Implementazione della soluzione

Implementazione automatica

Nota Copre un singolo file system FSX per ONTAP.

Seguire la serie di passaggi per completare l'implementazione automatica di questa soluzione:

Fase 1: Clonare il repository di GitHub

Clonare il repository GitHub sul sistema locale:

git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
Fase 2: Configurare un bucket AWS S3
  1. Accedere a AWS Console > S3 e fare clic su Create bucket (Crea bucket). Creare il bucket con le impostazioni predefinite.

  2. Una volta all'interno del bucket, fare clic su carica > Aggiungi file e selezionare Utilities.zip dal repository GitHub clonato sul sistema.

    Questa immagine mostra la finestra S3 con i file zip caricati

Fase 3: Configurazione SMTP di AWS SES (necessaria se non è disponibile l'accesso a Internet)

Seguire questa procedura se si desidera implementare la soluzione senza accesso a Internet (Nota: I costi aggiuntivi associati agli endpoint VPC in fase di configurazione).

  1. Accedere alla Console AWS > AWS Simple Email Service (SES) > Impostazioni SMTP e fare clic su Crea credenziali SMTP

  2. Immettere un Nome utente IAM o lasciare il valore predefinito e fare clic su Crea utente. Salvare il nome utente SMTP e la password SMTP per un ulteriore utilizzo.

    Nota Saltare questo passaggio se la configurazione SMTP SES è già stata eseguita.

    Questa immagine mostra la finestra Create SMTP Credentials (Crea credenziali SMTP) sotto AWS SES

Fase 4: Implementazione di AWS CloudFormation
  1. Accedere a AWS Console > CloudFormation > Create stack > with New Resources (Standard) (Console AWS > CloudFormation > Crea stack > con nuove risorse (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

    Questa immagine mostra la finestra AWS CloudFormation Create Stack

    Fare clic su Next (Avanti)

  2. Inserire i dettagli dello stack. Fare clic su Next (Avanti) e selezionare la casella di controllo "i acknowledge that AWS CloudFormation might creation IAM resources" (riconosco che AWS CloudFormation potrebbe creare risorse IAM), quindi fare clic su Submit

    Nota Se "VPC dispone di accesso a Internet?" È impostato su Falso, sono richiesti "Nome utente SMTP per AWS SES" e "Password SMTP per AWS SES". In caso contrario, possono essere lasciati vuoti.

    Questa immagine mostra la finestra AWS CloudFormation Stack Details

    Questa immagine mostra la finestra AWS CloudFormation Stack Details

    Questa immagine mostra la finestra AWS CloudFormation Stack Details

    Questa immagine mostra la finestra AWS CloudFormation Stack Details

  3. Una volta avviata l'implementazione di CloudFormation, l'ID e-mail indicato nell'ID e-mail del mittente riceverà un'e-mail in cui viene richiesto di autorizzare l'utilizzo dell'indirizzo e-mail con AWS SES. Fare clic sul collegamento per verificare l'indirizzo e-mail.

  4. Una volta completata l'implementazione dello stack CloudFormation, in caso di avvisi/notifiche, verrà inviata un'e-mail all'ID e-mail del destinatario con i dettagli della notifica.

    Questa immagine mostra la notifica e-mail ricevuta quando sono disponibili le notifiche

    Questa immagine mostra la notifica e-mail ricevuta quando sono disponibili le notifiche

Implementazione manuale

Nota Supporta il monitoraggio di più file system FSX per ONTAP in un unico VPC.

Seguire la serie di passaggi per completare l'implementazione manuale di questa soluzione:

Fase 1: Clonare il repository di GitHub

Clonare il repository GitHub sul sistema locale:

git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
Fase 2: Configurazione SMTP di AWS SES (necessaria se non è disponibile l'accesso a Internet)

Seguire questa procedura se si desidera implementare la soluzione senza accesso a Internet (Nota: I costi aggiuntivi associati agli endpoint VPC in fase di configurazione).

  1. Accedere a AWS Console > AWS Simple Email Service (SES) > SMTP Settings (Impostazioni SMTP) e fare clic su Create SMTP credentials (Crea credenziali SMTP)

  2. Inserire un nome utente IAM o lasciarlo sul valore predefinito e fare clic su Create (Crea). Salvare il nome utente e la password per ulteriori utilizzi.

    Questa immagine mostra la finestra Create SMTP Credentials (Crea credenziali SMTP) sotto AWS SES

Fase 3: Creare il parametro SSM per la password fsxadmin

Accedere a AWS Console > Parameter Store e fare clic su Create Parameter (Crea parametro).

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>

Fare clic su Create Parameter (Crea parametro).
Ripetere i passaggi precedenti per tutti i file system FSX per ONTAP da monitorare.

Questa immagine mostra la finestra di creazione dei parametri SSM sulla console AWS.

Eseguire le stesse operazioni per memorizzare il nome utente smtp e la password smtp se si implementa la soluzione senza accesso a Internet. In caso contrario, ignorare l'aggiunta di questi 2 parametri.

Fase 4: Configurazione del servizio e-mail

Accedere a AWS Console > Simple Email Service (SES) e fare clic su Create Identity (Crea identità).

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

Fare clic su Create Identity (Crea identità)

L'ID e-mail menzionato nell'ID e-mail del mittente riceverà un'e-mail in cui si chiede al proprietario di autorizzare l'utilizzo dell'indirizzo e-mail con AWS SES. Fare clic sul collegamento per verificare l'indirizzo e-mail.

Questa immagine mostra la finestra di creazione dell'identità SES sulla console AWS.

Passaggio 5: Configurazione degli endpoint VPC (necessario se non è disponibile alcun accesso a Internet)
Nota Richiesto solo se implementato senza accesso a Internet. Ci saranno costi aggiuntivi associati agli endpoint VPC.
  1. Accedere a AWS Console > VPC > Endpoint e fare clic su Create Endpoint (Crea endpoint) e immettere i seguenti dettagli:

    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>

    Fare clic su Create endpoint (Crea endpoint).

    Questa immagine mostra la finestra di creazione dell'endpoint VPC

    Questa immagine mostra la finestra di creazione dell'endpoint VPC

  2. Seguire lo stesso processo per la creazione degli endpoint SES e SSM VPC. Tutti i parametri rimangono gli stessi di cui sopra, ad eccezione dei servizi che corrispondono rispettivamente a com.amazonaws.<region>.smtp e com.amazonaws.<region>.ssm.

Fase 6: Creare e configurare la funzione AWS Lambda
  1. Accedere alla console AWS > AWS Lambda > funzioni e fare clic su Crea funzione nella stessa regione di FSX per ONTAP

  2. Utilizza l'impostazione predefinita Author from zero e aggiorna i seguenti campi:

    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>

    Fare clic su Crea funzione.

    Questa immagine mostra la finestra di creazione di Lambda sulla console AWS.

    Questa immagine mostra la finestra di creazione di Lambda sulla console AWS.

  3. Passare alla funzione Lambda appena creata > scorrere verso il basso fino alla sezione livelli e fare clic su Aggiungi un livello.

    Questa immagine mostra il pulsante add layer sulla console delle funzioni di AWS Lambda.

  4. Fare clic su create a new layer sotto Layer source

  5. Creare un livello e caricare il file Utilities.zip. Selezionare Python 3.9 come runtime compatibile e fare clic su Create.

    Questa immagine mostra la finestra Create New Layer (Crea nuovo livello) sulla console AWS.

  6. Tornare alla funzione AWS Lambda > Add Layer > Custom Layers e aggiungere il livello utility.

    Questa immagine mostra la finestra add layer sulla console delle funzioni di AWS Lambda.

    Questa immagine mostra i layer aggiunti nella console delle funzioni di AWS Lambda.

  7. Accedere alla scheda Configurazione della funzione lambda e fare clic su Modifica in Configurazione generale. Modificare il timeout in 5 min e fare clic su Salva.

  8. Accedere alla scheda Permissions della funzione lambda e fare clic sul ruolo assegnato. Nella scheda permessi del ruolo, fare clic su Aggiungi permessi > Crea policy inline.

    1. Fare clic sulla scheda JSON e incollare il contenuto del file policy.json dal repo GitHub.

    2. Sostituisci ogni occorrenza di{AWS::AccountId} con il tuo ID account e fai clic su Review Policy

    3. Specificare un nome per il criterio e fare clic su Create policy (Crea policy)

  9. Copiare il contenuto di fsxn_monitoring_resizing_lambda.py da git repo a lambda_function.py nella sezione AWS Lambda Function Code Source.

  10. Creare un nuovo file nello stesso livello di lambda_function.py e assegnargli il nome vars.py e copiare il contenuto di vars.py dal file git repo al file lambda function vars.py. Aggiornare i valori delle variabili in vars.py. Fare riferimento alle definizioni delle variabili riportate di seguito e fare clic su Deploy:

    Nome

    Tipo

    Descrizione

    FsxList

    Elenco

    (Obbligatorio) elenco di tutti i file system FSX per ONTAP da monitorare.
    Includere tutti i file system nell'elenco per il monitoraggio e il ridimensionamento automatico.

    FsxMgmtIp

    Stringa

    (Obbligatorio) inserire "endpoint di gestione - indirizzo IP" dalla console FSX per ONTAP su AWS.

    FsxId

    Stringa

    (Obbligatorio) inserire l'ID del file system dalla console FSX per ONTAP su AWS.

    nome utente

    Stringa

    (Obbligatorio) inserire il "nome utente amministratore ONTAP" di FSX per ONTAP dalla console di ONTAP su AWS.

    resize_threshold

    Intero

    (Obbligatorio) inserire la percentuale di soglia compresa tra 0 e 100. Questa soglia verrà utilizzata per misurare la capacità di storage, il volume e l'utilizzo del LUN e quando l'utilizzo % di qualsiasi aumento oltre questa soglia, si verificherà un'attività di ridimensionamento.

    fsx_password_ssm_parameter

    Stringa

    (Obbligatorio) inserire il nome del percorso utilizzato in AWS Parameter Store per memorizzare la password "fsxadmin".

    warn_notification

    Bool

    (Obbligatorio) impostare questa variabile su True per ricevere una notifica quando l'utilizzo di capacità di archiviazione/volume/LUN supera il 75% ma è inferiore alla soglia.

    enable_snapshot_deletion

    Bool

    (Obbligatorio) impostare questa variabile su True per abilitare l'eliminazione dello snapshot a livello di volume per gli snapshot precedenti al valore specificato in "snapshot_age_threshold_in_days".

    snapshot_age_threshold_in_days

    Intero

    (Obbligatorio) inserire il numero di giorni di snapshot a livello di volume che si desidera conservare. Tutte le istantanee precedenti al valore fornito verranno eliminate e le stesse verranno notificate tramite e-mail.

    accesso_internet

    Bool

    (Obbligatorio) impostare questa variabile su True se l'accesso a Internet è disponibile dalla subnet in cui viene implementato questo lambda. In caso contrario, impostarlo su Falso.

    smtp_region

    Stringa

    (Facoltativo) se la variabile "Internet_Access" è impostata su False, inserire la regione in cui viene implementato il valore lambda. Ad esempio US-East-1 (in questo formato)

    smtp_username_ssm_parameter

    Stringa

    (Facoltativo) se la variabile "Internet_Access" è impostata su Falso, immettere il nome del percorso utilizzato in AWS Parameter Store per memorizzare il nome utente SMTP.

    smtp_password_ssm_parameter

    Stringa

    (Facoltativo) se la variabile "Internet_Access" è impostata su Falso, immettere il nome del percorso utilizzato in AWS Parameter Store per memorizzare la password SMTP.

    sender_email

    Stringa

    (Obbligatorio) inserire l'ID e-mail registrato su SES che verrà utilizzato dalla funzione lambda per inviare avvisi di notifica relativi al monitoraggio e al ridimensionamento.

    email_destinatario

    Stringa

    (Obbligatorio) inserire l'ID e-mail in cui si desidera ricevere le notifiche di avviso.

    Questa immagine mostra il codice lambda sulla console delle funzioni di AWS Lambda.

  11. Fare clic su Test, creare un evento di test con un oggetto JSON vuoto ed eseguire il test facendo clic su Invoke per verificare se lo script viene eseguito correttamente.

  12. Una volta eseguito il test, accedere a Configurazione > Trigger > Aggiungi trigger.

    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>

    Fare clic su Add (Aggiungi).

    Questa immagine mostra la finestra di creazione del bridge di eventi nella console delle funzioni di AWS Lambda.

Conclusione

Con la soluzione fornita in dotazione, è facile configurare una soluzione di monitoring che monitora regolarmente FSX per lo storage ONTAP, lo ridimensiona in base a una soglia specificata dall'utente e offre un meccanismo di avviso. In questo modo, il processo di utilizzo e monitoraggio di FSX per ONTAP consente agli amministratori di concentrarsi sulle attività business-critical, mentre lo storage cresce automaticamente quando necessario.