用于網絡附加存儲系統防病毒的進程調度方法
【技術領域】
[0001] 本發明涉及一種計算機進程調度方法,尤其涉及一種用于網絡附加存儲(Network Attached Storage,簡稱為NAS)系統防病毒的進程調度方法,屬于網絡安全技術領域。
【背景技術】
[0002] NAS是目前發展最為迅猛的網絡存儲系統,也是性價比最高的存儲方式之一。在 現有技術中,普遍使用NAS系統作為局域網環境下的、基于B/S架構(即瀏覽器/服務器架 構)的大容量共享存儲設備。圖1顯示了一個典型的NAS系統的網絡拓撲架構。如圖1所 示,NAS系統包括存儲器件(如硬盤陣列、⑶或DVD驅動器、磁帶驅動器或可移動的存儲介 質)和NAS服務器。NAS服務器上裝有專門的操作系統,通常是簡化的Unix/Linux操作系 統,或者是一個特殊的Win 2000內核,它為文件系統管理和訪問做了專門的優化。NAS服務 器充當遠程文件服務器,利用NFS、SMB/CIFS、FTP等協議對外提供文件級的訪問。
[0003] 在NAS系統中,采用專用的文件服務器(即NAS服務器)管理文件存儲系統,實現 數據存儲。NAS服務器作為一個核心被所有客戶端(包括Samba/Wind〇Ws、NFS和FTP等客 戶端)用戶訪問,但不承擔應用服務。NAS服務器通過一個文件系統管理磁盤陣列,存取磁 盤陣列上的文件,并管理相應的網絡安全和訪問授權。NAS系統根據應用服務器或客戶端計 算機發出的指令,完成對其文件的管理,并采用UDP或TCP協議提供標準化訪問服務,能夠 在異構服務器間共享數據。
[0004] 目前,由于NAS系統所具有的跨平臺、安裝及擴充簡便、易于管理維護和安全等特 點,已經大量用作網絡中文件服務器的替代品。因此,NAS系統的安全性越來越受到用戶的 重視。例如在申請號為201310008610. 1的中國專利申請中,IBM公司公開了一種處理外部 防病毒服務器和存儲設備之間的連接錯誤的方法。存儲設備配備內部防病毒服務器。在存 儲設備上的防病毒7Π 數據庫中存儲描述防病毒掃描的防病毒7Π 數據。監控外部防病毒服務 器和存儲設備之間的連接。外部防病毒服務器在存儲設備上執行防病毒掃描。如果連接發 生故障,則將防病毒掃描的控制從外部防病毒服務器傳遞給內部防病毒服務器。內部防病 毒服務器基于防病毒元數據確定在哪里開始。當連接恢復時,將控制傳遞回外部防病毒服 務器。
[0005] 另外,在申請號為201310004132. 7的中國專利申請中,進一步公開了一種防計算 機病毒的NAS存儲系統及查殺計算機病毒的方法。該NAS存儲系統包括處理器,連接處理 器的文件控制處理器,接口控制器和多個盤驅動器,還包括連接文件控制處理器的病毒查 殺模塊,所述處理器將所述主機接口、文件控制處理器和多個盤驅動器邏輯區分為多個單 元,文件控制處理器將所述接口控制器、處理器和多個盤驅動器中的每一個的邏輯分區分 配給所述多個單元的每一個,以及使所述每一個單元作為獨立的存儲單元。該技術方案通 過設置邏輯分區和病毒查殺模塊將查殺的計算機病毒隔離于邏輯分區中,避免用戶的非法 操作,也避免隔離的計算機病毒感染NAS存儲系統的文件,保障NAS存儲系統的用戶操作的 安全性。
[0006] 但是,NAS作為一種嵌入式網絡附加存儲系統,與其他嵌入式設備一樣,內存和 CPU資源均比較有限。而防病毒操作需要占用相當多的內存和CPU資源,在使用過程中往往 發生進程之間的沖突,嚴重影響用戶的使用體驗。
【發明內容】
[0007] 針對現有技術的不足,本發明所要解決的技術問題在于提供一種用于網絡附加存 儲系統防病毒的進程調度方法。
[0008] 為實現上述的發明目的,本發明采用下述的技術方案:
[0009] -種用于網絡附加存儲系統防病毒的進程調度方法,包括如下步驟:
[0010] 將防毒服務子進程作為一級子進程,監控進程、單文件實時殺毒進程、TCP指令處 理服務進程作為二級子進程,各二級子進程由所述一級子進程進行調度;
[0011] 在網絡附加存儲系統運行時,所述防毒服務子進程首先啟動各二級子進程,然后 進入監控各二級子進程的狀態;當出現嚴重消耗資源的操作時,所述防毒服務子進程將內 存和CPU資源由預定的二級子進程獨占使用,同時暫時終止其它的二級子進程。
[0012] 其中較優地,當某個進程意外終止時,克隆一個新的進程代替終止的進程進行工 作。
[0013] 其中較優地,當某個二級子進程意外終止時,所述防毒服務子進程接收所述二級 子進程的退出碼,根據退出碼的數值決定后續的處理。
[0014] 其中較優地,需要彼此通信的各二級子進程之間獨立進行工作,由一級父進程統 一進行進程調度。
[0015] 其中較優地,所述TCP指令處理服務進程與所述防毒服務子進程事先約定退出碼 的數值及其代表的含義,在接收到全面殺毒或更新病毒庫命令時,所述TCP指令處理服務 進程退出自己,并釋放事先約定的退出碼,所述防毒服務子進程收到所述退出碼后,暫時終 止所述監控進程和所述單文件實時殺毒進程。
[0016] 其中較優地,所述二級子進程中還包括全面殺毒進程;所述全面殺毒進程按需啟 動,在全面掃描殺毒后進程終止,這時所述防毒服務子進程啟動被暫時終止的所述監控進 程和所述單文件實時殺毒進程。
[0017] 其中較優地,所述二級子進程中還包括病毒庫更新進程;所述病毒庫更新進程按 需啟動,在更新病毒庫后進程終止,這時所述防毒服務子進程啟動被暫時終止的所述監控 進程和所述單文件實時殺毒進程。
[0018] 其中較優地,使用Linux操作系統的crontab定時任務命令對所述全面殺毒進程 和所述病毒庫更新進程進行配置。
[0019] 其中較優地,所述監控進程由Linux操作系統的Inotify監控機制實現。
[0020] 與現有技術相比較,本發明所提供的進程調度方法通過獨特的進程保護機制、重 任務獨占策略和非常規進程通信模式,很好地在NAS這種硬件資源緊張的網絡存儲設備上 實現了復雜多樣的進程控制,使得NAS系統上的關鍵進程可以按需獨占系統資源。
【附圖說明】
[0021] 圖1為一個典型的NAS系統的網絡拓撲架構示意圖;
[0022] 圖2為本發明所提供的進程調度方法中,各個進程之間的邏輯關系示意圖。
【具體實施方式】
[0023] 下面結合附圖和具體實施例對本發明的技術內容展開詳細具體的說明。
[0024] 前已述及,NAS是一種嵌入式網絡附加存儲系統,與其他嵌入式設備一樣,內存和 CPU資源均比較有限。為了在NAS系統提供正常文件服務的同時,不影響防病毒功能的實 現,本發明提供了一種具有獨創性的進程調度方法。該方法具體包括進程按需啟動和實時 保護、重任務獨占策略和非常規進程通信等幾個方面,具體說明如下:
[0025] 在本發明所提供的進程調度方法中,將防毒服務子進程作為一級子進程。該防毒 服務子進程負責管理和調度多種二級子進程,這些二級子進程分別用于實現處理用戶指 令、監控目錄新增文件、實時掃描殺毒、進程保護等功能。多種二級子進程之間按需啟動或 停止,使防毒服務子進程在NAS系統以最少的資源開銷完成用戶的指令。例如用戶發出全 面殺毒指令時,需要暫停監控和實時殺毒等相關二級子進程。后文對此有進一步的說明。
[0026] 如圖2所示,在作為一級子進程的防毒服務子進程之下,至少還包括監控進程、單 文件實時殺毒進程、TCP指令處理服務進程、全面殺毒進程和病毒庫更新進程等多個二級子 進程。其中,監控進程基于Inotify監控機制實現,因此也稱為Inotify監控進程。該監控 進程用于監控特定多個目錄及子目錄,當NAS系統中出現新增文件時,向單文件實時殺毒 進程發送消息,通知它進行殺毒。單文件實時殺毒進程在進程的管道一端守候,當有新增文 件消息時,對該新增文件進行殺毒。TCP指令處理服務進程用于接收控制端發來的指令并處 理,包括:立即批量掃描,立即更新病毒庫,查看日志,刪除含病毒文件等等。當接收到立即 批量掃描指令時,TCP指令處理服務進程會退出自己,退出碼為特定數值;防毒服務子進程 接收到該特定的退出碼,會依次終止掉監控進程和單文件實時殺毒進程,然后啟動全面殺 毒進程進行殺毒。這時,NAS系統可以執行重任務獨占策略,即當NAS系統需要全盤掃描或 更新病毒庫時,由于這樣的操作對于嵌入式設備來說屬于嚴重消耗資源的操作處理,因此 需要暫停實時病毒防護。為此,在本發明中暫時終止實時防護的相關進程,以節省出有限的 資源。具體地說,此時只有TCP指令處理服務進程和全面殺毒進程在工作,其他二代子進程 都已暫時終止,釋放出自己所占資源供全面殺毒進程使用。需要說明的是,上述的重任務獨 占策略并不限于由TCP指令處理服務進程和全面殺毒進程獨占內存和CPU資源。在具體實 踐中,也可以指定其它的二代子進程如單文件實時殺毒進程、病毒庫更新進程等執行重任 務獨占策略。
[0027] 在上述的各個二級子進程中,監控進程、單文件實時殺毒進程、TCP指令處理服務 進程屬于常駐子進程。其中,監控進程得到新增文件消息后,通過管道將文件路徑發給單文 件實時殺毒進程,由它執行殺毒操作。TCP指令處理服務進程則處理客戶端的指令如:更新 配置,查看日志等。TCP指令處理服務進程可以通過它的父進程一防毒服務子進程暫時終止 監控進程、單文件實時殺毒進程以釋放緊缺的內存和CPU資源,以便進行全面殺毒或更新 病毒庫的工作。
[0028] 全面殺毒進程和病毒庫更新進程屬于非常駐進程,可以由防毒服務子進程啟動或 Linux操作系統定時啟動。例如全面殺毒進程根據用戶的需要進行啟動,在全面掃描殺毒 后進程終止,這時防毒服務子進程會啟動先前被暫時終止的監控進程和單文件實時殺毒進 程。病毒庫更新進程也是一個按需啟動的進程,在更新病毒庫后該進程終止,這時防毒服務 子進程會啟動先前被暫時終止的監控進程和單文件實時殺毒進程。
[0029] 在本發明中,對各個子進程采取特殊的進程保護機制,即當某一個防毒服務子進 程意外終止(或死亡)后,會克隆一個新的防毒服務子進程作為一級子進程,從而保障NAS 系統始終持續提供防病毒服務。另外,防毒服務子進程首先啟動其它二級子進程,然后進入 監控二級子進程的狀態。這時,它有兩個功能:
[0030] 1.當有某個二級子進程意外終止(或死亡)時,它會啟動一個新的二級子進程代 替死亡進程進行工作;
[0031] 2.接收二級子進程的退出碼,