999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于netlink的linux服務器集群統(tǒng)一外設事件監(jiān)聽機制

2016-05-25 00:37:18汪敏
電子設計工程 2016年23期
關鍵詞:進程

汪敏

(江蘇科技大學 計算機科學與工程學院,江蘇 鎮(zhèn)江 212003)

基于netlink的linux服務器集群統(tǒng)一外設事件監(jiān)聽機制

汪敏

(江蘇科技大學 計算機科學與工程學院,江蘇 鎮(zhèn)江 212003)

針對大型分布式服務器集群系統(tǒng)中缺乏對于外設事件統(tǒng)一的監(jiān)聽機制,設計了一種對于未經(jīng)允許的可拔插事件、未經(jīng)允許的外部存儲設備分區(qū)事件等外設事件的統(tǒng)一監(jiān)聽機制,首先在被監(jiān)控服務器端啟動過程中加載外設事件接收模塊和服務進程,然后由外設事件處理進程監(jiān)聽netlink多播組,最終由外設事件處理進程將外設事件通過網(wǎng)絡發(fā)送給服務器端監(jiān)控進程。通過本監(jiān)聽機制的設計,提高了服務器集群系統(tǒng)的整體安全性。

計算機網(wǎng)絡;服務器集群;netlink;事件監(jiān)聽

在linux服務器集群中,通常存在多臺服務器終端,而在大型的服務器架構(gòu)中,許多服務器終端是分布在不同的地理位置的,在服務器運行過程中,對于像未經(jīng)允許的可拔插設備訪問事件、未經(jīng)允許的外部存儲設備分區(qū)掛載事件等外設異步事件缺乏有效而又實時的監(jiān)聽方法。文中設計了一種基于netlink通訊的服務器集群統(tǒng)一外設事件監(jiān)聽方法,提高了服務器集群的安全性。

1 服務器集群安全現(xiàn)狀

目前,現(xiàn)有技術(shù)中還不存在一種在linux服務器集群內(nèi)部統(tǒng)一的外設事件監(jiān)聽方法。而且,對于單個的服務器內(nèi)部的外設事件監(jiān)聽而言,主要依靠用戶空間的設備文件系統(tǒng)守護進程udevd[1-5]來搜集外設事件來動態(tài)的改變設備文件系統(tǒng)目錄/dev下的設備節(jié)點信息,不存在其他的、單獨的外設事件用戶空間接收程序,而設備文件系統(tǒng)守護進程udevd可定制性較差,難以實現(xiàn)通過改變現(xiàn)有的udevd守護進程來統(tǒng)一的監(jiān)聽服務器集群內(nèi)部的所有的外設事件的方法。

實現(xiàn)對于內(nèi)核空間消息的監(jiān)聽以及內(nèi)核空間與用戶空間的信息傳遞有很多種方法,但是相比較于增加系統(tǒng)調(diào)用[6-10]去實現(xiàn)外設事件監(jiān)聽接口,采用netlink去實現(xiàn)通訊接口,有很多優(yōu)點,比如說不需要增加內(nèi)核代碼,不需要重復編譯內(nèi)核,只需要在啟動系統(tǒng)的時候動態(tài)加載的相應的內(nèi)核模塊,而且netlink協(xié)議本身實現(xiàn)了事件的異步通知,所以能夠保證內(nèi)核事件接收的實時性。

2 系統(tǒng)設計簡介

一種基于netlink的linux服務器集群統(tǒng)一外設事件監(jiān)聽方法,包括以下步驟:

1)被監(jiān)控服務器端在系統(tǒng)啟動過程中加載外設事件內(nèi)核接收模塊,同時開啟監(jiān)控進程遠程服務進程,等待多個監(jiān)控服務器端監(jiān)控進程發(fā)來登錄請求;

2)監(jiān)控服務器端的監(jiān)控進程向被監(jiān)控服務器端的遠程服務進程發(fā)送登錄請求;

3)被監(jiān)控服務器端遠程服務進程接收登錄請求并利用fork()系統(tǒng)調(diào)用函數(shù)創(chuàng)建子進程,用于驗證登陸帳戶信息,并由父進程繼續(xù)監(jiān)控端口,查看是否有新的登錄請求;

4)被監(jiān)控服務器端服務進程接收到登錄請求后,創(chuàng)建子進程,子進程開啟外設事件處理進程,利用外設事件處理進程監(jiān)聽相關的netlink多播組,其中子進程與外設事件處理進程通過共享內(nèi)存實現(xiàn)全雙工通訊;

5)外設事件內(nèi)核接收模塊通過內(nèi)核線程統(tǒng)一接收相關外設事件,并按照外設事件先后順序以及優(yōu)先級發(fā)送給相關的netlink多播組;

6)外設事件處理進程將外設事件通過子進程發(fā)送給父進程進而通過網(wǎng)絡發(fā)送給監(jiān)控服務器端監(jiān)控進程。

圖1顯示了系統(tǒng)的總體架構(gòu)以及相關的工作流程。

圖1 系統(tǒng)架構(gòu)圖

3 關鍵模塊設計

在圖1中,監(jiān)控進程遠程服務模塊有兩個子進程,用以處理登錄請求,并且這兩個子進程分別關注不同的外設事件處理程序。圖1中兩個不同的外設事件處理程序,用以監(jiān)聽相同的netlink多播組,能夠?qū)崿F(xiàn)對于相同的外設事件有多個不同外設事件處理程序去處理的實用功能。

內(nèi)核空間的外設事件內(nèi)核接收模塊用于解決最為關鍵的外設事件的統(tǒng)一接收問題,如圖2所示,文中的外設事件內(nèi)核接收模塊主要提供兩部分功能:一是實現(xiàn)hw_event_send(int priority,struct mxc_hw_event new_event)函數(shù)對于驅(qū)動外設事件按照發(fā)生順序以及優(yōu)先級向內(nèi)核線程傳遞的功能;二是實現(xiàn)kernel_thread(hw_event_thread,NULL,CLONE_KERNEL)內(nèi)核線程對于外設事件的接收以及按照它的發(fā)生順序向用戶空間廣播的過程。

圖2 被監(jiān)控端服務器架構(gòu)

對于第一部分功能,文中主要是通過EXPORT_SYMBOL(hw_event_send)將hw_event_send()函數(shù)導出符號,可以在各個外設的驅(qū)動中使用該函數(shù),將外設事件按照它的優(yōu)先級和發(fā)生順序發(fā)送給內(nèi)核線程。設備驅(qū)動在使用該函數(shù)的時候分了兩種情況,如圖3設備驅(qū)動1在使用該函數(shù)傳遞外設事件的時候處于中斷上下文,而設備驅(qū)動2和設備驅(qū)動3在使用該函數(shù)傳遞外設事件的時候處在非中斷上下文中,通過對于in_interrupt()的返回值判斷,能夠知道當前使用該函數(shù)的驅(qū)動是否處在中斷上下文中;通過對于中斷上下文的判斷,如果事件是在中斷上下文中觸發(fā)的,則先直接通過函數(shù)netlink_broadcast去廣播;如果廣播失敗的話,就掛入內(nèi)核線程處理隊列,使用wake_up()函數(shù)喚醒內(nèi)核線程。

圖3顯示了上述過程在Ubuntu Server端中的關鍵執(zhí)行代碼。

圖3 關鍵代碼

在函數(shù)hw_event_send(int priority,struct mxc_hw_event new_event)中包含兩個參數(shù):一個是外設事件的優(yōu)先級,另外一個是外設事件形式參數(shù)的定義。在hw_event_send()函數(shù)中包含著兩層判斷,一層是上面已經(jīng)提到的關于中斷上下文的判斷,一層則是對于外設事件優(yōu)先級的判斷。如果是高優(yōu)先級的外設事件,同樣的,需要首先通過函數(shù)netlink_broadcast去廣播到用戶空間。對于普通優(yōu)先級并且是非中斷上下文觸發(fā)的外設事件,則是由內(nèi)核線程

kernel_thread(hw_event_thread,NULL,CLONE_KERNEL)負責接收的,當在外設事件發(fā)送函數(shù)hw_event_send()中有外設事件需要傳遞給內(nèi)核線程的時候,總是會調(diào)用wake_up()喚醒函數(shù),去喚醒等待隊列,這主要是由于在內(nèi)核線程等待外設事件的時候,總是會 wait_event_interruptible()改變當前的內(nèi)核線程運行狀態(tài)為可中斷睡眠狀態(tài)。

如圖2所示,文中將多播組設置成#define HW_EVENT_ GROUP 2,在內(nèi)核模塊中通過NETLINK_CB(skb).dst_group =HW_EVENT_GROUP初始化多播組為2,這樣在用戶空間就可以設置多個外設事件處理進程來監(jiān)聽該多播組,就可以實現(xiàn)多個監(jiān)控服務器端去監(jiān)聽特定的內(nèi)核事件的功能[11-16]。

如圖4顯示了當沒有拔插事件在被監(jiān)控服務器端發(fā)生的時候,登錄的三號服務器沒有異常的事件發(fā)生,和圖4對比的是當有拔插事件發(fā)生的時候,圖5顯示了當前有西部數(shù)據(jù)的存儲設備插入了被監(jiān)控服務器端。同時顯示了插入的存儲設備具體信息。

圖4 無拔插事件的被監(jiān)控服務器端

圖5 有拔插事件的被監(jiān)控端服務器

4 結(jié)束語

文中的目的在于解決大型服務器集群中出現(xiàn)的未經(jīng)授權(quán)外設事件接入所引起的安全問題,進而提出了的一種基于netlink的linux服務器集群統(tǒng)一外設事件監(jiān)聽方法,用以實現(xiàn)對于linux集群內(nèi)部重要的外設事件的監(jiān)聽,具有多終端同時監(jiān)聽、統(tǒng)一和實時接收服務器內(nèi)部外設事件且編程方法簡單易實現(xiàn)等優(yōu)點。

[1]李坤麗,張大方,關洪濤,等.虛擬路由器管控平面的設計與實現(xiàn)[J].計算機工程,2014(5):94-98,102.

[2]宋婉貞,田洪濤.基于Profibus實現(xiàn)netLINK網(wǎng)關與PLC的通訊[J].電子工業(yè)專用設備,2012,41(2):50-53.

[3]尹家生,周健,辜麗川,等.基于Linux的高速網(wǎng)絡流量采集與分析模型研究[J].計算機工程與應用,2006,42(10):151-154.

[4]李惠娟,王汝傳,任勛益,等.基于Netfilter的數(shù)據(jù)包捕獲技術(shù)研究[J].計算機科學,2007,34(6):81-83.

[5]章曉明,杜春燕,陸建德,等.IPsec VPN中Netlink消息通信機制的研究和設計 [J].計算機工程與應用,2006,42(34): 139-141.

[6]李惠娟,王汝傳,任勛益,等.基于Netfilter的數(shù)據(jù)包捕獲技術(shù)研究[J].計算機科學,2007,34(6):81-83.

[7]杜飛,劉心松,邱元杰,等.netlink套接字在系統(tǒng)通信中的應用研究[J].微計算機信息,2006,22(9):95-97,233.

[8]鄭子輝,楊東升,尹震宇,等.數(shù)控現(xiàn)場總線NCSF監(jiān)測分析系統(tǒng)的設計與實現(xiàn)[J].組合機床與自動化加工技術(shù),2011(5):46-50,55.

[9]董昱,馬鑫.基于netlink機制內(nèi)核空間與用戶空間通信的分析[J].測控技術(shù),2007,26(9):57-58,60.

[10]周莉,柯健,顧小晶,等.Netlink套接字在Linux系統(tǒng)通信中的應用研究[J].計算機與現(xiàn)代化,2007(3):109-111.

[11]陳浩.Linux下用戶態(tài)和內(nèi)核態(tài)內(nèi)存共享的實現(xiàn)[J].電腦編程技巧與維護,2011(4):25-27.

[12]劉斌,朱程榮.Linux內(nèi)核與用戶空間通信機制研究[J].電腦知識與技術(shù),2012,8(16):3816-3817,3849.

[13]劉文峰,李程遠,李善平,等.嵌入式Linux操作系統(tǒng)的研究[J].浙江大學學報(工學版),2004,38(4):447-452.

[14]周莉,黃憲,陸建德,等.Linux 2.6內(nèi)核IPSec支持機構(gòu)的研究與分析[J].計算機技術(shù)與發(fā)展,2007,17(5):191-194,198.

[15]郭全生,舒繼武,毛希平,等.基于LVS系統(tǒng)的負載動態(tài)平衡設計與實現(xiàn)[J].計算機研究與發(fā)展,2004,41(6):923-929.

[16]林闖,李寅,萬劍雄.計算機網(wǎng)絡服務質(zhì)量優(yōu)化方法研究綜述[J].計算機學報,2011(1):1-14.

Unified monitoring mechanism of peripheral events based on netlink of Linux server clusters

WANG Min
(College of Computer Science and Engineering,Jiangsu Science and Technology University,Zhenjiang 212003,China)

The large-scale distributed server clusters system are lack of the unified monitoring mechanism of peripheral events .The unpermitted external storage partition and plug events are included in the mechanism.Firstly,peripheral events process and the service process are started by the monitoring server in its starting progress.And then the handling process of peripheral events monitor the netlink communication.At the end,peripheral events handling process send the peripheral events to the monitoring process through the network.The safety of whole large-scale distributed linux server clusters are promoted after the design of this mechanism.

computer network;server cluster;netlink;event monitor

TN91

A

1674-6236(2016)23-0076-03

2015-11-30稿件編號:201511297

汪 敏(1990—),男,江蘇揚州人,碩士。研究方向:信息安全。

猜你喜歡
進程
債券市場對外開放的進程與展望
中國外匯(2019年20期)2019-11-25 09:54:58
改革開放進程中的國際收支統(tǒng)計
中國外匯(2019年8期)2019-07-13 06:01:06
快速殺掉頑固進程
社會進程中的新聞學探尋
民主與科學(2014年3期)2014-02-28 11:23:03
我國高等教育改革進程與反思
Linux僵死進程的產(chǎn)生與避免
講效率 結(jié)束進程要批量
電腦迷(2012年24期)2012-04-29 00:44:03
男女平等進程中出現(xiàn)的新矛盾和新問題
俄羅斯現(xiàn)代化進程的阻礙
論文萊的民族獨立進程
主站蜘蛛池模板: 久久99国产乱子伦精品免| 亚洲人成亚洲精品| 欧美亚洲激情| 国产成人在线小视频| 一本色道久久88| 国产日韩欧美成人| 午夜限制老子影院888| 蜜桃视频一区二区| 奇米影视狠狠精品7777| 日韩国产 在线| 女人18毛片一级毛片在线 | 国产偷国产偷在线高清| 亚洲无码精品在线播放 | 四虎成人精品在永久免费| 99久视频| 日本午夜视频在线观看| 六月婷婷精品视频在线观看| 性喷潮久久久久久久久| 免费毛片全部不收费的| 亚洲综合香蕉| 欧美高清日韩| 国产又色又爽又黄| 中文字幕一区二区视频| 亚洲成人播放| 亚洲国内精品自在自线官| 亚洲九九视频| 老色鬼欧美精品| 亚洲成年人网| 日本成人在线不卡视频| www亚洲精品| 国产丝袜丝视频在线观看| 久久99蜜桃精品久久久久小说| 99久久精品免费视频| 亚洲国产日韩视频观看| 国产永久在线观看| 亚洲综合片| 三级国产在线观看| 成人午夜网址| 在线观看免费AV网| 97在线免费| 免费高清a毛片| 国产精品专区第1页| 亚洲一级毛片免费看| 亚洲性视频网站| 97国产成人无码精品久久久| 亚洲男人在线天堂| 国产三级国产精品国产普男人 | 久草中文网| 日本人又色又爽的视频| 亚洲国产AV无码综合原创| 国产97视频在线| 伊人大杳蕉中文无码| 国产成人盗摄精品| 91色爱欧美精品www| 日韩高清在线观看不卡一区二区| 国产拍揄自揄精品视频网站| 亚洲中文无码h在线观看| 国产特级毛片| 日韩AV手机在线观看蜜芽| 国产一区二区三区在线观看免费| 日韩天堂网| 91精品国产91久久久久久三级| 国产在线观看人成激情视频| 亚洲成A人V欧美综合天堂| 久久国产av麻豆| 91国内外精品自在线播放| 亚洲人成在线精品| 国产一在线| 中日韩一区二区三区中文免费视频 | 91久久国产综合精品| 色老头综合网| 国产极品嫩模在线观看91| 久久特级毛片| www.狠狠| 欧美色图第一页| 日本一区二区三区精品AⅤ| 高清无码不卡视频| 久无码久无码av无码| 亚洲VA中文字幕| 欧美在线中文字幕| 日本在线亚洲| 日韩高清一区 |