SharePoint Server 零停機修補步驟
適用於:Subscription Edition SharePoint in Microsoft 365
SharePoint Server 2016、SharePoint Server 2019 和 SharePoint Server 訂閱版本中提供零停機時間修補 (ZDP) 。 當您修補 SharePoint Server 伺服器陣列時,讓使用者繼續處理、儲存及搜尋檔。
零停機修補是在 Microsoft 365 中於 SharePoint 中開發的修補和升級方法。 目的是讓管理員在使用者繼續使用其訂用帳戶的同時修補服務。 換句話說,這個測試過的方法是設計成在人員於 SharePoint Server 伺服器陣列上主動使用其檔案並搜尋編目和轉譯結果時允許進行修補。 這就是「零停機時間」的意義。
討論 ZDP 時需要注意幾件事 (我們將在本文稍後討論這些元素)。
您可以在 SharePoint Server 中使用 MinRole 來增強您的 ZDP 體驗,但 MinRole 並非 必要。
Your farm must leverage high availability (HA) to reap the benefits of ZDP. 高可用性 SharePoint Server 伺服器陣列 是 ZDP 的需求。
請務必記住 ZDP 的目標是讓您的使用者上線,因此在本文中,修補及重新啟動伺服器陣列時所涉及的所有決策都請記住這項偏差。
重要事項
即使 SharePoint Server 伺服器陣列中的所有伺服器都設定為使用「自定義」角色,您仍然可以手動設定高可用性伺服器數位。 有 一些文章 可協助您建構高可用性伺服器陣列,而容錯原則 (備援硬體) 和高可用性 (備妥系統和軟體來支援故障轉移和持續運行時間) 是相同的。 請注意,在更複雜的高可用性或自訂伺服器陣列中,使用支援 HA 的方式修補搜尋伺服器時應該特別小心,例如一次修補一個索引複本,而且絕不要同時修補或升級相同磁碟分割中的索引複本。
ZDP 程序
此範例會使用 MinRole 針對 SharePoint Server 伺服器陣列設定使用 ZDP。 範例環境如下:
若要分割這個結構,兩個 Web 前端 (WFE) (SPWeb01 和 02) 會連接到負載平衡器,而兩者都會在此時派出要求。 有兩部應用程式伺服器 (SPApp01 和 02)、兩部分散式快取伺服器 (SPDCH01 和 02) 以及兩部搜尋伺服器 (SPSRCH01 和 02)。 在這種結構後方但未直接包括在 ZDP 程序中,則是 SQL Server 叢集 (例如,SQL Server Always-On)。
在意識形態上,您可以在本圖的伺服器陣列中間從上到下繪製一條線。 線條的某一端都是結尾為 '01' 的伺服器 (欄 1),而結尾為 '02' 的後援伺服器位在另一端 (欄 2)。 我們將利用這個雙重建構,在修補時讓使用者持續使用伺服器陣列。
在大多數情況下,您對線條某一端執行的所有作業 (對 01 伺服器),都會對 02 完全重複執行。 在相對簡單的兩階段 ZDP 程序所涉及的所有步驟中,使用 WFE (SPWeb01 和 02) 所採取的步驟最為複雜。 我們將從這裡開始。
注意事項
如需 SharePoint Server 軟體更新的一般資訊,請參閱 這裡。 請注意,本文會連結至 SharePoint Server 許可權設定 的檔。 請視需要檢閱這些文章,並記住部分修補會涉及資料庫更新。 例如,如果您已經變更 SharePoint 帳戶後續安裝的 SQL Server 權限,則需要檢閱這些文章。
請確定您已經先重新啟動並測試 WFE,再從負載平衡器取出任一個,避免要先修補的 WFE 不進行輪替且其他 WFE 未處理所產生負載的情況。 修補之前,伺服器陣列中的所有伺服器都應該透過重新開機成為全新狀態且狀況良好。 另外,請考慮在升級或修補期間停止搜尋編目和設定檔匯入。
重要事項
並存執行可確保伺服器陣列中的所有 Web 前端都會在升級期間提供相同的靜態內容,即使正在升級或取代所指定 WFE 上的靜態檔案也是一樣。 並存內建於 PSCONFIG 中,但必須啟用。 這項功能可確保使用者在瀏覽 SharePoint 並使用其檔案時具有相同的網站經驗,即使正在變更和更新檔案系統檔案也是一樣。
若要啟用並存功能,請使用其中一個內容 Web 應用程式的 URL,執行下列 PowerShell 腳本一次:
$webapp = Get-SPWebApplication <webappURL>
$webapp.WebService.EnableSideBySide = $true
$webapp.WebService.update()
自 KB3178672 (2017 年 3 月更新) SharePoint Server 2016 及更新版本, PSCONFIG 會自動將資料夾內 16-HIVE\TEMPLATE\LAYOUTS
的所有 .js、.css和 .htm 檔案複製到 16-HIVE\TEMPLATE\LAYOUTS\<NEW BUILD NUMBER>
資料夾,必須能夠切換至新的使用者介面檔案,並完成並存程式,如本主題稍後在 階段 2 - PSCONFIG 升級 (4) 中所述。
階段 1 - 修補安裝
第一個階段是在伺服器上取得修補二進位檔,並在該處進行安裝。
將第一個 WFE (SPWeb01) 取出負載平衡器,並使用 'STS' 和 'WSS' 套件進行修補。
在修補完成時重新啟動伺服器。
讓伺服器重新在負載平衡器中輪替。將第二個 WFE (SPWeb02) 取出負載平衡器,並使用 'STS' 和 'WSS' 套件進行修補。
在修補完成時重新啟動伺服器。
在整個升級完成之前,請從負載平衡器取出這部伺服器。注意事項
如果您未在維護視窗執行升級,而且伺服器陣列有大量負載,則可以在準備好執行 PSCONFIG 之前將這個 WFE 傳回給網路負載平衡器。
針對第 1 欄中的每個 SPApp、SPDCH 和 SPSRCH,使用 'STS' 和 'WSS' 套件修補。
完成時重新啟動它們。 (SPWeb01 傳送的工作會落在第 2 欄) 的伺服器上。現在,您會針對第 2 欄重複「修補並重新啟動」。 針對每個SPApp02、SPDCH02和SPSRCH02第2欄,使用 'STS' 和 'WSS' 套件修補。
完成時重新啟動它們。 (如您所見,SPWeb01 傳送的工作現在會落在 1.) 欄的伺服器上
階段 2 - PSCONFIG 升級
SharePoint Server 伺服器陣列中的每個節點都已安裝修補程式,而且全部都已重新啟動。 現在已可執行建置對建置的升級。
注意事項
[!附註] 在 ZDP 程序期間,您可以執行 Upgrade-SPContentdatabase 來減少完成執行 PSCONFIG 所需的整體時間。 如果您有大量資料庫,或選取大型資料庫,則請考慮這個選項。
返回 SPWeb02) (負載平衡旋轉的 WFE,開啟 SharePoint 管理命令介面,然後執行此 PSCONFIG 命令:
PSCONFIG.exe -cmd upgrade -inplace b2b -wait -cmd applicationcontent -install -cmd installfeatures -cmd secureresources -cmd services -install
命令完成之後,請將這個 WFE (SPWeb02) 傳回給負載平衡器。 這部伺服器已完整補修並升級。
提示
[!提示] PSCONFIG 程序中的最後一個步驟確保已將使用者介面 (UI) 更新從 /layouts 資料夾複製至版本特定資料夾。 這個並存 UI 更新部分可讓瀏覽您伺服器陣列的使用者在完成升級之前具有一個 UI 體驗,而且您準備好切換至新介面。
若要確保並存複製成功,請檢查相關聯的記錄檔。 根據預設,這位於:
C:\program files\common files\Microsoft shared\web server extensions\16\logs。 )
如果 PSCONFIG 因故未成功複製 UI 檔案,請執行此命令以手動複製 它們 Copy-SidebySideFiles!從負載平衡器中移除 SPWeb01。 > 開啟 SharePoint 管理命令介面,並執行相同的 PSCONFIG 命令:
PSCONFIG.exe -cmd upgrade -inplace b2b -wait -cmd applicationcontent -install -cmd installfeatures -cmd secureresources -cmd services -install
將這個 WEF (SPWeb01) 傳回給負載平衡器。 它現在也已完整補修並升級。
兩個 WFE 都已補修並升級。 繼續執行伺服器陣列的其餘部分,但請確定透過一次執行一部伺服器的方式執行必要 Microsoft PowerShell 命令,而非平行執行。 這表示,針對所有欄 1,您會一次對一部伺服器執行指令。 然後,針對欄 2 中沒有重疊的伺服器,您會使用一次一部伺服器的方式執行它們。 最終目標是保持上線。 依序執行 PSCONFIG 命令是完成 ZDP 程序最安全且最可預期的方式,因此我們將會這麼做。
針對第 1 欄 (SPApp01 中所有剩餘的伺服器,SPDCH01 SPSRCH01) 在 SharePoint 管理命令介面中執行相同的 PSCONFIG 命令。 除非升級欄 1 中的所有伺服器,否則請一次對一部伺服器執行這項作業。
重要事項
請記得在執行 PSCONFIG 之前順利移除分散式快取,並在完成之後重新將分散式快取新增至伺服器。
PSCONFIG.exe -cmd upgrade -inplace b2b -wait -cmd applicationcontent -install -cmd installfeatures -cmd secureresources -cmd services -install
針對第 2 欄 (SPApp02 中的所有剩餘伺服器,SPDCH02 SPSRCH02) 在 SharePoint 管理命令介面中執行相同的 PSCONFIG 命令。 除非升級欄 2 中的所有伺服器,否則請一次對一部伺服器執行這項作業。
重要事項
請記得在執行 PSCONFIG 之前順利移除分散式快取,並在完成之後重新將分散式快取新增至伺服器。
PSCONFIG.exe -cmd upgrade -inplace b2b -wait -cmd applicationcontent -install -cmd installfeatures -cmd secureresources -cmd services -install
重要事項
在所有伺服器都成功通過 PSCONFIG 之後,請記得執行下列 SharePoint 管理命令介面命令,以切換至新的使用者介面檔案,並完成並存程式:
$webapp = Get-SPWebApplication <webappURL>
$webapp.WebService.SideBySideToken = <current build number in quotes, ex: "16.0.4338.1000">
$webapp.WebService.update()
現在您已完成,而且伺服器陣列在正在使用時已經完全升級,而且沒有停機時間。
MinRole 為什麼有幫助?
當您談到 ZDP 時,也應該處理 MinRole 的概念。 MinRole 是安裝 SharePoint Server 2016、SharePoint Server 2019 和 SharePoint Server 訂閱版本的選項。 它會將伺服器陣列的設定分割為前端 (WFE)、應用程式伺服器 (應用程式)、分散式快取 (DCache)、搜尋或自訂這類角色 (適用於自訂程式碼或協力廠商產品)。 這項設定平均會提供四部伺服器:兩部 WFE、兩部應用程式伺服器、兩部 DCache 伺服器,以及兩部搜尋伺服器。
根據預設,WFE 會強制低延遲,應用程式伺服器則會強制高輸送量。 同樣地,統合搜尋元件,讓呼叫不需離開它們所在的範圍,可讓搜尋伺服器的運作更具效率。 MinRole 的其中一個最大優點在於它內建容錯功能。
為什麼需要高可用性?
HA 是 SharePoint 中的廣泛主題。 在線有完整的白皮書和相關文章,例如 此檔。 為了簡化概念,至少在本文中,請瞭解 ZDP (和 MinRole) 源自 Microsoft 365 中的 SharePoint。 在 Microsoft 365 中的 SharePoint 中,虛擬化伺服器內建了備援,因此來自相同 SharePoint 伺服器數位的兩個相同伺服器角色不會存在於相同的主機或機架上。 這可讓 SharePoint 更能容錯。 在您自己的資料中心內不同機架的不同主機上每個 SharePoint Server 角色都有兩個,而且機架之間有共用路由器或纜線可進行更快速的通訊,即可產生相同的情況。 測試環境中所設定的每個 SharePoint Server 角色也只能有兩部實體伺服器 (為一半的伺服器陣列各選擇不同的電源列,並確定這組伺服器之間的路由傳送快速,如果可能,請略過較寬網路流量,以獲得較低的延遲)。
這裡的目標是高可用性和容錯。 這表示最高優先順序是區隔機架或伺服器的角色,以確認每個角色都有兩個、促進這兩層之間的快速網路流量,並確定您已設定好系統,可監視並自動容錯移轉資料庫伺服器。 就於 SharePoint 中手動安裝服務而言 (如選擇 [自訂] 角色時),服務在伺服器陣列內一定要有備援。 例如,已將分散式快取叢集化、您的伺服器陣列有多個 WFE、您已設定成對的應用程式和搜尋伺服器。 因此,某部伺服器發生嚴重問題時,另一部伺服器可以處理使用者負載。
在這裡使用的範例中,我取出實體伺服器,讓概念更容易地了解。 當您開始規劃 ZDP 時,應該繪製出自己的環境,無論它位於何處, (機架名稱/編號完成,以及可在其中找到每個 SharePoint Server 角色的伺服器名稱) 。 這是其中一種最快速方式,可找出安裝程式可能發生的任何角色備援和容錯目標違規,而不論您安裝程式的大小為何。