練習 - 將磁碟新增至 HPC 叢集的排程器節點
Azure CycleCloud 須依賴範本來定義叢集設定。 其預設實作包括常見排程器的內建範本,但您可以在 Azure CycleCloud GitHub 存放庫中找到其他數個範本。
回想一下,先前您想要測試使用自訂 Azure CycleCloud 範本來實作叢集的程序。 為此,您將利用裝載 Microsoft 精選 Slurm 專案的 Azure CycleCloud GitHub 存放庫。 您將藉由變更排程器節點的儲存體設定來修改此存放庫中現有的叢集範本、將新修改的範本匯入 Azure CycleCloud 應用程式中、使用應用程式的圖形化介面來建立叢集,最後驗證儲存體設定變更。
重要
若要完成此課程模組中的練習,您必須達成下列必要條件:
- 擁有在三種大小的 VM 群組中具有可用 vCPU 核心的 Azure 訂用帳戶:
- 至少 4 個屬於 DSv3 系列的 vCPU 核心
- 至少 100 個屬於 FSv2 系列的 vCPU 核心
- 至少 48 個屬於 NC 系列的 vCPU 核心
- 擁有在 Azure 訂用帳戶中具有「擁有者」或「參與者」角色的 Microsoft 帳戶或 Microsoft Entra 帳戶。
- 使用與網路介面相關聯的公用 IP 位址,將 Azure CycleCloud 應用程式部署至可存取的 Azure VM。
- 設定具有 Azure 訂用帳戶的「擁有者」或「參與者」角色層級存取權的 Azure CycleCloud 應用程式。
- 擁有具有系統管理員角色的 Azure CycleCloud 應用程式使用者帳戶。
- 建立可在其中部署叢集節點的 Azure 虛擬網路子網路。
- 擁有用來設定 Azure CycleCloud 應用程式之 SSH 金鑰組的私密金鑰。
注意
在此課程模組的最後一個練習中,您將需使用私密金鑰直接連線至叢集節點。
在此練習中,您將執行下列工作:
- 工作 1 - 安裝和設定 Azure CycleCloud CLI
- 工作 2:設定 Azure CycleCloud Slurm 專案
- 工作 3:實作自訂 Azure CycleCloud 範本
- 工作 4:啟動新的叢集並檢查其儲存體設定
工作 1 - 安裝和設定 Azure CycleCloud CLI
在此練習和後續練習中,大部分的管理工作都使用 Azure CycleCloud CLI,因此您應先加以安裝,並將其連線至您的 Azure CycleCloud 應用程式。 若要簡化初始設定,您應使用 Azure Cloud Shell。
注意
或者,您可以登入裝載 Azure CycleCloud 應用程式的 Azure VM,其中也已安裝 Azure CycleCloud CLI。
如有需要,請從您的電腦啟動 Azure 入口網站相容的任何網頁瀏覽器,瀏覽至 Azure 入口網站,然後在出現提示時,使用 Microsoft 帳戶或 Microsoft Entra 帳戶 (在您於本課程模組使用的 Azure 訂用帳戶中具有「參與者」或「擁有者」角色) 進行驗證。
注意
Azure 入口網站支援最常見的新式網頁瀏覽器,包括最新版的 Microsoft Edge、Google Chrome、Mozilla Firefox 和 Apple Safari。
在 Azure 入口網站中開啟 [Cloud Shell],方法是在搜尋文字方塊旁的工具列中選取其圖示。
如果系統提示您選取 [Bash] 或 [PowerShell],請選取 [Bash]。
注意
如果這是您第一次啟動 Azure Cloud Shell,而且出現「您未掛接任何儲存體」訊息,請選取您在此練習中使用的訂閱,然後選取 [建立儲存體]。
在 [Azure Cloud Shell] 窗格的 Bash 工作階段中,執行下列命令,將變數的值設定為 Azure CycleCloud 應用程式伺服器的公用 IP 位址 (請將預留位置
<public_ip_address>
取代為實際的公用 IP 位址):PIP=<public_ip_address>
執行下列命令,以下載包含 Azure CycleCloud 執行個體專用 CLI 安裝程式的 .zip 檔案:
curl -O --insecure https://$PIP/static/tools/cyclecloud-cli.zip
依序執行下列命令,以擷取並執行將執行 Azure CycleCloud CLI 安裝的指令碼:
unzip ./cyclecloud-cli.zip cd ./cyclecloud-cli-installer ./install.sh
注意
忽略關於路徑環境變數的任何訊息,並繼續進行下一個步驟。
執行下列命令以建立與 Azure CycleCloud 執行個體的連線,其中,
<username>
和<password>
預留位置會指定具有系統管理員角色的 Azure CycleCloud 應用程式使用者帳戶的認證:cyclecloud initialize --batch --url=https://$PIP --username=<username> --password=<password> --verify-ssl=false
注意
設定為
false
的--verify-ssl
參數,可因應為 Azure CycleCloud 應用程式設定了自我簽署憑證,或其憑證由未受信任憑證授權單位提供的案例。執行下列命令,藉由顯示保險箱設定來確認已連線至 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 保險箱。
在電腦上,從 [Azure Cloud Shell] 窗格中的 Bash 工作階段執行下列命令,以建立專案目錄,並從對應的 GitHub 存放庫將 Slurm 專案擷取到其中。
mkdir ~/cyclecloud-slurm && cd ~/cyclecloud-slurm cyclecloud project fetch https://github.com/Azure/cyclecloud-slurm .
注意
請務必在第二個命令的結尾包含尾端句號。
執行下列命令以指定預設的保險箱,並將專案上傳到其中 (將預留位置
<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 存放庫,以網頁瀏覽器檢查範本的內容。
在電腦上顯示 Bash 工作階段的網頁瀏覽器視窗中,從 [Azure Cloud Shell] 窗格中執行下列命令,以將工作目錄切換至新擷取的存放庫:
cd ~/cyclecloud-slurm/templates
執行下列命令來建立原始叢集範本的備份:
cp slurm.txt slurm.bak.txt
執行下列命令,以在 nano 編輯器中開啟下載的範本:
nano slurm.txt
注意
您可以使用任何其他可用的文字編輯器 (包括 Azure Cloud Shell 內建編輯器),而不使用 nano 編輯器。
在 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 按鍵組合來貼上剪貼簿的內容。
注意
您的變更在等量磁碟區中定義 2 個 128 GB 的進階儲存體磁碟,將在佈建期間自動掛接到前端節點。 磁碟區將會使用 /mnt/exports/ 掛接點,且會自動格式化為 ext4 檔案系統。
Persistent = true
設定指出當您終止叢集時,磁碟將會保存,但如果您刪除叢集,磁碟則會自動刪除。注意
Azure CycleCloud 將磁碟區實作為 Azure 受控磁碟。
在 Nano 編輯器介面中,依次選取 Ctrl + O 按鍵組合、Enter 鍵和 Ctrl + X 按鍵組合,以儲存您所做的變更,並關閉檔案。
注意
現在,您可以透過 CLI 使用您的 Azure CycleCloud 應用程式連線來匯入範本。
執行下列命令,將您在先前的工作中修改的範本匯入 Azure CycleCloud 應用程式中:
cyclecloud import_template -f ~/cyclecloud-slurm/templates/slurm.txt
注意
此命令會顯示已匯入的範本名稱、排程器的狀態 (
scheduler: Off -- --
) 以及總節點數 (Total nodes: 1
)。
工作 4:啟動新的叢集並檢查其儲存體設定
在結束本練習時,您將確認您匯入 Azure CycleCloud 應用程式的範本會藉由建立新的叢集並檢閱其前端節點的記憶體設定,以確保其包含由兩個永續性磁碟所組成的磁碟區來提供預定的功能。
在您的電腦上開啟另一個瀏覽器視窗,然後瀏覽至 https://<IP_address> URL (請將 <IP_address> 預留位置取代為 Azure CycleCloud 應用程式伺服器的公用 IP 位址)。 如果出現提示,請確認您要繼續進行。
如果系統提示您進行驗證,請提供您用來設定同 Azure CycleCloud CLI 的相同 Azure CycleCloud 應用程式使用者帳戶的認證來登入。
在 Azure CycleCloud 圖形化介面中,瀏覽至 [叢集] 頁面,然後選取 +。
在 [建立新的叢集] 頁面上,選取標示為 [Slurm] 的圖示 (每個頂點都有小圓圈的等腰三角形)。
在 [新增 Slurm 叢集] 頁面的 [關於] 索引標籤上,於 [叢集名稱] 文字方塊中,輸入 contoso-custom-slurm-lab-cluster。
在 [新增 Slurm 叢集] 頁面的 [必要的設定] 索引標籤上,進行下列設定 (將其他設定保留為預設值),然後選取 [下一步]:
設定 值 區域 在此練習中,選取您想要在其中部署叢集的 Azure 區域名稱。 排程器 VM 類型 在 [選取機器類型] 快顯視窗中,選取 [選擇]。 在 [SKU 搜尋] 文字方塊中,輸入 D4s_v3。 在結果清單中,選取 [D4s_v3] 項目旁邊的核取方塊,然後選取 [套用]。 注意
確定您選取的 VM 大小支援 Azure 儲存體的進階層級,根據您的自訂設定,必須要有此層級才能佈建前端節點的磁碟。
設定 值 最大 HPC 核心 輸入 100。 最大 HTC 核心 輸入 100。 每個擴展集的 VM 數目上限 輸入 40。 子網路識別碼 選取 cyclecloud-rg: cyclecloud-rg-vnet-contoso-slurm-lab-cluster-subnet。 在 [新增 Slurm 叢集] 頁面的 [網路連接儲存裝置] 索引標籤上,確認已將 [NFS 類型] 設定為 [內建]、接受已設為 100 的 [大小 (GB)] 預設值,然後選取 [下一步]。
在 [新增 Slurm 叢集] 頁面的 [進階設定] 索引標籤上,檢閱可用選項而不進行任何變更,然後選取 [下一步]。
在 [新增 Slurm 叢集] 頁面的 [Cloud-init] 索引標籤上,檢閱可用選項而不進行任何變更,然後選取 [儲存]。
在 [contoso-custom-slurm-lab-cluster] 頁面上,選取 [開始] 連結。 提示您確認時,請選取 [確定]。
監視啟動流程。
注意
此程序牽涉到佈建 Azure VM 以作為叢集的主要節點角色、安裝和設定 Swarm 排程器,以及建立和掛接磁碟區。 這大約需要五分鐘的時間。
當排程器節點的狀態變更為 [就緒] 之後,請在 [節點] 索引標籤上選取其項目,然後選取 [顯示詳細資料] 以顯示其詳細檢視。
在 [在 contoso-custom-slurm-lab-cluster 叢集中顯示排程器] 快顯視窗中,切換至 [節點] 索引標籤,捲動至 [磁碟區] 區段,並確認 nfs-1 和 nfs-2 項目顯示於磁碟區清單中。
恭喜! 您已成功完成此課程模組的第一個練習。 在此練習中,您已根據自訂的 Azure CycleCloud 範本實作叢集。 您使用 Azure CycleCloud CLI 匯入了裝載於 Azure CycleCloud GitHub 存放庫中的範例專案,包括其中一個範本的自訂複本。 接下來,您根據匯入的範本,使用 Azure CycleCloud 圖形化介面建立了叢集、加以啟動,並確認自訂變更已生效。
注意
如果您打算在此課程模組中執行下一個練習,請勿刪除您在此練習中部署和設定的資源。 您需要這些資源,才能完成下一個練習。