一般資料服務 (GDS) 這個機制使用插入「Sun Cluster 資源群組管理」框架的方式,讓簡單型網路警覺應用程式的可用性或可延伸性變高。此機制不需要編寫代理程式碼 (其為讓應用程式的可用性或可延伸性變高的典型方法)。
GDS 是單一且預先編譯的資料服務。在此方法中,預先編譯的資料服務及其元件、回呼方法 (rt_callbacks(1HA)) 的執行與資源類型註冊檔案 (rt_reg(4)),都是不可修改的。
一般資料服務資源類型 SUNW.gds 包含在 SUNWscgds 套件中。scinstall(1M) 公用程式會在叢集安裝過程中安裝此套件。此 SUNWscgds 套件包含下列檔案:
# pkgchk -v SUNWscgds /opt/SUNWscgds /opt/SUNWscgds/bin /opt/SUNWscgds/bin/gds_monitor_check /opt/SUNWscgds/bin/gds_monitor_start /opt/SUNWscgds/bin/gds_monitor_stop /opt/SUNWscgds/bin/gds_probe /opt/SUNWscgds/bin/gds_svc_start /opt/SUNWscgds/bin/gds_svc_stop /opt/SUNWscgds/bin/gds_update /opt/SUNWscgds/bin/gds_validate /opt/SUNWscgds/etc /opt/SUNWscgds/etc/SUNW.gds |
GDS 透過使用 SunPlex Agent Builder 產生的原始碼模型 (請參閱 scdscreate(1HA)) 或標準 Sun Cluster 管理指令,得到下列好處:
GDS 容易使用。
GDS 及其方法皆預先編譯過,故無法修改。
SunPlex Agent Builder 可為應用程式產生驅動程序檔,而這些程序檔會封裝在可在多個叢集上重複使用的 Solaris 可安裝套件中。
使用 SunPlex Agent Builder
使用標準 Sun Cluster 管理指令
使用 SunPlex Agent Builder 並選取 GDS 作為產生的原始碼類型。使用者輸入可用來產生一組負責配置給定應用程式的資源的驅動程序檔。
此方法使用 SUNWscgds 中預先編譯的資料服務程式碼,但會要求系統管理員使用標準 Sun Cluster 管理指令 (scrgadm(1M) 與 scswitch(1M)) 來建立和配置資源。
如 "標準 Sun Cluster 管理指令使用 GDS 建立高可用性的服務" 與 "標準 Sun Cluster 管理指令使用 GDS 建立可延伸的服務" 中所示的程序,要發出適當的 scrgadm 與 scswitch 指令,需要進行大量的輸入動作。
使用 GDS 與 SunPlex Agent Builder,可簡化過程,因為它會產生發出 scrgadm 與 scswitch 指令的驅動程序檔。
使用 GDS 是有許多好處沒錯,但也有不適用 GDS 的時候。GDS 不適用於:
當所要求的控制多過於使用預先編譯的資源類型時,例如當需要新增延伸屬性或變更預設時。
當需要修改原始碼以新增特殊功能時。
當想要使用多重程序樹時。
當想要使用非網路警覺應用程式時。
Start_command (延伸屬性)
Port_list
於 Start_command 屬性指定的 start (啟動) 指令,會啟動應用程式。它必須是一個具有可直接傳送到 Shell 以啟動應用程式的引數的完整 UNIX 指令。
Port_list 會辨識應用程式聆聽之通訊埠的清單。Port_list 屬性必須在 SunPlex Agent Builder 建立的啟動程序檔上指定;如果使用標準 Sun Cluster 管理指令,則在 scrgadm 指令上指定。
Network_resources_used
Stop_command (延伸屬性)
Probe_command (延伸屬性)
Start_timeout
Stop_timeout
Probe_timeout
Child_mon_level (僅與標準管理指令搭配使用的延伸屬性)
Failover_enabled (延伸屬性)
Stop_signal (延伸屬性)
此屬性的預設值為 Null。如果應用程式需要連結一個或多個特定位址,則必須指定此屬性。如果此屬性被省略或指定為 Null,應用程式就須聆聽所有的位址。
建立 GDS 資源之前,必須先配置 LogicalHostname 或 SharedAddress 資源。請參閱 Sun Cluster 3.0 12/01 Data Services Installation and Configuration Guide,以取得有關如何配置 LogicalHostname 或 SharedAddress 資源的資訊。
若要指定數值,可指定一個或多個資源名稱;每一個資名稱可包含一或多個邏輯主機名稱或共用位址。詳細資料請參閱 r_properties(5)。
stop 指令必須停止應用程式,只有在應用程式已經完全停止之後才傳回。它必須是一個可直接傳送到 Shell 以停止應用程式的完整 UNIX 指令。
如果有提供 Stop_command,則 GDS stop 方法會在 80% 的 stop 等待時間啟動 stop 指令。不管啟動 stop 指令的結果為何,GDS stop 方法會在 15% 的 stop 等待時間送出 SIGKILL。剩下的 5% 時間則保留給事務管理的額外負荷之用。
如果 stop 指令被省略,GDS 會試圖使用 Stop_signal 指定的訊號來停止應用程式。
probe 指令會週期性地檢查給定應用程式的運作狀況。它必須是一個具有可直接傳送到 Shell 以探測應用程式的引數的完整 UNIX 指令。如果應用程式正常,probe 指令會傳回 0 的結束狀態。
probe 指令的結束狀態可用來判定應用程式的故障嚴重狀況。此結束狀態稱為探測狀態,其必須是一個介於 0 (成功) 與 100 (完全故障) 之間的整數。此探測狀態也可以是 201 特殊值,這個值會致使應用程式立即故障轉移,除非 Failover_enabled 設定成 false。探測狀態用在 GDS 探測演算法中 (請參閱 scds_fm_action(3HA)),可決定要在本機重新啟動應用程式,或轉移至另一個節點。 如果結束狀態為 201,應用程式會即刻故障轉移。
如果 probe 指令被省略,GDS 會提供自己的簡單探測功能,連接位於一組得自 Newtork_resources_used 屬性或 scds_get_netaddr_list(3HA) 輸出的 IP 位址的應用程式。如果連接成功,便會立即中斷。如果連接和中斷都順利完成,應用程式會被視為運作良好。
和 GDS 一起提供的探測功能,只用來取代正常運作的應用程式的特定探測功能。
此屬性會指定 start 指令的啟動等待時間 (如需額外資訊,請參閱 "Start_command")。Start_timeout 的預設值為 300 秒。
此屬性會指定 stop 指令的停止等待時間 (如需額外資訊,請參閱 "Stop_command")。Stop_timeout 的預設值為 300 秒。
此屬性會指定 probe 指令的等待時間值 (如需額外資訊,請參閱 "Probe_command")。Probe_timeout 的預設值為 30 秒。
此屬性控制哪些程序由 PMF 監視。它會指定叉狀子程序被監視到哪個層級。這與 pmfadm (1M) 指令的 -C 引數類似。
省略此屬性或將它設定成預設值 -1,與在 pmfadm 指令省略 -C 選項的效果相同;亦即,所有子程序 (及其子項) 都會受到監視。詳細資訊請參閱 pmfadm(1M) 線上援助頁。
此選項只能用標準 Sun Cluster 管理指令來指定。如果正使用 SunPlex Agent Builder,則無法指定此選項。
此布林值延伸屬性控制資源的故障轉移行為。如果此延伸屬性設定成 true,當重新啟動的數目在 retry_interval 秒之內超出 retry_count,則應用程式會故障轉移。
如果此延伸屬性設定成 false,當重新啟動的數目在 retry_interval 秒之內超出 retry_count,則應用程式不會重新啟動或故障轉移至另一個節點。
使用此延伸屬性可預防應用程式資源起始資源群組的故障轉移。預設值為 true。
GDS 使用此整數的延伸屬性值判斷用於透過 PMF停止應用程式的訊號。如需可指定的整數值清單,請參閱 signal(3head)。預設值為 15 (SIGTERM)。