共用方式為


鄰近位置群組

適用於: ✔️ Linux 虛擬機 ✔️ Windows 虛擬機 ✔️ 彈性擴充集 ✔️ 統一擴充集

將 VM 放在單一區域中可減少實例之間的實體距離。 將它們放在單一可用性區域內,也會讓它們實際更緊密地結合在一起。 不過,隨著 Azure 使用量的增長,單一可用性區域可能會跨越多個實體數據中心,這可能會導致網路等待時間影響您的應用程式。

若要讓 VM 盡可能接近,達到最低的延遲,您應該將它們部署在鄰近放置群組內。

鄰近放置群組是邏輯群組,可用來確保 Azure 計算資源實際位於彼此接近的位置。 鄰近放置群組對需要低延遲的工作負載非常有用。

  • 獨立 VM 之間的低延遲。
  • 單一可用性設定組中 VM 或虛擬機擴展集之間的低延遲。
  • 獨立 VM、多個可用性設定組中的 VM 或多個擴展集之間的低延遲。 您可以在單一放置群組中有多個計算資源,以將多層式應用程式結合在一起。
  • 使用不同硬體類型之多個應用層之間的低延遲。 例如,在可用性設定組中使用 M 系列來執行後端,並在單一鄰近放置群組的擴展集中的 D 系列實例上執行前端。

鄰近放置群組的圖形

使用鄰近放置群組

鄰近放置群組是 Azure 中的資源。 您必須先建立一個,才能搭配其他資源使用。 建立之後,即可與虛擬機、可用性設定組或虛擬機擴展集搭配使用。 建立提供鄰近放置群組標識符的計算資源時,您可以指定鄰近放置群組。

您也可以將現有的資源移至鄰近放置群組。 在將資源移入近端放置群組時,您應該先停止(解除分配)此資產,因為它可能會被重新部署到區域內的不同資料中心,以滿足共置限制。

在可用性設定組和虛擬機擴展集的情況下,您應該在資源層級設定鄰近放置群組,而不是個別的虛擬機。

鄰近放置群組是共置條件約束,而不是釘選機制。 它會在第一次部署要使用它的資源時被固定到特定的資料中心。 當使用鄰近放置群組的所有資源都已停止(解除分配)或刪除之後,這些資源就不再附屬於該群組。 因此,每當您搭配多個 VM 系列使用鄰近放置群組時,請務必盡可能在範本中指定所有必要的類型,或遵循部署順序,這可改善成功部署的機會。 如果您的部署失敗,請使用 VM 大小重新啟動部署,因為第一個部署大小失敗。

使用意圖來指定 VM 大小

您可以使用選擇性 intent 參數來提供預定的 VM 大小 ,以作為鄰近放置群組的一部分。 您可以在建立鄰近放置群組時指定此參數,或在解除分配所有 VM 之後更新鄰近放置群組時新增/修改此參數。

指定 intent時,您也可以新增選擇性 zone 參數來指定可用性區域,指出必須在特定可用性區域內建立鄰近放置群組。 提供 參數時 zone ,請注意下列幾點:

  • 可用性區域參數只能在建立鄰近放置群組期間提供,且稍後無法修改。
  • zone參數只能搭配 intent使用,不能單獨使用。
  • 只能指定一個可用性區域。

鄰近放置群組的建立或更新只有在至少有一個數據中心能夠支援所選定的全部 VM 大小時才會成功。 否則,建立或更新將會失敗,並且顯示「OverconstrainedAllocationRequest」錯誤,這表示在鄰近放置群組內無法支援該 VM 大小的組合。 意圖不提供任何容量保留或保證。 中 intent 提供的 VM 大小和區域可用來選取適當的數據中心,如果數據中心內沒有所需的 VM 大小,可減少失敗的機會。 如果在部署時某一虛擬機器的類型沒有足夠資源,仍可能會發生配置失敗。

備註

若要將鄰近放置群組用於指定用途,請確保 API 版本為 2021-11-01 或更高版本。

使用意圖時的最佳做法

  • 只有在指定意圖的時候,才提供可用性區域供鄰近放置群組使用。 在沒有意圖的情況下提供可用性區域會導致建立鄰近放置群組時發生錯誤。
  • 如果您在意圖中提供可用性區域,請確定您部署的 VM 可用性區域符合意圖中指定的專案,以避免部署 VM 時發生錯誤。
  • 可以建立或新增未在計劃中設定大小的 VM,但不建議這麼做。 選取的數據中心中可能不存在該規格,而且可能會在 VM 部署時導致失敗。
  • 針對現有的放置群組,建議您在更新意圖時包含現有 VM 的大小,以避免在重新部署 VM 時失敗。

意圖可能會因停用而受到影響

  • 在建立具有意圖的鄰近放置群組,以及在部署 VM 之前,可能會發生如 Azure 資料中心硬體解除委任等計劃性維護事件,導致數據中心內未提供意圖中指定的 VM 大小組合。 在這種情況下,即使部署意圖中指定的 VM 大小,也會發生「OverconstrainedAllocationRequest」錯誤。 您可以嘗試解除分配鄰近放置群組中的所有資源,並重新建立這些資源,以取得可容納意圖的數據中心。 如果退役後沒有具有指定 VM 大小的資料中心,您可能需要改變計劃,以使用不同的 VM 大小組合,因為這些 VM 大小的組合不再受支援。
  • Azure 可能會淘汰整個 VM 系列或一組特定的 VM 大小。 如果您的意圖中包含這類 VM 大小,您可能需要在原始 VM 大小的淘汰日期之前,移除或替換成不同大小。 否則,意圖將不再有效。

使用鄰近放置群組時可預期的結果

鄰近放置群組會在相同的資料中心內提供共置。 不過,因為鄰近放置群組代表額外的部署條件約束,所以可能會發生配置失敗。 使用鄰近放置群組時,您可能會看到配置失敗的幾個使用案例:

  • 當您要求鄰近放置群組中的第一部虛擬機器時,系統會自動選取資料中心。 在某些情況下,如果該資料中心沒有不同的 VM 大小,第二次要求可能會失敗。 在此情況下,會傳回 OverconstrainedAllocationRequest 錯誤。 若要避免此錯誤,請嘗試變更您部署 VM 大小的順序,或使用單一 ARM 範本部署這兩個資源。
  • 如果鄰近放置群組是以意圖建立,則不需要以任何特定順序部署 VM,而且不需要使用單一 ARM 範本進行批處理,因為意圖是用來選取支援意圖中所指示之所有 VM 大小的數據中心。
  • 在彈性工作負載的情況下,如果您增加或移除 VM 實例,在部署中設置鄰近放置群組的限制可能會導致無法滿足要求,從而產生 AllocationFailure 錯誤。
  • 停止 (解除配置) 並視需要啟動 VM 是達成彈性的另一種方式。 由於容量在您停止(解除分配)VM 後不會保留,因此重新啟動它可能會導致 AllocationFailure 錯誤。
  • VM 的啟動和重新部署作業將會繼續遵守已順利設定的鄰近放置群組。

計劃性維護和鄰近放置群組

計劃性維護事件,例如 Azure 數據中心的硬體退役,可能影響鄰近放置群組中資源的排列。 資源可能會移至不同的數據中心,並中斷與就近放置群組相關聯的佈局和延遲預期值。

檢查對齊狀態

您可以執行下列動作來檢查鄰近放置群組的對齊狀態。

  • 您可以使用入口網站、命令列介面 (CLI) 和 PowerShell 來查看鄰近放置群組的共置狀態。

    • PowerShell - 共置狀態可透過 Get-AzProximityPlacementGroup cmdlet 取得,方法是包含選擇性參數 '-ColocationStatus'。

    • CLI - 共置狀態可透過 az ppg show 包含選擇性參數 '--include-colocation-status' 來取得。

  • 對於每個鄰近放置群組, 共置狀態 屬性會提供群組資源的目前對齊狀態摘要。

    • 對齊:資源位於鄰近放置群組的相同延遲範圍內。

    • 未知:至少有一個 VM 資源已解除分配。 成功重新啟動它們之後,狀態應該會回到 Aligned

    • 未對齊:至少有一個 VM 資源與鄰近放置群組不一致。 未對齊的特定資源也會在成員資格區段中個別呼叫

  • 針對可用性設定組,您可以在 [可用性設定組概觀] 頁面中查看個別 VM 的對齊方式相關信息。

  • 針對擴展集,您可以在擴展集 [概觀] 頁面的 [實例] 索引標籤中看到個別實例對齊的相關信息。

重新調整資源

如果鄰近放置群組為 Not Aligned,您可以停止\解除分配,然後重新啟動受影響的資源。 如果 VM 位於可用性設定組或規模集,必須先停止並解除配置可用性設定組或規模集中的所有 VM,再重新啟動它們。

如果因為部署條件約束而發生配置失敗,您可能必須先停止\解除分配受影響鄰近放置群組中的所有資源(包括對齊的資源),然後再重新啟動它們以還原對齊。

最佳做法

  • 為了達到最低延遲,請使用鄰近放置群組搭配加速式網路。 如需詳細資訊,請參閱 使用加速網路建立Linux虛擬機使用加速網路建立 Windows 虛擬機
  • 為了避免在不支援所有 VM SKU 和所需大小的硬體上登陸,請使用鄰近放置群組的意圖。 如果它是現有的鄰近放置群組,但沒有意圖,您可以使用單一 ARM 範本搭配指定的所有 VM 大小,以避免此問題。
  • 重複使用已刪除 VM 的現有放置群組時,請先等候刪除作業完成,再將 VM 新增至其中。
  • 如果延遲是您的第一個優先要務,請將 VM 放在鄰近放置群組中,並將整個解決方案放在可用性區域中。 但是,如果復原是您最優先的要務,請將執行個體分散到多個可用性區域 (單一鄰近放置群組無法跨越區域)。

後續步驟