Skip to main content
NetApp Solutions
Se proporciona el idioma español mediante traducción automática para su comodidad. En caso de alguna inconsistencia, el inglés precede al español.

Supervisión y reajuste automático de FSX ONTAP mediante la función Lambda de AWS

Colaboradores

En esta página se describe la automatización de la supervisión de AWS FSx ONTAP y el redimensionamiento automático en función del umbral.

Descripción general: Supervisión y reajuste automático de FSX ONTAP a través de la función AWS Lambda

FSX ONTAP es un servicio de almacenamiento en nube de clase empresarial de primer orden disponible en AWS que ofrece un almacenamiento de archivos altamente fiable, escalable, de alto rendimiento y con muchas funciones integrado en el popular sistema de archivos NetApp ONTAP.

FSX ONTAP ofrece una experiencia de puesta en marcha y gestión fluida. No se necesita experiencia en almacenamiento para comenzar. Para simplificar la supervisión, se puede utilizar una función lambda de AWS (para automatizar el redimensionamiento de la capacidad de almacenamiento total, el tamaño de volumen o el tamaño de LUN en función del umbral).  Este documento proporciona una guía paso a paso para crear una configuración automatizada que supervise FSx ONTAP a intervalos regulares, notifique y cambie el tamaño cuando se cruza un umbral especificado por el usuario y notifique al administrador la actividad de cambio de tamaño.

Funciones

La solución ofrece las siguientes funciones:

  • Capacidad de supervisión:

    • Uso de la capacidad de almacenamiento general de FSx ONTAP

    • Uso de cada volumen (con aprovisionamiento ligero/con aprovisionamiento grueso)

    • Uso de cada LUN (con aprovisionamiento ligero/con aprovisionamiento grueso)

  • Capacidad de cambiar el tamaño de cualquiera de los valores anteriores cuando se supera un umbral definido por el usuario

  • Mecanismo de alertas para recibir avisos de uso y notificaciones de cambio de tamaño por correo electrónico

  • Capacidad para eliminar snapshots más antiguas que el umbral definido por el usuario

  • Capacidad de obtener una lista de volúmenes FlexClone y copias Snapshot asociadas

  • Capacidad para supervisar las comprobaciones a intervalos regulares

  • Posibilidad de utilizar la solución con o sin acceso a Internet

  • Capacidad para implementar manualmente o usar la plantilla de AWS CloudFormation

  • Capacidad de supervisar varios sistemas de archivos FSX ONTAP en un único VPC

Requisitos previos

Antes de empezar, compruebe que se cumplan los siguientes requisitos previos:

  • FSX ONTAP está puesto en marcha

  • Subred privada con conectividad a FSX ONTAP

  • Se ha establecido la contraseña «fsxadmin» para FSx ONTAP

Arquitectura de alto nivel
  • La función Lambda de AWS realiza llamadas API a FSx ONTAP para recuperar y actualizar el tamaño de la capacidad de almacenamiento, los volúmenes y los LUN.

  • Contraseña de fsxadmin almacenada como cadena segura en AWS SSM Parameter Store para una capa de seguridad añadida.

  • Se utiliza el servicio de correo electrónico simple (SES) de AWS para notificar a los usuarios finales cuando se produce un evento de cambio de tamaño.

  • Si implementa la solución en una VPC sin acceso a Internet, los extremos de VPC para AWS SSM, FSx y SES están configurados para permitir que Lambda llegue a estos servicios a través de la red interna de AWS.

Esta imagen muestra la arquitectura de alto nivel utilizada en esta solución.

Puesta en marcha de la solución

Puesta en marcha automatizada

Nota Cubre el sistema de archivos FSX ONTAP único.

Siga la serie de pasos para completar la implementación automatizada de esta solución:

Paso 1: Clone el repositorio de GitHub

Clone el repositorio de GitHub en el sistema local:

git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
Paso 2: Configurar un bucket de AWS S3
  1. Vaya a AWS Console > S3 y haga clic en Crear bucket. Cree el bloque con la configuración predeterminada.

  2. Una vez dentro del depósito, haz clic en Upload > Add files y selecciona Utilities.zip en el repositorio clonado de GitHub en tu sistema.

    Esta imagen muestra la ventana S3 con los archivos zip que se cargan

Paso 3: Configuración SMTP de AWS SES (necesaria si no hay acceso a Internet disponible)

Siga este paso si desea implementar la solución sin acceso a Internet (Nota: Se agregarán costos asociados con los endpoints de VPC que se configuran).

  1. Vaya a AWS Console > AWS Simple Email Service (SES) > Configuración SMTP y haga clic en Crear credenciales SMTP

  2. Introduzca un nombre de usuario de IAM o déjelo en el valor predeterminado y haga clic en Crear usuario. Guarde el nombre de usuario SMTP y la contraseña SMTP para su uso posterior.

    Nota Omita este paso si la configuración SMTP de SES ya está en su lugar.

    Esta imagen muestra la ventana Crear Credenciales SMTP en AWS SES

Paso 4: Implementación de AWS CloudFormation
  1. Vaya a AWS Console > CloudFormation > Crear pila > Con nuevos recursos (estándar).

    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

    Esta imagen muestra la ventana de creación de pila de AWS CloudFormation

    Haga clic en Siguiente

  2. Introduzca los detalles de la pila. Haga clic en Siguiente y marque la casilla de verificación “Reconozco que AWS CloudFormation podría crear recursos de IAM” y haga clic en Enviar.

    Nota Si «¿El VPC tiene acceso a Internet?» Se establece en Falso, se requiere el nombre de usuario SMTP para AWS SES y la contraseña SMTP para AWS SES. De lo contrario, se pueden dejar vacíos.

    Esta imagen muestra la ventana Detalles de la pila de AWS CloudFormation

    Esta imagen muestra la ventana Detalles de la pila de AWS CloudFormation

    Esta imagen muestra la ventana Detalles de la pila de AWS CloudFormation

    Esta imagen muestra la ventana Detalles de la pila de AWS CloudFormation

  3. Una vez que se inicie la implementación de CloudFormation, el ID de correo electrónico mencionado en el “ID de correo electrónico del remitente” recibirá un correo electrónico pidiéndoles que autoricen el uso de la dirección de correo electrónico con AWS SES. Haga clic en el enlace para verificar la dirección de correo electrónico.

  4. Una vez que se complete la implementación de la pila de CloudFormation, si hay advertencias/notificaciones, se enviará un correo electrónico al ID de correo electrónico del destinatario con los detalles de la notificación.

    Esta imagen muestra la notificación por correo electrónico recibida cuando las notificaciones están disponibles

    Esta imagen muestra la notificación por correo electrónico recibida cuando las notificaciones están disponibles

Puesta en marcha manual

Nota Admite la supervisión de varios sistemas de archivos FSX ONTAP en un único VPC.

Siga la serie de pasos para completar la implementación manual de esta solución:

Paso 1: Clone el repositorio de GitHub

Clone el repositorio de GitHub en el sistema local:

git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
Paso 2: Configuración SMTP de AWS SES (necesaria si no hay acceso a Internet disponible)

Siga este paso si desea implementar la solución sin acceso a Internet (Nota: Se agregarán costos asociados con los endpoints de VPC que se configuran).

  1. Vaya a AWS Console > AWS Simple Email Service (SES) > Configuración SMTP y haga clic en Crear credenciales SMTP

  2. Introduzca un nombre de usuario de IAM o déjelo en el valor predeterminado y haga clic en Crear. Guarde el nombre de usuario y la contraseña para seguir utilizándolo.

    Esta imagen muestra la ventana Crear Credenciales SMTP en AWS SES

Paso 3: Crear el parámetro SSM para la contraseña fsxadmin

Navegue hasta la Consola de AWS > Parameter Store y haga clic en 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>

Haga clic en Crear parámetro. Repita los pasos anteriores para que se supervisen todos los sistemas de archivos FSX ONTAP.

Esta imagen muestra la ventana de creación de parámetros SSM en la consola de AWS.

Realice los mismos pasos para almacenar el nombre de usuario smtp y la contraseña smtp si implementa la solución sin acceso a Internet. De lo contrario, omita la adición de estos 2 parámetros.

Paso 4: Configurar el servicio de correo electrónico

Navegue hasta la Consola de AWS > simple Email Service (SES) y haga clic en Crear identidad.

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

Haga clic en Crear identidad

El ID de correo electrónico mencionado en el “ID de correo electrónico del remitente” recibirá un correo electrónico solicitando al propietario que autorice el uso de la dirección de correo electrónico con AWS SES. Haga clic en el enlace para verificar la dirección de correo electrónico.

Esta imagen muestra la ventana SES Identity Creation de la consola de AWS.

Paso 5: Configurar puntos finales de VPC (necesario si no hay acceso a Internet disponible)
Nota Solo es necesario si se implementa sin acceso a Internet. Habrá costes adicionales asociados a los extremos de VPC.
  1. Vaya a AWS Console > VPC > Endpoints y haga clic en Create Endpoint e introduzca los siguientes detalles:

    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>

    Haga clic en Crear punto final.

    Esta imagen muestra la ventana de creación de punto final de VPC

    Esta imagen muestra la ventana de creación de punto final de VPC

  2. Siga el mismo proceso para crear puntos finales de VPC SES y SSM. Todos los parámetros son los mismos que los anteriores, excepto los Servicios que corresponden a com.amazonaws.<region>.smtp y com.amazonaws.<region>.ssm respectivamente.

Paso 6: Crear y configurar la función AWS Lambda
  1. Navegue hasta la consola de AWS > AWS Lambda > Functions y haga clic en Create Function en la misma región que FSX ONTAP

  2. Utilice el Autor predeterminado desde cero y actualice los siguientes campos:

    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>

    Haga clic en Crear función.

    Esta imagen muestra la ventana Lambda Creation en la consola AWS.

    Esta imagen muestra la ventana Lambda Creation en la consola AWS.

  3. Navegue hasta la función Lambda recién creada > Desplácese hasta la sección Capas y haga clic en Agregar una capa.

    Esta imagen muestra el botón Add Layer de la consola de funciones Lambda de AWS.

  4. Haga clic en Crear una nueva capa bajo Fuente de capa

  5. Cree una capa y cargue el archivo Utilities.zip. Seleccione Python 3.9 como el tiempo de ejecución compatible y haga clic en Crear.

    Esta imagen muestra la ventana Crear nueva capa en la consola de AWS.

  6. Vuelva a la función AWS Lambda > Add Layer > Custom Layers y agregue la capa utilities.

    Esta imagen muestra la ventana Add Layer de la consola de funciones Lambda de AWS.

    Esta imagen muestra las capas agregadas en la consola de funciones de AWS Lambda.

  7. Vaya a la pestaña Configuración de la función Lambda y haga clic en Editar en Configuración general. Cambie el tiempo de espera a 5 mins y haga clic en Guardar.

  8. Vaya a la ficha permisos de la función Lambda y haga clic en la función asignada. En la ficha permisos de la función, haga clic en Agregar permisos > Crear directiva en línea.

    1. Haga clic en la pestaña JSON y pegue el contenido del archivo policy.json en GitHub repo.

    2. Reemplace cada ocurrencia de ${AWS::AccountId} con su ID de cuenta y haga clic en Directiva de revisión

    3. Proporcione un nombre para la directiva y haga clic en Crear directiva

  9. Copie el contenido de fsxn_Monitoring_fanging_lambda.py de git repo a lambda_function.py en la sección AWS Lambda Function Code Source.

  10. Cree un archivo nuevo en el mismo nivel que lambda_function.py y llíelo var.py y copie el contenido de vars.py del git repo al archivo de la función lambda vars.py. Actualice los valores de variable en var.py. Consulte las definiciones de variables a continuación y haga clic en desplegar:

    Nombre

    Tipo

    Descripción

    FsxList

    Lista

    (Obligatorio) Lista de todos los sistemas de archivos FSX ONTAP que se van a supervisar. Incluya todos los sistemas de archivos de la lista para la supervisión y el cambio de tamaño automático.

    FsxMgmtIp

    Cadena

    (Obligatorio) Introduzca el «Punto final de gestión: Dirección IP» desde la consola de FSx ONTAP en AWS.

    FsxId

    Cadena

    (Obligatorio) Introduzca el «ID del sistema de archivos» desde la consola de FSx ONTAP en AWS.

    nombre de usuario

    Cadena

    (Necesario) Introduzca el «Nombre de usuario de administrador de ONTAP» de FSx ONTAP de la consola FSx ONTAP en AWS.

    redimensione_threshold

    Entero

    (Obligatorio) Introduzca el porcentaje de umbral del 0 al 100. Este umbral se utilizará para medir la capacidad de almacenamiento, el uso del volumen y la LUN, y cuando se utilice el porcentaje de aumento por encima de este umbral, se realizará el cambio de tamaño de la actividad.

    fsx_password_ssm_parameter

    Cadena

    (Obligatorio) Introduzca el nombre de ruta utilizado en el almacén de parámetros de AWS para almacenar la contraseña "fsxadmin".

    advertir_notificación

    Bool

    (Obligatorio) Establezca esta variable en True para recibir una notificación cuando el uso de capacidad de almacenamiento/volumen/LUN supere el 75%, pero sea inferior al umbral.

    enable_snapshot_deletion

    Bool

    (Obligatorio) establezca esta variable en True para habilitar la eliminación de snapshots a nivel de volumen en las snapshots de más antiguo que el valor especificado en "Snapshot_age_threshold_in_Days".

    instantánea_age_threshold_in_days

    Entero

    (Obligatorio) Introduzca el número de días de copias de Snapshot de nivel de volumen que desea conservar. Se eliminarán todas las instantáneas que tengan un valor superior al proporcionado y se notificará por correo electrónico lo mismo.

    internet_access

    Bool

    (Requerido) Establece esta variable en True si el acceso a Internet está disponible desde la subred donde se despliega este lambda. De lo contrario, establézcalo en Falso.

    smtp_region

    Cadena

    (Opcional) Si la variable “INTERNET_ACCESS” está establecida en False, introduzca la región en la que se despliega lambda. Por ejemplo, US-east-1 (en este formato)

    smtp_username_ssm_parameter

    Cadena

    (Opcional) Si la variable “INTERNET_ACCESS” se establece en False, introduzca el nombre de ruta utilizado en AWS Parameter Store para almacenar el nombre de usuario SMTP.

    smtp_password_ssm_parameter

    Cadena

    (Opcional) Si la variable “INTERNET_ACCESS” se establece en False, introduzca el nombre de la ruta de acceso utilizado en AWS Parameter Store para almacenar la contraseña SMTP.

    correo_remitente

    Cadena

    (Obligatorio) Introduzca el ID de correo electrónico registrado en SES que utilizará la función lambda para enviar alertas de notificación relacionadas con la supervisión y el cambio de tamaño.

    correo_destinatario

    Cadena

    (Obligatorio) Introduzca el ID de correo electrónico en el que desea recibir las notificaciones de alerta.

    Esta imagen muestra el código lambda en la consola de funciones de AWS Lambda.

  11. Haga clic en Test, cree un evento de prueba con un objeto JSON vacío y ejecute la prueba haciendo clic en Invoke para comprobar si el script se está ejecutando correctamente.

  12. Una vez probado correctamente, navegue a Configuración > Disparadores > Agregar desencadenador.

    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>

    Haga clic en Agregar.

    Esta imagen muestra la ventana de creación de puentes de eventos en la consola de funciones de AWS Lambda.

Conclusión

Con la solución proporcionada, es fácil configurar una solución de supervisión que supervise regularmente el almacenamiento de FSx ONTAP, lo cambie de tamaño en función de un umbral especificado por el usuario y proporcione un mecanismo de alerta. Esto hace que el proceso de utilizar y supervisar FSx ONTAP se libere de forma fluida a los administradores para que puedan centrarse en actividades vitales para el negocio a la vez que el almacenamiento crece automáticamente cuando es necesario.