本發(fā)明涉及計算機領(lǐng)域,具體來說,涉及一種Linux系統(tǒng)下NIS服務(wù)器的同步方法和系統(tǒng)。
背景技術(shù):
NIS(Network Information Services,網(wǎng)絡(luò)信息服務(wù))的用途就是向客戶端提供信息查詢,例如,用戶的賬號、密碼、默認目錄、shell(提供使用者使用界面的軟件)等,同時,在高性能計算系統(tǒng)中,所有的節(jié)點需要有相同的用戶信息,基于NIS服務(wù)器來統(tǒng)一管理用戶信息是一種高效的管理方式,用戶的添加刪除只需要在主控節(jié)點操作即可,降低了用戶管理的復雜度,但是,在一個很大型高性能計算系統(tǒng)中,如果所有的Linux主機都向同一臺NIS服務(wù)器請求用戶信息,如果這單一的一臺NIS服務(wù)器宕機,那其他的Linux主機就無法讓用戶登錄,因此,在對用戶管理可用性要求比較高的系統(tǒng)中,一般采用Master-Slave(主-從)機制來保證用戶查詢服務(wù)的高可用,其中,Master節(jié)點將保存用戶的全部信息,而Slave節(jié)點僅僅同步主節(jié)點NIS服務(wù)器的NIS數(shù)據(jù)庫,從節(jié)點NIS服務(wù)器上是無法操作用戶的。
但是,由于所有原始用戶信息都存在主節(jié)點NIS服務(wù)器上,如果主節(jié)點NIS服務(wù)器宕機,則不可進行用戶管理,只能等主節(jié)點NIS服務(wù)器恢復正常后用戶操作才可以進行,因此,如果從節(jié)點NIS服務(wù)器僅僅提供了查詢的高可用性,而其無法滿足大型系統(tǒng)對用戶管理的高可用要求。
針對相關(guān)技術(shù)中的問題,目前尚未提出有效的解決方案。
技術(shù)實現(xiàn)要素:
針對相關(guān)技術(shù)中的問題,本發(fā)明提出一種Linux系統(tǒng)下NIS服務(wù)器的同步方法和系統(tǒng),實現(xiàn)了大型系統(tǒng)基于NIS服務(wù)器的用戶服務(wù)的高可用性。
本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
根據(jù)本發(fā)明的一個方面,提供了一種Linux系統(tǒng)下NIS服務(wù)器的同步方法。
該同步方法包括:INOTIFY模塊、同步模塊,其中,INOTIFY模塊檢測任一NIS服務(wù)器的變更信息,并將變更信息發(fā)送給同步模塊,然后同步模塊將變更信息同步至全部的NIS服務(wù)器。
根據(jù)本發(fā)明的一個實施例,變更信息包括:添加用戶的信息、修改信息、刪除用戶的信息。
根據(jù)本發(fā)明的一個實施例,進一步包括:NIS服務(wù)器接收客戶端的請求信息;NIS服務(wù)器中任一NIS服務(wù)器響應客戶端的請求信息。
根據(jù)本發(fā)明的一個實施例,其特征在于,請求信息包括:查詢信息、修改請求信息。
根據(jù)本發(fā)明的另一方面,提供了Linux系統(tǒng)下NIS服務(wù)器的同步系統(tǒng)。
該同步系統(tǒng)包括:INOTIFY模塊,用于檢測任一NIS服務(wù)器的變更信息,并將變更信息發(fā)送給同步模塊;同步模塊,用于將變更信息同步至全部的NIS服務(wù)器。
根據(jù)本發(fā)明的一個實施例,變更信息包括:添加用戶的信息、修改信息、刪除用戶的信息。
根據(jù)本發(fā)明的一個實施例,進一步包括:NIS服務(wù)器接收客戶端的請求信息;NIS服務(wù)器中任一NIS服務(wù)器響應客戶端的請求信息。
根據(jù)本發(fā)明的一個實施例,請求信息包括:查詢信息、修改請求信息。
本發(fā)明通過INOTIFY模塊檢測任一NIS服務(wù)器的變更信息,并將變更信息發(fā)送給同步模塊,然后同步模塊將變更信息同步至全部的NIS服務(wù)器,從而通過INOTIFY機制實現(xiàn)了大型系統(tǒng)基于NIS服務(wù)器的用戶服務(wù)的高可用方案。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是根據(jù)本發(fā)明實施例的Linux系統(tǒng)下NIS服務(wù)器的同步方法的流程圖;
圖2是根據(jù)本發(fā)明實施例的Linux系統(tǒng)下NIS服務(wù)器的同步裝置的框圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
根據(jù)本發(fā)明的實施例,提供了一種Linux系統(tǒng)下NIS服務(wù)器的同步方法。
如圖1所示,根據(jù)本發(fā)明實施例的同步方法包括:
步驟S101,INOTIFY模塊檢測任一NIS服務(wù)器的變更信息,并將變更信息發(fā)送給同步模塊;
步驟S103,同步模塊將變更信息同步至全部的NIS服務(wù)器。
通過本發(fā)明的上述方案,通過INOTIFY模塊檢測任一NIS服務(wù)器的變更信息,并將變更信息發(fā)送給同步模塊,然后同步模塊將變更信息同步至全部的NIS服務(wù)器,從而通過INOTIFY機制實現(xiàn)了大型系統(tǒng)基于NIS服務(wù)器的用戶服務(wù)的高可用方案。
根據(jù)本發(fā)明的一個實施例,變更信息包括:添加用戶的信息、修改信息、刪除用戶的信息。
根據(jù)本發(fā)明的一個實施例,進一步包括:NIS服務(wù)器接收客戶端的請求信息;NIS服務(wù)器中任一NIS服務(wù)器響應客戶端的請求信息。
根據(jù)本發(fā)明的一個實施例,其特征在于,請求信息包括:查詢信息、修改請求信息。
為了更好的描述本發(fā)明,下面通過具體的實施例進行詳細的描述。
從版本號2.6.13的Linux系統(tǒng)開始,Linux系統(tǒng)推出了INOTIFY是一個Linux特性,它允許監(jiān)控程序打開一個獨立文件描述符,并針對事件集監(jiān)控一個或者多個文件,例如打開、關(guān)閉、移動/重命名、刪除、創(chuàng)建或者改變屬性。
本發(fā)明是基于該INOTIFY機制來實現(xiàn)的高可用方案,如果有用戶信息改動(如添加用戶、修改密碼、刪除用戶等)的情況下,其中的一臺NIS服務(wù)器會通過該INOTIFY機制(或INOTIFY模塊)感知到這次改動信息并通知給我們的監(jiān)控程序(或同步模塊),從而得知到用戶數(shù)據(jù)有修改后,立馬將改動信息同步至所有的NIS服務(wù)器,這樣就所有的NIS服務(wù)器都保存了最新的原始用戶數(shù)據(jù),此外,由于客戶端是向整個網(wǎng)段請求用戶信息的,只要NIS服務(wù)器提供的域與客戶端請求一致就可回答客戶端的請求,其中,域是指Windows網(wǎng)絡(luò)中獨立運行的單位,由于我們將所有NIS服務(wù)器中的用戶數(shù)據(jù)保持一致,所有NIS服務(wù)器可都可以回答客戶端的請求(包括信息修改的請求),這樣就實現(xiàn)了用戶信息查詢的負載均衡和用戶管理的高可用。
根據(jù)本發(fā)明的實施例,還提供了一種Linux系統(tǒng)下NIS服務(wù)器的同步系統(tǒng)。
如圖2所示,根據(jù)本發(fā)明實施例的同步系統(tǒng)包括:INOTIFY模塊21,用于檢測任一NIS服務(wù)器的變更信息,并將變更信息發(fā)送給同步模塊;同步模塊22,用于將變更信息同步至全部的NIS服務(wù)器。
根據(jù)本發(fā)明的一個實施例,變更信息包括:添加用戶的信息、修改信息、刪除用戶的信息。
根據(jù)本發(fā)明的一個實施例,進一步包括:NIS服務(wù)器接收客戶端的請求信息;NIS服務(wù)器中任一NIS服務(wù)器響應客戶端的請求信息。
根據(jù)本發(fā)明的一個實施例,請求信息包括:查詢信息、修改請求信息。
綜上所述,借助于本發(fā)明的上述技術(shù)方案,通過INOTIFY模塊檢測任一NIS服務(wù)器的變更信息,并將變更信息發(fā)送給同步模塊,然后同步模塊將變更信息同步至全部的NIS服務(wù)器,從而通過INOTIFY機制實現(xiàn)了大型系統(tǒng)基于NIS服務(wù)器的用戶服務(wù)的高可用方案。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。