Skip to main content
NetApp Solutions
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

使用 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 貯體
  1. 瀏覽至 AWS 主控台 > * S2* 、然後按一下 * 建立儲存庫 * 。使用預設設定建立貯體。

  2. 進入貯體後、按一下 * 上傳 * > * 新增檔案 * 、然後從系統上複製的 GitHub 儲存庫中選取 * Utilities.zip* 。

    此影像描述上傳 zip 檔案的 S3 視窗

步驟 3 : AWS SES SMTP 設定(如果沒有網際網路存取可用、則需要)

如果您想要部署不需存取網際網路的解決方案、請遵循此步驟(注意:將會增加與 VPC 端點相關的成本)。

  1. 瀏覽至 AWS 主控台 > * AWS 簡單電子郵件服務( SES ) * > * SMTP 設定 * 、然後按一下 * 建立 SMTP 認證 *

  2. 輸入 IAM 使用者名稱或保留預設值、然後按一下 * 建立使用者 * 。保存 *SMTP 用戶名 * 和 *SMTP 密碼 * 以供進一步使用。

    註 如果 SES SMTP 設定已就緒、請跳過此步驟。

    此影像說明 AWS SES 下的 Create SMTP Credentials (建立 SMTP 認證)視窗

步驟 4 : AWS CloudForgation 部署
  1. 瀏覽至 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 CloudFor何處 建立堆疊視窗

    按一下「下一步」

  2. 輸入堆疊詳細資料。按一下「下一步」、勾選「我確認 AWS CloudFormation 可能會建立 IAM 資源」核取方塊、然後按一下「提交」。

    註 如果「 VPC 是否可存取網際網路?」 設為 False 、則需要「 AWS SES 的 SMTP 使用者名稱」和「 AWS SES 的 SMTP 密碼」。否則、它們可能會留為空白。

    此影像說明 AWS CloudForFor何處 可查看「資料堆疊詳細資料」視窗

    此影像說明 AWS CloudForFor何處 可查看「資料堆疊詳細資料」視窗

    此影像說明 AWS CloudForFor何處 可查看「資料堆疊詳細資料」視窗

    此影像說明 AWS CloudForFor何處 可查看「資料堆疊詳細資料」視窗

  3. 一旦 CloudForgation 部署開始、「寄件者電子郵件 ID 」中提及的電子郵件 ID 將會收到一封電子郵件、要求他們授權使用 AWS SES 的電子郵件地址。按一下連結以驗證電子郵件地址。

  4. 一旦完成 CloudForgation 堆疊部署、如果有任何警告 / 通知、系統會傳送電子郵件給收件者電子郵件 ID 、其中會附上通知詳細資料。

    此影像描述通知可用時收到的電子郵件通知

    此影像描述通知可用時收到的電子郵件通知

手動部署

註 支援在單一 VPC 中監控多個 FSX ONTAP 檔案系統。

請依照下列步驟完成本解決方案的手動部署:

步驟1:複製GitHub儲存庫

在本機系統上複製GitHub儲存庫:

git clone https://github.com/NetApp/fsxn-monitoring-auto-resizing.git
步驟 2 : AWS SES SMTP 設定(如果沒有網際網路存取可用、則需要)

如果您想要部署不需存取網際網路的解決方案、請遵循此步驟(注意:將會增加與 VPC 端點相關的成本)。

  1. 瀏覽至 AWS Console ( AWS 主控台) > * AWS Simple Email Service ( SES ) * > SMTP Settings ( SMTP 設定)、然後按一下 * Create SMTP 全權證書 * (建立 SMTP 認證)

  2. 輸入 IAM 使用者名稱或保留預設值、然後按一下「建立」。儲存使用者名稱和密碼以供進一步使用。

    此影像說明 AWS SES 下的 Create SMTP Credentials (建立 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 ONTAP>

按一下「建立參數」。針對要監控的所有 FSX ONTAP 檔案系統、重複上述步驟。

此影像說明AWS主控台上的「建立SSM參數」視窗。

如果部署的解決方案沒有網際網路存取、請執行相同的步驟來儲存 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 端點(如果沒有網際網路存取可用、則需要)
註 只有在部署時沒有網際網路存取時才需要。與 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.amazonaws.smtp 和 <region> 。 SSM* 。

步驟 6 :建立及設定 AWS Lambda 功能
  1. 瀏覽至 AWS Console ( AWS 主控台) > * AWS Lambda* > * Functions * ( * 功能 * )、然後在與 FSX ONTAP 相同的區域中按一下 * Create Funct職能 * (建立功能 * )

  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 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>

    按一下「建立功能」。

    此影像描述AWS主控台的Lambda建立視窗。

    此影像描述AWS主控台的Lambda建立視窗。

  3. 瀏覽至新建立的 Lambda 功能 > 向下捲動至 * Layers* 區段、然後按一下 * 新增圖層 * 。

    此影像說明AWS Lambda功能主控台的「新增階層」按鈕。

  4. 按一下「* Layer SOURGE*」下的「建立新的圖層

  5. 建立 Layer 並上傳 * Utilities.zip* 檔案。選擇* Python 3.9*作為相容的執行時間、然後按一下*「Create*」。

    此影像說明AWS主控台的Create New Layer(建立新的層)視窗。

  6. 返回 AWS Lambda 函數 > * 新增圖層 * > * 自訂圖層 * 、然後新增公用程式圖層。

    此影像描述AWS Lambda功能主控台的新增層視窗。

    此影像說明AWS Lambda功能主控台上新增的圖層。

  7. 瀏覽至Lambda函數的*組態*索引標籤、然後按一下「一般組態」下的*編輯*。將超時更改爲 *5 分鐘 * ,然後單擊 * 保存 * 。

  8. 瀏覽至Lambda功能的*權限*索引標籤、然後按一下指派的角色。在角色的權限索引標籤中、按一下*新增權限*>*建立內嵌原則*。

    1. 按一下Json索引標籤、然後從GitHub repo貼上檔案policy.json的內容。

    2. 將每次出現的${AWS::AccountId}替換為您的帳戶ID、然後按一下* Review Policy*

    3. 提供原則的名稱、然後按一下「建立原則

  9. 將* fsxn_monitoring_fizing_lambda.py*的內容從git repo複製到AWS Lambda功能程式碼來源區段的* lambda_fite.py*。

  10. 建立與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。

    此影像描述AWS Lambda功能主控台上的Lambda程式碼。

  11. 按一下 * 測試 * 、建立含有空白 JSON 物件的測試事件、然後按一下 * 叫用 * 來檢查指令碼是否正常執行、以執行測試。

  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 ONTAP 儲存設備、根據使用者指定的臨界值調整大小、並提供警示機制。如此一來、使用和監控 FSX ONTAP 的程序就能順暢無縫地讓管理員專注於業務關鍵活動、而儲存設備則可在必要時自動成長。