專利名稱:邏輯卷的創(chuàng)建方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種邏輯卷的創(chuàng)建方法及裝置。
背景技術(shù):
目前,邏輯卷的創(chuàng)建通常采用LVM(Logical Volume Manager,邏輯卷管理)軟件實現(xiàn),具體的實現(xiàn)步驟如下根據(jù)物理磁盤分區(qū)生成pv(physical volume,物理卷),pv可以由多個分區(qū)或者磁盤組成,多個pv可以組成vg(volume group,卷組),那么管理員就可以在vg上創(chuàng)建Iv(logical volume,邏輯卷)設(shè)備?,F(xiàn)有的LVM存在的問題是,邏輯卷管理結(jié)構(gòu)復(fù)雜,命令繁多,且查錯不好處理,特別是系統(tǒng)或者文件系統(tǒng)出現(xiàn)問題的時候,LVM恢復(fù)起來比較麻煩。
發(fā)明內(nèi)容
本發(fā)明旨在至少解決上述技術(shù)問題之一。為此,根據(jù)本發(fā)明第一方面的實施例提出一種邏輯卷的創(chuàng)建方法,包括以下步驟 A.判斷當(dāng)前物理磁盤上是否存在一個或多個第一空閑空間,其中所述第一空閑空間大于或等于第一空間,所述第一空間為所要創(chuàng)建的邏輯卷需要的空間;B.如果是,則在所述一個或多個第一空閑空間中的第一最小空閑空間上分配第一數(shù)據(jù)塊,并將所述第一數(shù)據(jù)塊掛載到當(dāng)前物理磁盤中的數(shù)據(jù)塊鏈表上;C.如果否,則將所述當(dāng)前物理磁盤中的第一最大空閑空間分配給第二數(shù)據(jù)塊,并將所述第二數(shù)據(jù)塊掛載到當(dāng)前物理磁盤中的數(shù)據(jù)塊鏈表上,以及計算所述邏輯卷需要的第二空間,并執(zhí)行步驟D ;D.判斷所述當(dāng)前物理磁盤上是否存在一個或多個第二空閑空間,所述第二空閑空間大于或等于所述第二空間;E.如果是,則在所述一個或多個第二空閑空間中的第二最小空閑空間上分配第三數(shù)據(jù)塊,并將所述第三數(shù)據(jù)塊與所述第二數(shù)據(jù)塊鏈接;以及F.如果否,則將所述當(dāng)前物理磁盤中的第二最大空閑空間分配給第四數(shù)據(jù)塊并將所述第四數(shù)據(jù)塊與所述第二數(shù)據(jù)塊鏈接,計算所述邏輯卷需要的第三空間,并返回步驟D。根據(jù)本發(fā)明實施例的邏輯卷的創(chuàng)建方法,在創(chuàng)建邏輯卷時首先搜尋數(shù)據(jù)塊鏈表中是否存在足夠的空閑空間,在不存在足夠的空閑空間時,再針對不同的需求使用最大分配算法,保證創(chuàng)建的數(shù)據(jù)塊的數(shù)量盡量少,數(shù)據(jù)塊的空間盡量大,而且在磁盤經(jīng)過多次創(chuàng)建和刪除后,仍能保證空閑空間個數(shù)不多,且每個空閑空間較大,保證后續(xù)的磁盤分配不因為創(chuàng)建的邏輯卷包含的碎片過多導(dǎo)致磁盤尋道時間過長,從而提高使用效率。根據(jù)本發(fā)明第二方面的實施例提出一種邏輯卷的創(chuàng)建裝置,包括判斷模塊,所述判斷模塊用于判斷當(dāng)前物理磁盤上是否存在一個或多個空閑空間,所述空閑空間大于或等于所需要的空間;分配模塊,所述分配模塊用于當(dāng)所述當(dāng)前磁盤上存在大于或等于所需要的第一空間的一個或多個空閑空間時,在所述一個或多個空閑空間中的最小空閑空間上分配分配數(shù)據(jù)塊,當(dāng)所述當(dāng)前磁盤上不存在大于或等于所需要的第一空間的空閑空間時,將所述當(dāng)前磁盤中的最大空閑空間給分配數(shù)據(jù)塊,并計算所述邏輯卷需要的第二空間;以及掛載模塊,用于將所分配的第一個數(shù)據(jù)塊掛載到所述當(dāng)前物理磁盤中的數(shù)據(jù)塊鏈表上,以及鏈接分配給所述邏輯卷的所有數(shù)據(jù)塊。根據(jù)本發(fā)明實施例的邏輯卷的創(chuàng)建裝置,在創(chuàng)建邏輯卷時首先搜尋數(shù)據(jù)塊鏈表中是否存在足夠的空閑空間,在不存在足夠的空閑空間時,再針對不同的需求使用最大分配算法,保證創(chuàng)建的數(shù)據(jù)塊的數(shù)量盡量少,數(shù)據(jù)塊的空間盡量大,而且在磁盤經(jīng)過多次創(chuàng)建和刪除后,仍能保證空閑空間個數(shù)不多,且每個空閑空間較大,保證后續(xù)的磁盤分配不因為創(chuàng)建的邏輯卷包含的碎片過多導(dǎo)致磁盤尋道時間過長,從而提高使用效率。本發(fā)明附加的方面和優(yōu)點將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實踐了解到。
本發(fā)明上述的和/或附加的方面和優(yōu)點從下面結(jié)合附圖對實施例的描述中將變得明顯和容易理解,其中,圖I是根據(jù)本發(fā)明一個實施例的邏輯卷的創(chuàng)建方法的流程圖;圖2是根據(jù)本發(fā)明一個實施例的數(shù)據(jù)塊的示意圖;圖3是根據(jù)本發(fā)明一個實施例的創(chuàng)建邏輯卷的示意圖;圖4是根據(jù)本發(fā)明另一個實施例的創(chuàng)建邏輯卷的示意圖;圖5是根據(jù)本發(fā)明一個實施例的數(shù)據(jù)塊鏈表和邏輯卷鏈表的示意圖;圖6是根據(jù)本發(fā)明一個實施例的邏輯卷的創(chuàng)建裝置的結(jié)構(gòu)框圖;以及圖7是根據(jù)本發(fā)明另一個實施例的邏輯卷的創(chuàng)建裝置的結(jié)構(gòu)框圖。
具體實施例方式下面詳細(xì)描述本發(fā)明的實施例,所述實施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實施例是示例性的,僅用于解釋本發(fā)明,而不能理解為對本發(fā)明的限制。相反, 本發(fā)明的實施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。流程圖中或在此以其他方式描述的任何過程或方法描述可以被理解為,表示包括一個或更多個用于實現(xiàn)特定邏輯功能或過程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本發(fā)明的優(yōu)選實施方式的范圍包括另外的實現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時的方式或按相反的順序,來執(zhí)行功能,這應(yīng)被本發(fā)明的實施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。此外,術(shù)語“第一”、“第二”僅用于描述目的,而不能理解為指示或暗示相對重要性。 下面參考附圖描述根據(jù)本發(fā)明實施例的邏輯卷的創(chuàng)建方法及裝置。一種邏輯卷的創(chuàng)建方法,包括以下步驟A.判斷當(dāng)前物理磁盤上是否存在一個或多個第一空閑空間,其中所述第一空閑空間大于或等于第一空間,所述第一空間為所要創(chuàng)建的邏輯卷需要的空間如果是,則在所述一個或多個第一空閑空間中的第一最小空閑空間上分配第一數(shù)據(jù)塊,并將所述第一數(shù)據(jù)塊掛載到當(dāng)前物理磁盤中的數(shù)據(jù)塊鏈表上;C.如果否,則將所述當(dāng)前物理磁盤中的第一最大空閑空間分配給第二數(shù)據(jù)塊,并將所述第二數(shù)據(jù)塊掛載到當(dāng)前物理磁盤中的數(shù)據(jù)塊鏈表上,以及計算所述邏輯卷需要的第二空間, 并執(zhí)行步驟D ;D.判斷所述當(dāng)前物理磁盤上是否存在一個或多個第二空閑空間,所述第二空閑空間大于或等于所述第二空間;E.如果是,則在所述一個或多個第二空閑空間中的第二最小空閑空間上分配第三數(shù)據(jù)塊,并將所述第三數(shù)據(jù)塊與所述第二數(shù)據(jù)塊鏈接;以及
F.如果否,則將所述當(dāng)前物理磁盤中的第二最大空閑空間分配給第四數(shù)據(jù)塊并將所述第四數(shù)據(jù)塊與所述第二數(shù)據(jù)塊鏈接,計算所述邏輯卷需要的第三空間,并返回步驟D。圖I是根據(jù)本發(fā)明一個實施例的邏輯卷的創(chuàng)建方法的流程圖。如圖I所示,該方法包括下述步驟。步驟S101,判斷當(dāng)前物理磁盤上是否存在一個或多個第一空閑空間,其中第一空閑空間大于或等于第一空間,第一空間為所要創(chuàng)建的邏輯卷需要的空間。在本發(fā)明的一個實施例中,空閑空間包括當(dāng)前物理磁盤上的外碎片(即未被使用的數(shù)據(jù)塊),以及未被分配數(shù)據(jù)塊的空間等。步驟S102,如果是,則在一個或多個第一空閑空間中的第一最小空閑空間上分配第一數(shù)據(jù)塊,并將該第一數(shù)據(jù)塊掛載到當(dāng)前物理磁盤的數(shù)據(jù)塊鏈表上。其中,第一最小空閑空間指的是,當(dāng)前多個空閑空間中最小的空閑空間?!暗谝弧钡拿枋鲋皇菫榱伺c下文中將會出現(xiàn)的其他最小空閑空間區(qū)分,從而更加清楚的表述,不用于暗示空間大小的排序。具體地,在本發(fā)明的一個實施例中,通過以下的公式,在第一最小空閑空間上分配第一數(shù)據(jù)塊,數(shù)據(jù)塊的結(jié)束位置=向上取整(第一空間/數(shù)據(jù)塊分配的最小單元)*數(shù)據(jù)塊分配的最小單元+數(shù)據(jù)塊的起始位置-I。也就是說,分配的數(shù)據(jù)塊的大小為數(shù)據(jù)塊分配的最小單元的整數(shù)倍。由此,分配的數(shù)據(jù)塊中可能存在未被使用的部分。如圖2所示為本發(fā)明一個實施例的數(shù)據(jù)塊的示意圖, 數(shù)據(jù)塊包括當(dāng)前使用部分a和空閑部分b,當(dāng)前使用部分a+起始位置begin+空閑部分b = 結(jié)束位置tail。在本發(fā)明的另一個實施例中,數(shù)據(jù)塊的結(jié)束位置+1 = k*數(shù)據(jù)塊分配的最小單元, 其中k是小于等于物理磁盤大小/數(shù)據(jù)塊分配的最小單元的自然數(shù)。如圖3所示為本發(fā)明一個實施例的邏輯卷創(chuàng)建的示意圖。在本實施例中,所要創(chuàng)建的邏輯卷Ivl需要的第一空間為100M,當(dāng)前物理磁盤上存在1200M的空閑空間,且數(shù)據(jù)塊分配的最小單元為150M,則在該1200M的空閑空間上分配150M的數(shù)據(jù)塊給邏輯卷作為第一空間,并將該數(shù)據(jù)塊鏈接到物理磁盤的數(shù)據(jù)塊鏈表上。步驟S103,如果否,則將當(dāng)前物理磁盤中的第一最大空閑空間分配給第二數(shù)據(jù)塊, 并將第二數(shù)據(jù)塊掛載到當(dāng)前物理磁盤中的數(shù)據(jù)塊鏈表上,以及計算邏輯卷需要的第二空間。其中,第一最大空閑空間指的是,當(dāng)前物理磁盤中的最大的空閑空間?!暗谝弧钡拿枋鲋皇菫榱伺c下文中將會出現(xiàn)的其他最大空閑空間區(qū)分,從而更加清楚的表述。其中,第二空間=第一空間-第一最大空閑空間。步驟S104,判斷當(dāng)前物理磁盤上是否存在一個或多個第二空閑空間,第二空閑空間大于或等于第二空間。步驟S105,如果是,則在一個或多個第二空閑空間中的第二最小空閑空間上分配第三數(shù)據(jù)塊,并將該第三數(shù)據(jù)塊與上述第二數(shù)據(jù)塊鏈接起來。其中,第二最小空閑空間指的是,當(dāng)前多個空閑空間中的最小空閑空間。“第二”的描述只是為了與上文中出現(xiàn)的第一最小空閑空間區(qū)分,從而更加清楚的表述,“第一”和“第二”的描述不用于表示空間大小的排序。步驟S106,如果否,則將當(dāng)前物理磁盤中的第二最大空閑空間給分配第四數(shù)據(jù)塊并將該第四數(shù)據(jù)塊與上述第二數(shù)據(jù)塊鏈接,計算邏輯卷需要的第三空間,并返回步驟S104, 繼續(xù)執(zhí)行上述的分配過程,直至分配的空間滿足邏輯卷所需的空間,完成邏輯卷的創(chuàng)建。其中,第二最大空閑空間指的是,在進行完步驟S103的分配后當(dāng)前物理磁盤中的最大空閑空間。應(yīng)理解,第二最大空閑空間小于第一最大空閑空間。此外,第一數(shù)據(jù)塊、第二數(shù)據(jù)塊、第三數(shù)據(jù)塊和第四數(shù)據(jù)塊等僅用于描述目的,而不能理解為指示或暗示數(shù)據(jù)塊的大小排序等。如圖4所示為本發(fā)明另一個實施例的邏輯卷創(chuàng)建的示意圖。在本實施例中,所要創(chuàng)建的邏輯卷1ν3需要的第一空間為800M,當(dāng)前物理磁盤上存在150M以及750M的空閑空間,且數(shù)據(jù)塊分配的最小單元為150M,則首先將該750M的空閑空間分配給數(shù)據(jù)塊A給邏輯卷,并將該數(shù)據(jù)塊A鏈接到物理磁盤的數(shù)據(jù)塊鏈表上,然后計算出邏輯卷需要的第二空間為50M,則接著在150M的空閑空間上分配數(shù)據(jù)塊B,并將該數(shù)據(jù)塊B與數(shù)據(jù)塊A鏈接起來, 完成邏輯卷1ν3的創(chuàng)建。在本發(fā)明的一個實施例中,邏輯卷鏈表可與數(shù)據(jù)塊鏈表之間建立映射關(guān)系。如圖 5所示為本發(fā)明一個實施例的邏輯卷鏈表與數(shù)據(jù)塊鏈表的示意圖。其中,I為邏輯卷鏈表,2 為數(shù)據(jù)塊鏈表。邏輯卷LVl對應(yīng)的數(shù)據(jù)塊為LV1:1、LV1:2、LV1:3、LV1:5和LVl:6 ;邏輯卷 LV2對應(yīng)的數(shù)據(jù)塊為LV2: I、LV2:2和LV2:3 ;邏輯卷LV3對應(yīng)的數(shù)據(jù)塊為LV3:1和LV3:2。 由此,如果在當(dāng)前使用過一段時間的物理磁盤上創(chuàng)建邏輯卷,那么在創(chuàng)建之前,需先進行邏輯卷鏈表與數(shù)據(jù)塊鏈表的初始化,建立邏輯卷鏈表與數(shù)據(jù)塊鏈表的映射關(guān)系。根據(jù)本發(fā)明實施例的邏輯卷的創(chuàng)建方法,在創(chuàng)建邏輯卷時首先搜尋數(shù)據(jù)塊鏈表中是否存在足夠的空閑空間,在不存在足夠的空閑空間時,再針對不同的需求使用最大分配算法,保證創(chuàng)建的數(shù)據(jù)塊的數(shù)量盡量少,數(shù)據(jù)塊的空間盡量大,而且在磁盤經(jīng)過多次創(chuàng)建和刪除后,仍能保證空閑空間個數(shù)不多,且每個空閑空間較大,保證后續(xù)的磁盤分配不因為創(chuàng)建的邏輯卷包含的碎片過多導(dǎo)致磁盤尋道時間過長,從而提高使用效率。為實現(xiàn)上述實施例,本發(fā)明還提出一種邏輯卷的創(chuàng)建裝置。圖6是根據(jù)本發(fā)明一個實施例的邏輯卷的創(chuàng)建裝置的結(jié)構(gòu)框圖。如圖6所示,該裝置包括判斷模塊10、分配模塊20和掛載模塊30。判斷模塊10用于判斷當(dāng)前物理磁盤上是否存在一個或多個空閑空間,空閑空間的大小大于或等于所需要的空間的大小。分配模塊20用于在當(dāng)前磁盤上存在滿足需要的一個或多個空閑空間時,在該一個或多個空閑空間中的最小空閑空間上分配分配數(shù)據(jù)塊, 在當(dāng)前磁盤上不存在滿足需要的空閑空間時,將當(dāng)前磁盤中的最大空閑空間分配給數(shù)據(jù)塊,并計算邏輯卷需要的第二空間。其中,第二空間第一空間與最大空閑空間的差。掛載模塊30用于將所分配的第一個數(shù)據(jù)塊掛載到當(dāng)前物理磁盤中的數(shù)據(jù)塊鏈表上,以及鏈接分
7配給邏輯卷的所有數(shù)據(jù)塊。具體地,分配模塊20可根據(jù)以下的公式,在最大空閑空間上分配數(shù)據(jù)塊,數(shù)據(jù)塊的結(jié)束位置=向上取整(第一空間/數(shù)據(jù)塊分配的最小單元)*數(shù)據(jù)塊分配的最小單元+數(shù)據(jù)塊的起始位置-I。也就是說,分配的數(shù)據(jù)塊的大小為數(shù)據(jù)塊分配的最小單元的整數(shù)倍。由此,分配的數(shù)據(jù)塊中可能存在未被使用的部分。在本發(fā)明的一個示例中,數(shù)據(jù)塊包括當(dāng)前使用部分和空閑部分,當(dāng)前使用部分+起始位置+空閑部分=結(jié)束位置。在本發(fā)明的另一個示例中,數(shù)據(jù)塊的結(jié)束位置+1 =k*數(shù)據(jù)塊分配的最小單元,其中k是小于等于物理磁盤大小/數(shù)據(jù)塊分配的最小單元的自然數(shù)。圖7為本發(fā)明另一個實施例的邏輯卷的創(chuàng)建裝置的結(jié)構(gòu)框圖。在圖6所示的實施例的基礎(chǔ)上,該裝置還包括映射模塊40。映射模塊40用于建立邏輯卷鏈表與數(shù)據(jù)塊鏈表之間的映射關(guān)系。也就是說,如果在當(dāng)前使用過一段時間的物理磁盤上創(chuàng)建邏輯卷,那么在創(chuàng)建之前,需先進行邏輯卷鏈表與數(shù)據(jù)塊鏈表的初始化,建立邏輯卷鏈表與數(shù)據(jù)塊鏈表的映身寸關(guān)系。應(yīng)理解,上述各個模塊的工作過程可參照上述方法實施例的描述,此處不再詳細(xì)描述。根據(jù)本發(fā)明實施例的邏輯卷的創(chuàng)建裝置,在創(chuàng)建邏輯卷時首先搜尋數(shù)據(jù)塊鏈表中是否存在足夠的空閑空間,在不存在足夠的空閑空間時,再針對不同的需求使用最大分配算法,保證創(chuàng)建的數(shù)據(jù)塊的數(shù)量盡量少,數(shù)據(jù)塊的空間盡量大,而且在磁盤經(jīng)過多次創(chuàng)建和刪除后,仍能保證空閑空間個數(shù)不多,且每個空閑空間較大,保證后續(xù)的磁盤分配不因為創(chuàng)建的邏輯卷包含的碎片過多導(dǎo)致磁盤尋道時間過長,從而提高使用效率。應(yīng)當(dāng)理解,本發(fā)明的各部分可以用硬件、軟件、固件或它們的組合來實現(xiàn)。在上述實施方式中,多個步驟或方法可以用存儲在存儲器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來實現(xiàn)。例如,如果用硬件來實現(xiàn),和在另一實施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項或他們的組合來實現(xiàn)具有用于對數(shù)據(jù)信號實現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(PGA),現(xiàn)場可編程門陣列(FPGA)等。在本說明書的描述中,參考術(shù)語“一個實施例”、“一些實施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點包含于本發(fā)明的至少一個實施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任何的一個或多個實施例或示例中以合適的方式結(jié)合。盡管已經(jīng)示出和描述了本發(fā)明的實施例,對于本領(lǐng)域的普通技術(shù)人員而言,可以理解在不脫離本發(fā)明的原理和精神的情況下可以對這些實施例進行多種變化、修改、替換和變型,本發(fā)明的范圍由所附權(quán)利要求及其等同限定。
權(quán)利要求
1.一種邏輯卷的創(chuàng)建方法,其特征在于,包括以下步驟A.判斷當(dāng)前物理磁盤上是否存在一個或多個第一空閑空間,其中所述第一空閑空間大于或等于第一空間,所述第一空間為所要創(chuàng)建的邏輯卷需要的空間;B.如果是,則在所述一個或多個第一空閑空間中的第一最小空閑空間上分配第一數(shù)據(jù)塊,并將所述第一數(shù)據(jù)塊掛載到當(dāng)前物理磁盤中的數(shù)據(jù)塊鏈表上;C.如果否,則將所述當(dāng)前物理磁盤中的第一最大空閑空間分配給第二數(shù)據(jù)塊,并將所述第二數(shù)據(jù)塊掛載到當(dāng)前物理磁盤中的數(shù)據(jù)塊鏈表上,以及計算所述邏輯卷需要的第二空間,并執(zhí)行步驟D ;D.判斷所述當(dāng)前物理磁盤上是否存在一個或多個第二空閑空間,其中所述第二空閑空間大于或等于所述第二空間;E.如果是,則在所述一個或多個第二空閑空間中的第二最小空閑空間上分配第三數(shù)據(jù)塊,并將所述第三數(shù)據(jù)塊與所述第二數(shù)據(jù)塊鏈接;以及F.如果否,則將所述當(dāng)前物理磁盤中的第二最大空閑空間分配給第四數(shù)據(jù)塊并將所述第四數(shù)據(jù)塊與所述第二數(shù)據(jù)塊鏈接,計算所述邏輯卷需要的第三空間,并返回步驟D。
2.根據(jù)權(quán)利要求I所述的邏輯卷的創(chuàng)建方法,其特征在于,進一步包括步驟建立邏輯卷鏈表與數(shù)據(jù)塊鏈表之間的映射關(guān)系。
3.根據(jù)權(quán)利要求I或2所述的邏輯卷的創(chuàng)建方法,其特征在于,所述第二空間等于所述第一空間與所述第一最大空閑空間的差。
4.根據(jù)權(quán)利要求I所述的邏輯卷的創(chuàng)建方法,其特征在于,所述步驟C進一步包括根據(jù)以下的公式,在所述第一最小空閑空間上分配第一數(shù)據(jù)塊,數(shù)據(jù)塊的結(jié)束位置=向上取整(第一空間/數(shù)據(jù)塊分配的最小單元)*數(shù)據(jù)塊分配的最小單元+數(shù)據(jù)塊的起始位置-I。
5.根據(jù)權(quán)利要求4所述的邏輯卷的創(chuàng)建方法,其特征在于,所述數(shù)據(jù)塊包括當(dāng)前使用部分以及空閑部分,其中,當(dāng)前使用部分+起始位置+空閑部分=結(jié)束位置。
6.根據(jù)權(quán)利要求4所述的邏輯卷的創(chuàng)建方法,其特征在于,數(shù)據(jù)塊的結(jié)束位置+1 = k*數(shù)據(jù)塊分配的最小單元,其中k是小于等于物理磁盤大小 /數(shù)據(jù)塊分配的最小單元的自然數(shù)。
7.一種邏輯卷的創(chuàng)建裝置,其特征在于,包括判斷模塊,所述判斷模塊用于判斷當(dāng)前物理磁盤上是否存在一個或多個空閑空間,所述空閑空間大于或等于創(chuàng)建邏輯卷所需要的空間;分配模塊,所述分配模塊用于當(dāng)所述當(dāng)前磁盤上存在所述一個或多個空閑空間時,在所述一個或多個空閑空間中的最小空閑空間上分配分配數(shù)據(jù)塊,當(dāng)所述當(dāng)前磁盤上不存在大于或等于所需要的第一空間的空閑空間時,將所述當(dāng)前磁盤中的最大空閑空間分配給數(shù)據(jù)塊,并計算所述邏輯卷需要的第二空間;以及掛載模塊,所述掛載模塊用于將所分配的第一個數(shù)據(jù)塊掛載到所述當(dāng)前物理磁盤中的數(shù)據(jù)塊鏈表上,以及鏈接分配給所述邏輯卷的所有數(shù)據(jù)塊。
8.根據(jù)權(quán)利要求7所述的邏輯卷的創(chuàng)建裝置,其特征在于,進一步包括映射模塊,所述映射模塊用于建立邏輯卷鏈表與數(shù)據(jù)塊鏈表之間的映射關(guān)系。
9.根據(jù)權(quán)利要求7或8所述的邏輯卷的創(chuàng)建裝置,其特征在于,所述第二空間等于所述第一空間與所述最大空閑空間的差。
10.根據(jù)權(quán)利要求7或8所述的邏輯卷的創(chuàng)建裝置,其特征在于,所述分配模塊根據(jù)以下的公式,在所述最大空閑空間上分配數(shù)據(jù)塊,數(shù)據(jù)塊的結(jié)束位置=向上取整(第一空間/數(shù)據(jù)塊分配的最小單元)*數(shù)據(jù)塊分配的最小單元+數(shù)據(jù)塊的起始位置-I。
11.根據(jù)權(quán)利要求10所述的邏輯卷的創(chuàng)建裝置,其特征在于,所述數(shù)據(jù)塊包括當(dāng)前使用部分以及空閑部分,其中,當(dāng)前使用部分+起始位置+空閑部分=結(jié)束位置。
12.根據(jù)權(quán)利要求10所述的邏輯卷的創(chuàng)建裝置,其特征在于,數(shù)據(jù)塊的結(jié)束位置+1 = k*數(shù)據(jù)塊分配的最小單元,其中k是小于等于物理磁盤大小 /數(shù)據(jù)塊分配的最小單元的自然數(shù)。
全文摘要
本發(fā)明提出一種邏輯卷的創(chuàng)建方法及裝置。邏輯卷的創(chuàng)建方法包括以下步驟首先搜尋當(dāng)前物理磁盤上的所有空閑空間,當(dāng)存在大于或等于所要創(chuàng)建的邏輯卷的空間的一個或多個空閑空間時,在該一個或多個空閑空間中的最小空閑空間上分配數(shù)據(jù)塊,當(dāng)不存在時,采用最大匹配算法在多個空閑空間上分配數(shù)據(jù)塊。通過本發(fā)明,能夠保證創(chuàng)建的數(shù)據(jù)塊的數(shù)量盡量少,數(shù)據(jù)塊的空間盡量大,而且在磁盤經(jīng)過多次創(chuàng)建和刪除后,仍能保證空閑空間個數(shù)不多,且每個空閑空間較大,保證后續(xù)的磁盤分配不因為創(chuàng)建的邏輯卷包含的碎片過多導(dǎo)致磁盤尋道時間過長,從而提高使用效率。
文檔編號G06F3/06GK102609220SQ201210019320
公開日2012年7月25日 申請日期2012年1月19日 優(yōu)先權(quán)日2012年1月19日
發(fā)明者董洪清 申請人:北京天地云箱科技有限公司