練習 - 將磁碟新增至 HPC 叢集的排程器節點

已完成

Azure CycleCloud 依賴範本來定義叢集組態。 其預設實作包含最常見的排程器內建範本,但您可以在 Azure CycleCloud GitHub 存放庫中找到數個其他範本。

回想一下,您想要使用自定義的 Azure CycleCloud 範本來測試實作叢集的程式。 為了達到此目的,您將利用裝載 Microsoft策展 Slurm 專案的 Azure CycleCloud GitHub 存放庫。 您將透過變更排程器節點的記憶體設定、將新修改過的範本匯入 Azure CycleCloud 應用程式、使用應用程式的圖形化介面來建立叢集,最後驗證記憶體組態變更,以修改此存放庫的現有叢集範本。

這很重要

若要完成本課程模組中的練習,您必須滿足下列必要條件:

  • 在三組 VM 大小中具有 vCPU 核心可用性的 Azure 訂用帳戶:
    • 至少 DSv3 系列的 4 個 vCPU 核心
    • FSv2 系列至少 100 個 vCPU 核心
    • 至少 48 個 NC 系列 vCPU 核心
  • 在 Azure 訂用帳戶中具有擁有者或參與者角色的Microsoft帳戶或Microsoft Entra 帳戶。
  • 將 Azure CycleCloud 應用程式部署至可透過與其網路介面相關聯的公用 IP 位址存取的 Azure VM。
  • 使用 Azure 訂用帳戶的擁有者或參與者角色層級存取來設定 Azure CycleCloud 應用程式。
  • 擁有具有系統管理員角色的 Azure CycleCloud 應用程式用戶帳戶。
  • 建立 Azure 虛擬網路子網,您可以在其中部署叢集節點。
  • 擁有用來設定 Azure CycleCloud 應用程式的 SSH 金鑰組私鑰。

備註

如需識別和增加 Azure 訂用帳戶中 vCPU 配額的相關信息,請參閱下列檔:

備註

您將需要私鑰,才能在本課程模組的最後一個練習中直接連線到叢集節點。

在此練習中,您將執行下列工作:

  • 工作 1:安裝和設定 Azure CycleCloud CLI
  • 工作 2:設定 Azure CycleCloud Slurm 專案
  • 工作 3:實作自定義 Azure CycleCloud 範本
  • 工作 4:啟動新的叢集並檢查其記憶體組態

工作 1:安裝和設定 Azure CycleCloud CLI

此練習和後續練習中的大部分管理工作都會使用 Azure CycleCloud CLI,因此您會從安裝 Azure CycleCloud 應用程式並將其聯機到您的 Azure CycleCloud 應用程式開始。 為了簡化初始設定,您將使用 Azure Cloud Shell。

備註

或者,您也可以登入裝載 Azure CycleCloud 應用程式的 Azure VM,其中已安裝 Azure CycleCloud CLI。

  1. 從您的計算機,啟動任何與 Azure 入口網站相容的網頁瀏覽器、流覽至 Azure 入口網站,並在出現提示時,使用Microsoft帳戶或具有 Azure 訂用帳戶中參與者或擁有者角色的 Microsoft Entra 帳戶進行驗證,您將在本課程模組中使用。

    備註

    Azure 入口網站支援最常見的新式網頁瀏覽器,包括目前版本的 Microsoft Edge、Google Chrome、Mozilla Firefox 和 Apple Safari。

  2. 從 Azure 入口網站中,選取搜尋文字框旁工具列中的圖示,以開啟 Cloud Shell

  3. 如果系統提示您選取 [Bash] 或 [PowerShell],請選取 [Bash]

    備註

    如果這是您第一次啟動 Azure Cloud Shell,而且您會看到 [您沒有掛接記憶體 的訊息],請選取您在此練習中所使用的訂用帳戶,然後選取 [ 建立記憶體]。

  4. [Azure Cloud Shell ] 窗格中的 Bash 會話中,執行下列命令,將變數的值設定為 Azure CycleCloud 應用程式伺服器的公用 IP 位址(以實際的公用 IP 位址取代佔位符 <public_ip_address> ):

    PIP=<public_ip_address>
    
  5. 執行下列命令以下載包含 Azure CycleCloud 實例特定 CLI 安裝程式的 .zip 檔案:

    curl -O --insecure https://$PIP/static/tools/cyclecloud-cli.zip
    
  6. 連續執行下列命令,以擷取和執行執行 Azure CycleCloud CLI 安裝的腳稿:

    unzip ./cyclecloud-cli.zip
    cd ./cyclecloud-cli-installer
    ./install.sh
    

    備註

    忽略路徑環境變數的相關任何訊息,並繼續下一個步驟。

  7. 執行下列命令來建立與 Azure CycleCloud 實例的連線,其中 <username><password> 佔位元元會使用系統管理員角色指定 Azure CycleCloud 應用程式用戶帳戶的認證:

    cyclecloud initialize --batch --url=https://$PIP --username=<username> --password=<password> --verify-ssl=false
    

    備註

    參數 --verify-ssl 會設定為 false ,以容納 Azure CycleCloud 應用程式以自我簽署憑證或來自不受信任證書頒發機構單位的憑證設定的案例。

  8. 執行下列命令,藉由顯示其保險箱組態來驗證與 Azure CycleCloud 實例的連線:

    cyclecloud locker list
    

    備註

    輸出應該包含向 CycleCloud 註冊的每個 Azure 訂用帳戶及其個別 Azure 記憶體帳戶中個別容器的保險箱名稱。 您應該記錄對應至您想要用於此實驗室之 Azure 訂用帳戶的保險箱名稱,因為稍後在本練習中將會用到它。 命令的輸出格式如下(其中 <locker-name> 佔位元代表保險箱的名稱、 <storage_account_name> 佔位元代表裝載該保險箱的記憶體帳戶名稱,佔 <container_name> 位元代表該儲存體帳戶內的保險箱容器名稱):

    <locker-name> (az://<storage_account_name>/<container_name>)
    

工作 2:設定 Azure CycleCloud Slurm 專案

接下來,您將設定範例 Azure CycleCloud Slurm 專案。 您將從 Azure CycleCloud GitHub 存放庫利用現有的 Slurm 專案。 您將將其擷取至 Azure Cloud Shell 中的主目錄,然後將它上傳至 Azure CycleCloud 保險箱。

  1. 在您的計算機上,在 [Azure Cloud Shell ] 窗格中的 Bash 會話內,執行下列命令來建立專案目錄,並從對應的 GitHub 存放庫擷取 Slurm 專案。

    mkdir ~/cyclecloud-slurm && cd ~/cyclecloud-slurm
    cyclecloud project fetch https://github.com/Azure/cyclecloud-slurm . 
    

    備註

    請務必在第二個命令結尾包含尾端的句號。

  2. 執行下列命令來指定預設保險箱,並將專案上傳至其中(將佔位元 <locker_name> 取代為您在上一個工作中識別的保險箱名稱,例如 cc-lab-subscription-storage):

    cyclecloud project default_locker <locker_name>
    cyclecloud project upload 
    

    備註

    或者,您可以執行 cyclecloud project upload <locker_name>,其中佔位元 <locker_name> 會指定保險箱名稱。

    備註

    請忽略 azcopy 相關錯誤訊息,指出 Cannot perform sync due to error: sync must happen between source and destination of the same type, e.g., either file <-> file, or directory/container <-> directory/container 只要專案檔的個別複本成功,後面接著 Upload failed! 。 若要確認這一點,請確認最終作業狀態已列為 Completed,且沒有失敗的傳輸。

工作 3:實作自定義 Azure CycleCloud 範本

現在,您將下載並修改與擷取的 GitHub 型專案相容的範例 Azure CycleCloud 範本。 您將使用它來定義自訂記憶體組態,其中包含附加至排程器節點的額外磁碟,並透過網路文件系統 (NFS) 導出。 在此修改之後,您將將其匯入 Azure CycleCloud 應用程式。

備註

您可以流覽至 Azure/cyclecloud-slurm 存放庫,以使用網頁瀏覽器檢查範本的內容。

  1. 在您的電腦上,在顯示 Azure Cloud Shell 窗格中 Bash 工作階段的網頁瀏覽器視窗中,執行下列命令,將工作目錄變更為新擷取的存放庫:

    cd ~/cyclecloud-slurm/templates
    
  2. 執行下列命令來建立原始叢集範本的備份:

    cp slurm.txt slurm.bak.txt
    
  3. 執行下列命令,以在 nano 編輯器中開啟下載的範本:

    nano slurm.txt
    

    備註

    您可以使用任何其他可用的文本編輯器,包括 Azure Cloud Shell 內建編輯器,而不是 nano 編輯器。

  4. 在 nano 編輯器介面內,移至 區 [[node scheduler]] 段。 在該區段中,找出 [[[volume shared]]] 子區段、移至 行 Persistent = ${NFSType == "Builtin"},並在其後面新增下列內容:

    
        # Add 2 premium disks in a RAID 0 configuration to the NFS export
        [[[volume nfs-1]]]
        Size = 128
        StorageAccountType = Premium_LRS
        Mount = nfs
        Persistent = true
    
        [[[volume nfs-2]]]
        Size = 128
        StorageAccountType = Premium_LRS
        Mount = nfs
        Persistent = true
    
        [[[configuration cyclecloud.mounts.nfs]]]
        mountpoint = /mnt/exports/lab
        fs_type = ext4
        raid_level = 0
    
    

    備註

    如果您使用 Windows 計算機,您可以使用 Shift + Insert 按鍵組合來貼上剪貼簿的內容。

    備註

    您的變更會在等量磁碟區中定義兩個 128 GB 進階記憶體磁碟,該磁碟區會在布建期間自動掛接至前端節點。 磁碟區會使用 /mnt/exports/ mountpoint,而且會自動格式化為 ext4 檔案系統。 此 Persistent = true 設定表示磁碟會在您終止叢集時保存,但如果刪除叢集,磁碟就會自動刪除。

    備註

    Azure CycleCloud 會將磁碟區實作為 Azure 受控磁碟。

  5. 在 Nano 編輯器介面中,選取 Ctrl + O 按鍵組合、選取 Enter 鍵,然後選取 Ctrl + X 鍵組合,以儲存您所做的變更並關閉檔案。

    備註

    此時,您可以透過 CLI 使用 Azure CycleCloud 應用程式的連線來匯入範本。

  6. 執行下列命令,將您在上一個工作中修改的範本匯入 Azure CycleCloud 應用程式:

    cyclecloud import_template -f ~/cyclecloud-slurm/templates/slurm.txt
    

    備註

    此命令會顯示匯入的範本名稱、排程器scheduler: Off -- --的狀態和節點總數 (Total nodes: 1)。

工作 4:啟動新的叢集並檢查其記憶體組態

為了結束此練習,您將確認您匯入 Azure CycleCloud 應用程式的範本會藉由建立新的叢集並檢閱其前端節點的記憶體組態,以確保其包含包含兩個永續性磁碟的磁碟區來提供預定的功能。

  1. 在您的電腦上,開啟另一個瀏覽器視窗並流覽至 https://< IP_address> URL(以 <Azure CycleCloud 應用程式伺服器的公用 IP 位址取代IP_address> 佔位符)。 如果出現提示,請確認您要繼續。

  2. 如果系統提示您進行驗證,請提供您用來設定 Azure CycleCloud CLI 之相同 Azure CycleCloud 應用程式使用者帳戶的認證來登入。

  3. 在 Azure CycleCloud 圖形化介面中,流覽至 [ 叢集] 頁面,然後選取 +

  4. 在 [ 建立新叢集] 頁面上,選取標示為 Slurm 的圖示,其格式為 isosceles 三角形,每個頂點都有小圓圈。

    Azure CycleCloud Web 應用程式的 [建立新叢集] 頁面的螢幕快照。

  5. 在 [新增 Slurm 叢集] 頁面的 [關於] 索引卷標上,於 [叢集名稱] 文本框中輸入 contoso-custom-slurm-lab-cluster

    Azure CycleCloud Web 應用程式 [新增 Slurm 叢集] 頁面的 [關於] 索引卷標螢幕快照。

  6. 在 [新增 Slurm 叢集] 頁面的 [必要設定] 索引標籤上,設定下列設定(讓其他人保留預設值),然後選取 [下一步]:

    設定 價值觀
    區域 選取您想要在此練習中部署叢集的 Azure 區域名稱。
    排程器 VM 類型 在 [選取計算機類型] 彈出視窗中選取 [選擇]。 在 [ SKU 搜尋 ] 文本框中,輸入 D4s_v3。 在結果清單中,選取 D4s_v3 專案旁的複選框,然後選取 [ 套用]。

    備註

    請確定您選取支援 Azure 記憶體進階層的 VM 大小,這是根據自定義組態布建前端節點磁碟所需的 VM 大小。

    設定 價值觀
    最大 HPC Cores 輸入 100
    最大HTC 核心數 輸入 100
    每個調整集的 VM 數目上限 輸入 40
    子網路識別碼 選取 cyclecloud-rg:cyclecloud-rg-vnet-contoso-slurm-lab-cluster-subnet
  7. 在 [新增 Slurm 叢集] 頁面的 [網络連接記憶體] 索引標籤上,確認 [NFS 類型] 已設定為 [內建],接受 [大小] (GB) 的預設值設定為 100,然後選取 [下一步]。

    Azure CycleCloud Web 應用程式 [新增 Slurm 叢集] 頁面的 [網络連接記憶體] 索引標籤螢幕快照。

  8. 在 [新增 Slurm 叢集] 頁面的 [進階設定] 索引標籤上,檢閱可用的選項而不進行任何變更,然後選取 [下一步]。

    Azure CycleCloud Web 應用程式 [新增 Slurm 叢集] 頁面的 [進階設定] 索引卷標螢幕快照。

  9. 在 [新增 Slurm 叢集] 頁面的 [Cloud-init] 索引卷標上,檢閱可用的選項而不進行任何變更,然後選取 [儲存]。

  10. contoso-custom-slurm-lab-cluster 頁面上,選取 [ 開始] 連結。 當系統提示您確認時,請選取 [ 確定]。

    在 Azure CycleCloud Web 應用程式中處於關閉狀態的 contoso-slurm-lab-cluster 的 [節點] 索引標籤面螢幕快照。

  11. 監視啟動程式。

    備註

    此程式牽涉到布建 Azure VM,以擔任叢集主要節點、安裝及設定 Swarm 排程器的角色,以及建立和掛接磁碟區。 這大約需要五分鐘的時間。

  12. 排程器節點的狀態變更為 [就緒] 之後,請選取 [ 節點] 索引標籤上的專案,然後選取 [ 顯示詳細 數據] 以顯示其詳細檢視。

    contoso-custom-slurm-lab-cluster 之排程器節點的 [節點] 索引卷標螢幕快照。

  13. contoso-custom-slurm-lab-cluster 叢集彈出視窗中 ,切換至 [ 節點 ] 索引卷標,捲動至 [ 磁盘 區] 區段,並確認磁碟區清單上顯示 nfs-1nfs-2 的專案。

    已設定兩個額外NFS磁碟區之叢集詳細檢視的 [節點] 索引標籤面螢幕快照。

祝賀! 您已成功完成此課程模組的第一個練習。 在此練習中,您會根據自定義的 Azure CycleCloud 範本實作叢集。 您已使用 Azure CycleCloud CLI 匯入裝載於 Azure CycleCloud GitHub 存放庫中的範例專案,包括其中一個範本的自定義複本。 接下來,您已使用 Azure CycleCloud 圖形化介面,根據匯入的範本建立叢集、啟動叢集,並確認自定義變更生效。

備註

如果您打算在此課程模組中執行下一個練習,請勿刪除您在此練習中部署和設定的資源。 您需要這些資源,才能完成下一個練習。