一種基于不同存儲介質的混合文件系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種基于不同存儲介質的混合文件系統(tǒng),所述存儲介質包括非易失的小粒度尋址的介質和非易失的大粒度尋址的介質,兩種介質統(tǒng)一順序編址;其中,所述非易失的小粒度尋址的介質用于存放文件系統(tǒng)的元數(shù)據(jù),所述非易失的大粒度尋址的介質用于存放文件系統(tǒng)的數(shù)據(jù);所述文件系統(tǒng)在不同的情況對不同的地址范圍調用不同粒度的讀或寫。本發(fā)明將大數(shù)據(jù)量的讀寫和小數(shù)據(jù)量的讀寫按不同情況分配相應的介質上,提高了讀寫速度,提升了文件系統(tǒng)的存儲效率;不但充分利用了存儲空間,不存在多余的冗余,而且減小了額外的I/O,進而提高了讀寫性能;本發(fā)明所提出的混合文件系統(tǒng)具有高可靠性、高擴展性和高I/O速度。
【專利說明】—種基于不同存儲介質的混合文件系統(tǒng)
【技術領域】
[0001]本發(fā)明屬于計算機存儲系統(tǒng)【技術領域】,更具體地,涉及一種基于不同存儲介質的混合文件系統(tǒng)。
【背景技術】
[0002]在計算機存儲子系統(tǒng)中,由于不同存儲介質的讀寫訪問延時不同,在計算機體系結構中常常提供多級別的存儲層次。存儲容量越大的存儲介質其訪問時間越長。目前,通常是采用磁存儲技術來實現(xiàn)大容量的存儲,其讀寫延遲大,讀寫粒度大。文件系統(tǒng)訪問作為外設的大容量存儲時,會消耗很多的時間,降低整體的性能。
[0003]為提高性能,存儲領域做了很多的研究。固態(tài)盤的出現(xiàn)更是引起了一個浪潮。在近幾年里,一系列的混合存儲方案被提出。其中主流的方案有兩種:如圖1(a)所示,一種方案采用讀寫快的介質作為讀寫慢的介質的緩存,比如采用固態(tài)盤作為緩存,即固態(tài)盤作為磁盤的緩存,將經常訪問的數(shù)據(jù)緩存在固態(tài)盤里,為提高這種存儲方案中固態(tài)盤的命中率,相繼出現(xiàn)了一系列優(yōu)化緩存的策略;如圖1(b)所示,另一種方案采用讀寫快的介質與讀寫慢的介質作為混合存儲,以固態(tài)盤和硬盤為例,數(shù)據(jù)唯一的存儲在固態(tài)盤或硬盤中,數(shù)據(jù)存在固態(tài)盤或是硬盤中的選擇算法根據(jù)性能偏重點不同也有多種。所有方案中由于引進了固態(tài)盤(Solid State Disk, SSD),在讀取文件數(shù)據(jù)的速度上有所改進,但對于寫以及頻繁修改的訪問性能優(yōu)化不高,特別是對于無規(guī)律的小文件更新。因為要花費大量的時間來修改元數(shù)據(jù),還由于器件本身的因素——SSD的擦寫特性,會有大量的額外寫。
【發(fā)明內容】
[0004]為了改善現(xiàn)有技術中額外寫的問題,提高修改元數(shù)據(jù)和更新數(shù)據(jù)的速度,本發(fā)明提出了一種新的混合存儲結構,將非易失的小粒度尋址的介質與非易失的大粒度尋址的介質作為混合存儲,并針對這種混合存儲結構提出了新的文件系統(tǒng)。
[0005]為了實現(xiàn)上述目的,本發(fā)明提供了一種基于不同存儲介質的混合文件系統(tǒng),所述存儲介質包括非易失的小粒度尋址的介質和非易失的大粒度尋址的介質,兩種介質統(tǒng)一順序編址;其中,所述非易失的小粒度尋址的介質用于存放文件系統(tǒng)的元數(shù)據(jù),所述非易失的大粒度尋址的介質用于存放文件系統(tǒng)的數(shù)據(jù);所述文件系統(tǒng)在不同的情況對不同的地址范圍調用不同粒度的讀或寫。
[0006]作為本發(fā)明的進一步改進,所述兩種介質統(tǒng)一順序編址具體為:所述非易失的小粒度尋址的介質編址在低地址段,所述非易失的大粒度尋址的介質編址在高地址段。
[0007]具體地,所述文件系統(tǒng)的元數(shù)據(jù)是指管理存儲空間的數(shù)據(jù)結構,和文件系統(tǒng)中文件的元數(shù)據(jù),以及目錄樹結構,具體包括管理整個文件系統(tǒng)的數(shù)據(jù)結構、管理空間分配的數(shù)據(jù)結構、文件的屬性和指針、目錄的屬性及內容。
[0008]具體地,所述文件系統(tǒng)的數(shù)據(jù)是指存放在數(shù)據(jù)塊區(qū)的文件的內容。
[0009]作為本發(fā)明的進一步改進,所述文件系統(tǒng)在不同的情況對不同的地址范圍調用不同粒度的讀或寫包括:在初始化階段需要緩存部分的元數(shù)據(jù),以及運行期間緩存的元數(shù)據(jù)需要替換時,采用大粒度的讀;在文件系統(tǒng)運行中,訪問文件或目錄的內容,采用大粒度的讀。
[0010]作為本發(fā)明的進一步改進,所述文件系統(tǒng)在不同的情況對不同的地址范圍調用不同粒度的讀或寫包括:在文件系統(tǒng)運行中,對于文件或目錄的查找,當需要訪問的元數(shù)據(jù)量在字節(jié)數(shù)量級時,采用小粒度讀。
[0011]作為本發(fā)明的進一步改進,所述文件系統(tǒng)在不同的情況對不同的地址范圍調用不同粒度的讀或寫包括:在文件系統(tǒng)運行中,當需要更新元數(shù)據(jù)時,對非易失的小粒度尋址的介質上的元數(shù)據(jù)采用小粒度的寫回,其中需要更新元數(shù)據(jù)的情況包括對文件或目錄的刪除,或者創(chuàng)建,或者修改,或者重命名。
[0012]作為本發(fā)明的進一步改進,所述文件系統(tǒng)在不同的情況對不同的地址范圍調用不同粒度的讀或寫包括:在文件系統(tǒng)運行中,當需要批量更新數(shù)據(jù)時,對非易失的大粒度尋址的介質上的數(shù)據(jù)采用大粒度的寫回,其中需要更新數(shù)據(jù)的情況包括對文件的刪除,或者創(chuàng)建,或者修改。
[0013]優(yōu)選地,所述非易失的小粒度尋址的介質為相變存儲器,所述非易失的大粒度尋址的介質為固態(tài)盤。
[0014]具體地,若所述文件系統(tǒng)為EXT2格式,所述文件系統(tǒng)的元數(shù)據(jù)包括超級塊、塊組描述符、inode位圖、數(shù)據(jù)塊位圖、inode表以及目錄的內容。
[0015]通過本發(fā)明所構思的以上技術方案與現(xiàn)有技術相比,具有以下有益效果:
[0016]1、本發(fā)明通過采用非易失的小粒度尋址的介質和非易失的大粒度尋址的介質組成混合存儲介質,在非易失的小粒度尋址的介質中存放文件系統(tǒng)的元數(shù)據(jù),在非易失的大粒度尋址的介質中存放文件系統(tǒng)的數(shù)據(jù),并針對不同的情況和不同的地址范圍調用不同粒度的讀或寫,從而將大數(shù)據(jù)量的讀寫和小數(shù)據(jù)量的讀寫按不同情況分配相應的介質上,提高了讀寫速度,提升了文件系統(tǒng)的存儲效率;
[0017]2、本發(fā)明將元數(shù)據(jù)存放在非易失的小粒度尋址的介質上,對于元數(shù)據(jù)的更新采用小粒度的寫,從而在更新元數(shù)據(jù)時不需要對整個數(shù)據(jù)塊進行寫回,從而減少了寫回的數(shù)據(jù)量,避免了額外寫的問題;
[0018]3、本發(fā)明在文件系統(tǒng)運行中,對于文件或目錄的查找,當需要訪問的元數(shù)據(jù)量在字節(jié)數(shù)量級時,采用小粒度讀,從而在讀取元數(shù)據(jù)時不需要對整個數(shù)據(jù)塊進行讀取,從而減少了額外數(shù)據(jù)量的讀取;
[0019]4、由于小粒度尋址的介質其讀寫延遲小,減小了元數(shù)據(jù)的讀寫時間,提升了文件系統(tǒng)的對元數(shù)據(jù)的讀寫效率;
[0020]5、總體而言,本發(fā)明提供的所述混合存儲的方法與目前的方法比起來,其利用率高,并且讀寫速度更快,能降低I/O讀寫量,具有高可靠性。
【專利附圖】
【附圖說明】
[0021]圖1是現(xiàn)有技術中典型的混合存儲架構;
[0022]圖2是本發(fā)明中一種典型的基于不同存儲介質的混合架構;
[0023]圖3是本發(fā)明實施例中一種典型的文件系統(tǒng)物理布局圖;[0024]圖4是本發(fā)明實施例中文件系統(tǒng)的讀操作示意圖;
[0025]圖5是本發(fā)明實施例中文件系統(tǒng)的寫操作示意圖。
【具體實施方式】
[0026]為了使本發(fā)明的目的、技術方案及優(yōu)點更加清楚明白,以下結合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個實施方式中所涉及到的技術特征只要彼此之間未構成沖突就可以相互組合。
[0027]首先,對本發(fā)明中一些名詞和術語進行解釋:
[0028]大粒度與小粒度:大粒度一般為頁或塊的大??;小粒度一般與一個元數(shù)據(jù)的結構相差不大,比如可以是128Byte,遠小于頁或塊的大??;大粒度的讀寫可與非易失的大粒度尋址的介質的讀寫粒度相同或者大于其讀寫粒度,小粒度的讀寫與非易失的小粒度尋址的介質的讀寫粒度相同或是大于其讀寫粒度。
[0029]文件系統(tǒng)元數(shù)據(jù):文件系統(tǒng)的元數(shù)據(jù)在這里指的是管理空間的數(shù)據(jù)結構和文件系統(tǒng)中文件的元數(shù)據(jù)以及目錄樹結構,包括管理整個文件系統(tǒng)的數(shù)據(jù)結構、管理空間分配的數(shù)據(jù)結構、文件的屬性和指針、目錄的屬性及內容等;以EXT2為例,超級塊、塊組描述符、inode位圖、數(shù)據(jù)塊位圖、inode表以及目錄的內容都屬于文件系統(tǒng)的元數(shù)據(jù);
[0030]文件系統(tǒng)的數(shù)據(jù):文件的內容;以EXT2為例,文件系統(tǒng)的數(shù)據(jù)是存放在數(shù)據(jù)塊區(qū)的文件的內容。
[0031]為改善額外寫的問題,提高修改元數(shù)據(jù)和更新數(shù)據(jù)的速度,本發(fā)明中提出了一種新的混合存儲結構,將非易失的小粒度尋址的介質與非易失的大粒度尋址的介質作為混合存儲,并針對這種混合存儲結構提出了新的文件系統(tǒng)。
[0032]本發(fā)明提供的一種基于上述混合存儲的新的文件系統(tǒng)。在這種新的混合存儲中,將元數(shù)據(jù)放在非易失的小粒度尋址的介質上,而將數(shù)據(jù)放在非易失的大粒度尋址的介質上。兩種介質統(tǒng)一順序編址,文件系統(tǒng)在不同的情況下對不同的地址空間有不同的讀寫接□。
[0033]文件系統(tǒng)可以調用四類讀寫,分別是小粒度讀、小粒度寫、大粒度讀、大粒度寫,文件系統(tǒng)在不同的情況對不同的地址范圍會調用不同粒度的讀寫。小粒度一般與一個元數(shù)據(jù)的結構相差不大,比如可以是128Byte,遠小于頁或塊的大小,大粒度一般為頁或塊的大小。
[0034]該混合文件系統(tǒng)的的實施方式如下:
[0035]構建過程中,對兩種介質統(tǒng)一順序編址,非易失的小粒度尋址的介質在低地址段,非易失的大粒度尋址的介質在高地址段;
[0036]布局中,非易失的小粒度尋址的介質的地址空間存放文件系統(tǒng)的元數(shù)據(jù),非易失的大粒度尋址的介質的地址空間存放文件系統(tǒng)的數(shù)據(jù);
[0037]文件系統(tǒng)的元數(shù)據(jù)在這里指的是管理空間的數(shù)據(jù)結構和文件系統(tǒng)中文件的元數(shù)據(jù)以及目錄樹結構,包括管理整個文件系統(tǒng)的數(shù)據(jù)結構、管理空間分配的數(shù)據(jù)結構、文件的屬性和指針、目錄的屬性及內容等;文件系統(tǒng)的數(shù)據(jù)指的是文件的數(shù)據(jù);以EXT2為例,超級塊、塊組描述符、inode位圖、數(shù)據(jù)塊位圖、inode表、目錄的內容都屬于文件系統(tǒng)的元數(shù)據(jù),而文件系統(tǒng)的數(shù)據(jù)則是存放在數(shù)據(jù)塊區(qū)的文件的內容;[0038]初始化階段需要緩存部分的元數(shù)據(jù),如超級塊,以及運行期間緩存的元數(shù)據(jù)需要替換時,采用大粒度的讀;在文件系統(tǒng)運行中,對于文件或目錄的查找,當需要訪問的元數(shù)據(jù)量在字節(jié)數(shù)量級時,采用小粒度讀;在文件系統(tǒng)運行中,訪問文件或目錄的內容,均采用大粒度的讀;
[0039]在文件系統(tǒng)運行中,對于文件或目錄的刪除、創(chuàng)建、修改、重命名等需要更新元數(shù)據(jù)和數(shù)據(jù)時,對非易失的小粒度尋址的介質上的元數(shù)據(jù)采用小粒度的寫回,對非易失的大粒度尋址的介質上的數(shù)據(jù)采用大粒度的寫回。
[0040]下面以一具體示例對本發(fā)明進行詳細說明:
[0041]I)、將兩種介質統(tǒng)一編址,設這兩種介質的編號分別為A、B,其中A為小粒度尋址的非易失性介質,B為大粒度尋址的非易失性介質,兩種介質順序編址,設地址為a?z,其中a?d為介質A的地址,e?z為介質B的地址,文件系統(tǒng)會記錄這兩類物理地址的分界。圖2是一個典型的混合存儲的例子,其中非易失性小粒度尋址的介質是PCM,非易失大粒度尋址的介質是固態(tài)盤,假設PCM可以提供的大小為4K,固態(tài)盤可以提供的大小為4M,地址分配如圖2 ;
[0042]2)、文件系統(tǒng)布局中,非易失小粒度尋址的介質存儲文件系統(tǒng)的元數(shù)據(jù),非易失大粒度尋址的介質存儲文件的數(shù)據(jù)。文件系統(tǒng)記錄兩種介質的分界,界限兩邊分別存放文件系統(tǒng)的元數(shù)據(jù)和文件內容。在I)中,地址a?d存儲文件系統(tǒng)的元數(shù)據(jù),地址e?z存儲文件的真正內容。以EXT2為例,假設只有兩個組,物理布局見圖3。在非易失小粒度讀寫的介質上存放EXT2文件系統(tǒng)的元數(shù)據(jù),包括塊組O和塊組I的元數(shù)據(jù),每個塊組的元數(shù)據(jù)包括超級塊、塊組描述符、數(shù)據(jù)塊位圖、inode位圖、inode表以及存儲目錄內容的數(shù)據(jù)塊;在非易失大粒度尋址的介質上存放文件系統(tǒng)的數(shù)據(jù),即存放文件的內容。需要說明一點,本發(fā)明提供的方案并不局限于EXT2以及系列的文件系統(tǒng),采用這種方案需要對現(xiàn)有的文件系統(tǒng)添加部分的數(shù)據(jù)結構和相應的讀寫機制;
[0043]3)、文件系統(tǒng)中有兩種粒度的讀,具體大小與介質有關。對于大粒度尋址的介質而言,均采用大粒度的讀;對于小粒度尋址的介質,在初始化階段需要緩存元數(shù)據(jù),以及運行期間緩存的元數(shù)據(jù)需要替換時,采用大粒度的讀,在查找過程中,訪問目錄的數(shù)據(jù)時采用大粒度的讀;在文件系統(tǒng)運行中,當需要訪問的元數(shù)據(jù)量在字節(jié)數(shù)量級時,采用小粒度讀,如圖4。比如在圖2中,如果采用圖3的布局,固態(tài)盤中緩存了文件的內容,在訪問文件的內容時,均采用大粒度的讀,比如按頁讀取。對于PCM中緩存的元數(shù)據(jù),在初始化時需要導入超級塊、部分組描述符和部分位圖的信息,此時采用的是大粒度讀,在運行過程中,如需替換這些數(shù)據(jù),比如查找時,所在的塊組描述符不在內存中,會調入該塊組描述符替換掉淘汰的塊組描述符的信息,此時的讀取也是采用的大粒度讀,在查找過程中會遍歷目錄的內容,也是采用大粒度的讀;在運行過程中,如果只需要讀取部分的內容,比如查找過程中,只需要知道特定的inode信息,此時可以采用小粒度的讀;
[0044]4)、文件系統(tǒng)中有兩種粒度的寫,具體的大小與介質有關。對于大粒度尋址的介質而言,均采用大粒度的寫;對于小粒度尋址的介質,在文件系統(tǒng)運行中,對于文件或目錄的刪除、創(chuàng)建、修改、重命名等需要更新元數(shù)據(jù)時,對元數(shù)據(jù)采用小粒度的寫回,如圖5。比如在圖2中,如果采用圖3的布局,固態(tài)盤中緩存了文件的內容,在更新文件的內容時,均采用大粒度的寫,比如按頁讀取。對于PCM中緩存的元數(shù)據(jù),在文件系統(tǒng)運行過程中,如需修改更新這些數(shù)據(jù),比如創(chuàng)建一個文件時,涉及元數(shù)據(jù)的操作包括分配inode號、分配數(shù)據(jù)塊、寫inode、添加目錄項,這些都需要在PCM上完成,此時采用小粒寫,比如可以采用按字節(jié)寫,將inode位圖和數(shù)據(jù)塊位圖中更新的bit位所在字節(jié)、更新的inode內容以及添加的目錄表項寫回PCM;
[0045]本領域的技術人員容易理解,以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所作的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。
【權利要求】
1.一種基于不同存儲介質的混合文件系統(tǒng),其特征在于,所述存儲介質包括非易失的小粒度尋址的介質和非易失的大粒度尋址的介質,兩種介質統(tǒng)一順序編址;其中,所述非易失的小粒度尋址的介質用于存放文件系統(tǒng)的元數(shù)據(jù),所述非易失的大粒度尋址的介質用于存放文件系統(tǒng)的數(shù)據(jù);所述文件系統(tǒng)在不同的情況對不同的地址范圍調用不同粒度的讀或與。
2.如權利要求1所述的系統(tǒng),其特征在于,所述兩種介質統(tǒng)一順序編址具體為:所述非易失的小粒度尋址的介質編址在低地址段,所述非易失的大粒度尋址的介質編址在高地址段。
3.如權利要求1所述的系統(tǒng),其特征在于,所述文件系統(tǒng)的元數(shù)據(jù)是指管理存儲空間的數(shù)據(jù)結構,和文件系統(tǒng)中文件的元數(shù)據(jù),以及目錄樹結構,具體包括管理整個文件系統(tǒng)的數(shù)據(jù)結構、管理空間分配的數(shù)據(jù)結構、文件的屬性和指針、目錄的屬性及內容。
4.如權利要求1所述的系統(tǒng),其特征在于,所述文件系統(tǒng)的數(shù)據(jù)是指存放在數(shù)據(jù)塊區(qū)的文件的內容。
5.如權利要求1至4任一項所述的系統(tǒng),其特征在于,所述文件系統(tǒng)在不同的情況對不同的地址范圍調用不同粒度的讀或寫包括: 在文件系統(tǒng)初始化階段需要緩存部分元數(shù)據(jù)時,以及運行期間緩存的元數(shù)據(jù)需要替換時,采用大粒度的讀;在文件系統(tǒng)運行中,訪問文件或目錄的內容,采用大粒度的讀。
6.如權利要求1至4任一項所述的系統(tǒng),其特征在于,所述文件系統(tǒng)在不同的情況對不同的地址范圍調用不同粒度的讀或寫包括: 在文件系統(tǒng)運行中,對于文件或目錄的查找,當需要訪問的元數(shù)據(jù)量在字節(jié)數(shù)量級時,米用小粒度讀。
7.如權利要求1至4任一項所述的系統(tǒng),其特征在于,所述文件系統(tǒng)在不同的情況對不同的地址范圍調用不同粒度的讀或寫包括: 在文件系統(tǒng)運行中,當需要更新元數(shù)據(jù)時,對非易失的小粒度尋址的介質上的元數(shù)據(jù)采用小粒度的寫回,其中需要更新元數(shù)據(jù)的情況包括對文件或目錄的刪除,或者創(chuàng)建,或者修改,或者重命名。
8.如權利要求1至4任一項所述的系統(tǒng),其特征在于,所述文件系統(tǒng)在不同的情況對不同的地址范圍調用不同粒度的讀或寫包括: 在文件系統(tǒng)運行中,當需要批量更新數(shù)據(jù)時,對非易失的大粒度尋址的介質上的數(shù)據(jù)采用大粒度的寫回,其中需要更新數(shù)據(jù)的情況包括對文件的刪除,或者創(chuàng)建,或者修改。
9.如權利要求1所述的系統(tǒng),其特征在于,所述非易失的小粒度尋址的介質為相變存儲器,所述非易失的大粒度尋址的介質為固態(tài)盤。
10.如權利要求1所述的系統(tǒng),其特征在于,若所述文件系統(tǒng)為EXT2格式,所述文件系統(tǒng)的元數(shù)據(jù)包括超級塊、塊組描述符、inode位圖、數(shù)據(jù)塊位圖、inode表以及目錄的內容。
【文檔編號】G06F17/30GK103838853SQ201410096969
【公開日】2014年6月4日 申請日期:2014年3月17日 優(yōu)先權日:2014年3月17日
【發(fā)明者】曹強, 萬勝剛, 吳思, 錢璐, 謝長生 申請人:華中科技大學