本發(fā)明涉及集群技術(shù),尤指一種實(shí)現(xiàn)共享的方法和系統(tǒng)。
背景技術(shù):
計(jì)算機(jī)集群(computercluster)是指通過(guò)網(wǎng)絡(luò)連接的一些計(jì)算節(jié)點(diǎn)組成的整體,這些計(jì)算節(jié)點(diǎn)通過(guò)軟件調(diào)度協(xié)調(diào)工作,使得整個(gè)集群的運(yùn)行模式如同一臺(tái)單一計(jì)算機(jī)一樣。當(dāng)前,計(jì)算機(jī)集群計(jì)算已經(jīng)廣泛應(yīng)用于大數(shù)據(jù)、云計(jì)算、高性能計(jì)算得到那個(gè)多個(gè)信息技術(shù)(it,internettechnology)領(lǐng)域。
存儲(chǔ)是計(jì)算機(jī)集群,特別是高性能計(jì)算機(jī)集群系統(tǒng)中常見(jiàn)的組成部分,隨著計(jì)算機(jī)集群的發(fā)展,存儲(chǔ)也呈現(xiàn)出不同的特征,常見(jiàn)的存儲(chǔ)類(lèi)型包括網(wǎng)絡(luò)附屬存儲(chǔ)(nas,networkattachedstorage),存儲(chǔ)區(qū)域網(wǎng)絡(luò)(san,storageareanetwork)等。而其中nas作為最常見(jiàn)的計(jì)算機(jī)集群中的存儲(chǔ)類(lèi)型,多采用網(wǎng)絡(luò)文件系統(tǒng)(nfs,networkfilesystem)協(xié)議來(lái)進(jìn)行文件的操作和共享。nfs協(xié)議允許客戶端計(jì)算機(jī)(client)通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)像訪問(wèn)本地存儲(chǔ)一樣訪問(wèn)其他計(jì)算機(jī)上通過(guò)nfs協(xié)議共享的文件。
當(dāng)前,nfs協(xié)議已經(jīng)被廣泛的應(yīng)用在高性能計(jì)算集群中。一種常用的使用方式是存儲(chǔ)節(jié)點(diǎn)通過(guò)nfs協(xié)議把自身上的/home目錄在集群中共享,計(jì)算節(jié)點(diǎn)通過(guò)掛載操作(即mount)的方式即可以掛載該目錄并讀寫(xiě)其中的數(shù)據(jù)。從而實(shí)現(xiàn)整個(gè)計(jì)算機(jī)集群共享同一個(gè)/home目錄的效果。
對(duì)于當(dāng)前主流的基于nfs協(xié)議的文件共享方式,在使用上有幾個(gè)潛在的問(wèn)題:首先,服務(wù)(server)端的共享和客戶(client)端的掛載都只能通過(guò)根(root)用戶權(quán)限完成,限制了普通用戶進(jìn)行操作的可能;其次,一旦client端的掛載完成,client端就具有了對(duì)整個(gè)掛載目錄的操作權(quán)限,存在一定的安全風(fēng)險(xiǎn);即client端的root用戶可以修改、刪除掛載目錄中的任何文件。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種實(shí)現(xiàn)共享的方法和系統(tǒng),能夠使任意用戶具備操作的可能,同時(shí)提高安全性。
本發(fā)明實(shí)施例提供了一種實(shí)現(xiàn)共享的方法,應(yīng)用于集群系統(tǒng),所述集群系統(tǒng)包括:管理模塊、存儲(chǔ)模塊和一個(gè)或一個(gè)以上計(jì)算節(jié)點(diǎn);管理模塊所在的節(jié)點(diǎn)、存儲(chǔ)模塊所在的節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)通過(guò)交換機(jī)實(shí)現(xiàn)通信;
所述方法包括:
計(jì)算節(jié)點(diǎn)接收到來(lái)自用戶的掛載命令,向存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送掛載命令;其中,掛載命令包括掛載的目錄、存儲(chǔ)模塊所在的節(jié)點(diǎn)標(biāo)識(shí)和用戶名;
存儲(chǔ)模塊所在的節(jié)點(diǎn)接收到來(lái)自計(jì)算節(jié)點(diǎn)的掛載命令,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)掛載的目錄進(jìn)行掛載的權(quán)限,如果是,則向計(jì)算節(jié)點(diǎn)返回表示具備掛載權(quán)限的消息;
計(jì)算節(jié)點(diǎn)接收到表示具備掛載權(quán)限的消息,加載掛載的目錄。
可選的,該方法還包括:
所述計(jì)算節(jié)點(diǎn)接收到來(lái)自所述用戶的卸載命令,向所述存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送所述卸載命令;其中,所述卸載命令包括用戶名和卸載的目錄;
所述存儲(chǔ)模塊所在的節(jié)點(diǎn)接收到來(lái)自計(jì)算節(jié)點(diǎn)的卸載命令,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)卸載的目錄進(jìn)行卸載的權(quán)限,如果是,則向所述計(jì)算節(jié)點(diǎn)返回表示具備卸載權(quán)限的消息;
所述計(jì)算節(jié)點(diǎn)接收到表示具備卸載權(quán)限的消息,刪除卸載的目錄。
可選的,該方法還包括:
當(dāng)所述存儲(chǔ)模塊和所述管理模塊位于不同的節(jié)點(diǎn)時(shí),所述管理模塊所在的節(jié)點(diǎn)接收到來(lái)自用戶的掛載命令,向所述存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送掛載命令;其中,所述掛載命令包括掛載的目錄、存儲(chǔ)模塊所在的節(jié)點(diǎn)標(biāo)識(shí)和用戶名;
存儲(chǔ)模塊所在的節(jié)點(diǎn)接收到來(lái)自管理模塊所在的節(jié)點(diǎn)的掛載命令,判斷所述用戶名對(duì)應(yīng)的用戶是否具有對(duì)掛載的目錄進(jìn)行掛載的權(quán)限,如果是,則向所述管理模塊所在的節(jié)點(diǎn)返回表示具備掛載權(quán)限的消息;
所述管理模塊所在的節(jié)點(diǎn)接收到表示具備掛載權(quán)限的消息,加載掛載的目錄。
可選的,該方法還包括:
所述管理模塊所在的節(jié)點(diǎn)接收到來(lái)自所述用戶的卸載命令,向所述存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送卸載命令;其中,所述卸載命令包括用戶名和卸載的目錄;
所述存儲(chǔ)模塊所在的節(jié)點(diǎn)接收到來(lái)自管理模塊所在的節(jié)點(diǎn)的卸載命令,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)卸載的目錄進(jìn)行卸載的權(quán)限,如果是,則向所述管理模塊所在的節(jié)點(diǎn)返回表示具備卸載權(quán)限的消息;
所述管理模塊所在的節(jié)點(diǎn)接收到表示具備卸載權(quán)限的消息,刪除卸載的目錄。
可選的,所述存儲(chǔ)模塊所在的節(jié)點(diǎn)與所述管理模塊所在的節(jié)點(diǎn)或所述計(jì)算節(jié)點(diǎn)之間采用安全殼ssh協(xié)議進(jìn)行通信。
本發(fā)明實(shí)施例還提出了一種實(shí)現(xiàn)共享的系統(tǒng),包括:
管理模塊、存儲(chǔ)模塊和一個(gè)或一個(gè)以上計(jì)算節(jié)點(diǎn);
管理模塊所在的節(jié)點(diǎn)、存儲(chǔ)模塊所在的節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)通過(guò)交換機(jī)實(shí)現(xiàn)通信;
計(jì)算節(jié)點(diǎn),用于接收到來(lái)自用戶的掛載命令,向存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送掛載命令;其中,掛載命令包括掛載的目錄、存儲(chǔ)模塊所在的節(jié)點(diǎn)標(biāo)識(shí)和用戶名;接收到表示具備掛載權(quán)限的消息,加載掛載的目錄;
存儲(chǔ)模塊所在的節(jié)點(diǎn),用于接收到來(lái)自計(jì)算節(jié)點(diǎn)的掛載命令,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)掛載的目錄進(jìn)行掛載的權(quán)限,如果是,則向計(jì)算節(jié)點(diǎn)返回表示具備掛載權(quán)限的消息。
可選的,所述計(jì)算節(jié)點(diǎn)還用于:
接收到來(lái)自所述用戶的卸載命令,向所述存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送所述卸載命令;其中,所述卸載命令包括用戶名和卸載的目錄;接收到表示具備卸載權(quán)限的消息,刪除卸載的目錄;
所述存儲(chǔ)模塊所在的節(jié)點(diǎn),用于接收到來(lái)自計(jì)算節(jié)點(diǎn)的卸載命令,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)卸載的目錄進(jìn)行卸載的權(quán)限,如果是,則向所述計(jì)算節(jié)點(diǎn)返回表示具備卸載權(quán)限的消息。
可選的,當(dāng)所述存儲(chǔ)模塊和所述管理模塊位于不同的節(jié)點(diǎn)時(shí),所述管理模塊所在的節(jié)點(diǎn)用于:
接收到來(lái)自用戶的掛載命令,向所述存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送掛載命令;其中,所述掛載命令包括掛載的目錄、存儲(chǔ)模塊所在的節(jié)點(diǎn)標(biāo)識(shí)和用戶名;接收到表示具備掛載權(quán)限的消息,加載掛載的目錄;
存儲(chǔ)模塊所在的節(jié)點(diǎn),用于接收到來(lái)自管理模塊所在的節(jié)點(diǎn)的掛載命令,判斷所述用戶名對(duì)應(yīng)的用戶是否具有對(duì)掛載的目錄進(jìn)行掛載的權(quán)限,如果是,則向所述管理模塊所在的節(jié)點(diǎn)返回表示具備掛載權(quán)限的消息。
可選的,所述管理模塊所在的節(jié)點(diǎn)還用于:
接收到來(lái)自所述用戶的卸載命令,向所述存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送卸載命令;其中,所述卸載命令包括用戶名和卸載的目錄;接收到表示具備卸載權(quán)限的消息,刪除卸載的目錄;
所述存儲(chǔ)模塊所在的節(jié)點(diǎn)還用于:
接收到來(lái)自管理模塊所在的節(jié)點(diǎn)的卸載命令,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)卸載的目錄進(jìn)行卸載的權(quán)限,如果是,則向所述管理模塊所在的節(jié)點(diǎn)返回表示具備卸載權(quán)限的消息。
可選的,所述存儲(chǔ)模塊所在的節(jié)點(diǎn)與所述管理模塊所在的節(jié)點(diǎn)或所述計(jì)算節(jié)點(diǎn)之間采用安全殼ssh協(xié)議進(jìn)行通信。
與相關(guān)技術(shù)相比,本發(fā)明實(shí)施例包括:計(jì)算節(jié)點(diǎn)接收到來(lái)自用戶的掛載命令,向存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送掛載命令;其中,掛載命令包括掛載的目錄、存儲(chǔ)模塊所在的節(jié)點(diǎn)標(biāo)識(shí)和用戶名;存儲(chǔ)模塊所在的節(jié)點(diǎn)判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)掛載的目錄進(jìn)行掛載的權(quán)限,如果是,則向計(jì)算節(jié)點(diǎn)返回表示具備掛載權(quán)限的消息;計(jì)算節(jié)點(diǎn)接收到表示具備掛載權(quán)限的消息,加載掛載的目錄。通過(guò)本發(fā)明實(shí)施例的方案,計(jì)算節(jié)點(diǎn)通過(guò)掛載命令實(shí)現(xiàn)掛載,實(shí)現(xiàn)了任意用戶具備操作的可能,同時(shí)提高了安全性。
本發(fā)明的其它特征和優(yōu)點(diǎn)將在隨后的說(shuō)明書(shū)中闡述,并且,部分地從說(shuō)明書(shū)中變得顯而易見(jiàn),或者通過(guò)實(shí)施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點(diǎn)可通過(guò)在說(shuō)明書(shū)、權(quán)利要求書(shū)以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
附圖說(shuō)明
附圖用來(lái)提供對(duì)本發(fā)明技術(shù)方案的進(jìn)一步理解,并且構(gòu)成說(shuō)明書(shū)的一部分,與本申請(qǐng)的實(shí)施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對(duì)本發(fā)明技術(shù)方案的限制。
圖1為本發(fā)明實(shí)施例集群系統(tǒng)的結(jié)構(gòu)組成示意圖;
圖2為本發(fā)明實(shí)施例實(shí)現(xiàn)共享的方法的流程圖;
圖3為本發(fā)明實(shí)施例實(shí)現(xiàn)共享的系統(tǒng)的結(jié)構(gòu)組成示意圖。
具體實(shí)施方式
下文中將結(jié)合附圖對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說(shuō)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互任意組合。
在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的計(jì)算機(jī)系統(tǒng)中執(zhí)行。并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。
在介紹本發(fā)明實(shí)施例的實(shí)現(xiàn)共享的方法之前,首先介紹集群系統(tǒng)的拓?fù)浣Y(jié)構(gòu)。參見(jiàn)圖1,本發(fā)明實(shí)施例的實(shí)現(xiàn)共享的方法所涉及的集群系統(tǒng)包括:
管理模塊、存儲(chǔ)模塊和一個(gè)或一個(gè)以上計(jì)算節(jié)點(diǎn);
其中,管理模塊和存儲(chǔ)模塊可以位于同一個(gè)節(jié)點(diǎn),也可以位于不同的節(jié)點(diǎn)。當(dāng)管理模塊和存儲(chǔ)模塊位于不同的節(jié)點(diǎn)時(shí),管理模塊可以采用一個(gè)或多個(gè)節(jié)點(diǎn)實(shí)現(xiàn),管理模塊所在的節(jié)點(diǎn)之間處互聯(lián)網(wǎng)協(xié)議(ip,internetprotocol)地址不一樣之外,其他的配置方式?jīng)]有區(qū)別。
其中,管理模塊所在的節(jié)點(diǎn),存儲(chǔ)模塊所在的節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)之間通過(guò)一個(gè)或一個(gè)以上交換機(jī)實(shí)現(xiàn)通信。
其中,管理模塊所在的節(jié)點(diǎn)、存儲(chǔ)模塊所在的節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)上部署有l(wèi)inux操作系統(tǒng),且所有節(jié)點(diǎn)部署的linux操作系統(tǒng)類(lèi)型和版本號(hào)相同。其中,linux操作系統(tǒng)的發(fā)行版本例如redhat、suse、ubuntu等。
其中,管理模塊所在的節(jié)點(diǎn)、存儲(chǔ)模塊所在的節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)之間可以位于同一子網(wǎng),也可以位于不同子網(wǎng)。為了便于各節(jié)點(diǎn)ip地址的設(shè)置,可以將各節(jié)點(diǎn)位于同一子網(wǎng)內(nèi)。這樣,各節(jié)點(diǎn)的ip地址可以是192.168.1.*或者10.10.10.*。
其中,可以先在管理模塊所在的節(jié)點(diǎn)創(chuàng)建用戶(包括普通用戶和root用戶),生成對(duì)應(yīng)的用戶名和密碼,然后將創(chuàng)建的用戶的用戶名和密碼通過(guò)網(wǎng)絡(luò)信息服務(wù)(nis,networkinformationservice)共享給每一個(gè)計(jì)算節(jié)點(diǎn)和存儲(chǔ)模塊所在的節(jié)點(diǎn);
或者,在管理模塊所在的節(jié)點(diǎn)創(chuàng)建用戶,生成對(duì)應(yīng)的用戶名和密碼;然后在每一個(gè)計(jì)算節(jié)點(diǎn)和存儲(chǔ)模塊所在的節(jié)點(diǎn)創(chuàng)建相同的用戶。這樣,用戶就可以在管理模塊所在的節(jié)點(diǎn)或計(jì)算節(jié)點(diǎn)上采用生成的用戶名和密碼進(jìn)行登錄,然后進(jìn)行操作。
例如,圖1中,管理模塊所在的節(jié)點(diǎn)分別創(chuàng)建了三個(gè)普通用戶,分別為user1、user2、user3,并設(shè)置對(duì)應(yīng)的密碼,然后通過(guò)nis服務(wù)分享給每一個(gè)計(jì)算節(jié)點(diǎn)和存儲(chǔ)模塊所在的節(jié)點(diǎn)。
各個(gè)節(jié)點(diǎn)具體如何創(chuàng)建用戶可以采用本領(lǐng)域熟知的技術(shù)實(shí)現(xiàn),并不用于限定本發(fā)明的保護(hù)范圍,這里不再贅述。
其中,各個(gè)節(jié)點(diǎn)之間可以采用安全殼(ssh,secureshell)協(xié)議進(jìn)行通信。預(yù)先在存儲(chǔ)模塊所在的節(jié)點(diǎn)上部署ssh協(xié)議的服務(wù)器端守護(hù)進(jìn)程(sshd,sshdaemon)服務(wù),并在計(jì)算節(jié)點(diǎn)和管理模塊所在的節(jié)點(diǎn)上部署ssh文件系統(tǒng)(sshfs,sshfilesystem)服務(wù),從而存儲(chǔ)模塊所在的節(jié)點(diǎn)與計(jì)算節(jié)點(diǎn)或管理模塊所在的節(jié)點(diǎn)之間就可以采用ssh協(xié)議進(jìn)行通信。
當(dāng)存儲(chǔ)模塊和管理模塊位于同一個(gè)節(jié)點(diǎn)時(shí),則不需要在管理模塊所在的節(jié)點(diǎn)上部署ssh協(xié)議的客戶端守護(hù)進(jìn)程sshfs服務(wù)。
參見(jiàn)圖2,本發(fā)明實(shí)施例提出了一種實(shí)現(xiàn)共享的方法,包括:
步驟200、計(jì)算節(jié)點(diǎn)接收到來(lái)自用戶的掛載命令,向存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送掛載命令。
本步驟中,掛載命令包括掛載的目錄、存儲(chǔ)模塊所在的節(jié)點(diǎn)標(biāo)識(shí)和用戶名。其中,存儲(chǔ)模塊所在的節(jié)點(diǎn)表示可以是存儲(chǔ)模塊所在的節(jié)點(diǎn)的域名。例如,用戶在計(jì)算節(jié)點(diǎn)上登錄后,可以輸入如下掛載命令:
>sshfsuser1@su01:/home/user1//home/user1/
其中,sshfs為預(yù)先部署的基于ssh協(xié)議的客戶端守護(hù)進(jìn)程sshfs服務(wù),user1為登錄的用戶名,su01為存儲(chǔ)模塊所在的節(jié)點(diǎn)標(biāo)識(shí),前一個(gè)/home/user1/為存儲(chǔ)模塊所在的節(jié)點(diǎn)su01中預(yù)備掛載的目錄,后一個(gè)/home/user1/為用于掛載的計(jì)算節(jié)點(diǎn)上的目錄。
本步驟中,計(jì)算節(jié)點(diǎn)可以采用ssh協(xié)議向存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送掛載命令。
本步驟中,用戶包括普通用戶和root用戶。對(duì)于普通用戶,只能掛載/home目錄下的數(shù)據(jù),root用戶則可以掛載/home目錄和/home目錄外的數(shù)據(jù),也可以掛載整個(gè)/home目錄。
步驟201、存儲(chǔ)模塊所在的節(jié)點(diǎn)接收到來(lái)自計(jì)算節(jié)點(diǎn)的掛載命令,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)掛載的目錄進(jìn)行掛載的權(quán)限,如果是,則向計(jì)算節(jié)點(diǎn)返回表示具備掛載權(quán)限的消息。
本步驟中,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)掛載的目錄進(jìn)行掛載的權(quán)限包括:
在預(yù)先存儲(chǔ)的用戶名列表中查找到掛載命令中的用戶名,且判斷出用戶名對(duì)應(yīng)的用戶具有對(duì)掛載命令中掛載的目錄進(jìn)行讀寫(xiě)的權(quán)限。
其中,可以根據(jù)預(yù)先設(shè)置的用戶名和具有讀寫(xiě)權(quán)限的目錄之間的對(duì)應(yīng)關(guān)系來(lái)判斷是否具有對(duì)掛載的目錄進(jìn)行讀寫(xiě)的權(quán)限。如果在對(duì)應(yīng)關(guān)系中查找到用戶名對(duì)應(yīng)的具有讀寫(xiě)權(quán)限的目錄中包括掛載的目錄,則判斷出用戶名對(duì)應(yīng)的用戶具有對(duì)掛載的目錄進(jìn)行讀寫(xiě)的權(quán)限;如果在對(duì)應(yīng)關(guān)系中查找不到用戶名對(duì)應(yīng)的具有讀寫(xiě)權(quán)限的目錄,或者在對(duì)應(yīng)關(guān)系中查找到用戶名對(duì)應(yīng)的具有讀寫(xiě)權(quán)限的目錄中不包括掛載的目錄,則判斷出用戶名對(duì)應(yīng)的用戶不具有對(duì)掛載的目錄進(jìn)行讀寫(xiě)的權(quán)限。
本步驟中,存儲(chǔ)模塊所在的節(jié)點(diǎn)可以采用ssh協(xié)議向計(jì)算節(jié)點(diǎn)返回表示具備掛載權(quán)限的消息。
可選的,當(dāng)存儲(chǔ)模塊所在的節(jié)點(diǎn)判斷出發(fā)送掛載命令的用戶不具有對(duì)掛載的目錄進(jìn)行掛載的權(quán)限時(shí),向計(jì)算節(jié)點(diǎn)返回表示沒(méi)有掛載權(quán)限的消息。
其中,存儲(chǔ)模塊所在的節(jié)點(diǎn)可以采用ssh協(xié)議向計(jì)算節(jié)點(diǎn)返回表示沒(méi)有掛載權(quán)限的消息。
步驟202、計(jì)算節(jié)點(diǎn)接收到表示具備掛載權(quán)限的消息,加載掛載的目錄。
本步驟中,計(jì)算節(jié)點(diǎn)可以將掛載的目錄加載到預(yù)先部署的用戶空間文件系統(tǒng)(filesysteminuserspace)中。
可選的,該方法還包括:
計(jì)算節(jié)點(diǎn)接收到來(lái)自用戶的卸載命令,向存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送卸載命令;其中,卸載命令包括用戶名和卸載的目錄;
存儲(chǔ)模塊所在的節(jié)點(diǎn)接收到來(lái)自計(jì)算節(jié)點(diǎn)的卸載命令,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)卸載的目錄進(jìn)行卸載的權(quán)限,如果是,則向計(jì)算節(jié)點(diǎn)返回表示具備卸載權(quán)限的消息;
計(jì)算節(jié)點(diǎn)接收到表示具備卸載權(quán)限的消息,刪除卸載的目錄。
其中,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)卸載的目錄進(jìn)行卸載的權(quán)限包括:
在預(yù)先存儲(chǔ)的用戶名列表中查找到卸載命令中的用戶名,且判斷出用戶名對(duì)應(yīng)的用戶具有對(duì)卸載命令中卸載的目錄進(jìn)行讀寫(xiě)的權(quán)限。
其中,可以根據(jù)預(yù)先設(shè)置的用戶名和具有讀寫(xiě)權(quán)限的目錄之間的對(duì)應(yīng)關(guān)系來(lái)判斷是否具有對(duì)卸載的目錄進(jìn)行讀寫(xiě)的權(quán)限。如果在對(duì)應(yīng)關(guān)系中查找到用戶名對(duì)應(yīng)的具有讀寫(xiě)權(quán)限的目錄中包括卸載的目錄,則判斷出用戶名對(duì)應(yīng)的用戶具有對(duì)卸載的目錄進(jìn)行讀寫(xiě)的權(quán)限;如果在對(duì)應(yīng)關(guān)系中查找不到用戶名對(duì)應(yīng)的具有讀寫(xiě)權(quán)限的目錄,或者在對(duì)應(yīng)關(guān)系中查找到用戶名對(duì)應(yīng)的具有讀寫(xiě)權(quán)限的目錄中不包括卸載的目錄,則判斷出用戶名對(duì)應(yīng)的用戶不具有對(duì)卸載的目錄進(jìn)行讀寫(xiě)的權(quán)限。
可選的,當(dāng)存儲(chǔ)模塊所在的節(jié)點(diǎn)判斷出用戶名對(duì)應(yīng)的用戶不具有對(duì)卸載的目錄進(jìn)行卸載的權(quán)限時(shí),向計(jì)算節(jié)點(diǎn)返回表示沒(méi)有卸載權(quán)限的消息。
其中,計(jì)算節(jié)點(diǎn)可以通過(guò)預(yù)先部署的用戶空間文件系統(tǒng)刪除卸載的目錄。
可選的,該方法還包括:
當(dāng)存儲(chǔ)模塊和管理模塊位于不同的節(jié)點(diǎn)時(shí),管理模塊所在的節(jié)點(diǎn)接收到來(lái)自用戶的掛載命令,向存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送掛載命令;其中,掛載命令包括掛載的目錄、存儲(chǔ)模塊所在的節(jié)點(diǎn)標(biāo)識(shí)和用戶名;
存儲(chǔ)模塊所在的節(jié)點(diǎn)接收到來(lái)自管理模塊所在的節(jié)點(diǎn)的掛載命令,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)掛載的目錄進(jìn)行掛載的權(quán)限,如果是,則向管理模塊所在的節(jié)點(diǎn)返回表示具備掛載權(quán)限的消息;
管理模塊所在的節(jié)點(diǎn)接收到表示具備掛載權(quán)限的消息,加載掛載的目錄。
可選的,當(dāng)存儲(chǔ)模塊所在的節(jié)點(diǎn)判斷出發(fā)送掛載命令的用戶不具有對(duì)掛載的目錄進(jìn)行掛載的權(quán)限時(shí),向管理模塊所在的節(jié)點(diǎn)返回表示沒(méi)有掛載權(quán)限的消息。
其中,管理模塊所在的節(jié)點(diǎn)可以采用ssh協(xié)議向存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送掛載命令,存儲(chǔ)模塊所在的節(jié)點(diǎn)可以采用ssh協(xié)議向管理模塊所在的節(jié)點(diǎn)返回表示具備掛載權(quán)限的消息或表示沒(méi)有掛載權(quán)限的消息。
本步驟中,管理模塊所在的節(jié)點(diǎn)可以將掛載的目錄加載到預(yù)先部署的用戶空間文件系統(tǒng)中。
可選的,該方法還包括:
管理模塊所在的節(jié)點(diǎn)接收到來(lái)自用戶的卸載命令,向存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送卸載命令;其中,卸載命令包括用戶名和卸載的目錄;
存儲(chǔ)模塊所在的節(jié)點(diǎn)接收到來(lái)自管理模塊所在的節(jié)點(diǎn)的卸載命令,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)卸載的目錄進(jìn)行卸載的權(quán)限,如果是,則向管理模塊所在的節(jié)點(diǎn)返回表示具備卸載權(quán)限的消息;
管理模塊所在的節(jié)點(diǎn)接收到表示具備卸載權(quán)限的消息,刪除卸載的目錄。
可選的,當(dāng)存儲(chǔ)模塊所在的節(jié)點(diǎn)判斷出用戶名對(duì)應(yīng)的用戶不具有對(duì)卸載的目錄進(jìn)行卸載的權(quán)限時(shí),向管理模塊所在的節(jié)點(diǎn)返回表示沒(méi)有卸載權(quán)限的消息。
其中,計(jì)算節(jié)點(diǎn)可以通過(guò)預(yù)先部署的用戶空間文件系統(tǒng)刪除卸載的目錄。
上述方法中,普通用戶可以卸載自身掛載的目錄。例如,當(dāng)user1用戶想在某個(gè)計(jì)算節(jié)點(diǎn)上卸載/home/user1/時(shí),可以使用如下卸載命令:
>fusermount-u/home/user1/
root用戶既可以卸載自身掛載的目錄,也可以卸載將普通用戶掛載的目錄。例如,當(dāng)root用戶想對(duì)其掛載的目錄進(jìn)行卸載時(shí),可以使用如下卸載命令:
>fusermount-u/home/
>fusermount-u/opt/
通過(guò)本發(fā)明實(shí)施例的方案,計(jì)算節(jié)點(diǎn)通過(guò)掛載命令實(shí)現(xiàn)掛載,實(shí)現(xiàn)了任意用戶具備操作的可能,同時(shí)提高了安全性。
參見(jiàn)圖3,本發(fā)明實(shí)施例還提出了一種實(shí)現(xiàn)共享的系統(tǒng),包括:
管理模塊、存儲(chǔ)模塊和一個(gè)或一個(gè)以上計(jì)算節(jié)點(diǎn);
管理模塊所在的節(jié)點(diǎn)、存儲(chǔ)模塊所在的節(jié)點(diǎn)和計(jì)算節(jié)點(diǎn)通過(guò)交換機(jī)實(shí)現(xiàn)通信;
計(jì)算節(jié)點(diǎn),用于接收到來(lái)自用戶的掛載命令,向存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送掛載命令;其中,掛載命令包括掛載的目錄、存儲(chǔ)模塊所在的節(jié)點(diǎn)標(biāo)識(shí)和用戶名;接收到表示具備掛載權(quán)限的消息,加載掛載的目錄;
存儲(chǔ)模塊所在的節(jié)點(diǎn),用于接收到來(lái)自計(jì)算節(jié)點(diǎn)的掛載命令,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)掛載的目錄進(jìn)行掛載的權(quán)限,如果是,則向計(jì)算節(jié)點(diǎn)返回表示具備掛載權(quán)限的消息。
可選的,所述計(jì)算節(jié)點(diǎn)還用于:
接收到來(lái)自所述用戶的卸載命令,向所述存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送所述卸載命令;其中,所述卸載命令包括用戶名和卸載的目錄;接收到表示具備卸載權(quán)限的消息,刪除卸載的目錄;
所述存儲(chǔ)模塊所在的節(jié)點(diǎn),用于接收到來(lái)自計(jì)算節(jié)點(diǎn)的卸載命令,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)卸載的目錄進(jìn)行卸載的權(quán)限,如果是,則向所述計(jì)算節(jié)點(diǎn)返回表示具備卸載權(quán)限的消息。
可選的,當(dāng)所述存儲(chǔ)模塊和所述管理模塊位于不同的節(jié)點(diǎn)時(shí),所述管理模塊所在的節(jié)點(diǎn)用于:
接收到來(lái)自用戶的掛載命令,向所述存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送掛載命令;其中,所述掛載命令包括掛載的目錄、存儲(chǔ)模塊所在的節(jié)點(diǎn)標(biāo)識(shí)和用戶名;接收到表示具備掛載權(quán)限的消息,加載掛載的目錄;
存儲(chǔ)模塊所在的節(jié)點(diǎn),用于接收到來(lái)自管理模塊所在的節(jié)點(diǎn)的掛載命令,判斷所述用戶名對(duì)應(yīng)的用戶是否具有對(duì)掛載的目錄進(jìn)行掛載的權(quán)限,如果是,則向所述管理模塊所在的節(jié)點(diǎn)返回表示具備掛載權(quán)限的消息。
可選的,所述管理模塊所在的節(jié)點(diǎn)還用于:
接收到來(lái)自所述用戶的卸載命令,向所述存儲(chǔ)模塊所在的節(jié)點(diǎn)發(fā)送卸載命令;其中,所述卸載命令包括用戶名和卸載的目錄;接收到表示具備卸載權(quán)限的消息,刪除卸載的目錄;
所述存儲(chǔ)模塊所在的節(jié)點(diǎn)還用于:
接收到來(lái)自管理模塊所在的節(jié)點(diǎn)的卸載命令,判斷用戶名對(duì)應(yīng)的用戶是否具有對(duì)卸載的目錄進(jìn)行卸載的權(quán)限,如果是,則向所述管理模塊所在的節(jié)點(diǎn)返回表示具備卸載權(quán)限的消息。
可選的,所述存儲(chǔ)模塊所在的節(jié)點(diǎn)與所述管理模塊所在的節(jié)點(diǎn)或所述計(jì)算節(jié)點(diǎn)之間采用安全殼ssh協(xié)議進(jìn)行通信。
雖然本發(fā)明所揭露的實(shí)施方式如上,但所述的內(nèi)容僅為便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實(shí)施的形式及細(xì)節(jié)上進(jìn)行任何的修改與變化,但本發(fā)明的專(zhuān)利保護(hù)范圍,仍須以所附的權(quán)利要求書(shū)所界定的范圍為準(zhǔn)。