您好,登錄后才能下訂單哦!
本篇內容介紹了“Metadata怎么用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
2. API 定義
2.1 環境變量
一個資源代理通過環境變量來獲得資源的全部配置信息。那些環境變量的名字往往前綴是OCF_RESKEY,名字就是資源的名字。比如,如果資源有一個ip 參數設為 192.168.1.1,資源代理就使用環境變量 OCF_RESKEY_ip來保存這個值。
對于任何不需要用戶設置的資源----即在資源代理元數據參數定義沒有被設置成required="true"----資源代理必須:
提供一個合理的缺省值。這個必須在元數據里明確。為了方便,資源代理使用一個形如OCF_RESKEY_<parametername>_default 的變量保存這個值;
另一個選擇,就是這個值為空,但程序可以正確運行;
另外,集群管理器也可以支持元資源參數。這些不直接應用到資源配置,而是指定集群資源管理器如何管理資源。比如,pacemaker使用target-role元參數來指定資源是應該啟動還是停止。
元參數通過OCF_RESKEY_CRM_meta_命名方式傳給資源代理,注意所有連字符都是轉為下劃線。這樣target-role屬性都映射都環境變量OCF_RESKEY_CRM_meta_target_role。
2.2 Actions
任何資源代理必須支持一個命令行參數,這個參數指定資源代理的執行。下列的行為是資源代理必須支持的:
start --- 啟動資源
stop --- 停止資源
monitor --- 查詢資源狀態
meta-data --- 導出資源代理元數據
另外,資源代理可以選擇支持如下行為:
promote --- 將一個資源提升為Master 角色(只對 Master/Slave 資源)
demote --- 將一個資源轉為Slave 角色(只對 Master/Slave 資源)
migrate_to 和 migrate_from --- 實現資源的熱遷移
validate_all --- 校驗資源的配置
usage 或 help --- 顯示usage信息或者help信息。是資源本身用命令行運行時候的顯示
status --- 已經丟棄。是monitor之前使用的行為
2.3 Timeouts
action timeouts 是用來從外部強制資源代理正確運行的。集群管理器負責監視資源代理的某個動作運行了多長時間,如果沒有在限定時間內完成,則會終止這個程序。這樣資源代理不用去檢查時間過期。
然而,資源代理可以建議這個timeout值(這個值如果設置了,會被集群管理器按時強制實行)。后面章節會詳細講到細節。
2.4 Metadata (元數據)
每個資源代理都要必須在一個XML元數據里說明其目的支持的參數。這個元數據表被集群管理器用來提供在線幫助,資源代理的man手冊也可以從這里導出。下面是一個虛構的資源代理元數據:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | <?xml version="1.0"?> <!DOCTYPE resource-agent SYSTEM "ra-api-1.dtd"> <resource-agent name="foobar" version="0.1"> <version>0.1</version> <longdesc lang="en"> This is a fictitious example resource agent written for the OCF Resource Agent Developers Guide. </longdesc> <shortdesc lang="en">Example resource agent for budding OCF RA developers</shortdesc> <parameters> <parameter name="eggs" unique="0" required="1"> <longdesc lang="en"> Number of eggs, an example numeric parameter </longdesc> <shortdesc lang="en">Number of eggs</shortdesc> <content type="integer"/> </parameter> <parameter name="superfrobnicate" unique="0" required="0"> <longdesc lang="en"> Enable superfrobnication, an example boolean parameter </longdesc> <shortdesc lang="en">Enable superfrobnication</shortdesc> <content type="boolean" default="false"/> </parameter> <parameter name="datadir" unique="0" required="1"> <longdesc lang="en"> Data directory, an example string parameter </longdesc> <shortdesc lang="en">Data directory</shortdesc> <content type="string"/> </parameter> </parameters> <actions> <action name="start" timeout="20" /> <action name="stop" timeout="20" /> <action name="monitor" timeout="20" interval="10" depth="0" /> <action name="reload" timeout="20" /> <action name="migrate_to" timeout="20" /> <action name="migrate_from" timeout="20" /> <action name="meta-data" timeout="5" /> <action name="validate-all" timeout="20" /> </actions> </resource-agent> |
上面定義resouce-agent 元素,必須有一個,并用name和version定義。
longdesc 和 shortdec 元素提供長的和短的資源代理功能描述。shortdesc只提供一句話,提供簡介列表。longdesc提供更多細節的完整描述。
parameters 元素描述資源代理參數,可以有多個parameter 子元素,每一個都是資源代理支持的參數。
每一個parameter參數用應該有一個shortdesc和一個longdesc 用來描述參數的細節,一個content元素描述參數期望的內容。parameter支持如下屬性:
required 指示參數是強制的(required="1")還是可選的(require="0") (經測試1代表必須的)
unique (允許值:0和1)指示指定的值在整個集群是唯一的。比如,一個高可用的浮動IP地址會被定義為unique,因為這個地址在整個集群里面只能有一個,不能重復。(經測試1代表唯一的,不能重復)
content元素有兩個屬性:
type 描述參數的類型(string,integer,或者是 boolean),如果未設置,type 缺省是string
對于一些可選parameter,通常通過default屬性設置一個合適的
actions 列表定義了資源代理聲明的支持的行為。
每一個action 都有自己的timeout值。這是指示用戶這個行為最小的timeout值。這種方式適應某些可以很快啟動的資源(如IP地址、文件系統)和需要數分鐘才啟動的資源(如數據庫)。
另外,一些重復的行為(如monitor)則應該有一個推薦的最小時間間隔 interval,這個時間間隔是兩次相同行為的連續調用的時間。和timeout一樣,這個值沒有缺省值。這個值僅僅提供一個參考的最小值。
“Metadata怎么用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。