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

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

Sun Cluster 提供一組資源類型特性和資源特性,您可以使用這些特性定義資料服務的靜態配置。資源類型特性指定資源的類型、資源的版本、API 的版本等,同時還指定每個回呼方法的路徑。資源類型特性列出了全部資源類型特性。

資源特性 (如 Failover_modeThorough_probe_interval) 和方法逾時還定義了資源的靜態配置。動態資源特性 (如 Resource_stateStatus) 反映受管理資源的作用中狀態。資源特性描述了資源特性。

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

因為 Agent Builder 宣告的特性集對任意資料服務都是有用且必需的,所以建議您使用 Agent Builder 產生資料服務的 RTR 檔案。例如,必須在 RTR 檔案中宣告某些特性 (如 Resource_type),否則資料服務的註冊將會失敗。儘管其他特性非必需,但除非系統管理員在 RTR 檔案中對其進行宣告,否則將無法使用;然而有些特性無論您是否對其進行宣告都可用,這是因為 RGM 定義它們並提供預設值。為了避免此層複雜性,您可簡單地使用 Agent Builder 來保證產生正確的 RTR 檔案。如果需要,您可以稍後編輯 RTR 檔案來變更特定值。

本小節的其餘部分將為您完整介紹一個 Agent Builder 建立的 RTR 檔案範例。

宣告資源類型特性

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


注意 –

一種資源類型特性 Installed_nodes 可由系統管理員配置。實際上,它僅可由系統管理員配置,您無法在 RTR 檔案中宣告它。


資源類型宣告的語法為:


property_name = value;

注意 –

RGM 處理特性名稱時不區分大小寫。在 Sun 提供的 RTR 檔案中,除了方法名稱,特性的慣例是名稱的第一個字母大寫,而其餘的字母小寫。方法名稱以及特性性質包含的都是大寫字母。


以下為資料服務範例 (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,請將其作為公司定義資源類型的證券符號。資源類型名稱在叢集中必須是唯一的。


注意 –

依慣例,資源類型名稱 (Resource_typeVendor_id) 將作為套件名稱。由於套件名稱被限制為最多使用九個字元,因此儘管 RGM 不執行此限制,將這兩個特性的字元總數限制為九個或更少也是個好主意。另一方面,Agent Builder 明確地從資源類型名稱產生套件名稱,因此它確實執行九個字元的限制。


RT_version

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

API_version

識別 API 的版本。例如,API_version = 2 表示資料服務在 Sun Cluster 版本 3.0 下執行。

Failover = TRUE

指示資料服務無法在可以同時於多個節點上連線的資源群組中執行,即指定故障轉移資料服務。請參閱將資料服務傳送至叢集,以取得詳細資訊。

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 = AT_CREATION;
        DEFAULT = ;
}

這些資源特性宣告新增了 TUNABLE 性質,該性質會限制系統管理員可以變更其值的機會。AT_CREATION 表示管理員僅能在建立資源時指定值,而以後則無法變更該值。

對於這些特性中的大多數,您可以接受 Agent Builder 產生的預設值,除非需要對其進行變更。以下是有關這些特性的資訊 (如需其他資訊,請參閱資源特性r_properties(5) 線上說明手冊):

Failover_mode

指示 RGM 在 StartStop 方法失敗的情況下,是應重新配置資源群組還是中斷該節點。

Thorough_probe_intervalRetry_countRetry_interval

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

Network_resources_used

資料服務使用的邏輯主機名稱或共用位址資源清單。Agent Builder 宣告此特性,以便系統管理員可在配置資料服務時指定一系列的資源 (如果有的話)。

Scalable

設定為 FALSE,以指示此資源不使用叢集網路 (共用位址) 工具。此設定與設定為 TRUE (表示故障轉移服務) 的資源類型 Failover 特性一致。請參閱將資料服務傳送至叢集實施回呼方法,以取得有關如何使用此特性的其他資訊。

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),以取得詳細資訊。

您可以在使用者加入的程式碼註釋所分割的區域內建立附加延伸特性。