天天看點

《Cisco IOS XR技術精要》一4.3 配置管理元件

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

cisco ios xr技術精要

控制平面與資料平面的分離是由多種不同的元件共同完成的。本節詳細讨論了配置管理中的一些關鍵元件,包括配置管理器(cfgmgr)、配置檔案系統(cfs)、系統資料庫(sysdb),以及副本資料服務檔案系統(rdsfs)。

cisco ios xr配置管理器(cfgmgr)是一個必不可少的軟體元件,為路由器的配置提供維護、應用、與維護支援。配置管理器還負責通過rdsfs實作cfs通路區域。多說一句,cfs對所有管理節點的複制與同步工作也是通過rdsfs完成的。

配置管理器主要功能性如下所示。

當路由器啟動并運作時,cfgmgr可以在很短的時間内完成配置的儲存與應用。

在crs或gsr xr12000分布式結構中,cfgmgr也是分布式的,每個cfgmgr分别負責各自節點的配置應用。

cfgmgr負責在管理節點上存儲配置,用于通路所有其他節點。

活動狀态下,msc驅動器/用戶端會發送配置請求給cfgmgr來儲存配置。

在系統運作期間,cfgmgr可以優化過量配置資訊的送出處理。

cfgmgr負責管理與配置相關的服務,如配置檢查點、配置回退、配置曆史,以及配置上鎖或解鎖。

注釋:回退(rollback)是指将系統恢複到執行某一動作前的版本。使用者可以使用配置回退這一強大的配置特性輕松地将配置恢複到先前的某個狀态。

我們來讨論一下在路由器使用主用寄存配置啟動的環境下,cfgmgr的作用。主用寄存配置(primary persistent configuration)是ios xr中的一個新的概念,後文會對其進行解釋。首先,rp上的cfgmgr會檢查主用寄存配置的狀态。基于主用寄存配置的狀态,系統會選擇使用主用寄存配置,或是ascii備用配置(備用寄存配置)來恢複路由器的運作配置。當主用寄存配置版本變更、檔案損壞或是不能向下相容時,系統也會選擇ascii備用配置。

配置管理器由一組名為cfgmgr rp和cfgmgr lc的程序組成。這些程序的主要用途是恢複系統的配置。表4-1及表4-2通過分布區域及配置示例總結了cfgmgr rp與cfgmgr lc的功能、角色,及作用。

《Cisco IOS XR技術精要》一4.3 配置管理元件

圖4-1中的cfgmgr rp程序恢複共享平面配置及其本地平面配置(例如管理節點接口)。運作在每個msc或節點上的cfgmgr lc程序将配置應用在各自的節點上。

《Cisco IOS XR技術精要》一4.3 配置管理元件

配置檔案系統(cfs)是一組用來儲存二進制格式主用寄存配置的檔案和目錄。cfs受cfgmgr管理,并通過rdsfs将自身複制到sdr内的其他管理節點上(rp和drp)。cfs中除了主用寄存配置之外,還包括ascii備用配置、配置曆史、配置送出檢查點、啟動失敗配置檔案、版本資訊、中繼資料檔案等。配置檔案存放在管理節點的cfs根目錄中。預設情況下,配置檔案位于< 檔案系統>/config/目錄下。cfgmgr會使用diskutil系統工具找出哪個檔案系統是cfs。

注釋:預設系統使用disk0檔案系統作為cfs,使用者可以設定rommon變量将cfs設定成disk1或cf卡等平台支援的其他檔案系統。

指令dir可用來檢視檔案系統中的檔案(目錄)。例4-2中列出了cfs中的系統配置檔案:running config、曆史配置(已送出的配置)、admin配置等1。

例4-2 disk0上的cfs

《Cisco IOS XR技術精要》一4.3 配置管理元件

在例4-2中,disk0:config的輸出中包含以下主目錄。

admin目錄包含所有管理平面配置。

lr目錄包含所有sdr相關檔案。

failed目錄包含所有啟動未成功的配置。如需要,可以檢視這些啟動失敗配置,并重新輸入來恢複系統配置。

history目錄包含所有與配置修改相關的系統事件(如送出操作)。指令show configuration history可檢視history目錄中的内容。

removed_cfg目錄包含了在pie解除安裝或是在版本升降級時cli指令不支援的場景下被删除的配置資訊。例如,如果系統配置了多點傳播特性,那麼當多點傳播pie從系統中删除時,所有與多點傳播相關的配置将被放入romoved_cfg目錄中。

cfs會周期性地在主備rp之間保持同步,用以維護rp故障切換後系統的配置狀态。cfs也會在除msc之外的所有其他管理節點中建立目錄并保持同步(原因是msc中無磁盤)。圖4-2清楚地列出了cfs的目錄結構。

《Cisco IOS XR技術精要》一4.3 配置管理元件

如先前提到的,主用寄存配置(primary persistent configuration)是cisco ios xr中的一個新的概念,不要将其與ios中的啟動配置(startup configuration)弄混。主用寄存配置是基于送出基準點(commit refpoint)與絕對基準點(absolute refpoint)建立的。主用寄存配置以二進制形式儲存(sysdb格式);是以,在系統啟動階段可以友善地将主用寄存配置直接地恢複到記憶體中。絕對基準點與送出基準點儲存在cfs中,每次修改或送出配置都會被更新。

注釋:對于每次成功的送出操作,系統都會建立一條commit資料庫記錄。基準點(refpoint)便是引用資料庫中這些記錄的基準。

舉個例子來說明這些絕對基準點和送出基準點是如何建立并且恢複路由器配置的。在圖4-3中,磁盤中的cfs包含所有從1000000120~1000000219的送出基準點檔案。這些送出基準點中的每一個檔案都對應着使用者配置修改後的一次送出操作。絕對基準點包含了在送出了1000000216之後的路由器配置。後續的三次送出的送出變更檔案(1000000217~1000000219)和先前送出的(1000000120~1000000216)都是可以檢視的。

當使用者在這個時間點重新開機系統時,路由器将從由絕對基準點和3個送出基準點組成的主用寄存配置中恢複配置。

《Cisco IOS XR技術精要》一4.3 配置管理元件

備用寄存配置同樣存儲在cfs内的commit資料庫中,相當于ios中的startup configuration。備用寄存配置是以ascii格式儲存的,ascii備份檔案使用cli形式儲存着整台路由器的配置。在系統重新開機或是pie/smu激活之前,備用寄存配置是根據一定的時間間隔更新的。當系統啟動出現以下情形時,備用寄存配置會被判定在啟動階段恢複配置。

當檢測出二進制配置檔案損壞或配置不一緻(inconsistency)。

路由器更新後的軟體與二進制配置不相容。

ascii配置僅能用來恢複最新的路由器配置,先前的曆史配置變更無法恢複。一旦配置從ascii備份中恢複,使用者将無法檢視并回退到先前的送出基準點。隻有系統從主用寄存配置中恢複後才能使用回退功能。

cfs中的檔案與目錄是路由器内部使用的。使用者不應對其修改或删除。修改操作會導緻配置丢失并且會影響業務。

注釋:絕對基準點是路由器周期定自動更新的。送出基準點是每次對配置更改執行commit指令時更新的。送出基準點檔案中會保留最近100次的送出執行個體。

在第2章中曾提到過,sysdb是一個完全分布的資料庫系統,其資料結構與unix目錄結構很相似,使用者可以檢視到完整的路徑。存放在cfs中的主用寄存配置使用的便是sysdb格式(二進制),這是一種私有的格式。實際上,所有儲存在cfs中的配置檔案使用的都是這種sysdb格式。使用sysdb格式,配置恢複時可以繞過parser(分析程式)的指令解析過程,進而實作更快的配置恢複。

sysdb與其他類型的資料庫一樣,當不同使用者嘗試修改同一資料時,sysdb将會被鎖住,防止配置不一緻(inconsistency)的情況發生。配置以二進制數組的格式儲存在sysdb資料庫中,使得配置指令可以更快地被解析,間接地提升了系統啟動速度。

注釋:在傳統ios中,配置檔案是以ascii格式儲存的,與ios xr中備用寄存配置使用的格式相同。

每次sysdb資訊的變更或修改都需要通過commit程序來完成,這樣的設計是為ios xr的回退特性考慮的。路由器配置恢複(或路由器啟動)階段是沒有commit id的,因為實際上并沒有使用者執行送出操作。sysdb提供了一種管理用戶端從程序中通路可操作資料的方法。sysdb可以了解成是通過cli或snmp配置裝置的使用者與系統特性之間的實作接口,允許使用者建立、修改配置,并将文法正确的配置儲存起來。

配置會在sysdb的幫助下分發到三個不同的平面——管理平面、共享平面、本地平面。當配置送出給路由器時,配置資訊将被會被parser程式解析(假定通過cli方式配置)。parser會将cli格式的配置轉換成内部sysdb格式(也叫做sysdb數組)。當sysdb接收到一組配置資料後,首先會将這部分資料處于阻斷(block)狀态,并将配置分發給其他節點來确認配置的有效性。本地平面資料會被發送到合适的節點上進行驗證。共享平面資料會發送到某個rp/drp卡上(dsdrsc)進行驗證及處理。

sysdb是由3個負責不同配置平面的伺服器程序組成的。這些伺服器程序分别為sysdb_svr_admin(管理sysdb伺服器)、sysdb_svr_shared(共享/全局sysdb伺服器),以及sysdb_svr_local(本地sysdb伺服器)。此外,還有一個叫做“medusa”代理伺服器的sysdb_mc的程序。伺服器程序會儲存各自平面的配置,medusa(sysdb_mc)主要扮演管理代理的角色,負責在各個配置平面伺服器之間轉發資訊。

注釋:在ios xr中,管理代理(management agent)是位于配置管理器和外部環境之間的一個程序。代理(agent)負責與使用者或外部管理系統進行互動,實作配置的檢視與編輯。

對sysdb的通路受控于以下三種不同的伺服器程序。

共享/全局sysdb伺服器:包含系統的公共資訊,以及主要的控制平面特性,如aaa、路由選擇協定等。它運作于rp和drp上。

管理sysdb伺服器:包含系統的管理資訊,僅運作在rp上。

本地sysdb伺服器:包含節點的本地資訊(如接口資訊),運作在每個lc節點上。

不同平面配置資料基于sysdb命名空間子樹互相分開。系統為本地平面資料和共享平面資料分别定義了各自的子樹。例如,所有在/cfg/gl目錄下的資料都被認為是共享平面資料,會被發送給dsdrsc驗證并更新running config。/cfg/if/act/< ifname>目錄下的配置都是本地平面配置,會被發送到接口所在節點上的本地sysdb伺服器。

sysdb資料在邏輯上具有階層化的命名空間。命名空間特點包括:

階層化的分組資訊;

有序的資料結構,有效通路資料存儲中的資料項。

資料項在sysdb中以一種支援快速查找的結構存放起來。sysdb資料存儲通過樹形結構的方式,實作了階層化的命名空間。三個不同的伺服器分别負責轉換sysdb資料庫中各自平面的資料部分。

簡單地說,sysdb就是記憶體中running config的一個副本,其中存放着由管理代理提供的、由不同平面驗證的running config。在此基礎上,sysdb會在節點之間複制管理和共享平面配置,并在本地節點間配置設定本地平面配置。圖4-4诠釋了本地、管理、全局sysdb空間之間的關系。

《Cisco IOS XR技術精要》一4.3 配置管理元件

副本資料服務檔案系統(rdsfs)是一種可提供如下服務的應用。

分布式虛拟檔案系統。

通過檔案/資料副本實作高可用性。基本上,任何從檔案系統接口輸出的對象都可以通過rdsfs複制并通路。

由于節點可能随時會停止工作,又會在任何時間内恢複工作。是以節點上的應用需要以一種與節點位置無關的方式通路配置檔案系統(cfs)。在cfs對可擴充性、高可用性、可靠性的要求的這種條件下,引出了rdsfs技術。rdsfs通過複制cfs資料以及分布式的檔案系統通路功能來試圖解決這些問題。rdsfs負責維護這些資料副本的一緻性,并確定在磁盤錯誤、配置并發,以及節點故障或恢複時不會影響到資料副本及業務。msc自身沒有磁盤,也是通過rdsfs的虛拟磁盤系統的功能讀取cfs檔案的。

1譯者注:ios xr中配置檔案預設目錄為disk0:config/running/alternate_cfg/router.cfg。如果打算備份系統配置,強烈建議使用指令copy running-config device:或指令save configuration running device:,或指令show running-config | file device:,而不是直接對目錄下檔案執行操作。