Leo Yeh's Blog

SAS 系統管理 (17)

教學目標

初步了解 SAS 解決方案中 Cache Locator 快取服務的應用與設定。

重點概念

基本介紹

首先 Cache Locator 主要是被使用於 Server Tier 和 Middle Tier 伺服器上的應用程式中,當 SAS 網頁應用程式伺服器被啟動之前,會先啟動 Cache Locator 服務與 SAS 伺服器註冊成員關係,當回應成功之後會初始化分散式快取,若接收不到訊息則 Cache Locator 會自動停止,導致服務無法正常啟動,再來分享執行階段所需的資訊。此外 Cache Loactor 除了分散式快取之外也會被應用於 SAS Web Infrastructure Platform 排程服務等獨立的客戶端應用程式提供資料緩衝存取。

部署方式

接著 Cache Locator 的部署方式主要有兩種方式,分別為單一機器部署和多台機器部署。單一機器部署主要是 Server Tier 和 Middle Tier 伺服器安裝在相同的機器上,此時唯一的 Cache Locator 會被 SAS 部署精靈所安裝,其中當有許多 SAS 網頁應用程式實體被設定時,則每個實體會透過 Cache locator 與其它 SAS 網頁應用程式實體進行溝通。多台機器部署主要是當第一次透過 SAS 部署精靈安裝 Middle Tier 伺服器時就會被安裝,同時 Cache Locator 因為 SAS Web Infrastructure Platform 排程服務的資料緩衝存取應用也會被安裝在每一台 Server-Tier 機器中。

設定與記錄檔

再來 Cache Loctor 的設定檔和記錄檔主要儲存於「SAS 設定目錄\Levn\Web\gemfire\instances\ins_port-number」資料夾中,關鍵的檔案主要有兩個記錄檔和一個設定檔,分別為:

  1. gemfire.log
  2. wraper.log
  3. wraper.conf

其中我們可以先查看 wraper.log 記錄檔確認 Cache Locator 服務是否發生錯誤,接著再查看 gemfire.log 詳細錯誤訊息的記錄,像是可能 Middle Tier 伺服器 (192.168.0.1) 向 Server Tier 伺服器 (10.0.0.1) 註冊成員時,卻無法取得回應,此時觀察 Middle Tier 伺服器和 Server Tier 伺服器各別的 gemfire.log 記錄檔就會發現主要原因。此時我們再修改 warpper.conf 中的 JVM 參數設定進行調整。主要調整的 JVM 參數則為 -Dgemfire.bind-address=preferred-ip-address 綁定 IP 位置,但是這邊的 IP 位置被限制只能是網路介面卡的 IP 位置,預設為本機 IP 位置。

設定防火牆

此外在安裝的過程中,會有一個 HTTP 網路連接埠的號碼被保留給每個實體的 Cache Locator。除此之外 TCP 和 UDP 網路連接埠需要支援透過 Cache Locator 和每個成員元件以快取的進行點對點的溝通,此時 Cache Locator 和快取成員會從可用的網路連接埠 (預設範圍為 1024 至 65535) 中動態配置短暫的網路連接埠。若是防火牆存在於 Server Tier 和 Middle Tier 伺服器之間,就有可能會發生點對點溝通的錯誤,為了預防此問題,我們可以修改防火牆設定允許 Java 應用程式的流程,或著手動更新 SAS 設定確保從適當的範圍內取得可通過防火牆的網路連接埠。在每個成員設定中皆可以指定可用的網路連接埠編號範圍,主要設定的 JVM 參數有兩項,分別為:

  1. Dgemfire.membership-port-range
  2. Dgemfire.tcp-port

Dgemfire.membership-port-range主要是設定 UDP 和 TCP 通訊之間可用的網路連接埠範圍,對於每一個成員,Cache Locator 會從範圍內隨機選擇唯一網路連接埠編號為 UDP 廣播訊息與另一個唯一網路連接埠編號為 TCP 錯誤偵測訊息,通常會合併主機 IP 位置和唯一的 UDP 網路連接埠編號識別成員,所以必須確保有足夠的網路連接埠範圍進行部署,預設範圍為 1024 至 65535。至於 Dgemfire.tcp-port 則是是設定從 0 至 65535 的值之間代表 TCP 監聽網路連接埠為了成員之間快取的溝通,若是這個值為 0,則作業系統會選擇可用的網路連接埠,每個機器皆必須擁有自己的 TCP 網路連接埠。此外某些作業系統會限制網路連接埠的範圍被非特權使用者使用時,以及當使用被限制的網路連接埠時會造成 Cache Locator 啟動發生錯誤,至於相關設定方式請參考下表所示。

成員 Dgemfire.membership-port-range 預設值 Dgemfire.tcp-port 預設值 設定檔位置
Cache Locator 40000-50000 45500 SAS 設定目錄\Levn\Web\gemfire\instances\ins_port\wrapper.conf
SAS Web Application Server 40000-50000 5600 SAS 設定目錄\Levn\Web\WebAppServer\SASServern_m\conf\wrapper.conf
SAS Web Application Server 40000-50000 45600 SAS 設定目錄\Levn\Web\WebAppServer\SASServern_m\bin\setenv.bat
SAS Distributed In-Process Scheduler Job Runner 40000-50000 45700 SAS 設定目錄\Levn\Web\Applications\SASWIPSchedulingServices9.4\dip\wrapper.conf
SAS Web Infrastructure Platform Scheduling Services 40000-50000 45800 SAS 設定目錄\Levn\Web\Applications\SASWIPSchedulingServices9.4\serverTrigger.ini
Report Output Generation Tool (for SAS Web Report Studio) 40000-50000 45900 SAS 設定目錄\SASBIReportServices\4.4\outputgen.ini

計算網路連接埠數量

最後我們要如何評估已經配置足夠多的網路連接埠數量能夠讓快取成員之間進行點對點的溝通,簡單來說就二層架構 Server Tier 和 Middle Tier 伺服器上,並且只有一個 SAS 網頁應用程式實體,此時 Server Tier 伺服器會有三個成員分別為 Cache Locator、SAS Distributed In-Process Scheduler Job Runner 和 SAS Web Infrastructure Platform 排程服務,接著 Middle Tier 伺服器會有二個成員分別為 Cache Locator 和 SAS Web Application Server,因此總共有五個成員,此時每個成員需要多少個網路連接埠請乘上四倍為二十個,此時 Middle Tier 服務器則需要四十個網路連接埠 ( 4 × 20 ) Server Tier 伺服器則需要六十個網路連接埠 ( 3 × 20 ),請參考下表所示。

伺服器類型 SAS 網頁應用程式實體數 部署成員總數 每個成員所需網路連接埠數 每台伺服器所需成員數 所需網路連接埠總數
Server Tier 1 5 20 3 60
Middle Tier 1 5 20 2 40
Server Tier 2 6 24 3 72
Middle Tier 2 5 24 3 72
Server Tier 3 7 28 3 84
Middle Tier 3 7 28 4 112

相關資源

⬅️ Go back