使用 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 CloudForgation Template
-
能夠在單一 VPC 中監控多個 FSX ONTAP 檔案系統
先決條件
開始之前、請先確定符合下列先決條件:
-
已部署 FSX ONTAP
-
可連線至 FSX ONTAP 的私有子網路
-
已為 FSX ONTAP 設定「 fsxadmin 」密碼
高階架構
-
AWS Lambda 功能會呼叫 FSX ONTAP 以擷取及更新儲存容量、磁碟區和 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 主控台 > * S2* 、然後按一下 * 建立儲存庫 * 。使用預設設定建立貯體。
-
進入貯體後、按一下 * 上傳 * > * 新增檔案 * 、然後從系統上複製的 GitHub 儲存庫中選取 * Utilities.zip* 。
步驟 3 : AWS SES SMTP 設定(如果沒有網際網路存取可用、則需要)
如果您想要部署不需存取網際網路的解決方案、請遵循此步驟(注意:將會增加與 VPC 端點相關的成本)。
-
瀏覽至 AWS 主控台 > * AWS 簡單電子郵件服務( SES ) * > * SMTP 設定 * 、然後按一下 * 建立 SMTP 認證 *
-
輸入 IAM 使用者名稱或保留預設值、然後按一下 * 建立使用者 * 。保存 *SMTP 用戶名 * 和 *SMTP 密碼 * 以供進一步使用。
如果 SES SMTP 設定已就緒、請跳過此步驟。
步驟 4 : AWS CloudForgation 部署
-
瀏覽至 AWS 主控台 > * CloudForgiate* > Create stack > with New Resources (標準)。
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 密碼」。否則、它們可能會留為空白。 -
一旦 CloudForgation 部署開始、「寄件者電子郵件 ID 」中提及的電子郵件 ID 將會收到一封電子郵件、要求他們授權使用 AWS SES 的電子郵件地址。按一下連結以驗證電子郵件地址。
-
一旦完成 CloudForgation 堆疊部署、如果有任何警告 / 通知、系統會傳送電子郵件給收件者電子郵件 ID 、其中會附上通知詳細資料。
手動部署
支援在單一 VPC 中監控多個 FSX ONTAP 檔案系統。 |
請依照下列步驟完成本解決方案的手動部署:
步驟1:複製GitHub儲存庫
在本機系統上複製GitHub儲存庫:
git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
步驟 2 : AWS SES SMTP 設定(如果沒有網際網路存取可用、則需要)
如果您想要部署不需存取網際網路的解決方案、請遵循此步驟(注意:將會增加與 VPC 端點相關的成本)。
-
瀏覽至 AWS Console ( AWS 主控台) > * AWS Simple Email Service ( SES ) * > SMTP Settings ( SMTP 設定)、然後按一下 * Create 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* > * 端點 * 、然後按一下 * 建立端點 * 、並輸入下列詳細資料:
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.amazonaws.smtp 和 <region> 。 SSM* 。
步驟 6 :建立及設定 AWS Lambda 功能
-
瀏覽至 AWS Console ( AWS 主控台) > * AWS Lambda* > * Functions * ( * 功能 * )、然後在與 FSX ONTAP 相同的區域中按一下 * Create Funct職能 * (建立功能 * )
-
使用預設的*從頭開始作者*並更新下列欄位:
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* 區段、然後按一下 * 新增圖層 * 。
-
按一下「* Layer SOURGE*」下的「建立新的圖層」
-
建立 Layer 並上傳 * Utilities.zip* 檔案。選擇* Python 3.9*作為相容的執行時間、然後按一下*「Create*」。
-
返回 AWS Lambda 函數 > * 新增圖層 * > * 自訂圖層 * 、然後新增公用程式圖層。
-
瀏覽至Lambda函數的*組態*索引標籤、然後按一下「一般組態」下的*編輯*。將超時更改爲 *5 分鐘 * ,然後單擊 * 保存 * 。
-
瀏覽至Lambda功能的*權限*索引標籤、然後按一下指派的角色。在角色的權限索引標籤中、按一下*新增權限*>*建立內嵌原則*。
-
按一下Json索引標籤、然後從GitHub repo貼上檔案policy.json的內容。
-
將每次出現的${AWS::AccountId}替換為您的帳戶ID、然後按一下* Review Policy*
-
提供原則的名稱、然後按一下「建立原則」
-
-
將* fsxn_monitoring_fizing_lambda.py*的內容從git repo複製到AWS Lambda功能程式碼來源區段的* lambda_fite.py*。
-
建立與lambda_function.py相同層級的新檔案、並將其命名為* vars.py*、然後將vars.py的內容從git repo複製到lambda函數vars.py檔案。更新vars.py中的變數值。請參考下方的變數定義、然後按一下「部署」:
名稱
類型
說明
* fsxList*
清單
(必填)要監控的所有 FSX ONTAP 檔案系統清單。在清單中加入所有檔案系統、以進行監控和自動調整大小。
* fsxMgmtIp*
字串
(必填)從 AWS 上的 FSX ONTAP 主控台輸入「管理端點 - IP 位址」。
* fsxId*
字串
(必填)從 AWS 上的 FSX ONTAP 主控台輸入「檔案系統 ID 」。
使用者名稱
字串
(必填)從 AWS 上的 FSX ONTAP 主控台輸入 FSX ONTAP 「 ONTAP 管理員使用者名稱」。
重新調整大小臨界值
整數
(必填)輸入0-100之間的臨界值百分比。此臨界值將用於測量儲存容量、磁碟區和LUN使用量、當超過此臨界值的任何增加使用量百分比時、將會發生調整大小活動。
* FSx_password_Sm_參 數字*
字串
(必填)輸入AWS參數儲存區中用於儲存「fsxadmin」密碼的路徑名稱。
警告通知
布爾
(必填)將此變數設為 True 、當儲存容量 / 磁碟區 / LUN 使用量超過 75% 但低於臨界值時、就會收到通知。
啟用快照刪除
布爾
(必填)將此變數設為「真」、以針對早於「snapshot_age_threshold_in_days」中指定值的快照、啟用磁碟區層級的快照刪除。
* snapshot _age_threshold_in_days *
整數
(必填)輸入您要保留的Volume層級快照天數。任何早於所提供值的快照都會刪除、並透過電子郵件通知相同的快照。
* 網際網路存取 *
布爾
(必要)如果從部署 Lambda 的子網路上可以存取網際網路、請將此變數設為 True 。否則請將其設為 False 。
SMTP_region
字串
(選用)如果「 Internet_access 」變數設為 False 、請輸入部署 Lambda 的區域。例如: us-east-1 (此格式)
SMTP_USERNAME_SSM_PARAMEL
字串
(選用)如果「 INTERNET _ACCESS 」變數設為 False 、請輸入 AWS 參數儲存區中用於儲存 SMTP 使用者名稱的路徑名稱。
smtp_password_SSM_parameter_
字串
(選用)如果「 INTERNET _ACCESS 」變數設為 False 、請輸入 AWS 參數儲存區中用於儲存 SMTP 密碼的路徑名稱。
寄件者電子郵件
字串
(必填)輸入在SES上登錄的電子郵件ID、以便Lambda功能用來傳送與監控和調整大小相關的通知警示。
收件人電子郵件
字串
(必填)輸入您要接收警示通知的電子郵件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 的程序就能順暢無縫地讓管理員專注於業務關鍵活動、而儲存設備則可在必要時自動成長。