FSx ONTAP监控和使用AWS Lambda-Function自动调整大小
此页面介绍了有关监控AWS FSx ONTAP以及根据阈值自动调整大小的自动化操作。
概述:通过AWS Lambda-Function监控FSx ONTAP并对其进行自动调整
FSx ONTAP是AWS上提供的第一方企业级云存储服务、可提供基于流行的NetApp ONTAP文件系统构建的高度可靠、可扩展、高性能和功能丰富的文件存储。
FSx ONTAP提供无缝部署和管理体验。无需具备存储专业知识即可开始使用。为了简化监控、可以使用AWS兰达功能(根据阈值自动调整总存储容量、卷大小或LUN大小的大小)。 本文档提供了创建自动设置的分步指南、该设置会定期监控FSx ONTAP、在超过用户指定的阈值时发出通知并调整大小、以及向管理员通知调整大小活动。
功能
解决方案 提供了以下功能:
-
能够监控:
-
FSx ONTAP整体存储容量的使用情况
-
每个卷的使用情况(精简配置/厚配置)
-
每个LUN的使用情况(精简配置/厚配置)
-
-
能够在违反用户定义的阈值时调整上述任意值的大小
-
通过电子邮件接收使用情况警告和大小调整通知的警报机制
-
可以删除早于用户定义阈值的快照
-
能够获取关联的FlexClone卷和快照列表
-
能够定期监控检查
-
可以使用解决方案 访问互联网、也可以不访问互联网
-
可以手动部署或使用AWS CloudFormation模板进行部署
-
可以在一个VPC中监控多个FSx ONTAP文件系统
前提条件
开始之前、请确保满足以下前提条件:
-
FSx ONTAP已部署
-
连接到FSx ONTAP的专用子网
-
已为FSx ONTAP设置"fsxadmin"密码
高级架构
-
AWS LambDAF函数通过API调用FSx ONTAP、以检索和更新存储容量、卷和LUN的大小。
-
"fsxadmin"密码以安全字符串形式存储在AWS SSM参数存储中、用于增加一层安全保护。
-
AWS SES (简单电子邮件服务)用于在发生调整大小事件时通知最终用户。
-
如果在无法访问Internet的VPC中部署解决方案、则会对适用于AWS SSM、FSx和SES的VPC端点进行设置、使Lamb达 能够通过AWS内部网络访问这些服务。
解决方案 部署
自动化部署
涵盖单个FSx ONTAP文件系统。 |
按照一系列步骤完成此解决方案 的自动部署:
第1步:克隆GitHub存储库
在本地系统上克隆GitHub存储库:
git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
第2步:设置AWS S3存储分段
-
导航到AWS控制台>*。s3*并单击*创建存储分段*。使用默认设置创建存储分段。
-
进入存储分段后、单击*上传*>*添加文件*、然后从系统上克隆的GitHub存储库中选择*实用程序.zip。
第3步:AWS SES SMTP设置(如果无法访问Internet、则需要此设置)
如果要在不访问Internet的情况下部署解决方案、请执行此步骤(注意:要设置的VPC端点会增加相关成本。)
-
导航到AWS控制台>*AWS Simple Email Service (SES)>*SMTP Settings,然后单击*Create SMTP credcredcredcredENTs*
-
输入IAM用户名或将其保留为默认值,然后单击*Create User*。保存*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
单击下一步
-
输入堆栈详细信息。单击Next、选中I Accloned that AWS CloudFormation m赡 会创建IAM资源复选框、然后单击Submit。
如果"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设置(如果无法访问Internet、则需要此设置)
如果要在不访问Internet的情况下部署解决方案、请执行此步骤(注意:要设置的VPC端点会增加相关成本。)
-
导航到AWS控制台>*AWS Simple Email Service (SES)> SMTP Settings,然后单击*Create SMTP crederations
-
输入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文件系统重复上述步骤。
如果在不访问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使用此电子邮件地址。单击链接以验证电子邮件地址。
第5步:设置VPC端点(如果无法访问Internet、则需要此端点)
只有在部署时不能访问Internet时才需要。与VPC端点相关的额外成本。 |
-
导航到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>
单击创建端点。
-
按照相同的过程创建SES和SSM VPC端点。除将<region>分别对应于*com.惊奇aws.smp.smNT*和*com.惊奇aws.smssm*<region>的服务外,所有参数均与上述相同。
第6步:创建和设置AWS Lamb编制 函数
-
导航到AWS控制台>* AWS LambxD*>*函数*并单击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>
单击*创建功能*。
-
导航到新创建的Lamba函数>向下滚动到*图层*部分,然后单击*添加图层*。
-
单击*层源*下的*创建新层*
-
创建图层并上传*Utilities.zip*文件。选择* Python 3.9*作为兼容运行时、然后单击*创建*。
-
导航回AWS Lamb另 一个函数>*添加图层*>*自定义图层*并添加实用程序图层。
-
导航到Lambda函数的*配置*选项卡、然后单击*常规配置*下的*编辑*。将超时更改为*5分钟*,然后单击*Save*。
-
导航到Lambda函数的*权限*选项卡、然后单击分配的角色。在角色的权限选项卡中、单击*添加权限*>*创建实时策略*。
-
单击JSON选项卡、然后从GitHub repo粘贴文件policy.json的内容。
-
将每次出现的${AWS::AccountId}替换为您的帐户ID、然后单击*审核策略*
-
为策略提供一个名称、然后单击*创建策略*
-
-
在AWS Lambda函数代码源部分中、将* fsxn_monitoring_resizing lambda.py*的内容从git repo*复制到* lambda_Function.py*。
-
创建一个与lambda_function.py级别相同的新文件并将其命名为* vars.py*、然后将vars.py的内容从git repo复制到lambda函数vars.py文件。更新vars.py中的变量值。请参考下面的变量定义、然后单击*部署*:
* 名称 *
* 类型 *
* 问题描述 *
fsxList
列表
(必需)列出要监控的所有FSx ONTAP文件系统。将所有文件系统包括在列表中以进行监控和自动调整大小。
* fsxMgmtIp*
string
(必需)在AWS上的FSx ONTAP控制台中输入"Management Endpoint - IP address"。
* fsxId*
string
(必需)在AWS上的FSx ONTAP控制台中输入"文件系统ID"。
用户名
string
(必需)在ONTAP上的FSx ONTAP控制台中输入FSx ONTAP的"AWS管理员用户名"。
调整大小阈值
整型
(必需)输入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。
-
单击*Test*,创建一个包含空JSON对象的测试事件,然后通过单击*Invoke *来运行测试,以检查脚本是否运行正常。
-
成功测试后、导航到*配置*>*触发器*>*添加触发器*。
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的过程便可无缝完成、使管理员可以专注于业务关键型活动、同时存储在需要时会自动增长。