共用方式為


Azure AI 搜尋服務中的可靠性

Azure AI 搜尋服務 是可調整的搜尋基礎結構,可為異質內容編製索引,並透過 API、應用程式和 AI 代理程式進行擷取。 它適用於企業搜索場景和需要通過聊天完成模型生成動態內容的 AI 驅動客戶體驗。 作為 Azure 服務,AI 搜尋服務提供一系列功能來支援您的可靠性需求。

當您使用 Azure 時, 可靠性是共同的責任。 Microsoft 提供一系列功能來支援韌性和復原。 您有責任瞭解這些功能在您使用的所有服務中如何運作,並選取符合業務目標和正常運作時間目標所需的功能。

本文說明如何讓 Azure AI 搜尋服務復原各種潛在的中斷和問題,包括暫時性錯誤、可用性區域中斷、區域中斷和服務維護。 它也會說明如何使用備份從其他類型的問題復原,並醒目提示 Azure AI 搜尋服務等級協定 (SLA) 的一些重要資訊。

可靠性的生產部署建議

針對生產工作負載,我們建議您:

  • 使用計費層級,該層級至少有兩個複本。 此組態可讓您的搜尋服務更具彈性且能抵禦暫時性錯誤和維護作業。 它還符合 AI 搜尋的服務等級協定 (SLA)。 SLA 要求唯讀工作負載有兩個複本,讀寫工作負載需要三個或更多複本。
  • 請勿將免費方案用於生產用途。 AI 搜尋不提供免費層的 SLA,且限於一個複本。

可靠性架構概觀

當您使用 AI 搜尋時,您會建立 搜尋服務。 每個搜尋服務都支援多個搜尋索引來儲存可搜尋的內容。

AI 搜尋並非設計為主要資料存放區。 取而代之的是,您可以使用索引子來將搜尋服務連線到外部資料來源。 索引子會爬梳來源資料、叫用執行處理和擴充的技能,並使用技能輸出填入索引。

您也可以設定服務的複本數目。 在 AI 搜尋服務中,複本是您服務搜尋引擎的副本。 您可以將複本視為代表單一虛擬機器 (VM)。 每個搜尋服務可以有 1 到 12 個複本。

新增多個複本可讓 AI 搜尋服務:

  • 提高搜尋服務的可用性。

  • 在一個複本上執行維護,同時查詢繼續在其他複本上執行。

  • 處理更高的編製索引和查詢工作負載。

  • 如果您的區域支援,請嘗試在不同的可用區域中佈建複本,以改善復原能力。

AI Search 會自動將一個複本指派為 主要複本。 所有寫入作業都會針對該複本執行。 其他複本會用於讀取作業。

下圖說明了具有三個複本的搜尋服務如何分散在三個可用性區域中:

顯示具有三個複本的 AI 搜尋服務的圖表。讀取作業會傳送至所有複本,而寫入作業會傳送至主要複本。

您也可以配置 分割區數目,代表搜尋索引所使用的儲存體。

請務必瞭解新增複本和分割區的影響,因為它們各自以不同的方式影響讀取和寫入效能。 如需複本和分割區的詳細資訊,請參閱估計和管理搜尋服務的容量 (部分機器翻譯)。

對瞬態故障的彈性

暫時性錯誤是元件中的短暫間歇性失敗。 它們經常出現在雲端等分散式環境中,而且是作業的一般部分。 暫時性錯誤會在短時間內自行修正。 請務必確保您的應用程式能妥善處理暫時性錯誤,通常透過重試受影響的請求來進行。

所有雲端裝載的應用程式在與任何雲端裝載的 API、資料庫和其他元件通訊時,都應該遵循 Azure 暫時性錯誤處理指引。 如需詳細資訊,請參閱 處理暫時性錯誤的建議

AI 搜尋索引器具有內建的暫時性錯誤處理功能。 如果資料來源暫時無法使用,索引子的設計目的是復原並重試。 它會使用變更追蹤功能,自上次成功編製索引的文件開始,繼續進行索引作業。

搜尋服務可能會在標準、未排程的維護作業期間遇到暫時性錯誤。 Azure AI 搜尋不會提供事先通知,也不能讓您在特定時間排程維護。 儘管盡一切努力將停機時間降至最低,但即使對於單一複本服務,仍然可能會發生短暫的中斷情況。 若要增強對這些暫時性錯誤的抵抗力,建議您使用兩個或多個副本。

如果您建置任何與 AI 搜尋互動的應用程式,它們應該處理暫時性錯誤。 針對讀取和寫入作業使用具有指數退避的重試機制。

對可用性區域故障的抵抗力

可用性區域 是 Azure 區域內物理上獨立的資料中心群組。 當某個區域發生故障時,服務可以切換至其他剩餘的區域。

AI 搜尋服務具備區域備援功能,這表示您的複本分佈在搜尋服務地區內的多個可用性區域之間。

當您將兩個或多個複本新增至服務時,AI Search 會嘗試將每個複本放在不同的可用性區域中。 對於複本多於可用區域的服務,複本會盡可能平均地分散在區域之間。

下圖說明了如何在三個可用性區域之間部署具有四個複本的範例搜尋服務:

顯示 AI 搜尋服務的圖表,其中四個複本分佈在三個可用性區域中。

這很重要

AI 搜尋不保證副本的準確位置。 放置受限於容量限制、縮放作業和其他因素。

需求

當您的搜尋服務符合下列所有準則時,會自動啟用區域備援:

  • 地區支援: 可用性區域的支援取決於基礎結構和儲存。 如需支援區域的清單,請參閱 選擇 AI 搜尋的區域

  • 等級: 您的服務必須是 基本層或更高層級

  • 複本數量: 您的服務必須 至少有兩個複本

    備註

    當您有兩個或多個複本時,AI Search 會嘗試將複本分散到多個區域。 不過,對於讀寫工作負載,您應該使用三個以上副本,以確保獲得盡可能高的可用性服務水平協議 (SLA)。

跨區域分佈的執行個體

AI 搜尋會嘗試將複本放置在不同的可用性區域中。 不過,有時可能會將搜尋服務的所有複本放置在同一個可用區域中。 當從您的服務中移除複本時,可能會發生這種情況,例如當您透過設定服務以使用更少的複本來進行縮減時。 複本移除不會觸發剩餘複本在可用性區域之間重新平衡。

為了減少所有複本被放置到單一可用區域的可能性,您可以在縮減作業之後立即手動觸發擴充作業。 例如,假設您的搜尋服務有 10 個複本,而您想要縮減至 7 個複本。 您無需執行單一擴充作業,而是可以暫時擴充到 6 個執行個體,然後立即擴充到 7 個執行個體以觸發區域重新平衡。

費用

每個搜尋服務都會以一個副本開頭。 區域備援需要兩個或多個複本,這會增加執行服務的成本。 若要了解複本的計費影響,請使用 定價計算機

設定可用性區域支援

如果您的搜尋服務符合 區域備援的需求,則不需要額外的設定。 只要有可能,AI 搜尋就會嘗試將您的複本放在不同的可用性區域中。

容量規劃和管理

為了應對可用性區域失效的情況,請考慮過度佈建複本數。 過度佈建可讓搜尋服務容忍一些容量遺失,並繼續運作而不會降低效能。 在中斷期間新增複本具有挑戰性,因此超額配置有助於確保您的搜尋服務可以處理正常的要求量,即使容量減少也是如此。 如需詳細資訊,請參閱 透過過度佈建來管理容量

所有區域都狀況良好時的行為

本節說明當搜尋服務為了區域備援而設定且所有可用性區域都可正常運作時,應可預期的行為。

  • 區域之間的流量路由: AI 搜尋會對所有可用複本的所有查詢和寫入執行自動負載平衡。 AI 搜尋服務可以將讀取作業傳送至任何可用區域中的任何複本。 它會將寫入作業傳送至 AI 搜尋服務選取的單一主要複本。

  • 區域之間的資料複寫: 資料變更會在跨可用性區域的複本之間自動複寫。 複寫會以非同步方式進行,這表示寫入會先提交至一個主要複本,然後再複寫到其他複本。

區域失敗期間的行為

本節說明當搜尋服務設定為區域備援,且發生可用性區域中斷時,預期會發生什麼。

  • 檢測和應對: AI 搜尋負責偵測可用性區域中的失敗。 您不需要執行任何動作即可起始區域容錯移轉。
  • 作用中的要求:複本在失效區域中處理的要求會被終止。 用戶端應該遵循 處理暫時性錯誤的指引來重試要求。

  • 預期資料遺失: 如果受影響的可用區域僅包含僅供讀取複本,則預期不會遺失資料。

    如果主要複本因為它位於受影響的區域中而遺失,則任何尚未複寫的寫入作業都可能會遺失。

  • 預期停機時間: 在大部分情況下,區域失敗通常不會導致搜尋服務在讀取作業中停機,因為其他可用性區域中的讀取複本會繼續處理要求。

    如果主要複本因為位於受影響的區域而遺失,AI Search 會自動將另一個複本升級為新的主要複本,以便繼續寫入作業。 複本升級通常需要幾秒鐘的時間。 在此期間,寫入作業可能不會成功。 確定您的應用程式已遵循暫時性錯誤處理指導來做好準備。

    不過,在某些不太可能的情況下,您的所有搜尋服務的複本可能都在單一可用性區域中。 在此案例中,您可能會遇到停機,直到區域復原為止。 如需詳細資訊並了解因應措施,請參閱執行個體分佈

  • 流量重新路由傳送:當某個區域發生失效情況時,AI 搜尋服務會偵測到該失效情況並將要求路由傳送到倖存區域中的作用中複本。 如果主要複本遺失,則會將另一個複本升級為新的主要複本。

區域復原

當可用性區域復原時,AI Search 會自動還原正常作業,並開始將流量路由至所有區域 (包括復原區域) 的可用複本。

測試區域失敗

AI 搜尋服務會管理區域冗餘服務的流量路由。 您不需要啟動或驗證任何區域故障程序。

對區域範圍故障的復原能力

AI 搜尋是一項單一區域服務。 如果區域變成無法使用,您的搜尋服務也會變成無法使用。

自訂多區域解決方案,以實現復原能力

您可以選擇在不同區域部署多個 AI 搜尋服務。 您負責在每個地區中部署和設定個別的服務。 如果您在使用多區域架構的次要 Azure 區域中建立相同的部署,您的應用程式會較不容易受到單一區域災難的影響。

當您遵循此方法時,必須跨區域同步處理索引,才能復原最後一個應用程式狀態。 您也必須設定負載平衡和故障轉移原則。

為了最佳化整體解決方案的效能,請尋找機會來對資料來源的唯讀複本執行索引編製。 例如,某些索引子支援從地理分散式資料來源的讀取複本中讀取。

如需詳細資訊,請參閱 Azure AI 搜尋中的多區域部署

備份與還原

由於 AI 搜尋不是主要資料儲存解決方案,因此不提供自助式備份和還原選項。 不過,您可以使用index-backup-restorePython範例,將索引定義及其文件備份到一系列 JSON 檔案,然後用來還原索引。

不過,如果您不小心刪除索引,而且沒有備份,您可以 重建索引。 重建牽涉到重新建立搜尋服務的索引,然後從主要數據存放區擷取數據來重載索引。

服務等級協定

Azure 服務的服務等級協定 (SLA) 描述服務的預期可用性,以及解決方案必須符合才能達到該可用性預期的條件。 如需詳細資訊,請參閱 在線服務的 SLA

在 AI 搜尋中,可用性 SLA 適用於符合下列條件的搜尋服務:

  • 會設定為使用可計費的層級
  • 至少有兩個複本用於唯讀工作負載 (查詢)。
  • 至少有三個複本用於讀寫工作負載 (查詢和編製索引)。