本發(fā)明公開一種提升元數(shù)據(jù)集群性能的方法,涉及數(shù)據(jù)集群管理領(lǐng)域,具體的說(shuō)是一種通過(guò)虛擬目錄來(lái)提升元數(shù)據(jù)集群性能的方法。
背景技術(shù):
元數(shù)據(jù)是用來(lái)描述一個(gè)文件系統(tǒng)特征的數(shù)據(jù)。比如對(duì)于磁盤文件系統(tǒng)來(lái)說(shuō),關(guān)于文件組織和管理的信息就是該文件的元數(shù)據(jù)。在 UNIX 系統(tǒng)中,文件的元數(shù)據(jù)主要是文件目錄項(xiàng)和索引節(jié)點(diǎn)結(jié)構(gòu)。目錄項(xiàng)和文件系統(tǒng)的名字空間相關(guān),每個(gè)目錄項(xiàng)對(duì)應(yīng)一個(gè)文件名。索引節(jié)點(diǎn)結(jié)構(gòu)中則存儲(chǔ)著文件的很多重要信息,諸如訪問(wèn)權(quán)限、文件大小、文件的創(chuàng)建時(shí)間、最后存取時(shí)間、最后修改時(shí)間等屬性信息,以及文件數(shù)據(jù)的物理分布信息,如直接塊指針、間接塊指針。此外,還有一些重要的系統(tǒng)數(shù)據(jù),如超級(jí)塊信息,記錄了整個(gè)文件系統(tǒng)的使用情況,如空閑塊的大小、己使用的空間大小等,也是一種元數(shù)據(jù)。
元數(shù)據(jù)的訪問(wèn)性能影響著分布式文件系統(tǒng)的性能。在分布式文件系統(tǒng)中,元數(shù)據(jù)的訪問(wèn)很頻繁,而元數(shù)據(jù)文件通常又很小,這樣對(duì)大量小文件的訪問(wèn),會(huì)對(duì)系統(tǒng)性能造成沖擊,不利于元數(shù)據(jù)的使用。本發(fā)明提供一種通過(guò)虛擬子目錄來(lái)提升元數(shù)據(jù)集群性能的方法,為了提升元數(shù)據(jù)集群的性能,對(duì)虛擬子目錄的創(chuàng)建,虛擬子目錄可以分配不同的mds,實(shí)現(xiàn)負(fù)載均衡,單個(gè)目錄可以利用多個(gè)mds,實(shí)現(xiàn)單目錄小文件性能的提升,從而進(jìn)一步實(shí)現(xiàn)元數(shù)據(jù)集群性能的提升。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明針對(duì)目前技術(shù)發(fā)展的需求和不足之處,提供一種通過(guò)虛擬目錄來(lái)提升元數(shù)據(jù)集群性能的方法,高效、便捷、實(shí)用性強(qiáng)、為元數(shù)據(jù)集群系統(tǒng)提升性能,解決瓶頸問(wèn)題。
一種通過(guò)虛擬目錄來(lái)提升元數(shù)據(jù)集群性能的方法,根據(jù)系統(tǒng)請(qǐng)求,建立元數(shù)據(jù)集群的虛擬子目錄或者將普通目錄設(shè)置為虛擬子目錄,虛擬子目錄建立后對(duì)元數(shù)據(jù)集群的操作請(qǐng)求,判斷父目錄是否為虛擬目錄,不是則進(jìn)行原有流程進(jìn)行操作,否則進(jìn)入虛擬目錄,對(duì)操作名進(jìn)行hash計(jì)算,根據(jù)hash值進(jìn)入到相應(yīng)的虛擬子目錄中進(jìn)行操作。
通過(guò)更改集群節(jié)點(diǎn)配置文件的參數(shù),設(shè)置元數(shù)據(jù)集群的虛擬子目錄的開啟和關(guān)閉功能。
所述建立虛擬子目錄,先創(chuàng)建虛擬父目錄,再根據(jù)每個(gè)mds需要?jiǎng)?chuàng)建的目錄個(gè)數(shù),創(chuàng)建虛擬子目錄,根據(jù)虛擬子目錄導(dǎo)出規(guī)則將虛擬子目錄導(dǎo)出到對(duì)應(yīng)mds。
所述將普通目錄設(shè)置為虛擬子目錄:根據(jù)配置文件的參數(shù)創(chuàng)建虛擬子目錄,遍歷目錄的一層通過(guò)hash算法計(jì)算存放位置,移動(dòng)到對(duì)應(yīng)的虛擬子目錄。
先判斷普通目錄是否為虛擬子目錄,不是則進(jìn)行創(chuàng)建,是則結(jié)束創(chuàng)建。
通過(guò)更改配置文件目錄inode中的xattr屬性字段,設(shè)置元數(shù)據(jù)集群的虛擬子目錄的開啟和關(guān)閉功能。
更改目錄inode中的xattr屬性字段的User.vartualdir 的屬性,設(shè)置元數(shù)據(jù)集群的虛擬子目錄的開啟和關(guān)閉功能。
本發(fā)明與現(xiàn)有技術(shù)相比具有的有益效果是:
本發(fā)明提供一種通過(guò)虛擬子目錄來(lái)提升元數(shù)據(jù)集群性能的方法,根據(jù)系統(tǒng)請(qǐng)求,建立元數(shù)據(jù)集群的虛擬子目錄或者將普通目錄設(shè)置為虛擬子目錄,虛擬子目錄建立后對(duì)元數(shù)據(jù)集群的操作請(qǐng)求,判斷父目錄是否為虛擬目錄,不是則進(jìn)行原有流程進(jìn)行操作,否則進(jìn)入虛擬目錄,對(duì)操作名進(jìn)行hash計(jì)算,根據(jù)hash值進(jìn)入到相應(yīng)的虛擬子目錄中進(jìn)行操作。
為了提升元數(shù)據(jù)集群的性能,利用本發(fā)明對(duì)虛擬子目錄的創(chuàng)建,虛擬子目錄可以分配不同的mds,實(shí)現(xiàn)負(fù)載均衡,單個(gè)目錄可以利用多個(gè)mds,實(shí)現(xiàn)單目錄小文件性能的提升,從而進(jìn)一步實(shí)現(xiàn)元數(shù)據(jù)集群性能的提升。
附圖說(shuō)明
圖1本發(fā)明中建立虛擬子目錄的流程示意圖;
圖2 本發(fā)明中對(duì)元數(shù)據(jù)集群的操作請(qǐng)求進(jìn)行處理的流程示意圖;
圖3本發(fā)明中將普通目錄設(shè)置為虛擬子目錄的流程示意圖;
圖4本發(fā)明中虛擬子目錄恢復(fù)成普通目錄的流程示意圖。
具體實(shí)施方式
本發(fā)明提供一種通過(guò)虛擬目錄來(lái)提升元數(shù)據(jù)集群性能的方法,根據(jù)系統(tǒng)請(qǐng)求,建立元數(shù)據(jù)集群的虛擬子目錄或者將普通目錄設(shè)置為虛擬子目錄,虛擬子目錄建立后對(duì)元數(shù)據(jù)集群的操作請(qǐng)求,判斷父目錄是否為虛擬目錄,不是則進(jìn)行原有流程進(jìn)行操作,否則進(jìn)入虛擬目錄,對(duì)操作名進(jìn)行hash計(jì)算,根據(jù)hash值進(jìn)入到相應(yīng)的虛擬子目錄中進(jìn)行操作。
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施,對(duì)本發(fā)明進(jìn)一步詳細(xì)說(shuō)明。
利用本發(fā)明方法,根據(jù)系統(tǒng)請(qǐng)求,建立元數(shù)據(jù)集群的虛擬子目錄或者將普通目錄設(shè)置為虛擬子目錄,如下:
其中建立虛擬子目錄,先創(chuàng)建虛擬父目錄,再根據(jù)每個(gè)mds需要?jiǎng)?chuàng)建的目錄個(gè)數(shù)n,創(chuàng)建n個(gè)虛擬子目錄,根據(jù)虛擬子目錄導(dǎo)出規(guī)則將虛擬子目錄導(dǎo)出到對(duì)應(yīng)mds;此外在創(chuàng)建虛擬父目錄前,可以對(duì)創(chuàng)建目錄請(qǐng)求進(jìn)行問(wèn)詢,是否創(chuàng)建虛擬目錄,如是則繼續(xù)進(jìn)行,否則按照原有創(chuàng)建流程創(chuàng)建普通目錄,參考圖1;
將普通目錄設(shè)置為虛擬子目錄:根據(jù)配置文件的參數(shù)設(shè)置虛擬子目錄,比如更改目錄inode中的xattr屬性字段,增加user.virtualdir字段屬性,用virtual_dir_num參數(shù)0-5來(lái)設(shè)置元數(shù)據(jù)集群的普通目錄是否為虛擬子目錄,其中數(shù)值是0則表明不是虛擬子目錄,是普通目錄;而參數(shù)是大于0的正數(shù),則表明是虛擬子目錄;
利用上述更改配置文件參數(shù)實(shí)例,普通目錄設(shè)置為虛擬子目錄流程可以參考圖3,其中接收將普通目錄設(shè)置為虛擬子目錄的指令后,如啟用更改配置文件參數(shù)來(lái)設(shè)置虛擬子目錄,則創(chuàng)建虛擬子目錄,然后遍歷目錄的一層通過(guò)hash算法計(jì)算存放位置,利用Mv移動(dòng)到對(duì)應(yīng)的虛擬子目錄,導(dǎo)出虛擬子目錄,設(shè)置user.virtualdir值等于1,大于0,因此為虛擬子目錄;其中可以預(yù)先對(duì)普通目錄是否為虛擬子目錄進(jìn)行判斷,不是則進(jìn)行創(chuàng)建,是則結(jié)束創(chuàng)建;
虛擬子目錄建立后對(duì)元數(shù)據(jù)集群的操作請(qǐng)求,判斷父目錄是否為虛擬目錄,不是則進(jìn)行原有流程進(jìn)行操作,否則進(jìn)入虛擬目錄,對(duì)操作名進(jìn)行hash計(jì)算,根據(jù)hash值進(jìn)入到相應(yīng)的虛擬子目錄中進(jìn)行操作。
此外,普通目錄可以通過(guò)更改配置文件目錄inode中的xattr屬性字段,設(shè)置元數(shù)據(jù)集群的虛擬子目錄的開啟和關(guān)閉功能,繼續(xù)上述實(shí)施例,則利用將user.virtualdir值設(shè)置等于0,使虛擬子目錄恢復(fù)成普通目錄,恢復(fù)后相應(yīng)虛擬子目錄可被刪除,此過(guò)程為:更改該目錄的User.vartualdir 的屬性為0,將該目錄下的虛擬子目錄的分配mds導(dǎo)回0,之后遍歷目錄的一層,通過(guò)Mv操作移動(dòng)到上級(jí)目錄下,相關(guān)目錄操作完成后,將這些目錄刪除。
利用本發(fā)明方法可以高效、便捷地提升元數(shù)據(jù)集群系統(tǒng)的性能,實(shí)用性強(qiáng),并且操作便利,不需要人為干預(yù),在提升元數(shù)據(jù)性能的同時(shí),還能夠很好的隱藏目錄。