天天看點

《Cisco IOS XR技術精要》一2.2 Cisco IOS XR系統管理器

本節書摘來自異步社群《cisco ios xr技術精要》一書中的第2章,第2.2節,作者 【美】mobeen tahir , mark ghattas , dawit birhanu , syed natif nawaz,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視

cisco ios xr技術精要

cisco ios xr具有數百個同時運作在多個節點上的程序。一些程序與某些應用和協定相關。例如程序telnetd和isis分别指代telnet守護程序(伺服器)和is-is路由選擇協定。另一些程序則專用于系統功能,如裝置驅動器、程序間通信、系統狀态監測、檔案系統、配置管理、軟體更新管理等。這類程序始終是運作着的。

ios xr系統管理器是一個在系統引導、rp故障、軟體激活期間負責對大多數程序執行啟動、監控、重新開機、終結、資訊轉儲操作,以及對路由器配置做出反應的中心實體。系統管理器還可以基于程序健康狀态執行災難恢複操作。系統管理器運作于系統的每個引擎及線卡中。每個節點上運作着sysmgr程序的兩個執行個體。其中一個執行個體作為主sysmgr,負責系統管理器的所有職責;另一個執行個體扮演備用程序的角色,如果處于某些原因主sysmgr退出的話,備sysmgr程序将接管主程序的職能。

系統管理器的主要功能如下。

在系統引導或節點重新開機期間啟動程序。

在路由處理器(rp)故障切換期間啟動程序。

根據使用者的配置做出響應啟動程序;例如,當使用者使用指令router ospf< process-na_me>配置ospf程序時,系統管理器會啟動一個新的ospf程序執行個體。

充當所有程序相關資訊的中心存儲器。

基于程序健康狀态執行災難恢複。

當程序異常中斷時,使用轉儲器來收集轉儲資訊。

系統管理器會将儲存于引導檔案中的程序屬性應用到其管理的每個程序上。引導檔案類似于一種可執行檔案,位于/pkg/startup/目錄下,其中包含了系統管理器管理相應程序所使用的屬性資訊。例2-4中列出了ospf、fib管理器,以及gsp程序的引導檔案。

例2-4 ospf、fib_mgr和gsp程序的引導檔案

《Cisco IOS XR技術精要》一2.2 Cisco IOS XR系統管理器

name屬性相當于程序名稱和對應的可執行檔案。path屬性表示可執行檔案存放的路徑位置。如果設定了level屬性,将意味着程序将會在引導期間按照一定的等級來啟動。在系統引導期間,系統管理器使用level屬性來确定程序的啟動順序。引導期間的啟動順序可參考表2-2。使用者可以使用指令show process boot location< r/s/m>來檢視引導順序、啟動等級,以及程序在何時變成了ready狀态。

《Cisco IOS XR技術精要》一2.2 Cisco IOS XR系統管理器

如果設定了item屬性,則表示在使用者輸入配置或引導期間向系統資料庫(sysdb)中加載配置時,對應的程序将會被啟動或終止。當引導檔案中定義的配置項添加進sysdb時,将啟動相關程序。例如,當使用者輸入并commit(送出)配置router ospf < process-name >,系統管理器将啟動一個ospf程序執行個體。系統資料庫将在2.6節中做更深入的介紹。

如果程序的mandatory屬性設定為on,将被認為對節點的功能至關重要,這類程序可以是運作ios xr的任何子系統,比如線卡、路由處理器(rp)、服務處理器(sp),或交換矩陣卡子產品。如果一個設定了mandatory屬性的程序退出或終止(die),并且在數次嘗試後未能成功地重新開機,系統管理器将重新開機該節點。

如果placement屬性設定為on,表示相關的程序是可遷移的,并可以運作在路由器上的任何活動rp或drp節點上。有關程序遷移的内容将在本章後續部分繼續介紹。

系統管理器會為每個可執行檔案配置設定一個獨一無二的作業id(jid)。jid在程序重新開機的過程中保持不變。除了jid,每個程序還會在啟動或重新開機時被配置設定一個唯一的程序id(pid)。如果程序重新開機,将被配置設定一個新的pid号,不過仍沿用最初的jid号。

某些程序,例如telnetd,是一種在響應使用者請求(如telnet路由器)時啟動的臨時程序。這類臨時程序不受系統管理器管理,其jid根據程序id(pid)得出。由于臨時程序的啟動不受系統管理器控制,是以不需要引導檔案。

系統管理器用于監控每個程序的健康狀況。圖2-4給出了系統管理器與程序的生命周期。當系統管理器啟用某個程序時,将伴随啟動一個初始化結束(eoi)計時器。在程序啟動并完成初始化之後,将會發送eoi信号告知系統管理器。如果程序的eoi計時器在sysmgr收到eoi信号之前到期,sysmgr将會宣告程序初始化失敗。

《Cisco IOS XR技術精要》一2.2 Cisco IOS XR系統管理器

系統管理器提供了一組豐富的指令用來檢視程序狀态(啟動、終止、緊急中斷[crash]、重新開機)和配置程序屬性。指令show process [< process-name> | < jid >] location < r/s/m>可檢視程序的資料及狀态。例2-5是一例在活動rp上檢視is-is程序的指令輸出。

例2-5 is-is程序與線程

《Cisco IOS XR技術精要》一2.2 Cisco IOS XR系統管理器

ios xr中程序的各關鍵屬性釋義如下。

作業id(jid):jid号始終保持一緻,甚至程序重新開機。

程序id(pid):程序重新開機,pid字段改變。

線程id(tid):一個程序可以具有多個線程來執行特定的程序任務。

可執行檔案路徑(executable path):引用程序可執行檔案的路徑。如果執行了線上軟體更新操作,可能還會顯示“executable path on reboot”字段。

執行個體(instance):在特定時間内,可能會同時運作着多個程序執行個體。每個執行個體通過一個數字來引用。

重生計數(respawn count):程序已經(重新)啟動的次數。程序首次啟動時,重生計數為1。重生模式可以是on或off。該字段表示此程序是否可以從故障中自動重新開機。

每分鐘最大重生數(max spawns per minute):一分鐘内的最大重生次數。如果超出了此計數,程序将通過自身防禦機制停止重新開機。

最後啟動日期時間(last started):程序最後一次啟動的時間戳。

程序狀态(process state):程序目前的狀态。

啟動配置資訊(started on config):指出含有程序重生相關配置資料的系統資料庫(sysdb)的位置。

核心(core):核心檔案中的記憶體段。

最大轉儲數(max.core):核心檔案的轉儲次數。0意味着無限次數。

強制性(mandatory):指出此程序是否為強制性程序。如果為強制性程序,而且sysmgr在連續數次嘗試後仍未能正常啟動或重新開機,那麼将會引起系統重新啟動。

之前介紹過,每個程序又帶有多個線程,線程通過線程id(tid)來辨別。此外,在某些情況下,每個線程都被配置設定了一個線程名稱。使用指令show process threadname < jid >可以檢視某個程序帶有的線程的線程名稱。注意,使用者可以使用指令show process來列出所有程序的jid,也可以通過指令show process < process-name >來檢視某個程序的詳細資訊。例2-6給出了is-is程序的線程名稱。其中,程序下的某些線程可能是屬于某些dll庫的。例如,在例2-6中的is-is程序裡,chkpt_evm就不是一個is-is線程,而是屬于運作在is-is程序空間内的一個檢查點dll庫。

例2-6 檢視is-is線程名稱

《Cisco IOS XR技術精要》一2.2 Cisco IOS XR系統管理器

使用者可以使用指令process [start | restart | crash | shutdown] [< process-name > | < jid >] location < r/s/m >來啟動、重新開機、緊急中斷,或結束節點上的某個程序。