本發(fā)明屬于計(jì)算機(jī)文件系統(tǒng),具體涉及一種基于用戶態(tài)文件與內(nèi)核虛擬機(jī)的異構(gòu)文件系統(tǒng)集成方法。
背景技術(shù):
1、隨著分布式技術(shù)的發(fā)展,很多時候需要將原有單機(jī)軟件集成到分布式系統(tǒng)上,實(shí)現(xiàn)多用戶云平臺,然而這些遺留軟件往往存在數(shù)據(jù)存儲目錄以及代碼難以修改的問題,同時不同的用戶、不同的項(xiàng)目和不同的人員會在系統(tǒng)存儲資源和訪問權(quán)限等方面存在相互的干擾和沖突。
2、目前,集成原有軟件的辦法主要是修改遺留軟件的文件存儲目錄和代碼,這種方式面臨很多問題,例如,代碼量龐大的情況下難以快速高效的完成軟件的改造和升級,難以保留原有代碼和架構(gòu),難以實(shí)現(xiàn)將原有數(shù)據(jù)統(tǒng)一收集在分布式平臺中,使得不同節(jié)點(diǎn)的用戶登錄之后都能夠進(jìn)行數(shù)據(jù)訪問,難以為不同節(jié)點(diǎn)用戶分配不同的數(shù)據(jù)訪問權(quán)限。
技術(shù)實(shí)現(xiàn)思路
1、為了克服現(xiàn)有技術(shù)的不足,對原有遺留軟件系統(tǒng)文件管理能力進(jìn)行透明升級改造,本發(fā)明提供了一種基于用戶態(tài)文件與內(nèi)核虛擬機(jī)的異構(gòu)文件系統(tǒng)集成方法,根據(jù)文件訪問異構(gòu)集成需求,基于fuse設(shè)計(jì)實(shí)現(xiàn)了一個支持本地存儲和分布式文件存儲并提供統(tǒng)一邏輯接口的異構(gòu)文件系統(tǒng);根據(jù)文件訪問控制需求,提出基于ebpf的文件訪問控制解決方案。
2、本發(fā)明技術(shù)方案具體包括如下步驟:
3、步驟1:構(gòu)建基于fuse的異構(gòu)文件系統(tǒng);
4、步驟1-1:采用堆疊式文件系統(tǒng)進(jìn)行設(shè)計(jì),為本地文件和分布式文件存儲提供統(tǒng)一的vfs接口,一個文件訪問請求首先到達(dá)vfs,經(jīng)過vfs的轉(zhuǎn)發(fā)到達(dá)fuse內(nèi)核模塊;請求經(jīng)過fuse內(nèi)核模塊處理之后轉(zhuǎn)發(fā)到異構(gòu)文件系統(tǒng),異構(gòu)文件內(nèi)部根據(jù)文件類型進(jìn)行相應(yīng)處理;
5、步驟1-2:在異構(gòu)文件系統(tǒng)內(nèi)部建立動態(tài)文件類型映射表,將文件類型信息進(jìn)行映射,用于判別一個文件進(jìn)行本地存儲或者分布式存儲;
6、步驟1-3:將異構(gòu)文件系統(tǒng)掛載到某一目錄下,當(dāng)進(jìn)程創(chuàng)建文件時,在異構(gòu)文件系統(tǒng)內(nèi)部匹配動態(tài)文件映射表,如果匹配成功則將文件映射到分布式文件系統(tǒng)進(jìn)行分布式存儲,匹配失敗則存儲在本地文件系統(tǒng)中,并將元數(shù)據(jù)信息存儲到相應(yīng)數(shù)據(jù)庫中;
7、步驟1-4:當(dāng)異構(gòu)文件系統(tǒng)響應(yīng)文件讀寫請求時查找并獲取文件類型信息,根據(jù)type類型對文件訪問請求進(jìn)行本地訪問或分布式訪問;
8、步驟2:基于ebpf在fuse內(nèi)核模塊實(shí)現(xiàn)文件訪問控制方案;
9、步驟2-1:對fuse內(nèi)核進(jìn)行改造添加相應(yīng)的ebpf掛載點(diǎn);
10、步驟2-2:添加新的ebpf程序類型,并對linux內(nèi)核加載ebpf程序的源碼進(jìn)行修改以實(shí)現(xiàn)類型支持;
11、步驟2-3:構(gòu)建訪問控制框架,訪問控制框架由訪問控制加載模塊、用于跟蹤文件訪問請求和執(zhí)行策略的ebpf程序、用于跟蹤程序的ebpf程序、ebpf?map組成;
12、步驟2-4:實(shí)現(xiàn)訪問控制,包括制定訪問控制規(guī)則、進(jìn)程狀態(tài)的記錄、訪問請求處理以及日志記錄。
13、優(yōu)選地,所述步驟1-2中,使用動態(tài)映射表通過統(tǒng)一的vfs接口實(shí)現(xiàn)本地文件存儲和分布式文件存儲,不同的數(shù)據(jù)具有不同的文件后綴名;通過文件后綴名,識別不同的文件類型,之后建立動態(tài)文件類型映射表,將文件類型信息進(jìn)行映射,用于判別一個文件進(jìn)行本地存儲或者分布式存儲,實(shí)現(xiàn)文件的分類存儲。
14、本發(fā)明的有益效果如下:
15、1、本發(fā)明無需修改遺留軟件數(shù)據(jù)存儲目錄和代碼,為本地存儲和分布式存儲提供統(tǒng)一的接口,實(shí)現(xiàn)了對原有遺留軟件系統(tǒng)文件管理能力的透明升級改造。
16、2、本發(fā)明提出的訪問控制機(jī)制是一種動態(tài)加載和卸載的機(jī)制,具有較強(qiáng)靈活性,可以更方便地應(yīng)對不同的安全需求。ebpf程序運(yùn)行在內(nèi)核模塊,從fuse內(nèi)核模塊截獲文件訪問請求進(jìn)行訪問控制,節(jié)省了文件請求轉(zhuǎn)發(fā)的開銷。
17、3、本發(fā)明提出進(jìn)程級別細(xì)粒度的文件訪問控制方案,實(shí)現(xiàn)對于不同進(jìn)程的文件訪問限制和不同平臺用戶文件訪問權(quán)限分配。
1.一種基于用戶態(tài)文件與內(nèi)核虛擬機(jī)的異構(gòu)文件系統(tǒng)集成方法,其特征在于:
2.根據(jù)權(quán)利要求1所述的一種基于用戶態(tài)文件與內(nèi)核虛擬機(jī)的異構(gòu)文件系統(tǒng)集成方法,其特征在于:所述步驟1-2中,使用動態(tài)映射表通過統(tǒng)一的vfs接口實(shí)現(xiàn)本地文件存儲和分布式文件存儲,不同的數(shù)據(jù)具有不同的文件后綴名;通過文件后綴名,識別不同的文件類型,之后建立動態(tài)文件類型映射表,將文件類型信息進(jìn)行映射,用于判別一個文件進(jìn)行本地存儲或者分布式存儲,實(shí)現(xiàn)文件的分類存儲。