實現(xiàn)存儲系統(tǒng)自動精簡的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)應(yīng)用技術(shù)領(lǐng)域,特別是涉及一種實現(xiàn)存儲系統(tǒng)自動精簡的方法。
【背景技術(shù)】
[0002]自動精簡配置是一種容量分配技術(shù),它不是一次性將存儲空間分配給應(yīng)用,而是根據(jù)應(yīng)用需求的增長,逐漸增加分配給應(yīng)用的存儲空間。傳統(tǒng)的自動精簡配置技術(shù)給操作系統(tǒng)提供大容量的虛擬驅(qū)動器。虛擬驅(qū)動器的實際容量并不大,但是虛擬驅(qū)動器向操作系統(tǒng)報其擁有告一個更大的容量。操作系統(tǒng)在該虛擬驅(qū)動器上可以格式化一個更大容量的文件系統(tǒng)。在自動精簡配置存儲系統(tǒng)中,只有當(dāng)使用容量的增加時才需要增加物理資源。這種方式延遲了物理資源部署時間,提高了設(shè)備利用率。
[0003]自動精簡配置技術(shù)的核心是“欺騙”操作系統(tǒng)。操作系統(tǒng)無法區(qū)分虛擬磁盤容量或?qū)嶋H磁盤容量,因此需要虛擬驅(qū)動器監(jiān)控操作系統(tǒng)的1(Input/Output,輸入輸出)請求,并在實際使用資源接近閾值的時候擴(kuò)展存儲空間。為了實現(xiàn)該目的,現(xiàn)有的自動精簡配置技術(shù)需要管理存儲資源池,監(jiān)控系統(tǒng)1請求,并在空間不足時分配對應(yīng)的存儲資源。在有些系統(tǒng)中,還實現(xiàn)了資源的回收。現(xiàn)有的專利包括自動精簡配置資源分配和管理方面的,如“一種存儲系統(tǒng)自動精簡配置存儲池及組織管理的方法”和“一種實現(xiàn)存儲系統(tǒng)自動精簡配置異步全額分配的方法”。以及系統(tǒng)實現(xiàn)方式方面的,如“實現(xiàn)存儲系統(tǒng)自動精簡配置動態(tài)擴(kuò)容的系統(tǒng)及方法”。
[0004]文獻(xiàn)I “申請公開號是CN103020201A的中國發(fā)明專利”公開了一種存儲系統(tǒng)自動精簡配置存儲池及組織管理的方法。該方法用于存儲系統(tǒng)中,提供一種對自動精簡配置存儲池空間進(jìn)行管理和操作的系統(tǒng)架構(gòu),將存儲池元數(shù)據(jù)信息單獨存儲在元數(shù)據(jù)設(shè)備中,讓存儲池獨占存儲池設(shè)備,將存儲池設(shè)備成為數(shù)據(jù)設(shè)備,重新定義存儲池元數(shù)據(jù)信息為包含元數(shù)據(jù)設(shè)備信息和數(shù)據(jù)設(shè)備信息的存儲池元數(shù)據(jù)。專利所述方法存在以下3個主要問題:第一,存儲池獨占存儲設(shè)備,要求存儲池空間固定,這就需要一次性將物理設(shè)備全部添加至存儲池中,從而造成物理資源的空閑與浪費,不能動態(tài)增減存儲池,這是該專利的主要技術(shù)問題;第二,存儲池元數(shù)據(jù)所在元數(shù)據(jù)設(shè)備存在單點故障,可用性不高;第三,由于是對存儲池進(jìn)行自動精簡,當(dāng)需要擴(kuò)容時需要專業(yè)人員進(jìn)行操作,且擴(kuò)容后得到的是塊設(shè)備,仍然需要進(jìn)一步格式化為特定文件系統(tǒng),過程繁冗。
[0005]文獻(xiàn)2 “申請公開號是CN103744622A的中國發(fā)明專利”公開了一種實現(xiàn)存儲系統(tǒng)自動精簡配置異步全額分配的方法。該方法包括存儲池和全額分配卷,存儲池空間占用實際物理空間,全額分配卷是通過虛擬映射提供給操作系統(tǒng)的虛擬驅(qū)動器,并占用實際物理空間,由存儲池向全額分配卷提供存儲空間,用戶不用等全額分配卷的實際存儲空間完全分配完成,就可以開始使用該全額分配卷,并根據(jù)用戶指定的邏輯卷容量大小,一次性將存儲池空間對應(yīng)的空間容量異步的分配給全額分配卷。專利所述方法存在以下3個主要問題:第一,由于動態(tài)分配建立在全額分配卷之上,要求存儲池空間固定,這就需要一次性將物理設(shè)備全部添加至存儲池中,從而造成物理資源的空閑與浪費,不能動態(tài)增減存儲池;第二,通過在存儲池和用戶邏輯卷之間增加全額分配卷以實現(xiàn)自動精簡,適應(yīng)性不強(qiáng);第三,資源池與全額分配卷的設(shè)定將使用者與管理者隔離,當(dāng)用戶空間不足時,只能從全額分配卷中擴(kuò)容,而資源池空間大小擴(kuò)容只能由管理者完成,這使得自動精簡過程更加復(fù)雜。
[0006]文獻(xiàn)3 “授權(quán)公告號是CN102855093B的中國發(fā)明專利”公開了一種實現(xiàn)存儲系統(tǒng)自動精簡配置動態(tài)擴(kuò)容的系統(tǒng)及方法,該系統(tǒng)包括:擴(kuò)容信息獲取模塊,用于獲得用戶傳入的擴(kuò)容命令和擴(kuò)容大小,并傳給擴(kuò)容信息解析模塊;擴(kuò)容信息解析模塊,用于將獲得的擴(kuò)容命令細(xì)分為擴(kuò)容掛起命令和擴(kuò)容恢復(fù)命令,并傳給1重定向?qū)訑U(kuò)容模塊;1重定向?qū)訑U(kuò)容模塊,用于向自動精簡配置擴(kuò)容模塊發(fā)送擴(kuò)容掛起命令和擴(kuò)容大小及向存儲池恢復(fù)模塊發(fā)送擴(kuò)容恢復(fù)命令;自動精簡配置擴(kuò)容模塊,用于根據(jù)接收的擴(kuò)容大小對存儲系統(tǒng)的存儲池進(jìn)行元數(shù)據(jù)擴(kuò)容操作,并向存儲池恢復(fù)模塊發(fā)送元數(shù)據(jù);存儲池恢復(fù)模塊,用于根據(jù)接收的元數(shù)據(jù)和擴(kuò)容恢復(fù)命令重新激活存儲池。專利所述系統(tǒng)及方法存在以下2個主要問題:第一,存儲空間一旦設(shè)定變無法更改,這導(dǎo)致存儲空間無法動態(tài)擴(kuò)容,同時也造成了存儲空間中未使用物理設(shè)備資源的浪費,這是該方法的主要問題;第二,在對用戶使用的邏輯卷進(jìn)行擴(kuò)容時,需要先擴(kuò)容掛起,再擴(kuò)容恢復(fù),這導(dǎo)致存儲服務(wù)在擴(kuò)容時不可用。
[0007]現(xiàn)有的自動精簡配置技術(shù)主要實現(xiàn)在塊設(shè)備層,通過虛擬更大的磁盤空間“欺騙”操作系統(tǒng),并隨著實際使用空間增長逐步增加存儲資源?,F(xiàn)有的自動精簡配置系統(tǒng)主要分為存儲資源池和多個精簡卷。為了記錄資源的使用情況,自動精簡配置管理系統(tǒng)需要保存額外的元數(shù)據(jù),確保資源按需分配,并且保證多個精簡卷間無資源使用沖突。
[0008]現(xiàn)有的方式主要實現(xiàn)在塊設(shè)備層,主要存在以下缺點:1.資源的使用者(操作系統(tǒng))和管理者(自動精簡配置系統(tǒng))分離,需要額外的數(shù)據(jù)和機(jī)制保證資源可用。2.操作系統(tǒng)不知道塊設(shè)備層可用空間相關(guān)信息,如使用了尚未分配或映射的存儲空間,將造成嚴(yán)重的錯誤。3.自動精簡配置技術(shù)用較小的存儲空間虛擬更大的存儲空間,操作系統(tǒng)使用時對邏輯地址訪問和使用并非完全連續(xù),所以需要將虛擬驅(qū)動器的邏輯地址和實際物理地址進(jìn)行映射。4.現(xiàn)有自動精簡配置技術(shù)容易實現(xiàn)空間的擴(kuò)展,但是難以實現(xiàn)無用空間的識別和回收。
【發(fā)明內(nèi)容】
[0009]為了克服現(xiàn)有存儲系統(tǒng)自動精簡方法實用性差的不足,本發(fā)明提供一種實現(xiàn)存儲系統(tǒng)自動精簡的方法。該方法統(tǒng)一資源的使用者和管理者,通過在文件系統(tǒng)元數(shù)據(jù)中增加控制信息,確保數(shù)據(jù)存儲的按需分配,并且保證數(shù)據(jù)不會存放到未分配空間,結(jié)合云存儲系統(tǒng)提供的API,實現(xiàn)在線存儲空間的擴(kuò)容和使用,達(dá)到自動精簡配置的目的。重新定義文件系統(tǒng)元數(shù)據(jù)信息,使其包含設(shè)備信息和地址映射信息;在文件系統(tǒng)中將邏輯空間分為已分配空間和未分配空間,并進(jìn)行地址映射管理;通過監(jiān)測讀寫過程,確保讀寫操作不會訪問到未分配空間。本發(fā)明能夠方便地管理存儲空間,實現(xiàn)存儲空間的動態(tài)伸縮,實用性強(qiáng)。
[0010]本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:一種實現(xiàn)存儲系統(tǒng)自動精簡的方法,其特點是采用以下步驟:
[0011]文件系統(tǒng)元數(shù)據(jù)管理模塊用于定義元數(shù)據(jù)的布局及格式。通過所述元數(shù)據(jù)管理多個塊存儲設(shè)備,并將多個塊存儲設(shè)備組織為統(tǒng)一的文件系統(tǒng)向外提供服務(wù)。操作系統(tǒng)及應(yīng)用程序調(diào)用統(tǒng)一的文件系統(tǒng),統(tǒng)一的文件系統(tǒng)提供1讀寫方法,并在其中實現(xiàn)1讀寫監(jiān)測模塊。1讀寫監(jiān)測模塊通過監(jiān)測1寫請求,給1寫操作分配可用的block空間。在此監(jiān)測過程中判斷是否有可用的block空間,本次分配的block空間是否已達(dá)到了預(yù)警的要求。存儲空間監(jiān)測模塊和1讀寫監(jiān)測模塊共同處理block空間不足的情況。在使用空間達(dá)到全部可使用空間預(yù)先設(shè)定的閾值后,1監(jiān)測模塊向存儲空間監(jiān)測模塊發(fā)送消息,存儲空間監(jiān)測模塊根據(jù)預(yù)定的策略,向用戶發(fā)送警報信息或者通過云存儲或者SAN存儲區(qū)域網(wǎng)絡(luò)提供的接口自動申請塊存儲資源,并利用存儲空間伸縮調(diào)整模塊自動對統(tǒng)一的文件系統(tǒng)進(jìn)行擴(kuò)容。統(tǒng)一的文件系統(tǒng)伸縮調(diào)整模塊通過修改文件系統(tǒng)的元數(shù)據(jù),達(dá)到文件系統(tǒng)擴(kuò)容的功能,在統(tǒng)一的文件系統(tǒng)伸縮調(diào)整虛擬空間的大小。
[0012]所述文件系統(tǒng)由多個不同的Block Group組成,第一個Block group中保存超級塊信息,其中保存Block Group數(shù)量和位置信息。超級塊也在若干其他block group中進(jìn)行備份。每個 BlockGroup 包括 Group Descriptors,數(shù)據(jù)塊 bitmap, inode bitmap,以及存放具體數(shù)據(jù)的inode表和data表。其中Group Descriptors包括組信息組類型、設(shè)備信息、下一個組的位置、預(yù)警flag及其他常規(guī)信息。
[0013]Group type 分為 normal 和 dummy 兩種。Dummy block group 僅記錄虛擬空間的大小,其中空間大小使用Group info中的塊大小和數(shù)量確定,但是其中并不保存inode和data的各種信息。根據(jù)預(yù)定的預(yù)警閾值,當(dāng)使用到某些塊時說明已用空間與可用空間比例達(dá)到所述的預(yù)警閾值,需要通知管理員處理或自動申請存儲資源并添加。
[0014]根據(jù)每個塊的空間大小,每個block group都保存了本block group的塊大小和數(shù)量,并保存了邏輯上相鄰的下一個block group的位置。其中最后一個block group保存虛擬空間的信息,其中僅有塊大小和塊數(shù)量有效,但是并無實際的存儲空間。該blockgroup 的 next block group 為空。
[0015]多個磁盤上部署該文件系統(tǒng)與單個磁盤類似,文件系統(tǒng)由多個block group組織而成。最后一個block group的next block group為空。前面的磁