Leo Yeh's Blog

SAS 系統管理 (21)

教學目標

初步了解 SAS 網頁伺服器叢集架構和設定高可用性同質叢集架構的概念。

重點概念

首先 SAS Enterprise BI Server 和 SAS Visual Analytics 解決方案被使用於提供觀點至客戶資料中,並且提供答案解決商業問題。此時 SAS Enterprise BI Server 和 SAS Visual Analytics 皆會使用 Middle Tier 伺服器,因此如何設定高可用性將會是解決方案關鍵的重點。

基本上 SAS 網頁應用程式為了改善效能和提供高可用性可以被設定為叢集的架構,在叢集環境中多台伺服器實體將會分別處理來自於客戶端的請求,因此可以改善效能,雖然效能也可以由提升部署伺服器的硬體配備進行改善,但是若發生部署伺服器硬體損毀時就無法正常運作,此時叢集的架構就能達到高可用性以利確保部署伺服器繼續運作。

接著若是叢集伺服器實體皆執行於相同機器上時則稱為水平叢集,若伺服器實體執行於叢集機器則稱為重直叢集,此時 SAS 網頁應用程式伺服器則可以部署水平叢集、重直叢集或混合應用。一般來說來 SAS 網頁伺服器主要是提供分散 HTTP 請求至 SAS 網頁應用伺服器實體的負載平衡應用,重點在於 SAS 網頁伺服器是客戶存取所有網頁伺服器的唯一存取點,其會偵測叢集中的應用程式伺服器是否關閉和設定路由請求,但可惜的是 SAS 網頁伺服器無法監測 SAS 網頁應用程式伺服器的狀態。

再來 SAS 智慧平台主要有兩種部署 Middle Tier 伺服器的方式,分別為單一伺服器,又稱同質叢集,多個伺服器,又稱異質叢集,預設為單一伺服器的部署方式,主要差別在於同質叢集是叢集的每個節點伺服器包括所有相同的應用程式,反之異質叢集則是特定應用程式在不同節點伺服器上。簡單來說我們在透過 SAS 部署精靈進行安裝與設定時,只要選擇「 Middle Tier Node (Optional) 」就能夠部署 SAS 網頁應用程式伺服器的高可用性架構,但是若這樣設定會發現問題點在於 SAS 網頁伺服器一般會在主要 Middle Tier 伺服器中,所以給客戶發出請求時皆會透過主要 Middle Tier 伺服器中的 SAS 網頁伺服器進行負載平衡或反向代理的應用,將請求轉至叢集中的 SAS 網頁應用程式伺服器。此時問題在於若主要 Middle Tier 伺服器損毀時則就無法使用了。

為了解決此問題我們可以將主要 Middle Tier 伺服器上的 SAS 網頁伺服器設定檔複製至每台 Middle Tier 伺服器上,接著執行 PowerShell 指令安裝與啟動 SAS 網頁伺服器服務。

1
2
3
4
$ Set-ExecutionPolicy RemoteSigned
$ cd D:\SAS\Config\Lev1\Web\WebServer\bin

$ powershell .\httpdctl.ps1 install
$ powershell .\httpdctl.ps1 start

此時每台 Middle Tier 伺服器就真的是同質叢集架構了,但是還有個問題在於 Compute Tier 伺服器中針對所有 SAS 網頁應用程式伺服器的內部連線和外部連線皆是以主要 Middle Tier 伺服器為主,因此我們必須透過 SAS Management Console 工具修改每個 SAS 網頁應用程式伺服器屬性中的內部連線和外部連線為「負載平衡伺服器的完整網域名稱」,這部份若不知如何設定建議請教 SAS 原廠顧問,一般來說企業會有專屬的負載平衡伺服器進行分流。接著針對每個 SAS 網頁應用程式伺服器設定資料夾中的 server.xml 設定檔修改 Connector 的 proxyName 屬性值為「負載平衡伺服器的完整網域名稱」,startup.prerequisites 設定檔加入所有叢集伺服器的成員,以及 wrapper.conf 設定檔加入以下 JVM 參數:

1
2
-Dsas.retry.internal.url=true
-Dsas.web.html.cdps.use.internal.urls=true

最後我們還須透過 SAS Management Console 工具設定 WebDAV 儲存體的網址和 SAS 資料夾內部對應為「SAS Content Server」,這部份若不知如何設定建議請教 SAS 原廠顧問,當我們完成將 SAS 網頁應用程式所有相關連線皆透過負載平衡伺服器時的所有設定,此時重新啟動 Compute Tier 伺服器、Middle Tier 伺服器,請等待一段時間,否則太快進行測試 SAS 網頁應用程式伺服器未完整啟動,將會有 503、404、… 等錯誤訊息。

總結 SAS 9.4 解決方案預設會以主要 Middle Tier 伺服器中的 SAS 網頁伺服器當成負載平衡伺服器,此架構問題在於主要 Middle Tier 伺服器不能停機或損毀,不然無法達到高可用性的運作。這時理論上我們可以透過簡單設定,而非客製程式的方式將 SAS 解決方案與任何負載平衡伺服器進行整合,實務上還是需要進行測試才能夠確保達到高可用性的運作。

相關資源

⬅️ Go back