一種文件的共享方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于網(wǎng)絡(luò)文件系統(tǒng)領(lǐng)域,尤其涉及一種文件的共享方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]網(wǎng)絡(luò)文件系統(tǒng)(Network File System, NFS)作為一個(gè)常用的文件共享系統(tǒng),在集群中得到了廣泛的應(yīng)用。
[0003]但是,NFS處理高性能計(jì)算一直不夠理想。高性能計(jì)算涉及到的數(shù)據(jù)文件非常龐大,并且NFS節(jié)點(diǎn)的數(shù)量可能達(dá)到幾千臺(tái)。當(dāng)NFS節(jié)點(diǎn)規(guī)模較大時(shí),因?yàn)镹FS服務(wù)器的局限性,比如帶寬、存儲(chǔ)容量、處理速度,會(huì)限制總體共享文件的性能。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供了一種文件的共享方法、裝置及系統(tǒng),旨在解決現(xiàn)有技術(shù)提供的文件的共享方法,使得集群內(nèi)部的文件共享速度很慢的問題。
[0005]一方面,提供一種文件的共享方法,所述方法包括:
[0006]根據(jù)集群的路由信息將集群劃分為至少兩個(gè)次級(jí)集群;
[0007]從每個(gè)次級(jí)集群中選取一個(gè)節(jié)點(diǎn)作為主節(jié)點(diǎn);
[0008]在當(dāng)前次級(jí)集群不具有子集群時(shí),建立當(dāng)前次級(jí)集群的主節(jié)點(diǎn)與當(dāng)前次級(jí)集群中的從節(jié)點(diǎn)之間的網(wǎng)絡(luò)文件系統(tǒng)NFS連接,控制當(dāng)前次級(jí)集群的主節(jié)點(diǎn),由當(dāng)前次級(jí)集群的主節(jié)點(diǎn)將從數(shù)據(jù)節(jié)點(diǎn)獲取的文件發(fā)送給當(dāng)前次級(jí)集群的從節(jié)點(diǎn)。
[0009]進(jìn)一步地,在所述根據(jù)集群的路由信息將集群劃分為至少兩個(gè)次級(jí)集群之后,還包括:
[0010]將次級(jí)集群劃分為至少兩個(gè)子集群;
[0011]在所述從每個(gè)次級(jí)集群中選取一個(gè)節(jié)點(diǎn)作為主節(jié)點(diǎn)之后,還包括:
[0012]在當(dāng)前次級(jí)集群具有子集群時(shí),建立當(dāng)前次級(jí)集群的主節(jié)點(diǎn)與當(dāng)前次級(jí)集群的從節(jié)點(diǎn)之間的NFS連接,控制當(dāng)前次級(jí)集群中的主節(jié)點(diǎn),先由當(dāng)前次級(jí)集群的主節(jié)點(diǎn)將從數(shù)據(jù)節(jié)點(diǎn)獲取的文件發(fā)送給各個(gè)子集群的主節(jié)點(diǎn),再由各個(gè)子集群的主節(jié)點(diǎn)將所述文件發(fā)送給各個(gè)子集群的從節(jié)點(diǎn)。
[0013]進(jìn)一步地,所述路由信息包括集群中節(jié)點(diǎn)的分布情況信息和相鄰節(jié)點(diǎn)間的傳輸帶寬信息;
[0014]根據(jù)相鄰節(jié)點(diǎn)間的傳輸帶寬信息從每個(gè)次級(jí)集群中選取一個(gè)節(jié)點(diǎn)作為主節(jié)點(diǎn)。
[0015]根據(jù)集群的路由信息將集群劃分為至少兩個(gè)次級(jí)集群,在所述在當(dāng)前次級(jí)集群不具有子集群時(shí),建立當(dāng)前次級(jí)集群的主節(jié)點(diǎn)與當(dāng)前次級(jí)集群的從節(jié)點(diǎn)之間的NFS連接,控制當(dāng)前次級(jí)集群的主節(jié)點(diǎn),由當(dāng)前次級(jí)集群的主節(jié)點(diǎn)將從數(shù)據(jù)節(jié)點(diǎn)獲取的文件發(fā)送給當(dāng)前次級(jí)集群的從節(jié)點(diǎn)之后,或者,
[0016]在所述在當(dāng)前次級(jí)集群具有子集群時(shí),建立當(dāng)前次級(jí)集群的主節(jié)點(diǎn)與當(dāng)前次級(jí)集群的從節(jié)點(diǎn)之間的NFS連接,控制當(dāng)前次級(jí)集群的主節(jié)點(diǎn),先由當(dāng)前次級(jí)集群的主節(jié)點(diǎn)將從數(shù)據(jù)節(jié)點(diǎn)獲取的文件發(fā)送給各個(gè)子集群的主節(jié)點(diǎn),再由各個(gè)子集群的主節(jié)點(diǎn)將所述文件發(fā)送給各個(gè)子群的從節(jié)點(diǎn)之后,所述方法還包括:
[0017]斷開各主節(jié)點(diǎn)與從節(jié)點(diǎn)之間的NFS連接。
[0018]另一方面,提供一種文件的共享裝置,所述裝置包括:
[0019]第一集群劃分單元,用于根據(jù)集群的路由信息將集群劃分為至少兩個(gè)次級(jí)集群;
[0020]主節(jié)點(diǎn)確定單元,用于從每個(gè)次級(jí)集群中選取一個(gè)節(jié)點(diǎn)作為主節(jié)點(diǎn);
[0021]第一文件共享單元,用于在當(dāng)前次級(jí)集群不具有子集群時(shí),建立當(dāng)前次級(jí)集群的主節(jié)點(diǎn)與當(dāng)前次級(jí)集群中的從節(jié)點(diǎn)之間的網(wǎng)絡(luò)文件系統(tǒng)NFS連接,控制當(dāng)前次級(jí)集群的主節(jié)點(diǎn),由當(dāng)前次級(jí)集群的主節(jié)點(diǎn)將從數(shù)據(jù)節(jié)點(diǎn)獲取的文件發(fā)送給當(dāng)前次級(jí)集群的從節(jié)點(diǎn)。
[0022]進(jìn)一步地,所述裝置還包括:
[0023]第二集群劃分單元,用于將次級(jí)集群劃分為至少兩個(gè)子集群;
[0024]第二文件共享單元,用于在當(dāng)前次級(jí)集群具有子集群時(shí),建立當(dāng)前次級(jí)集群的主節(jié)點(diǎn)與當(dāng)前次級(jí)集群的從節(jié)點(diǎn)之間的NFS連接,控制當(dāng)前次級(jí)集群中的主節(jié)點(diǎn),先由當(dāng)前次級(jí)集群的主節(jié)點(diǎn)將從數(shù)據(jù)節(jié)點(diǎn)獲取的文件發(fā)送給各個(gè)子集群的主節(jié)點(diǎn),再由各個(gè)子集群的主節(jié)點(diǎn)將所述文件發(fā)送給各個(gè)子集群的從節(jié)點(diǎn)。
[0025]進(jìn)一步地,所述路由信息包括集群中節(jié)點(diǎn)的分布情況信息和相鄰節(jié)點(diǎn)間的傳輸帶寬信息;
[0026]所述主節(jié)點(diǎn)確定單元根據(jù)相鄰節(jié)點(diǎn)間的傳輸帶寬信息從每個(gè)次級(jí)集群中選取一個(gè)節(jié)點(diǎn)作為主節(jié)點(diǎn)。
[0027]進(jìn)一步地,所述裝置還包括:
[0028]連接釋放單元,用于斷開各主節(jié)點(diǎn)與從節(jié)點(diǎn)之間的NFS連接。
[0029]又一方面,提供一種文件的共享系統(tǒng),所述系統(tǒng)包括集群,所述系統(tǒng)還包括與所述集群連接的集群控制器,所述集群控制器包括如上所述的文件的共享裝置。
[0030]在本發(fā)明實(shí)施例,將一個(gè)大的集群分成多個(gè)次級(jí)集群,然后由各個(gè)次級(jí)集群的主節(jié)點(diǎn)將獲取到的文件分享給其所在次級(jí)集群的從節(jié)點(diǎn),能夠使得文件共享在一定程度上實(shí)現(xiàn)并行化,從而提高文件共享的效率。
【附圖說明】
[0031]圖1是本發(fā)明實(shí)施例一提供的文件的共享方法的實(shí)現(xiàn)流程圖;
[0032]圖2是本發(fā)明實(shí)施例二提供的文件的共享裝置的結(jié)構(gòu)框圖。
【具體實(shí)施方式】
[0033]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0034]在本發(fā)明實(shí)施例中,根據(jù)集群的路由信息將集群劃分為至少兩個(gè)次級(jí)集群;從每個(gè)次級(jí)集群中選取一個(gè)節(jié)點(diǎn)作為主節(jié)點(diǎn);在當(dāng)前次級(jí)集群不具有子集群時(shí),建立當(dāng)前次級(jí)集群的主節(jié)點(diǎn)與當(dāng)前次級(jí)集群中的從節(jié)點(diǎn)之間的網(wǎng)絡(luò)文件系統(tǒng)NFS連接,控制當(dāng)前次級(jí)集群的主節(jié)點(diǎn),由當(dāng)前次級(jí)集群的主節(jié)點(diǎn)將從數(shù)據(jù)節(jié)點(diǎn)獲取的文件發(fā)送給當(dāng)前次級(jí)集群的從節(jié)點(diǎn)。
[0035]以下結(jié)合具體實(shí)施例對(duì)本發(fā)明的實(shí)現(xiàn)進(jìn)行詳細(xì)描述:
[0036]實(shí)施例一
[0037]圖1示出了本發(fā)明實(shí)施例一提供的文件的共享方法的實(shí)現(xiàn)流程,詳述如下:
[0038]在步驟SlOl中,根據(jù)集群的路由信息將集群劃分為至少兩個(gè)次級(jí)集群。
[0039]在本實(shí)施例中,集群控制器根據(jù)集群的路由信息,將集群劃分為若干個(gè)次級(jí)集群。
[0040]其中,路由信息中主要包含了集群中節(jié)點(diǎn)的分布情況信息和相鄰節(jié)點(diǎn)間的傳輸帶寬信息。
[0041]具體的,根據(jù)集群中節(jié)點(diǎn)的分布情況,進(jìn)行集群的劃分,使得劃分后的各個(gè)次級(jí)集群中的節(jié)點(diǎn)的數(shù)目盡量均衡。
[0042]具體的,進(jìn)行集群劃分時(shí),還要充分考慮集群中相鄰節(jié)點(diǎn)的傳輸帶寬,也就是相鄰節(jié)點(diǎn)之間數(shù)據(jù)傳輸速度的最大值,盡量使集群中相鄰節(jié)點(diǎn)之間的傳輸帶寬較大,這樣便于以后的數(shù)據(jù)共享。
[0043]優(yōu)選地,進(jìn)行集群的劃分時(shí),如果次級(jí)集群仍然比較龐大,則可以對(duì)次級(jí)集群再進(jìn)行二次集群劃分,將次級(jí)集群劃分成若干個(gè)子集群。
[0044]在步驟S102中,從每個(gè)次級(jí)集群中選取一個(gè)節(jié)點(diǎn)作為主節(jié)點(diǎn)。
[0045]在本實(shí)施例中,集群控制器讀取次級(jí)集群中相鄰節(jié)點(diǎn)間的傳輸帶寬信息,從中選取一個(gè)與其余節(jié)點(diǎn)之間的傳輸帶寬最大的節(jié)點(diǎn)作為次級(jí)集群中的主節(jié)點(diǎn)。
[0046]選取與其余節(jié)點(diǎn)之間的傳輸帶寬最大的節(jié)點(diǎn)作為次級(jí)集群的主節(jié)點(diǎn),能夠使主節(jié)點(diǎn)快速的發(fā)送文件至主節(jié)點(diǎn)所在的次級(jí)集群的從節(jié)點(diǎn),提高集群內(nèi)部的文件共享速度。
[0047]在步驟S103中,在當(dāng)前次級(jí)集群不具有子集群時(shí),建立當(dāng)前次級(jí)集群的主節(jié)點(diǎn)與當(dāng)前次級(jí)集群中的從節(jié)點(diǎn)之間的網(wǎng)絡(luò)文件系統(tǒng)NFS連接,控制當(dāng)前次級(jí)集群的主節(jié)點(diǎn),由當(dāng)前次級(jí)集群的主節(jié)點(diǎn)將從數(shù)據(jù)節(jié)點(diǎn)獲取的文件發(fā)送給當(dāng)前次級(jí)集群的從節(jié)點(diǎn)。
[0048]在本實(shí)施例中,集群控制器可以依次或者同時(shí)判斷每個(gè)次級(jí)集群是否具有子集群,如果不具有,則建立當(dāng)前次級(jí)集群的主節(jié)點(diǎn)與當(dāng)前次級(jí)集群中的從節(jié)點(diǎn)之間的NFS連接,控制當(dāng)前次級(jí)集群中的主節(jié)點(diǎn),由當(dāng)前次級(jí)集群中的主節(jié)點(diǎn)將獲取的文件發(fā)送給其所在次級(jí)集群中的從節(jié)點(diǎn)。
[0049]由于各個(gè)次級(jí)集群中的主節(jié)點(diǎn)可以同時(shí)發(fā)送文件至各自所在的次級(jí)集群的從節(jié)點(diǎn),實(shí)現(xiàn)了文件的傳輸一定程度上的并行化,從而提高了文件共享的效率。
[0050]優(yōu)選地,在當(dāng)前次級(jí)集群具有子集群時(shí),建立當(dāng)前次級(jí)集群的主節(jié)點(diǎn)與當(dāng)前次級(jí)集群的從節(jié)點(diǎn)之間的NFS連接,控制當(dāng)前次級(jí)集群中的主節(jié)點(diǎn),先由當(dāng)前次級(jí)集群的主節(jié)點(diǎn)將從數(shù)據(jù)節(jié)點(diǎn)獲取的文件發(fā)送給各個(gè)子集群的主節(jié)點(diǎn),再由各個(gè)子集群的主節(jié)點(diǎn)將所述文件發(fā)送給各個(gè)子集群的從節(jié)點(diǎn)。
[0051]具體的,集群控制器可以依次或者同時(shí)判斷每個(gè)次級(jí)集群是否具有子集群,如果具有,則控制當(dāng)前次級(jí)集群中的主節(jié)點(diǎn),先由當(dāng)前次級(jí)集群