華為交換機(jī)系統(tǒng)啟動原理介紹
1、系統(tǒng)啟動
系統(tǒng)啟動時需要加載系統(tǒng)軟件和配置文件。如果指定了下次啟動的補(bǔ)丁文件,還需加載補(bǔ)丁文件。系統(tǒng)啟動的場景一般有以下幾種:
1、對設(shè)備進(jìn)行升級操作,即系統(tǒng)軟件從低版本至高版本升級。
當(dāng)增加了新特性或者需要對原有性能進(jìn)行優(yōu)化以及解決當(dāng)前運行版本的問題時,則需要對設(shè)備進(jìn)行升級。此時需要加載高版本的系統(tǒng)軟件,并重新啟動設(shè)備來實現(xiàn)。
2、對設(shè)備進(jìn)行降級操作(版本回退),即系統(tǒng)軟件從高版本至低版本降級。
設(shè)備完成升級后,如果業(yè)務(wù)出現(xiàn)異常,為保證業(yè)務(wù)正??梢韵葘⒃O(shè)備版本進(jìn)行回退。此時需要加載低版本的系統(tǒng)軟件,并重新啟動設(shè)備來實現(xiàn)。
3、在開局場景下,可以對一個新設(shè)備加載已有的滿足用戶需求的配置文件。
新設(shè)備中只包含了設(shè)備出廠時的缺省配置,如果需要使這臺新設(shè)備連接至網(wǎng)絡(luò)再運行業(yè)務(wù),則需要用戶在設(shè)備上進(jìn)行大量的配置,花費不少時間。對于這種情況,只需要為這臺新設(shè)備指定滿足用戶需求的配置文件,然后重新啟動設(shè)備即可,極大提升了用戶對設(shè)備的配置效率。
4、對設(shè)備指定升級后的補(bǔ)丁文件。
可以在設(shè)備升級的同時指定之前未安裝過的補(bǔ)丁文件,當(dāng)設(shè)備升級完成后,補(bǔ)丁也會立即生效。設(shè)備的升級與每次發(fā)布的版本相關(guān),在發(fā)布新版本的同時會配套發(fā)布相應(yīng)的升級指導(dǎo)書,用戶可以根據(jù)升級指導(dǎo)書進(jìn)行設(shè)備升級。升級指導(dǎo)書獲取路徑:請先登錄華為公司企業(yè)業(yè)務(wù)支持網(wǎng)站(http://support.huawei.com/enterprise),登錄后,根據(jù)產(chǎn)品型號和版本名稱,獲取相應(yīng)的升級指導(dǎo)書。
2、系統(tǒng)軟件
設(shè)備的軟件包括BootROM軟件和系統(tǒng)軟件。設(shè)備上電后,先運行BootROM軟件,初始化硬件并顯示設(shè)備的硬件參數(shù),然后運行系統(tǒng)軟件。
系統(tǒng)軟件一方面提供對硬件的驅(qū)動和適配功能,另一方面實現(xiàn)了業(yè)務(wù)特性。BootROM軟件與系統(tǒng)軟件是設(shè)備啟動、運行的必備軟件,為整個設(shè)備提供支撐、管理、業(yè)務(wù)等功能。
設(shè)備在升級時包括升級BootROM軟件和升級系統(tǒng)軟件。目前華為交換 機(jī)設(shè)備的系統(tǒng)軟件(.cc)中已經(jīng)包含了Boot軟件,在升級系統(tǒng)軟件的同時即可自動升級Boot。
3、配置文件
配置文件是命令行的集合。用戶將當(dāng)前配置保存到配置文件中,以便設(shè)備重啟后,這些配置能夠繼續(xù)生效。另外,通過配置文件,用戶可以非常方便地查閱配置信息,也可以將配置文件上傳到別的設(shè)備,來實現(xiàn)設(shè)備的批量配置。配置文件為文本文件,其規(guī)則如下:
1、以命令格式保存。
2、為了節(jié)省空間,只保存非缺省的參數(shù)。
3、以命令視圖為基本框架,同一命令視圖的命令組織在一起,形成一節(jié),節(jié)與節(jié)之間通常用空行或注釋行隔開(以“#”開始的為注釋行)??招谢蜃⑨屝锌梢允且恍谢蚨嘈小?/p>
4、文件中各節(jié)的順序安排通常為:全局配置、接口配置、各種協(xié)議配置和用戶界面配置。
5、配置文件必須以“.cfg”或“.zip”作為擴(kuò)展名,而且必須存放在存儲設(shè)備的根目錄下。
6、配置文件中,命令表達(dá)式必須是全寫,請勿使用縮寫。
7、配置文件中,每行命令使用“rn”換行,禁止使用其他形式不可見字符換行。
8、配置文件傳輸至設(shè)備時,推薦使用FTP的binary模式。
設(shè)備運行過程中,有出廠配置、配置文件和當(dāng)前配置,區(qū)別如下表:
1、配置文件
設(shè)備上電時,從默認(rèn)存儲路徑中讀取配置文件進(jìn)行設(shè)備的初始化操作,因此該配置文件中的配置稱為初始配置。如果默認(rèn)存儲路徑中沒有配置文件,則設(shè)備用缺省參數(shù)初始化配置。
使用display startup命令可以查看到設(shè)備本次以及下次啟動的配置文件。使用display saved-configuration命令可以查看設(shè)備下次啟動時的配置文件信息。
2、當(dāng)前配置
與初始配置相對應(yīng),設(shè)備運行過程中正在生效的配置稱為當(dāng)前配置。
使用display current-configuration命令查看設(shè)備的當(dāng)前配置信息。
用戶通過命令行接口可以修改設(shè)備當(dāng)前配置,為了使當(dāng)前配置能夠作為設(shè)備下次啟動時的起始配置,需要使用save命令保存當(dāng)前配置到默認(rèn)存儲器中,形成配置文件。
配置文件支持包含30000條命令行。如果超過了30000條,在設(shè)備進(jìn)行升級時,不能保證所有命令在升級后兼容。如果使用不完整格式進(jìn)行配置,由于命令保存到配置文件中時使用的是完整格式,可能導(dǎo)致配置文件中存在長度超過510個字符的命令(系統(tǒng)可正確執(zhí)行的命令長度最大為510個字符)。系統(tǒng)重啟時,這類命令將無法恢復(fù)。
4、補(bǔ)丁文件
補(bǔ)丁是一種與設(shè)備系統(tǒng)軟件兼容的軟件,用于解決設(shè)備系統(tǒng)軟件少量且急需解決的問題。在設(shè)備的運行過程中,有時需要對設(shè)備系統(tǒng)軟件進(jìn)行一些適應(yīng)性和排錯性的修改,如改正系統(tǒng)中存在的缺陷、優(yōu)化某功能以適應(yīng)業(yè)務(wù)需求等。
補(bǔ)丁通常以補(bǔ)丁文件的形式發(fā)布,一個補(bǔ)丁文件可能包含一個或多個補(bǔ)丁,不同的補(bǔ)丁具有不同的功能。當(dāng)補(bǔ)丁文件被用戶從存儲器加載到內(nèi)存補(bǔ)丁區(qū)中時,補(bǔ)丁文件中的補(bǔ)丁將被分配一個在此內(nèi)存補(bǔ)丁區(qū)中唯一的單元序號,用于標(biāo)志、管理和操作各補(bǔ)丁。
5、補(bǔ)丁分類
根據(jù)補(bǔ)丁生效對業(yè)務(wù)運行的影響,補(bǔ)丁分成熱補(bǔ)丁和冷補(bǔ)?。?/p>
1、熱補(bǔ)丁HP(Hot Patch):
補(bǔ)丁生效不中斷業(yè)務(wù),不影響業(yè)務(wù)運行,同時可以降低設(shè)備升級成本,避免升級風(fēng)險。
2、冷補(bǔ)丁CP(Cold Patch):
要使補(bǔ)丁生效需要復(fù)位單板或重啟設(shè)備,影響業(yè)務(wù)的運行。
根據(jù)補(bǔ)丁間的依賴關(guān)系,補(bǔ)丁可分為增量型補(bǔ)丁和非增量型補(bǔ)丁。
3、增量型補(bǔ)?。?/p>
是指對在其前面的補(bǔ)丁有依賴性的補(bǔ)丁。一個新的補(bǔ)丁文件必須包含前一個補(bǔ)丁文件中的所有補(bǔ)丁信息。用戶可以在不卸載原補(bǔ)丁文件的情況下直接安裝新的補(bǔ)丁文件。
4、非增量型補(bǔ)?。?/p>
只允許當(dāng)前系統(tǒng)安裝一個補(bǔ)丁文件。如果用戶安裝完補(bǔ)丁之后希望重新安裝另一個補(bǔ)丁文件,則需要先卸載當(dāng)前的補(bǔ)丁文件,然后再重新安裝并運行新的補(bǔ)丁文件。
目前,華為產(chǎn)品發(fā)布的補(bǔ)丁類型都為熱補(bǔ)丁與增量型補(bǔ)丁。在后續(xù)的描述中如無特別說明都是指此類補(bǔ)丁。
6、補(bǔ)丁狀態(tài)
每個補(bǔ)丁都有自身的狀態(tài),只有在用戶命令行的干預(yù)下才能發(fā)生切換。補(bǔ)丁狀態(tài)詳細(xì)信息如下:
1、空閑狀態(tài)(Idle)
此時,補(bǔ)丁文件存儲在設(shè)備的存儲器中,但文件中的補(bǔ)丁還沒有被加載到內(nèi)存補(bǔ)丁區(qū)中。當(dāng)用戶將補(bǔ)丁從存儲器中加載到內(nèi)存補(bǔ)丁區(qū)后,補(bǔ)丁的狀態(tài)將被設(shè)置為去激活。
2、去激活狀態(tài)(Deactive)
當(dāng)補(bǔ)丁被加載到內(nèi)存補(bǔ)丁區(qū)中或激活的補(bǔ)丁被停止運行時,補(bǔ)丁就處于去激活狀態(tài)。
用戶可以對去激活狀態(tài)的補(bǔ)丁進(jìn)行以下兩種操作:
卸載此補(bǔ)丁,使補(bǔ)丁從內(nèi)存補(bǔ)丁區(qū)中被刪除。臨時運行此補(bǔ)丁,使補(bǔ)丁的狀態(tài)變?yōu)榧せ顮顟B(tài)。
3、激活狀態(tài)(Active)
當(dāng)補(bǔ)丁被存儲在內(nèi)存補(bǔ)丁區(qū)中,且被臨時運行時,補(bǔ)丁就處于激活狀態(tài)。當(dāng)單板被復(fù)位后,此單板上在復(fù)位前處于激活狀態(tài)的補(bǔ)丁仍然恢復(fù)為激活狀態(tài)。只有當(dāng)整機(jī)復(fù)位后,復(fù)位前處于激活狀態(tài)的補(bǔ)丁將會處于去激活狀態(tài)。
用戶可以對激活狀態(tài)的補(bǔ)丁進(jìn)行以下3種操作:
卸載此補(bǔ)丁,使補(bǔ)丁從內(nèi)存補(bǔ)丁區(qū)中被刪除。停止運行此補(bǔ)丁,使補(bǔ)丁的狀態(tài)變?yōu)槿ゼせ顮顟B(tài)。永久運行此補(bǔ)丁,使補(bǔ)丁的狀態(tài)變?yōu)檫\行狀態(tài)。
4、運行狀態(tài)(Running)
當(dāng)補(bǔ)丁被存儲在內(nèi)存補(bǔ)丁區(qū)中,且被永久運行時,補(bǔ)丁就處于運行狀態(tài)。當(dāng)單板或整機(jī)被復(fù)位后,在復(fù)位前處于運行狀態(tài)的補(bǔ)丁將保持運行狀態(tài)。
用戶可以卸載處于運行狀態(tài)的補(bǔ)丁,使補(bǔ)丁從內(nèi)存補(bǔ)丁區(qū)中被刪除。

圖1 補(bǔ)丁狀態(tài)的轉(zhuǎn)換關(guān)系
各狀態(tài)之間的轉(zhuǎn)換關(guān)系如上圖1所示。
7、補(bǔ)丁安裝
為設(shè)備安裝補(bǔ)丁也是設(shè)備升級的一種方式。補(bǔ)丁安裝方式有以下兩種:
一般均采用不中斷業(yè)務(wù)的方式,在設(shè)備運行過程中直接加載運行補(bǔ)丁,這也是熱補(bǔ)丁的優(yōu)勢。
這種安裝方式的詳細(xì)過程請參見隨補(bǔ)丁版本同時配套發(fā)布的補(bǔ)丁安裝指導(dǎo)書,用戶可以根據(jù)補(bǔ)丁安裝指導(dǎo)書進(jìn)行補(bǔ)丁安裝。
另外一種方式就是本章介紹的指定系統(tǒng)下次啟動的補(bǔ)丁文件,這種方式需要設(shè)備重啟之后補(bǔ)丁才能生效。一般用于設(shè)備升級的同時安裝補(bǔ)丁文件。
所有業(yè)務(wù)板沒有正常運行前不能執(zhí)行save命令保存配置文件
設(shè)備的配置信息保存在Flash或者CF卡的配置文件中,單板啟動運行時會讀取配置文件恢復(fù)對此單板的配置信息,并在內(nèi)存中保留一份當(dāng)前運行的配置信息。
可以通過命令display saved-configuration查看配置文件中的配置信息,通過命令display current-configuration查看內(nèi)存中的配置信息。
在系統(tǒng)所有單板正常運行后,配置文件和內(nèi)存中的配置信息應(yīng)該是一致的,當(dāng)增加、修改、刪除配置后,配置文件中的配置信息和內(nèi)存中的配置信息不一致,此時可以通過命令save來保存當(dāng)前內(nèi)存中的配置信息到配置文件。
在系統(tǒng)啟動階段,如果所有業(yè)務(wù)板還沒有正常運行,即配置文件還未完全恢復(fù)到內(nèi)存中,此時執(zhí)行命令save保存,內(nèi)存中不完整的配置信息將會覆蓋配置文件中的配置信息,造成部分配置信息丟失。