Skip to main content
NetApp Solutions
简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

使用AWS Lambda功能进行ONTAP 监控和自动调整大小的FSX

贡献者

概述:通过AWS Lambda功能监控和自动调整适用于ONTAP 的FSX的大小

FSx for ONTAP是AWS上提供的第一方企业级云存储服务、可提供基于流行的NetApp ONTAP文件系统构建的高度可靠、可扩展、高性能和功能丰富的文件存储。

适用于ONTAP 的FSX可提供无缝的部署和管理体验。无需具备存储专业知识即可开始使用。为了简化监控、可以使用AWS兰达功能(根据阈值自动调整总存储容量、卷大小或LUN大小的大小)。  本文档提供了创建自动设置的分步指南、该设置会定期监控FSx for ONTAP、在超过用户指定的阈值时发出通知并调整大小、以及向管理员通知调整大小活动。

功能

解决方案 提供了以下功能:

  • 能够监控:

    • 适用于ONTAP 的FSX的整体存储容量的使用情况

    • 每个卷的使用情况(精简配置/厚配置)

    • 每个LUN的使用情况(精简配置/厚配置)

  • 能够在违反用户定义的阈值时调整上述任意值的大小

  • 通过电子邮件接收使用情况警告和大小调整通知的警报机制

  • 可以删除早于用户定义阈值的快照

  • 能够获取关联的FlexClone卷和快照列表

  • 能够定期监控检查

  • 可以使用解决方案 访问互联网、也可以不访问互联网

  • 可以手动部署或使用AWS CloudFormation模板进行部署

  • 能够在一个VPC中监控多个FSx for ONTAP文件系统

前提条件

开始之前、请确保满足以下前提条件:

  • 已部署适用于ONTAP 的FSx

  • 连接到FSx for ONTAP 的专用子网

  • 已为ONTAP 的FSX设置"fsxadmin"密码

高级架构
  • AWS Lambda功能可通过API调用FSX for ONTAP 、以检索和更新存储容量、卷和LUN的大小。

  • "fsxadmin"密码以安全字符串形式存储在AWS SSM参数存储中、用于增加一层安全保护。

  • AWS SES (简单电子邮件服务)用于在发生调整大小事件时通知最终用户。

  • 如果在无法访问Internet的VPC中部署解决方案、则会对适用于AWS SSM、FSx和SES的VPC端点进行设置、使Lamb达 能够通过AWS内部网络访问这些服务。

此图显示了此解决方案 中使用的高级架构。

解决方案 部署

自动化部署

备注 涵盖适用于ONTAP文件系统的单个FSx。

按照一系列步骤完成此解决方案 的自动部署:

第1步:克隆GitHub存储库

在本地系统上克隆GitHub存储库:

git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
第2步:设置AWS S3存储分段
  1. 导航到AWS控制台>*。s3*并单击*创建存储分段*。使用默认设置创建存储分段。

  2. 进入存储分段后、单击*上传*>*添加文件*、然后从系统上克隆的GitHub存储库中选择*实用程序.zip。

    此图显示了正在上传zip文件的S3窗口

第3步:AWS SES SMTP设置(如果无法访问Internet、则需要此设置)

如果要在不访问Internet的情况下部署解决方案、请执行此步骤(注意:要设置的VPC端点会增加相关成本。)

  1. 导航到AWS控制台>*AWS Simple Email Service (SES)>*SMTP Settings,然后单击*Create SMTP credcredcredcredENTs*

  2. 输入IAM用户名或将其保留为默认值,然后单击*Create User*。保存*SMTP用户名*和*SMTP密码*以供将来使用。

    备注 如果SES SMTP设置已到位、请跳过此步骤。

    此图显示了AWS SES下的创建SMTP凭据窗口

第4步:AWS CloudFormation部署
  1. 导航到AWS控制台>* CloudFormation*>创建堆栈>使用新资源(标准)。

    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

    此图显示了AWS CloudFormation创建堆栈窗口

    单击下一步

  2. 输入堆栈详细信息。单击Next、选中I Accloned that AWS CloudFormation m赡 会创建IAM资源复选框、然后单击Submit。

    备注 如果"VPC是否可访问互联网?" 设置为False、需要提供"AWS SES的SMTP用户名"和"AWS SES的SMTP密码"。否则、可以将其留空。

    此图显示了AWS CloudFormation堆栈详细信息窗口

    此图显示了AWS CloudFormation堆栈详细信息窗口

    此图显示了AWS CloudFormation堆栈详细信息窗口

    此图显示了AWS CloudFormation堆栈详细信息窗口

  3. 一旦CloudFormation部署开始、"发件人电子邮件ID"中提及的电子邮件ID将收到一封电子邮件、要求他们授权在AWS SES中使用此电子邮件地址。单击链接以验证电子邮件地址。

  4. CloudFormation堆栈部署完成后、如果出现任何警告/通知、系统将向收件人电子邮件ID发送一封电子邮件、其中包含通知详细信息。

    此图显示了通知可用时收到的电子邮件通知

    此图显示了通知可用时收到的电子邮件通知

手动部署

备注 支持在一个VPC中监控多个FSx for ONTAP文件系统。

按照一系列步骤完成此解决方案 的手动部署:

第1步:克隆GitHub存储库

在本地系统上克隆GitHub存储库:

git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
第2步:AWS SES SMTP设置(如果无法访问Internet、则需要此设置)

如果要在不访问Internet的情况下部署解决方案、请执行此步骤(注意:要设置的VPC端点会增加相关成本。)

  1. 导航到AWS控制台>*AWS Simple Email Service (SES)> SMTP Settings,然后单击*Create SMTP crederations

  2. 输入IAM用户名或将其保留为默认值、然后单击创建。保存用户名和密码以供将来使用。

    此图显示了AWS SES下的创建SMTP凭据窗口

第3步:为fsxadmin密码创建SSM参数

导航到AWS控制台>*参数存储*、然后单击*创建参数*。

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>

单击*创建参数*。
对要监控的所有FSx for ONTAP文件系统重复上述步骤。

此图显示了AWS控制台上的SSM参数创建窗口。

如果在不访问Internet的情况下部署解决方案 、则执行相同的步骤来存储SMTP用户名和SMTP密码。否则、跳过添加这2个参数。

第4步:设置电子邮件服务

导航到AWS控制台>*简单电子邮件服务(SES)、然后单击*创建身份

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

单击*创建身份*

"发件人电子邮件ID"中提及的电子邮件ID将收到一封电子邮件、要求所有者授权AWS SES使用此电子邮件地址。单击链接以验证电子邮件地址。

此图显示了AWS控制台上的SES身份创建窗口。

第5步:设置VPC端点(如果无法访问Internet、则需要此端点)
备注 只有在部署时不能访问Internet时才需要。与VPC端点相关的额外成本。
  1. 导航到AWS控制台>* VPC*>*端点*并单击*创建端点*并输入以下详细信息:

    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>

    单击创建端点。

    此图显示了VPC端点创建窗口

    此图显示了VPC端点创建窗口

  2. 按照相同的过程创建SES和SSM VPC端点。除将<region>分别对应于*com.惊奇aws.smp.smNT*和*com.惊奇aws.smssm*<region>的服务外,所有参数均与上述相同。

第6步:创建和设置AWS Lamb编制 函数
  1. 导航到AWS控制台>* AWS Lambx*>*功能*、然后单击FSx for ONTAP所在区域的*创建功能*

  2. 使用默认的*从头开始*作者并更新以下字段:

    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>

    单击*创建功能*。

    此图显示了AWS控制台上的Lambda创建窗口。

    此图显示了AWS控制台上的Lambda创建窗口。

  3. 导航到新创建的Lamba函数>向下滚动到*图层*部分,然后单击*添加图层*。

    此图显示了AWS Lambda功能控制台上的添加层按钮。

  4. 单击*层源*下的*创建新层*

  5. 创建图层并上传*Utilities.zip*文件。选择* Python 3.9*作为兼容运行时、然后单击*创建*。

    此图显示了AWS控制台上的创建新层窗口。

  6. 导航回AWS Lamb另 一个函数>*添加图层*>*自定义图层*并添加实用程序图层。

    此图显示了AWS Lambda功能控制台上的添加层窗口。

    此图显示了AWS Lambda功能控制台上添加的层。

  7. 导航到Lambda函数的*配置*选项卡、然后单击*常规配置*下的*编辑*。将超时更改为*5分钟*,然后单击*Save*。

  8. 导航到Lambda函数的*权限*选项卡、然后单击分配的角色。在角色的权限选项卡中、单击*添加权限*>*创建实时策略*。

    1. 单击JSON选项卡、然后从GitHub repo粘贴文件policy.json的内容。

    2. 将每次出现的${AWS::AccountId}替换为您的帐户ID、然后单击*审核策略*

    3. 为策略提供一个名称、然后单击*创建策略*

  9. 在AWS Lambda函数代码源部分中、将* fsxn_monitoring_resizing lambda.py*的内容从git repo*复制到* lambda_Function.py*。

  10. 创建一个与lambda_function.py级别相同的新文件并将其命名为* vars.py*、然后将vars.py的内容从git repo复制到lambda函数vars.py文件。更新vars.py中的变量值。请参考下面的变量定义、然后单击*部署*:

    * 名称 *

    * 类型 *

    * 问题描述 *

    fsxList

    列表

    (必需)列出要监控的所有FSx for ONTAP文件系统。
    将所有文件系统包括在列表中以进行监控和自动调整大小。

    * fsxMgmtIp*

    string

    (必需)从AWS上的ONTAP 的FSX控制台输入"管理端点- IP地址"。

    * fsxId*

    string

    (必需)从AWS上的FSX for ONTAP 控制台输入"文件系统ID"。

    用户名

    string

    (必需)从ONTAP 上的ONTAP 控制台输入FSX for ONTAP 的"FSX管理员用户名"。

    调整大小阈值

    整型

    (必需)输入0-100之间的阈值百分比。此阈值将用于测量存储容量、卷和LUN的使用量、如果超过此阈值的任何使用量百分比增加、则会发生调整大小活动。

    * FSx_password_SSM_parameter*

    string

    (必需)输入在AWS参数存储中用于存储"fsxadmin"密码的路径名称。

    警告通知

    (必需)将此变量设置为True、以便在存储容量/卷/LUN使用量超过75%但小于阈值时收到通知。

    启用_snapshot_deletion

    (必需)将此变量设置为True、以便为早于"snapshot_age_threshold_in_days"中指定值的快照启用卷级快照删除。

    * snapshot_age_threshold_in_days*

    整型

    (必需)输入要保留的卷级别快照的天数。任何早于提供值的快照都将被删除、并通过电子邮件通知此快照。

    internet_access

    (必需)如果部署了此兰德的子网可以访问Internet、请将此变量设置为True。否则、请将其设置为False。

    SMT_REARAY

    string

    (可选)如果"internet_access"变量设置为False、请输入部署了兰德的区域。例如us-east-1 (采用此格式)

    SMT_USERNAME_SSM_Parameter

    string

    (可选)如果"internet_access"变量设置为False、请输入AWS参数存储中用于存储SMTP用户名的路径名称。

    SMT_password_SSM_parameter

    string

    (可选)如果"internet_access"变量设置为False、请输入AWS参数存储中用于存储SMTP密码的路径名称。

    发件人电子邮件

    string

    (必需)输入在SES上注册的电子邮件ID、lambda功能将使用该ID发送与监控和调整大小相关的通知警报。

    收件人电子邮件

    string

    (必需)输入要接收警报通知的电子邮件ID。

    此图显示了AWS Lambda功能控制台上的lambda代码。

  11. 单击*Test*,创建一个包含空JSON对象的测试事件,然后通过单击*Invoke *来运行测试,以检查脚本是否运行正常。

  12. 成功测试后、导航到*配置*>*触发器*>*添加触发器*。

    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>

    单击添加。

    此图显示了AWS Lambda功能控制台上的事件网桥创建窗口。

结论

借助提供的解决方案、可以轻松设置监控、该监控解决方案会定期监控FSx for ONTAP存储、根据用户指定的阈值调整其值并提供警报机制。这样、使用和监控适用于ONTAP 的FSX的过程就可以无缝地让管理员腾出时间专注于业务关键型活动、同时存储在需要时自动增长。