楊洪雪,劉業輝,詹曉東
(1.北京電子科技職業學院,北京 100015;2.北京工業職業技術學院,北京 100042)
當前無線網絡應用方興未艾,隨著應用的應用的廣泛發展,網優和網絡維護問題愈發突出,網絡服務商為了提供更好的網絡服務,需要對自己的網優設備進行實時監控并及時維護,但是由于網優設備的監控參數多,涉及管理的部門多,造成網優監控系統接口復雜,響應速度慢,擴展性差,多部門交叉使用,安全性差,筆者在進行一個網優設備站點監控網絡設計時提出了一種利用LDAP協議和負載均衡及業務分配中間件對各站點上傳的監控數據進行處理的應用模型,該系統除能夠采集網優設備信息外,還能夠根據監控網絡的負載或“在線”情況將報警信息發到有效在線或“空閑”的監控站,本在實際應用中得到了用戶的好評,對數據監控網絡的的設計提供了一種參考。
LDAP(輕量級目錄訪問協議,Lightweight Directory Access Protocol)是一種標準的目錄服務技術,它基于X.500 標準,可以根據應用的需要進行定制和擴展。LDAP 對Internet 訪問支持非常好,并且對瀏覽和查找目錄及讀取內容進行了專門的優化,使得它讀取的速度比一般的關系型數據庫要快。
LDAP協議規定了信息的形式和特性、信息存放的索引和組織方式、分步式的操作模型等內容。LDAP存儲模型包括四個部分:信息模型、命名模型、功能模型和安全模型。LDAP 信息模型是指使用LDAP模式腳本定義對象類和屬性;LDAP命名模型是說明如何在目錄樹中組織條目的規則;LDAP 功能模型是指提供訪問目錄信息的方法;LDAP 安全模型考慮的是數據安全性問題。LDAP目錄中可以存放各種不同類型的數據,如簡單文本、圖片信息、URL、二進制數據、證書等。
LDAP 協議已經成為一個被廣范支持的標準協議,除用于認證外也易于集成不同應用系統的特點,成為支持網絡系統的重要底層基礎技術之一。
監控數據采集系統的總體設計架構采用如下的設計拓撲: 由控制管理服務器、LDAP目錄服務器、監控數據存儲服務器群組成,如圖1所示。
控制管理服務器的作用是組成資源活動目錄,承擔監控網絡中的各種管理角色及管理任務,向監控中的所有終端提供認證服務,并以控制管理服務器為安全邊界維持監控網絡內部的安全。監控網絡中的賬號信息通過LDAP目錄服務器查詢獲得,目錄服務器包含了監控網絡內部的賬戶、密碼以及數據庫的連接字段等信息構成的數據庫。

圖1 監控數據采集系統的總體架構
當被監控設備或監控終端聯入網絡時,控制管理服務器首先要鑒別這個設備或計算機是否是屬于這個監控網絡,用戶使用的登錄賬號是否存在、密碼是否正確,如果以上信息有不正確,那么控制管理服務器就會拒絕這個設備或計算機登錄網絡。從而保證監控網絡內部的安全。
由于要保證監控和數據采集的實時性,系統要求每個服務器只采集32個被控網優站點的數據,而每個監控工作站最多負責監控16個網優站點的狀態,除工作人員可以挑選被監控的網優站點外,若網優站點設備若發生負載過大等報警(預警)信息,可以主動聯系監控工作站,這就需要系統能為被監控設備尋找到在線并空閑的監控工作站,被監控設備監控終端連接到以控制管理服務器為入口的數據記錄處理服務器群,控制管理服務器利用搭建在服務器內部的負載均衡以及業務分配中間件,通過負載分配以及業務功能分派算法,根據被監控設備的業務類型(報警、實時監控、監控數據采集、設備參數設置等)將被監控設備鏈接到不同的監控終端或服務器。這時被監控設備將直接與監控終端或數據采集服務器鏈接而不再通過LDAP服務器和控制管理服務器轉發數據從而減輕了接入層的負載,了提高了網絡整體的數據處理能力。
被控網優站點連接監控網絡時,需要將設備信息(驗證碼)通過LDAP目錄服務器進行驗證,以保證監控網絡安全。如果驗證碼匹配,則允許連接。否則,拒絕連接。被控設備信息驗證成功后,繼續從LDAP目錄服務器取得相應的業務代碼信息。控制管理服務器驗證該被控站點的業務是否需要調度。如果需要調度,系統會結合LDAP目錄服務器上取得的業務信息,根據業務類型并利用Constenet Hash算法從待選監控工作站中選擇一臺供被控站點連接。這時,被控站點得到“在線并空閑”的監控工作站的鏈接信息,被控站點利用鏈接信息完成與監控工作站的鏈接,這時不再需要LDAP服務器和控制管理服務器的協助,從而提高了接入端效率。系統的工作流程圖為圖2所示。

圖2 系統業務流程
LDAP 將數據組織為目錄信息樹DIT(Directory Information Tree),目錄樹DIT結構需要符合RFC 2308bis 推薦標準。LDAP目錄中的具體信息存儲在條目(entry)的數據結構中。條目相當于關系數據庫中表的記錄;條目是具有區別名DN(Distinguished Name)的屬性(Attribute),DN是用來引用條目的,DN相當于關系數據庫表中的關鍵字(Primary Key)。屬性由類型(Type)和一個或多個值(Values)組成,相當于關系數據庫中的字段(Field)由字段名和數據類型組成,只是為了方便檢索的需要,LDAP中的Type可以有多個Value,而不是關系數據庫中為降低數據的冗余性要求實現的各個域必須是不相關的。LDAP中條目的組織一般按照地理位置和組織關系進行組織,非常的直觀。本系統的LDAP目錄樹以Dc=monitor,Dc=cn為樹根,下面定義了一個子目錄樹Dc=mobilemonitor(即一個組織),在子目錄樹下定義了四個子樹(即組織單元):ou=Users 存儲使用者的賬號,ou=Computer 存儲受控監控端的系統ID,ou=Groups 存儲數據記錄組和監控組組,ou=DSA 存儲與LDAP安全相關的特殊賬戶。
當設備通過認證后,根據業務類型并利用Constenet Hash算法從待選監控工作站中選擇一臺供被控站點連接。而由于本系統有多個數據采集服務器和監控工作站,為了將被控對象鏈接到正確的數據采集服務器和監控工作站并利用好服務器的cache上最簡單的方法計算各個鏈接的hash值,然后均勻的映射到到N個cache上:

但是若某一服務器m 出現故障則需要把cache(m)從cache鏈中移除,這時候映射公式為:

另外若某一監控站上線則映射公式將變成:

式(2)式(3)表示所有映射必須重新計算,在服務器上的所有數據將重新分布,這對后臺服務器和監控工作站造成了嚴重的數據沖擊,甚至造成一段時間的響應遲緩和。另外在本系統中,需要根據實際情況讓某一節點擔負更多工作,顯然普通的hash算法做不到這點。所以本系統使用了consistent hash算法,Consistent hash是一種hash算法,簡單的說,在移除/添加一個cache時,它能夠盡可能小的改變已存在key映射關系,即盡可能的滿足單調性的要求。通常,hash算法都是將value映射到一個32位的key值,value的容量是0~2^32-1次方的數值空間;為方便起見可以將這個空間想象成一個首(0)尾(2^32-1)相接的圓環,本項目將IP地址作為hash輸入。但普通hash求余的方法帶來的最大問題就在于不能滿足單調性,所以當cache數量有所變動時,cache機制會失效,進而對后臺服務器造成巨大的沖擊, Consistent hash算法的基本思想就是將對象和cache都映射到同一個hash數值空間中,并且使用相同的hash算法。如圖3所示假設cache B丟失,根據上面講到的映射方法,這時受影響的將僅是那些沿cache B逆時針遍歷直到下一個cache(cache C)之間的對象,也即是本來映射到cache B上的那些對象。因此這里僅需要變動object4,將其重新映射到cache C上即可。

圖3 Cache B被移除后的cache映射
而考慮添加一個新的業務(添加cache D)的情況,假設在這個環形hash空間中,cache D被映射在對象object2和object3之間。這時受影響的將僅是那些沿cache D逆時針遍歷直到下一個cache(cache B)之間的對象(它們是也本來映射到cache C上對象的一部分),將這些對象重新映射到cache D上即可。因此這里僅需要變動對象object2,將其重新映射到cache D上;參見圖4。

圖4 添加cache D后的映射關系
利用LDAP 目錄服務技術以及負載分布技術設計的網優基站數據采集系統,即實現了多認證源的統一認證管理,業務均衡負載和智能分配。實踐證明,不僅提高了網絡的訪問速度、安全性、可靠性,也給用戶提供了極大的方便,達到了統一身份認證的設計目標,客服了原有監控網絡由于負載分配原因造成阻塞和效率減低的缺陷,為網優設備的監控管理網絡提供一種參考模型。
[1] 曾斌, 姚路, 陳志誠.基于負載平衡智能體的分布式Web代理群集研究[J].計算機工程與設計, 2011, 32(9): 2631-2635.
[2] 于劍, 等.LDAP目錄服務在Web開發中的應用[J].計算機應用, 2003, 23(10): 82-84.
[3] Mark Wahl.A Summary of the x.500(96)User Schema for use with LDAPv3[S].RFC2256, 1997.
[4] 趙春, 趙成棟, 康建初.在基于域的網絡管理中應用的研究[J].計算機工程與應用, 2004, 18: 141-143.
[5] http://blog.csdn.net/yq76034150/article/details/6776044