使用 AWS Lambda 函数进行 FSx ONTAP监控和自动调整大小
本页介绍了监控 AWS FSx ONTAP和根据阈值自动调整大小的自动化。
概述:通过 AWS Lambda 函数监控和自动调整 FSx ONTAP
FSx ONTAP是 AWS 上的第一方企业级云存储服务,它基于流行的NetApp ONTAP文件系统构建,提供高度可靠、可扩展、高性能且功能丰富的文件存储。
FSx ONTAP提供无缝的部署和管理体验。无需任何存储专业知识即可开始使用。为了简化监控,可以使用 AWS lambda 函数(根据阈值自动调整总存储容量、卷大小或 LUN 大小)。 本文档提供了创建自动化设置的分步指南,该设置定期监控 FSx ONTAP ,在超过用户指定的阈值时发出通知并调整大小,并通知管理员调整大小活动。
功能
该解决方案提供以下功能:
-
监控能力:
-
FSx ONTAP整体存储容量的使用情况
-
每个卷的使用情况(精简配置/厚配置)
-
每个 LUN 的使用情况(精简配置/厚配置)
-
-
当超出用户定义的阈值时,可以调整上述任何一项的大小
-
通过电子邮件接收使用警告和调整大小通知的警报机制
-
能够删除超过用户定义阈值的快照
-
能够获取相关FlexClone卷和快照的列表
-
能够定期监控检查
-
无论是否接入互联网,均可使用该解决方案
-
可以手动部署或使用 AWS CloudFormation 模板进行部署
-
能够在单个 VPC 中监控多个 FSx ONTAP文件系统
先决条件
开始之前,请确保满足以下先决条件:
-
FSx ONTAP已部署
-
连接到 FSx ONTAP 的私有子网
-
已为 FSx ONTAP设置“fsxadmin”密码
高级架构
-
AWS Lambda 函数向 FSx ONTAP发出 API 调用,以检索和更新存储容量、卷和 LUN 的大小。
-
“fsxadmin”密码作为安全字符串存储在 AWS SSM 参数存储中,以增加安全性。
-
AWS SES(简单电子邮件服务)用于在发生调整大小事件时通知最终用户。
-
如果在没有互联网访问的 VPC 中部署解决方案,则会设置 AWS SSM、FSx 和 SES 的 VPC 端点,以允许 Lambda 通过 AWS 内部网络访问这些服务。
解决方案部署
自动部署
|
涵盖单个 FSx ONTAP文件系统。 |
按照一系列步骤完成此解决方案的自动化部署:
步骤 1:克隆 GitHub 存储库
在本地系统上克隆 GitHub 存储库:
git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
步骤 2:设置 AWS S3 存储桶
-
导航到 AWS 控制台 > S3,然后单击 创建存储桶。使用默认设置创建存储桶。
-
进入存储桶后,单击*上传* > 添加文件,然后从系统上克隆的 GitHub 存储库中选择*Utilities.zip*。
步骤 3:AWS SES SMTP 设置(如果没有可用的互联网访问,则需要)
如果您想在没有互联网访问的情况下部署解决方案,请按照此步骤操作(注意:设置 VPC 端点会产生额外的成本。)
-
导航至 AWS 控制台 > AWS 简单电子邮件服务 (SES) > SMTP 设置,然后单击 创建 SMTP 凭证
-
输入 IAM 用户名或保留默认值,然后单击“创建用户”。保存*SMTP 用户名*和*SMTP 密码*以供进一步使用。
如果 SES SMTP 设置已到位,请跳过此步骤。
步骤 4:AWS CloudFormation 部署
-
导航到 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 可能会创建 IAM 资源”复选框,然后单击“提交”。
如果“VPC 是否可以访问互联网?”设置为 False,则需要“AWS SES 的 SMTP 用户名”和“AWS SES 的 SMTP 密码”。否则,它们可以留空。 -
一旦 CloudFormation 部署开始,“发件人电子邮件 ID”中提到的电子邮件 ID 将收到一封电子邮件,要求他们授权 AWS SES 使用该电子邮件地址。点击链接来验证电子邮件地址。
-
CloudFormation 堆栈部署完成后,如果有任何警告/通知,则会向收件人电子邮件 ID 发送一封包含通知详细信息的电子邮件。
手动部署
|
支持在单个 VPC 中监控多个 FSx ONTAP文件系统。 |
按照一系列步骤完成此解决方案的手动部署:
步骤 1:克隆 GitHub 存储库
在本地系统上克隆 GitHub 存储库:
git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
步骤 2:AWS SES SMTP 设置(如果没有可用的互联网访问,则需要)
如果您想在没有互联网访问的情况下部署解决方案,请按照此步骤操作(注意:设置 VPC 端点会产生额外的成本。)
-
导航至 AWS 控制台 > AWS 简单电子邮件服务 (SES) > SMTP 设置,然后单击 创建 SMTP 凭证
-
输入 IAM 用户名或保留默认值,然后单击“创建”。保存用户名和密码以供进一步使用。
步骤 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 ONTAP>
点击*创建参数*。对所有要监控的 FSx ONTAP文件系统重复上述步骤。
如果在没有互联网访问的情况下部署解决方案,请执行相同的步骤来存储 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 使用该电子邮件地址。点击链接来验证电子邮件地址。
步骤 5:设置 VPC 端点(如果没有互联网访问则必需)
|
仅在没有互联网访问的情况下部署时才需要。 VPC 端点会产生额外费用。 |
-
导航到 AWS 控制台 > VPC > Endpoints,然后单击 Create Endpoint 并输入以下详细信息:
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>
单击创建端点。
-
按照相同的流程创建 SES 和 SSM VPC 端点。除服务分别对应于 com.amazonaws.<region>.smtp 和 com.amazonaws.<region>.ssm 外,所有参数均与上述相同。
步骤 6:创建并设置 AWS Lambda 函数
-
导航到 AWS 控制台 > AWS Lambda > 函数,然后单击与 FSx ONTAP位于同一区域的 创建函数
-
使用默认的*从头开始的作者*并更新以下字段:
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>
点击*创建函数*。
-
导航到新创建的 Lambda 函数 > 向下滚动到 Layers 部分并单击 Add a layer。
-
单击“图层源”下的“创建新图层”
-
创建一个层并上传*Utilities.zip*文件。选择 Python 3.9 作为兼容的运行时,然后单击 创建。
-
导航回 AWS Lambda 函数 > 添加层 > *自定义层*并添加实用程序层。
-
导航到 Lambda 函数的 配置 选项卡,然后单击 常规配置 下的 编辑。将超时更改为*5 分钟*,然后单击*保存*。
-
导航到 Lambda 函数的 Permissions 选项卡并单击分配的角色。在角色的权限选项卡中,单击*添加权限*>*创建内联策略*。
-
单击 JSON 选项卡并粘贴来自 GitHub 存储库的文件 policy.json 的内容。
-
将每个出现的 ${AWS::AccountId} 替换为您的账户 ID,然后单击 审核政策
-
为策略提供一个名称,然后单击“创建策略”
-
-
将 fsxn_monitoring_resizing_lambda.py 的内容从 git repo 复制到 AWS Lambda 函数代码源部分中的 lambda_function.py。
-
在与 lambda_function.py 同级创建一个新文件,并将其命名为 vars.py,并将 vars.py 的内容从 git repo 复制到 lambda 函数 vars.py 文件。更新 vars.py 中的变量值。参考下面的变量定义并点击*部署*:
姓名
类型
描述
fsx列表
列表
(必需)要监控的所有 FSx ONTAP文件系统的列表。将所有文件系统包含在列表中以进行监控和自动调整大小。
fsxMgmtIp
字符串
(必需)从 AWS 上的 FSx ONTAP控制台输入“管理端点 - IP 地址”。
fsxId
字符串
(必需)从 AWS 上的 FSx ONTAP控制台输入“文件系统 ID”。
用户名
字符串
(必需)从 AWS 上的 FSx ONTAP控制台输入 FSx ONTAP “ONTAP管理员用户名”。
调整阈值
整型
(必填)输入 0-100 之间的阈值百分比。此阈值将用于衡量存储容量、卷和 LUN 的使用情况,并且当任何使用率的百分比增加超过此阈值时,将发生调整大小活动。
fsx_password_ssm_参数
字符串
(必填)输入 AWS 参数存储中用于存储“fsxadmin”密码的路径名。
警告通知
布尔值
(必需)将此变量设置为 True,以便在存储容量/卷/LUN 使用率超过 75% 但低于阈值时接收通知。
启用快照删除
布尔值
(必需)将此变量设置为 True,以启用早于“snapshot_age_threshold_in_days”中指定的值的卷级快照删除。
快照年龄阈值(以天为单位)
整型
(必填)输入您要保留的卷级快照的天数。任何早于所提供值的快照都将被删除,并通过电子邮件通知。
互联网访问
布尔值
(必需)如果可以从部署此 lambda 的子网访问互联网,则将此变量设置为 True。否则将其设置为 False。
smtp 区域
字符串
(可选)如果“internet_access”变量设置为 False,请输入部署 lambda 的区域。例如 us-east-1(此格式)
smtp_用户名_ssm_参数
字符串
(可选)如果“internet_access”变量设置为 False,请输入 AWS 参数存储中用于存储 SMTP 用户名的路径名。
smtp_password_ssm_参数
字符串
(可选)如果“internet_access”变量设置为 False,请输入 AWS Parameter Store 中用于存储 SMTP 密码的路径名。
发件人电子邮件
字符串
(必填)输入在 SES 上注册的电子邮件 ID,lambda 函数将使用该 ID 发送与监控和调整大小相关的通知警报。
收件人电子邮件
字符串
(必填)输入您想要接收警报通知的电子邮件 ID。
-
点击*测试*,创建一个空的JSON对象的测试事件,点击*调用*运行测试,检查脚本是否正常运行。
-
测试成功后,导航至 配置 > 触发器 > 添加触发器。
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>
单击“添加”。
结束语
通过提供的解决方案,可以轻松设置监控解决方案,定期监控 FSx ONTAP存储,根据用户指定的阈值调整其大小并提供警报机制。这使得使用和监控 FSx ONTAP的过程变得无缝,使管理员可以专注于关键业务活动,同时存储会在需要时自动增长。