Sun Cluster 資料服務開發者指南 (適用於 Solaris 作業系統)

設定資源特性和資源類型特性

Sun Cluster 提供一組資源類型特性和資源特性,您可以使用這些特性定義資料服務的靜態配置。資源類型特性指定資源的類型、資料類型版本、API 版本以及每種回呼方法的路徑。資源類型特性列出所有的資源類型特性。

資源特性 (如 Failover_modeThorough_probe_interval) 以及方法逾時也定義資源的靜態配置。動態資源特性 (如 Resource_stateStatus) 反映管理的資源之使用中狀態。資源特性說明資源特性。

您可在資源類型註冊 (RTR) 檔案中宣告資源類型和資源特性,該檔案是資料服務必不可少的元件。RTR 檔案在叢集管理員將資料服務註冊到 Sun Cluster 時定義資料服務的初始配置。

因為 Agent Builder 宣告對於任何資料服務均有用且必需的特性集,所以請使用 Agent Builder 來產生資料服務的 RTR 檔案。例如,特定的特性 (如 Resource_type) 必須在 RTR 檔案中進行宣告。否則,資源服務註冊會失敗。其他特性,儘管並非必需的,只有在 RTR 檔案中進行宣告,叢集管理員才能使用它們。有些特性無論是否宣告均可用,因為 RGM 定義這些特性並提供預設值。若要避免此層級的複雜性,請使用 Agent Builder 以確保產生正確的 RTR 檔案。如有必要,您稍後可以編輯 RTR 檔案以變更特定的值。

本小節的其餘部分將顯示由 Agent Builder 建立的 RTR 檔案範例。

宣告資源類型特性

叢集管理員無法配置在 RTR 檔案中宣告的資源類型特性。它們成為該資源類型永久配置的一部分。


備註 –

只有叢集管理員才能配置資源類型特性 Installed_nodes。您不能在 RTR 檔案中宣告 Installed_nodes


資源類型宣告的語法如下所示︰

property-name = value;

備註 –

資源群組、資源以及資源類型的特性名稱區分大小寫。當您指定特性名稱時,您可以使用大寫和小寫字母的任意組合。


這些是資料服務範例 (smpl) 在 RTR 檔案中的資源類型宣告︰

# Sun Cluster Data Services Builder template version 1.0
# Registration information and resources for smpl
#
#NOTE: Keywords are case insensitive, i.e., you can use
#any capitalization style you prefer.
#
Resource_type = "smpl";
Vendor_id = SUNW;
RT_description = "Sample Service on Sun Cluster";

RT_version ="1.0"; 
API_version = 2;
Failover = TRUE;

Init_nodes = RG_PRIMARIES;

RT_basedir=/opt/SUNWsmpl/bin;

Start           =    smpl_svc_start;
Stop            =    smpl_svc_stop;

Validate        =    smpl_validate;
Update          =    smpl_update;

Monitor_start   =    smpl_monitor_start;
Monitor_stop    =    smpl_monitor_stop;
Monitor_check   =    smpl_monitor_check;

提示 –

您必須宣告 Resource_type 特性為 RTR 檔案中的第一個項目。否則,資源類型註冊會失敗。


第一組資源類型宣告提供有關資源類型的基本資訊。

Resource_typeVendor_id

提供資源類型的名稱。您可以單獨使用 Resource_type 特性指定資源類型名稱 (smpl) 或透過將 Vendor_id 特性作為前綴 (使用「.」將其與資源類型分隔) 來指定資源類型名稱 (SUNW.smpl),如範例所示。如果您使用 Vendor_id,請確定其為定義資源類型的公司股票代號。資源類型名稱在叢集中必須是唯一的。


備註 –

依慣例,將資源類型名稱 (vendoridApplicationname) 作為套裝軟體名稱。從 Solaris 9 作業系統開始,供應商 ID 和應用程式名稱的組合可以超過九位字元。但是,如果您使用舊版的 Solaris 作業系統,供應商 ID 和應用程式名稱的組合不能超過九位字元,儘管 RGM 不執行此限制。

另一方面,Agent Builder 在所有情況下都從資源類型名稱明確產生套裝軟體名稱,因此其執行九位字元限制。


RT_description

簡要說明資源類型。

RT_version

識別資料服務範例的版本。

API_version

識別 API 的版本。例如,API_version = 2 表示資料服務可以安裝在 Sun Cluster 3.0 及其以後的任何 Sun Cluster 版本上。API_version = 5 表示資料服務可以安裝在 Sun Cluster 3.1 9/04 及其以後的任何 Sun Cluster 版本上。但是,API_version = 5 也表示資料服務無法安裝在 Sun Cluster 3.1 9/04 之前發行的任何 Sun Cluster 版本上。資源類型特性中的 API_version 項目更詳細地說明了此特性。

Failover = TRUE

表示資料服務無法在可在多個節點上同時處於線上狀態的資源群組中執行。也就是說,此宣告指定容錯移轉資料服務。資源類型特性中的 Failover 項目更詳細地說明了此特性。

StartStopValidate

提供由 RGM 呼叫的各個回呼方法程式的路徑。這些路徑與由 RT_basedir 指定的路徑相對。

剩餘資源類型宣告提供配置資訊。

Init_nodes = RG_PRIMARIES

指定 RGM 僅在可以主控資料服務的節點上呼叫 InitBootFiniValidate 方法。由 RG_PRIMARIES 指定的節點是安裝資料服務的所有節點之子集。將其值設定為 RT_INSTALLED_NODES,以指定 RGM 在安裝資料服務的所有節點上呼叫這些方法。

RT_basedir

指向 /opt/SUNWsample/bin 作為完整相對路徑 (如回呼方法路徑) 的目錄路徑。

StartStopValidate

提供由 RGM 呼叫的各個回呼方法程式的路徑。這些路徑與由 RT_basedir 指定的路徑是相對的。

宣告資源特性

與資源類型特性相同,在 RTR 檔案中宣告資源特性。依慣例,在 RTR 檔案中資源特性宣告緊跟在資源類型宣告之後。資源宣告的語法為一組由大括弧包含的性質值對:

{
    attribute = value;
    attribute = value;
             .
             .
             .
    attribute = value;
}

對於由 Sun Cluster 提供的資源特性 (稱為系統定義的特性),您可以在 RTR 檔案中變更特定的屬性。例如,Sun Cluster 為每種回呼方法提供方法逾時特性之預設值。在 RTR 檔案中,您可以指定不同預設值。

也可以透過使用由 Sun Cluster 提供的特性屬性集,在 RTR 檔案中定義新的資源特性 (稱為延伸特性)。資源特性屬性列出用於變更和定義資源特性的屬性。在 RTR 檔案中,延伸特性宣告緊跟在系統定義特性宣告之後。

第一組系統定義的資源特性指定回呼方法的逾時值。

...

# Resource property declarations appear as a list of bracketed
# entries after the resource type declarations. The property 
# name declaration must be the first attribute after the open
# curly bracket of a resource property entry.
#
# Set minimum and default for method timeouts.
{
        PROPERTY = Start_timeout;
        MIN=60;
        DEFAULT=300;
}

{
        PROPERTY = Stop_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Validate_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Update_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Monitor_Start_timeout;
        MIN=60;
        DEFAULT=300;
}
{
        PROPERTY = Monitor_Stop_timeout;
        MIN=60;
        DEFAULT=300;
{
        PROPERTY = Monitor_Check_timeout;
        MIN=60;
        DEFAULT=300;
}

特性 (PROPERTY = value) 的名稱必須是每個資源特性宣告的第一個屬性。您可以在特性屬性在 RTR 檔案中定義的限制內配置資源特性。例如,範例中每個方法逾時的預設值為 300 秒。叢集管理員可以變更此值。但是,可允許的最小值 (由 MIN 屬性指定) 為 60 秒。資源特性屬性含有資源特性屬性之清單。

下一組資源特性定義在資料服務中具有特定用途的特性。

{
        PROPERTY = Failover_mode;
        DEFAULT=SOFT;
        TUNABLE = ANYTIME;
}
{
        PROPERTY = Thorough_Probe_Interval;
        MIN=1;
        MAX=3600;
        DEFAULT=60;
        TUNABLE = ANYTIME;
}

# The number of retries to be done within a certain period before concluding
# that the application cannot be successfully started on this node.
{
        PROPERTY = Retry_count;
        MAX=10;
        DEFAULT=2;
        TUNABLE = ANYTIME; 
}

# Set Retry_interval as a multiple of 60 since it is converted from seconds
# to minutes, rounding up. For example, a value of 50 (seconds)
# is converted to 1 minute. Use this property to time the number of
# retries (Retry_count).
{
        PROPERTY = Retry_interval;
        MAX=3600;
        DEFAULT=300;
        TUNABLE = ANYTIME;
}

{
        PROPERTY = Network_resources_used;
        TUNABLE = WHEN_DISABLED;
        DEFAULT = "";
}
{
        PROPERTY = Scalable;
        DEFAULT = FALSE;
        TUNABLE = AT_CREATION;
}
{
        PROPERTY = Load_balancing_policy;
        DEFAULT = LB_WEIGHTED;
        TUNABLE = AT_CREATION;
}
{
        PROPERTY = Load_balancing_weights;
        DEFAULT = "";
        TUNABLE = ANYTIME;
}
{
        PROPERTY = Port_list;
        TUNABLE = ANYTIME;
        DEFAULT = ;
}

這些資源特性宣告包含 TUNABLE 屬性。此屬性限制叢集管理員可以變更與其關聯的特性值的情況。例如,值 AT_CREATION 表示叢集管理員僅能在建立資源時指定此值且稍後無法變更。

對於大多數特性,您可以接受 Agent Builder 產生的預設值,除非您有理由變更它們。有關這些特性的資訊如下所示。如需附加資訊,請參閱資源特性r_properties(5) 線上手冊。

Failover_mode

表示當 StartStop 方法失敗時,RGM 應該遷移資源群組還是中斷節點。

Thorough_probe_intervalRetry_countRetry_interval

在故障監視器中使用。Tunable 等同於 ANYTIME,因此如果故障監視器沒有以最佳方式運作,叢集管理員可以對其進行調整。

Network_resources_used

資料服務使用的邏輯主機名稱或共用的位址資源之清單。Agent Builder 宣告此特性,從而叢集管理員在配置資料服務時可以指定資源清單 (如果資源存在)。

Scalable

設定為 FALSE,表示此資源不使用叢集網路 (共用位址) 功能。如果將此特性設定為 FALSE,資源類型特性 Failover 必須設定為 TRUE 以表示容錯移轉服務。請參閱將資料服務傳送至叢集實施回呼方法,以取得有關如何使用此特性的附加資訊。

Load_balancing_policyLoad_balancing_weights

自動宣告這些特性。但是,這些特性在容錯移轉資源類型中無用。

Port_list

識別伺服器偵聽通訊埠的清單。Agent Builder 宣告此特性,從而叢集管理員在配置資料服務時可以指定連接埠清單。

宣告延伸特性

延伸特性顯示於 RTR 檔案範例的結尾處。

# Extension Properties
#

# The cluster administrator must set the value of this property to point to the 
# directory that contains the configuration files used by the application.
# For this application, smpl, specify the path of the configuration file on
# PXFS (typically named.conf).
{
        PROPERTY = Confdir_list;
        EXTENSION;
        STRINGARRAY;
        TUNABLE = AT_CREATION;
        DESCRIPTION = "The Configuration Directory Path(s)";
}

# The following two properties control restart of the fault monitor.
{
        PROPERTY = Monitor_retry_count;
        EXTENSION;
        INT;
        DEFAULT = 4;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Number of PMF restarts allowed for fault monitor.";
}
{
        PROPERTY = Monitor_retry_interval;
        EXTENSION;
        INT;
        DEFAULT = 2;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Time window (minutes) for fault monitor restarts.";
}
# Time out value in seconds for the probe.
{
        PROPERTY = Probe_timeout;
        EXTENSION;
        INT;
        DEFAULT = 120;
        TUNABLE = ANYTIME;
        DESCRIPTION = "Time out value for the probe (seconds)";
}

# Child process monitoring level for PMF (-C option of pmfadm).
# Default of -1 means to not use the -C option of pmfadm.
# A value of 0 or greater indicates the desired level of child-process.
# monitoring.
{
        PROPERTY = Child_mon_level;
        EXTENSION;
        INT;
        DEFAULT = -1;
        TUNABLE = ANYTIME;
        DESCRIPTION = “Child monitoring level for PMF";
}
# User added code -- BEGIN VVVVVVVVVVVV
# User added code -- END   ^^^^^^^^^^^^

Agent Builder 將建立以下延伸特性,這些延伸特性對大多數資料服務均有用。

Confdir_list

指定應用程式配置目錄的路徑,此路徑資訊對許多應用程式均有用。叢集管理員配置資料服務時,可以提供此目錄的位置。

Monitor_retry_countMonitor_retry_interval 以及 Probe_timeout

控制故障監視器自身 (而非伺服器常駐程式) 的重新啟動。

Child_mon_level

將監視層級設定為由 PMF 執行。請參閱 pmfadm(1M) 線上手冊,以取得更多資訊。

您可以在由 User added code 注釋分隔的區域中建立附加延伸特性。