Monitoraggio e ridimensionamento automatico di FSX ONTAP tramite la funzione AWS Lambda
In questa pagina viene descritta l'automazione del monitoraggio di AWS FSX ONTAP e il ridimensionamento automatico in base alla soglia.
Panoramica: Monitoraggio e ridimensionamento automatico di FSX ONTAP tramite la funzione AWS Lambda
FSX ONTAP è un servizio di cloud storage Enterprise first-party disponibile su AWS che offre un file storage altamente affidabile, scalabile, dalle performance elevate e ricco di funzionalità, costruito sul popolare file system NetApp ONTAP.
FSX ONTAP offre un'esperienza di distribuzione 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 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 generale di FSX 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 ONTAP in un unico VPC
Prerequisiti
Prima di iniziare, assicurarsi che siano soddisfatti i seguenti prerequisiti:
-
FSX ONTAP viene implementato
-
Subnet privata con connettività a FSX ONTAP
-
La password "fsxadmin" è stata impostata per FSX ONTAP
Architettura high-level
-
La funzione AWS Lambda richiama le API in FSX ONTAP per recuperare e aggiornare le dimensioni di capacità storage, volumi e 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.
Implementazione della soluzione
Implementazione automatica
Copre un singolo filesystem FSX 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
-
Accedere a AWS Console > S3 e fare clic su Create bucket (Crea bucket). Creare il bucket con le impostazioni predefinite.
-
Una volta all'interno del bucket, fare clic su carica > Aggiungi file e selezionare Utilities.zip dal repository GitHub clonato sul sistema.
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).
-
Accedere alla Console AWS > AWS Simple Email Service (SES) > Impostazioni SMTP e fare clic su Crea credenziali SMTP
-
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.
Saltare questo passaggio se la configurazione SMTP SES è già stata eseguita.
Fase 4: Implementazione di AWS CloudFormation
-
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
Fare clic su Next (Avanti)
-
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
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. -
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.
-
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.
Implementazione manuale
Supporta il monitoraggio di più file system FSX 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).
-
Accedere a AWS Console > AWS Simple Email Service (SES) > SMTP Settings (Impostazioni SMTP) e fare clic su Create SMTP credentials (Crea credenziali SMTP)
-
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.
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 ONTAP>
Fare clic su Create Parameter (Crea parametro). Ripetere i passaggi precedenti per tutti i file system FSX ONTAP da monitorare.
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.
Passaggio 5: Configurazione degli endpoint VPC (necessario se non è disponibile alcun accesso a Internet)
Richiesto solo se implementato senza accesso a Internet. Ci saranno costi aggiuntivi associati agli endpoint VPC. |
-
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).
-
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
-
Accedere alla console AWS > AWS Lambda > funzioni e fare clic su Crea funzione nella stessa regione di FSX ONTAP
-
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 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>
Fare clic su Crea funzione.
-
Passare alla funzione Lambda appena creata > scorrere verso il basso fino alla sezione livelli e fare clic su Aggiungi un livello.
-
Fare clic su create a new layer sotto Layer source
-
Creare un livello e caricare il file Utilities.zip. Selezionare Python 3.9 come runtime compatibile e fare clic su Create.
-
Tornare alla funzione AWS Lambda > Add Layer > Custom Layers e aggiungere il livello utility.
-
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.
-
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.
-
Fare clic sulla scheda JSON e incollare il contenuto del file policy.json dal repo GitHub.
-
Sostituisci ogni occorrenza di{AWS::AccountId} con il tuo ID account e fai clic su Review Policy
-
Specificare un nome per il criterio e fare clic su Create policy (Crea policy)
-
-
Copiare il contenuto di fsxn_monitoring_resizing_lambda.py da git repo a lambda_function.py nella sezione AWS Lambda Function Code Source.
-
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 ONTAP da monitorare. Includere tutti i file system nell'elenco per il monitoraggio e il ridimensionamento automatico.
FsxMgmtIp
Stringa
(Obbligatorio) immettere "endpoint di gestione - indirizzo IP" dalla console FSX ONTAP su AWS.
FsxId
Stringa
(Obbligatorio) immettere l'ID del file system dalla console FSX ONTAP su AWS.
nome utente
Stringa
(Obbligatorio) immettere il nome utente dell'amministratore di ONTAP di FSX ONTAP dalla console di FSX 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.
-
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.
-
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).
Conclusione
Con la soluzione fornita, è facile configurare una soluzione di monitoring che monitora regolarmente lo storage FSX ONTAP, lo ridimensiona in base a una soglia specificata dall'utente e fornisce un meccanismo di avviso. In questo modo, il processo di utilizzo e monitoring di FSX ONTAP permette agli amministratori di concentrarsi su attività business-critical, mentre lo storage cresce automaticamente quando necessario.