本發(fā)明涉及一種共享文件系統(tǒng),特別是涉及一種基于塊存儲的分布式共享文件系統(tǒng)。
背景技術(shù):
由于云計算的催生,服務(wù)器的計算能力不再拘泥于單節(jié)點,由集群節(jié)點組成的計算池提供虛擬化、云桌面等業(yè)務(wù)的載體成為主流。但計算池與數(shù)據(jù)的載體存儲結(jié)合形式多種多樣,并不統(tǒng)一且存在諸多問題?;趬K存儲的分布式共享文件系統(tǒng)的誕生解決了傳統(tǒng)系統(tǒng)的中諸多缺陷:一,無法實多節(jié)點同時掛載并讀寫。二,掛載方式繁瑣,需通過iscsi協(xié)議掛載到節(jié)點(中轉(zhuǎn)節(jié)點)后,格式化成本地文件系統(tǒng),export成NFS或cifs等傳統(tǒng)共享文件系統(tǒng)后掛載到多節(jié)點(集群中的計算節(jié)點)實現(xiàn)共享功能。三,中轉(zhuǎn)節(jié)點存在單點故障問題,出現(xiàn)宕機,則影響整個集群中計算節(jié)點對存儲的訪問。四,中轉(zhuǎn)節(jié)點存在性能瓶頸,所有的數(shù)據(jù)讀寫都必須經(jīng)過中轉(zhuǎn)節(jié)點轉(zhuǎn)換后最終寫入存儲,中轉(zhuǎn)節(jié)點的網(wǎng)絡(luò)接口,cpu,內(nèi)存等配置,就會成為瓶頸。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種基于塊存儲的分布式共享文件系統(tǒng),其能夠?qū)崿F(xiàn)多點同時掛載,掛載方式簡單,無需中轉(zhuǎn)節(jié)點,集群中的節(jié)點直接掛載塊存儲后由分布式共享文件系統(tǒng)實現(xiàn)共享數(shù)據(jù)功能,不存在單點故障問題,集群中任意節(jié)點宕機對集群系統(tǒng)無影響,各集群中的計算節(jié)點可以直接訪問共享存儲,實現(xiàn)高性能并行讀寫。
本發(fā)明是通過下述技術(shù)方案來解決上述技術(shù)問題的:一種基于塊存儲的分布式共享文件系統(tǒng),其包括元數(shù)據(jù)模塊、集群管理模塊、節(jié)點管理器、存儲心跳線、網(wǎng)絡(luò)心跳線、文件系統(tǒng)隔離模塊、分布式鎖管理模塊、用戶空間和內(nèi)核空間接口、標準文件系統(tǒng)接口,元數(shù)據(jù)模塊負責元數(shù)據(jù)在各節(jié)點之間同步,由于各個節(jié)點并行讀寫數(shù)據(jù),元數(shù)據(jù)數(shù)量龐大,因此元數(shù)據(jù)必須做到快速同步才能達到數(shù)據(jù)共享的目的;集群管理模塊分布于各個掛載節(jié)點,主要用于集群管理,由于分布式共享文件系統(tǒng)是集群文件系統(tǒng),因此會出現(xiàn)多個節(jié)點同時掛載同一個文件系統(tǒng)的情況,實現(xiàn)文件系統(tǒng)的管理功能;節(jié)點管理器對配置文件中所有節(jié)點進行的監(jiān)控,通過系統(tǒng)工具將配置文件里的信息通過文件系統(tǒng)接口加載到內(nèi)核中,保持內(nèi)核和用戶態(tài)的一致性;存儲心跳線用于檢測自身及其余節(jié)點與存儲設(shè)備之間的連接是否正常,當節(jié)點掛載文件系統(tǒng)時,掛載工具會通過文件系統(tǒng)接口進行用戶態(tài)與內(nèi)核態(tài)之間的信息傳遞,進而啟動一個存儲心跳進程,該進程每兩秒讀一次與其余節(jié)點的存儲心跳,同時寫一次自身節(jié)點的存儲心跳,一定時間內(nèi)不能讀寫存儲心跳,則會被文件系統(tǒng)隔離,隔離后元數(shù)據(jù)不再去同步此節(jié)點;網(wǎng)絡(luò)心跳線用于檢測自身與其他節(jié)點之間的管理網(wǎng)絡(luò)連接是否正常,當節(jié)點加載集群服務(wù)時,自身節(jié)點會啟動傳輸控制協(xié)議監(jiān)聽線程,監(jiān)聽是否此時有節(jié)點與其建立數(shù)據(jù)通信連接,當節(jié)點掛載文件系統(tǒng)時,會先檢測到其余已掛載文件系統(tǒng)上節(jié)點的存儲心跳,然后分別與其建立數(shù)據(jù)通信連接,進而每兩秒會發(fā)送網(wǎng)絡(luò)心跳包,并進行元數(shù)據(jù)同步,一定時間內(nèi)無法發(fā)送網(wǎng)絡(luò)心跳包,則同樣會通過文件系統(tǒng)隔離機制將其隔離,隔離后元數(shù)據(jù)不再去同步此節(jié)點;文件系統(tǒng)隔離模塊根據(jù)心跳線返回結(jié)果將文件系統(tǒng)內(nèi)部的故障節(jié)點進行隔離,保障文件系統(tǒng)內(nèi)部的正常節(jié)點操作正常;分布式鎖管理模塊采用分布式的文件共享管理,每一個文件的擁有者可以是不同節(jié)點,而不是固定為一個節(jié)點,每一個文件對應(yīng)一個鎖資源,節(jié)點先打開并讀取這個文件,該節(jié)點則會成為該鎖資源的所有者;用戶空間和內(nèi)核空間接口用于用戶空間與內(nèi)核空間數(shù)據(jù)傳輸交流,用戶空間的數(shù)據(jù)通過用戶空間和內(nèi)核空間接口傳入到內(nèi)核空間中,同時內(nèi)核空間的數(shù)據(jù)通過用戶空間和內(nèi)核空間接口導(dǎo)出到用戶空間;標準文件系統(tǒng)接口是系統(tǒng)默認接口,用于將文件寫入磁盤空間。
優(yōu)選地,所述節(jié)點管理器中的配置文件被用戶改變后節(jié)點管理器需要卸載再重新加載,其內(nèi)核中的內(nèi)容才能生效。
優(yōu)選地,所述鎖資源的所有者對鎖資源對應(yīng)的文件加鎖,其余節(jié)點對所有者請求加鎖,加鎖成功后對該鎖資源進行讀取和操作。
優(yōu)選地,所述元數(shù)據(jù)模塊、集群管理模塊、分布式鎖管理模塊、用戶空間和內(nèi)核空間接口、標準文件系統(tǒng)接口依次連接。
本發(fā)明的積極進步效果在于:本發(fā)明能夠?qū)崿F(xiàn)多點同時掛載,掛載方式簡單,無需中轉(zhuǎn)節(jié)點,集群中的節(jié)點直接掛載塊存儲后由分布式共享文件系統(tǒng)實現(xiàn)共享數(shù)據(jù)功能,不存在單點故障問題,集群中任意節(jié)點宕機對集群系統(tǒng)無影響,各集群中的計算節(jié)點可以直接訪問共享存儲,實現(xiàn)高性能并行讀寫。
附圖說明
圖1為本發(fā)明的原理示意圖。
具體實施方式
下面結(jié)合附圖給出本發(fā)明較佳實施例,以詳細說明本發(fā)明的技術(shù)方案。
如圖1所示,本發(fā)明基于塊存儲的分布式共享文件系統(tǒng)包括元數(shù)據(jù)模塊、集群管理模塊、節(jié)點管理器、存儲心跳線、網(wǎng)絡(luò)心跳線、文件系統(tǒng)隔離模塊、分布式鎖管理模塊、用戶空間和內(nèi)核空間接口、標準文件系統(tǒng)接口,元數(shù)據(jù)模塊負責元數(shù)據(jù)在各節(jié)點之間同步,由于各個節(jié)點并行讀寫數(shù)據(jù),元數(shù)據(jù)數(shù)量龐大,因此元數(shù)據(jù)必須做到快速同步才能達到數(shù)據(jù)共享的目的;集群管理模塊分布于各個掛載節(jié)點,主要用于集群管理,由于分布式共享文件系統(tǒng)是集群文件系統(tǒng),因此會出現(xiàn)多個節(jié)點同時掛載同一個文件系統(tǒng)的情況,實現(xiàn)文件系統(tǒng)的管理功能;節(jié)點管理器對配置文件中所有節(jié)點進行的監(jiān)控,通過系統(tǒng)工具將配置文件里的信息通過文件系統(tǒng)接口加載到內(nèi)核中,保持內(nèi)核和用戶態(tài)的一致性;存儲心跳線用于檢測自身及其余節(jié)點與存儲設(shè)備之間的連接是否正常,當節(jié)點掛載文件系統(tǒng)時,掛載工具會通過文件系統(tǒng)接口進行用戶態(tài)與內(nèi)核態(tài)之間的信息傳遞,進而啟動一個存儲心跳進程,該進程每兩秒讀一次與其余節(jié)點的存儲心跳,同時寫一次自身節(jié)點的存儲心跳,一定時間內(nèi)不能讀寫存儲心跳,則會被文件系統(tǒng)隔離,隔離后元數(shù)據(jù)不再去同步此節(jié)點;網(wǎng)絡(luò)心跳線用于檢測自身與其他節(jié)點之間的管理網(wǎng)絡(luò)連接是否正常,當節(jié)點加載集群服務(wù)時,自身節(jié)點會啟動傳輸控制協(xié)議監(jiān)聽線程,監(jiān)聽是否此時有節(jié)點與其建立數(shù)據(jù)通信連接,當節(jié)點掛載文件系統(tǒng)時,會先檢測到其余已掛載文件系統(tǒng)上節(jié)點的存儲心跳,然后分別與其建立數(shù)據(jù)通信連接,進而每兩秒會發(fā)送網(wǎng)絡(luò)心跳包,并進行元數(shù)據(jù)同步,一定時間內(nèi)無法發(fā)送網(wǎng)絡(luò)心跳包,則同樣會通過文件系統(tǒng)隔離機制將其隔離,隔離后元數(shù)據(jù)不再去同步此節(jié)點;文件系統(tǒng)隔離模塊根據(jù)心跳線返回結(jié)果將文件系統(tǒng)內(nèi)部的故障節(jié)點進行隔離,保障文件系統(tǒng)內(nèi)部的正常節(jié)點操作正常;分布式鎖管理模塊采用分布式的文件共享管理,每一個文件的擁有者可以是不同節(jié)點,而不是固定為一個節(jié)點,每一個文件對應(yīng)一個鎖資源,節(jié)點先打開并讀取這個文件,該節(jié)點則會成為該鎖資源的所有者;用戶空間和內(nèi)核空間接口用于用戶空間與內(nèi)核空間數(shù)據(jù)傳輸交流,用戶空間的數(shù)據(jù)通過用戶空間和內(nèi)核空間接口傳入到內(nèi)核空間中,同時內(nèi)核空間的數(shù)據(jù)通過用戶空間和內(nèi)核空間接口導(dǎo)出到用戶空間;標準文件系統(tǒng)接口是系統(tǒng)默認接口,用于將文件寫入磁盤空間。
節(jié)點管理器中的配置文件被用戶改變后節(jié)點管理器需要卸載再重新加載,其內(nèi)核中的內(nèi)容才能生效。
鎖資源的所有者對鎖資源對應(yīng)的文件加鎖,其余節(jié)點對所有者請求加鎖,加鎖成功后對該鎖資源進行讀取和操作。
元數(shù)據(jù)模塊、集群管理模塊、分布式鎖管理模塊、用戶空間和內(nèi)核空間接口、標準文件系統(tǒng)接口依次連接,這樣方便連接。
由于采用了上述技術(shù)方案,本發(fā)明具有下述有益效果:
(1)排除了單點故障,增強了整體集群的可靠性;
(2)去除中間轉(zhuǎn)換節(jié)點,消除存儲訪問的網(wǎng)絡(luò)瓶頸,大大提升數(shù)據(jù)讀寫性能;
(3)實現(xiàn)塊存儲訪問的共享化,使得傳統(tǒng)企業(yè)塊存儲在云計算等業(yè)務(wù)中得到更好的利用。
綜上所述,本發(fā)明能夠?qū)崿F(xiàn)多點同時掛載,掛載方式簡單,無需中轉(zhuǎn)節(jié)點,集群中的節(jié)點直接掛載塊存儲后由分布式共享文件系統(tǒng)實現(xiàn)共享數(shù)據(jù)功能,不存在單點故障問題,集群中任意節(jié)點宕機對集群系統(tǒng)無影響,各集群中的計算節(jié)點可以直接訪問共享存儲,實現(xiàn)高性能并行讀寫。
以上所述的具體實施例,對本發(fā)明的解決的技術(shù)問題、技術(shù)方案和有益效果進行了進一步詳細說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。