軟件啟動(dòng)模式設(shè)定
只有考慮了所有能導(dǎo)致系統(tǒng)故障的因素,一個(gè)系統(tǒng)才是真正完整的高可用性系統(tǒng)。盡管對(duì)硬件行為的建模和預(yù)測(cè)機(jī)制有很深入的理解,但還有其它一些因素難以模型化和預(yù)測(cè)。對(duì)這部分的研究往往需要參考以前的記錄,因?yàn)橄到y(tǒng)在啟動(dòng)的時(shí)候通常難以達(dá)到高可用性。以前的反饋信息和系統(tǒng)改進(jìn)對(duì)于達(dá)到高可用性至關(guān)重要。 至今為止,軟件造成的故障是系統(tǒng)故障的第二大因素,但是常常不能像硬件那樣得到足夠的重視。同時(shí),軟件的變化和升級(jí)極為頻繁,這使得軟件對(duì)系統(tǒng)穩(wěn)定性的長(zhǎng)期影響更加難以預(yù)測(cè)。隨著系統(tǒng)對(duì)軟件故障檢測(cè)和管理依賴性的增強(qiáng),軟件問(wèn)題日益受到重視。
圖1的表格顯示了各種故障因素的比例。系統(tǒng)故障總數(shù)近2/3源于硬件和軟件故障,另外的1/3是由一些更難控制的因素引起的。由硬件和軟件升級(jí)導(dǎo)致的系統(tǒng)穩(wěn)定性問(wèn)題是一個(gè)重要因素,而操作人員誤操作引起的故障與自然災(zāi)難和人為破壞引起的故障一樣,具有重要的統(tǒng)計(jì)意義。 冷重啟、暖重啟和熱重啟 軟件在系統(tǒng)故障管理中占有重要地位。無(wú)論是由硬件還是由軟件引發(fā)的系統(tǒng)故障,其持續(xù)時(shí)間長(zhǎng)短取決于系統(tǒng)的重啟動(dòng)能力。如果系統(tǒng)采用熱重啟(hot restart)、暖重啟(warm restart)或冷重啟(cold restart)模式,故障管理中的處理方式將各不相同。重啟模式受事件發(fā)生之時(shí)系統(tǒng)可用信息量的影響——可用的信息越多,重啟速度也就越快。 熱重啟的恢復(fù)時(shí)間最快,但也最難實(shí)現(xiàn)。在熱重啟模式下,應(yīng)用程序保存系統(tǒng)當(dāng)前運(yùn)行的狀態(tài)信息,并將該信息傳送給備份部件,以實(shí)現(xiàn)快速恢復(fù)。應(yīng)用程序要具備利用這些狀態(tài)信息實(shí)現(xiàn)系統(tǒng)的重啟動(dòng)的能力。 熱重啟系統(tǒng)中同樣需要在故障管理事件之前預(yù)先指定備份部件。這在2N系統(tǒng)中最為明顯,因?yàn)樵撓到y(tǒng)的部件與備份部件是一一對(duì)應(yīng)的(見(jiàn)圖2)。而在N+1系統(tǒng)中,熱重啟要求備份部件保存多個(gè)運(yùn)行中部件的狀態(tài)信息,因此備份部件就必須具有額外存儲(chǔ)能力,否則就必須采用暖重啟模式。 暖重啟與熱重啟類似。在該模式下,應(yīng)用程序保存系統(tǒng)當(dāng)前運(yùn)行的狀態(tài)信息(見(jiàn)圖3)。在執(zhí)行故障管理時(shí)指定備份部件。備份部件需配置必要的應(yīng)用程序和狀態(tài)信息,這就增加了重啟時(shí)間,但能降低備份部件的成本。在備份部件與現(xiàn)行部件不完全相同的系統(tǒng)中,更易實(shí)現(xiàn)暖重啟。 冷重啟(cold restart)是最易于實(shí)現(xiàn)的,但需要最長(zhǎng)的重啟動(dòng)時(shí)間。冷重啟意味著備份部件對(duì)故障部件的運(yùn)行狀態(tài)一無(wú)所知,備份部件只能從初始化狀態(tài)開(kāi)始。 實(shí)現(xiàn)冷重啟幾乎無(wú)須對(duì)系統(tǒng)應(yīng)用程序作任何修改,由操作系統(tǒng)和服務(wù)程序?qū)崿F(xiàn)高可用性軟件的功能。但這是以系統(tǒng)更長(zhǎng)的重啟時(shí)間為代價(jià),并丟失系統(tǒng)所有當(dāng)前的運(yùn)行狀態(tài)信息。 各種重啟模式所需的時(shí)間取決于系統(tǒng)及應(yīng)用軟件的實(shí)現(xiàn)方法。相對(duì)而言,如果熱重啟模式的時(shí)間為1X,那么暖重啟的時(shí)間將會(huì)是2-3X,冷重啟的時(shí)間將接近10-100X。在支持高可用性的系統(tǒng)軟件和應(yīng)用程序中,重啟時(shí)間將要求為最短。 故障管理軟件 良好的系統(tǒng)服務(wù)程序可減少應(yīng)用程序?yàn)閷?shí)現(xiàn)高可用性而做的大量工作,通過(guò)提供穩(wěn)定的系統(tǒng)平臺(tái),即可實(shí)現(xiàn)高可用性。高可用性系統(tǒng)要求在系統(tǒng)的各個(gè)環(huán)節(jié)進(jìn)行縝密的設(shè)計(jì),高可用的軟件基礎(chǔ)結(jié)構(gòu)起始于操作系統(tǒng)(OS)(見(jiàn)圖4)。為實(shí)現(xiàn)小型PCI(CPCI)系統(tǒng)中部件的熱拔插,操作系統(tǒng)必須支持設(shè)備驅(qū)動(dòng)器的動(dòng)態(tài)裝載和卸載,并允許系統(tǒng)資源在這些驅(qū)動(dòng)器中重新分配。這是實(shí)現(xiàn)系統(tǒng)修復(fù)和重構(gòu)的最基本功能。 CPCI熱拔插(也稱為完全熱拔插)提供了自動(dòng)化程度更高的熱拔插功能。完全熱拔插的目的是改善系統(tǒng)的操作界面,高可用性要求操作界面必須盡可能靈活處理各種錯(cuò)誤。完全熱拔插使用一種稱為ENUM的信號(hào)提醒系統(tǒng)取出或插入電路板,并允許系統(tǒng)自動(dòng)實(shí)現(xiàn)資源的重新配置。完全熱拔插支持在簡(jiǎn)單系統(tǒng)模型中使用非硬式驅(qū)動(dòng)器。 使用硬式驅(qū)動(dòng)器可達(dá)到更高程度的可用性,硬式驅(qū)動(dòng)器能檢測(cè)到下層硬件故障。硬式驅(qū)動(dòng)器通過(guò)采用脫機(jī)和備份操作模式,使應(yīng)用程序可采用更高級(jí)別的重啟模式。這些模式為故障管理系統(tǒng)提供了診斷信息,因而對(duì)于高可用系統(tǒng)而言,驅(qū)動(dòng)器是故障檢測(cè)的第一層。 拓?fù)涔芾?/B> 系統(tǒng)拓?fù)浣Y(jié)構(gòu)的管理是高可用性系統(tǒng)基本架構(gòu)的底層,系統(tǒng)拓?fù)浣Y(jié)構(gòu)的管理系統(tǒng)負(fù)責(zé)沒(méi)有管理人員在場(chǎng)時(shí)器件的隔離。系統(tǒng)拓?fù)涔芾淼闹嘏渲靡灿兄谔岣呦到y(tǒng)的穩(wěn)定性。 CPCI通過(guò)高可用系統(tǒng)模式實(shí)現(xiàn)了這種拓?fù)涔芾砟芰?。系統(tǒng)中熱拔插控制器能使單個(gè)電路板在軟件控制下斷電或重啟。 開(kāi)放結(jié)構(gòu)系統(tǒng)的拓?fù)涔芾硇枰`活性。從OEM通信系統(tǒng)設(shè)備供應(yīng)商的角度看,最終應(yīng)用的有效載荷往往由下一個(gè)增值整合器(value added integrator)加以補(bǔ)充。系統(tǒng)的拓?fù)浣Y(jié)構(gòu)是動(dòng)態(tài)的,因此拓?fù)涔芾硐鄳?yīng)地也應(yīng)該具有靈活性。拓?fù)涔芾肀仨氂捎脩艨梢栽L問(wèn)的數(shù)據(jù)庫(kù)來(lái)驅(qū)動(dòng)。對(duì)設(shè)計(jì)優(yōu)良的拓?fù)涔芾砥鱽?lái)說(shuō),其系統(tǒng)底層架構(gòu)對(duì)用戶不透明,用戶不必關(guān)心其具體的實(shí)現(xiàn)方法。 故障及事件自動(dòng)管理 以上所述的所有軟件都具有控制基礎(chǔ)系統(tǒng)部件的基本能力。這種軟件基本結(jié)構(gòu)可跟支持系統(tǒng)修復(fù)和重構(gòu)的硬件基本結(jié)構(gòu)相媲美。為達(dá)到高可用(即99.999%正常運(yùn)行時(shí)間),故障管理過(guò)程必須完全自動(dòng)化,因?yàn)橐揽坎僮鲉T來(lái)管理系統(tǒng)將會(huì)花費(fèi)很長(zhǎng)的時(shí)間。 完全自動(dòng)化管理系統(tǒng)的基礎(chǔ)是事件/故障管理器。軟件或硬件升級(jí)這樣的事件,以及硬件或軟件故障引發(fā)的事件,從管理的角度來(lái)說(shuō)本質(zhì)上都是相同的,都產(chǎn)生了改變系統(tǒng)運(yùn)行狀態(tài),然后回復(fù)到穩(wěn)定狀態(tài)的動(dòng)作。 由于系統(tǒng)拓?fù)浣Y(jié)構(gòu)具有靈活性,事件管理器也必須具有像系統(tǒng)拓?fù)浣Y(jié)構(gòu)一樣的靈活性。事件管理器必須能接收來(lái)自系統(tǒng)整合器規(guī)定的程序指令,一個(gè)設(shè)計(jì)良好的事件管理器為用戶提供了易于詳細(xì)說(shuō)明程序的界面。 高級(jí)業(yè)務(wù) 校驗(yàn)點(diǎn)(checkpointing)和“心跳”(heartbeat)服務(wù)功能結(jié)合分布式處理環(huán)境(DPE)實(shí)現(xiàn)了工作/備份操作,這些功能使應(yīng)用程序能夠?qū)崿F(xiàn)更高級(jí)的重啟模式。點(diǎn)校驗(yàn)為應(yīng)用程序提供了保存狀態(tài)的方法,而“心跳”功能使工作設(shè)備和備份設(shè)備保持同步,并用作檢測(cè)校驗(yàn)點(diǎn)處理故障的一種方法。 DPF抽象了來(lái)自應(yīng)用程序的系統(tǒng)配置。在拓?fù)涔芾砥鞯膮f(xié)同工作下,用戶應(yīng)用程序無(wú)需了解諸如備份設(shè)備在何處等系統(tǒng)實(shí)際配置情況。 事件管理器與拓?fù)涔芾砥骷癉PF共同將系統(tǒng)事件從應(yīng)用層中隱去,因某個(gè)器件故障引發(fā)的拓?fù)浣Y(jié)構(gòu)變化可通過(guò)邏輯映射到其它設(shè)備來(lái)處理。 另一個(gè)提高系統(tǒng)效率的重要功能是診斷控制。事件管理器利用診斷信息來(lái)確定故障部件,通信平臺(tái)通常要求實(shí)時(shí)部件故障判斷的準(zhǔn)確率達(dá)到95%。 由于工作/備份系統(tǒng)中的設(shè)備具有某種狀態(tài),可利用診斷管理器為設(shè)備的正常狀態(tài)作正確診斷。診斷管理器與拓?fù)涔芾砥骷笆录芾砥鞴餐袛嘣O(shè)備是否在期望的狀態(tài)下工作。 以上所描述的所有基本結(jié)構(gòu)仍不能產(chǎn)生5個(gè)9(99.999%)的高可用性系統(tǒng)。先前5個(gè)9系統(tǒng)的高可用預(yù)算中,每年為系統(tǒng)升級(jí)分配了1分鐘時(shí)間,軟件在線升級(jí)必須滿足這個(gè)要求。軟件在線升級(jí)需要采用具有上述所有基本結(jié)構(gòu)部件特性的工作/備份應(yīng)用程序模型。 由于系統(tǒng)很少獨(dú)立工作,系統(tǒng)的最后部分通常是一個(gè)網(wǎng)絡(luò)管理接口。故障管理器采用分層實(shí)現(xiàn)時(shí)呈******狀態(tài),因此這種結(jié)構(gòu)通常能達(dá)到******效果。 第三方軟件 高可用性技術(shù)很快從主要的電信設(shè)備提供商的專用平臺(tái)轉(zhuǎn)變?yōu)殚_(kāi)放架構(gòu)的平臺(tái)。另外,實(shí)現(xiàn)高可用性所需的開(kāi)放軟件也日益普遍。 這些軟件部分來(lái)源于開(kāi)發(fā)高可用性操作系統(tǒng)的供應(yīng)商。許多供應(yīng)商致力于這方面的研究,但還沒(méi)有任何新產(chǎn)品發(fā)布,這種局面有望在2001年大有改觀。當(dāng)前一些操作系統(tǒng)聲稱具有高可用性,卻僅局限于2N系統(tǒng)應(yīng)用中。另一種選擇是將支持基本業(yè)務(wù)的操作系統(tǒng)和可以工作在各種操作系統(tǒng)下的第三方故障管理軟件結(jié)合起來(lái)。盡管一些產(chǎn)品可實(shí)現(xiàn)大部分所需的軟件功能,用戶仍然需要為目標(biāo)平臺(tái)的管理開(kāi)發(fā)相應(yīng)的程序。 適當(dāng)?shù)能浖窘Y(jié)構(gòu)與適當(dāng)?shù)挠布窘Y(jié)構(gòu)對(duì)于高可用性而言同樣重要。只有將許多精工細(xì)做的部件適當(dāng)?shù)丶桑拍艽_保高可用性。另外,了解系統(tǒng)高可用性必須滿足的要求也同等重要。 要獲得更高的可用性,需要付出相應(yīng)的代價(jià)。采用正確的系統(tǒng)體系結(jié)構(gòu)、重啟模式和軟件基本結(jié)構(gòu)可得到性價(jià)比最好的系統(tǒng)。系統(tǒng)集成商和平臺(tái)供應(yīng)商應(yīng)共同致力于開(kāi)發(fā)所有的必要軟件,實(shí)現(xiàn)期望的高可用性。 |