本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,特別涉及一種虛擬磁盤(pán)擴(kuò)容的方法、裝置和系統(tǒng)。
背景技術(shù):
虛擬磁盤(pán)是直接或間接從一個(gè)或多個(gè)底層物理存儲(chǔ)裝置的內(nèi)存中形成的存儲(chǔ)對(duì)象。其中有一種類型的虛擬磁盤(pán)是動(dòng)態(tài)虛擬磁盤(pán)。動(dòng)態(tài)虛擬磁盤(pán)可以在容量上從相對(duì)較小的初始容量擴(kuò)容到某種最大容量。
現(xiàn)有技術(shù)中虛擬磁盤(pán)的擴(kuò)容采用滯后擴(kuò)容的技術(shù),只有當(dāng)虛擬磁盤(pán)要寫(xiě)入的文件大小超過(guò)剩余可用容量時(shí)才會(huì)擴(kuò)容,使虛擬磁盤(pán)從相對(duì)較小的初始容量擴(kuò)容到相對(duì)較大容量,以致最大容量。
由于現(xiàn)有技術(shù)中虛擬磁盤(pán)的擴(kuò)容采用滯后擴(kuò)容的技術(shù),虛擬磁盤(pán)不能提前準(zhǔn)備可用容量,以提供寫(xiě)入文件使用,使得虛擬磁盤(pán)的寫(xiě)入效率較低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種虛擬磁盤(pán)擴(kuò)容的方法、裝置和系統(tǒng),能夠有效地提高虛擬磁盤(pán)的寫(xiě)入效率。
第一方面,本發(fā)明實(shí)施例提供了一種虛擬磁盤(pán)擴(kuò)容的方法,該方法包括:檢測(cè)虛擬磁盤(pán)的當(dāng)前可用容量和寫(xiě)入速度;
根據(jù)所述當(dāng)前可用容量和所述寫(xiě)入速度,判斷是否需要擴(kuò)大所述當(dāng)前可用容量;
當(dāng)需要擴(kuò)大所述當(dāng)前可用容量時(shí),對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容。
優(yōu)選地,在所述判斷是否需要對(duì)所述虛擬磁盤(pán)的當(dāng)前可用容量進(jìn)行擴(kuò)容之前,進(jìn)一步包括:
預(yù)先設(shè)定預(yù)留空間寫(xiě)入時(shí)間;
根據(jù)所述預(yù)留空間寫(xiě)入時(shí)間,通過(guò)第一公式計(jì)算所述虛擬磁盤(pán)的預(yù)留可用容量;
所述第一公式包括:
M=vt
其中,M用于表征所述虛擬磁盤(pán)的預(yù)留可用容量;v用于表征所述虛擬磁盤(pán)的寫(xiě)入速度;t用于表征所述預(yù)留空間寫(xiě)入時(shí)間;
所述判斷是否需要對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容,包括:
判斷所述虛擬磁盤(pán)的預(yù)留可用容量減去所述虛擬磁盤(pán)的當(dāng)前可用容量的差值是否不小于零,若是,則不需要擴(kuò)大所述當(dāng)前可用容量;否則,需要擴(kuò)大所述當(dāng)前可用容量。
優(yōu)選地,該虛擬磁盤(pán)擴(kuò)容的〃方法進(jìn)一步包括:
預(yù)先設(shè)定所述虛擬磁盤(pán)的最大容量;
在所述對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容之前,進(jìn)一步包括:
檢測(cè)所述虛擬磁盤(pán)的當(dāng)前總?cè)萘浚?/p>
根據(jù)所述虛擬磁盤(pán)的最大容量,通過(guò)第二公式計(jì)算所述虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量;
所述第二公式包括:
N1=N-N2
其中,N用于表征所述虛擬磁盤(pán)的最大容量;N1用于表征所述虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量;N2用于表征所述虛擬磁盤(pán)的當(dāng)前總?cè)萘浚?/p>
判斷所述虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量減去所述虛擬磁盤(pán)的預(yù)留可用容量的差值是否不小于零,若是,則發(fā)送第一擴(kuò)容指令;否則,生成第一錯(cuò)誤信息;
所述對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容,包括:
當(dāng)接收到所述第一擴(kuò)容指令時(shí),對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容。
優(yōu)選地,在所述對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容之前,進(jìn)一步包括:
檢測(cè)所述虛擬磁盤(pán)所在底層物理存儲(chǔ)裝置的最大容量和所述底層物理存儲(chǔ)裝置的當(dāng)前已用容量;
通過(guò)第三公式計(jì)算所述底層物理存儲(chǔ)裝置的當(dāng)前剩余容量;
所述第三公式包括:
D1=D-D2
其中,D用于表征所述底層物理存儲(chǔ)裝置的最大容量;D1用于表征所述底層物理存儲(chǔ)裝置的當(dāng)前剩余容量;D2用于表征所述底層物理存儲(chǔ)裝置的當(dāng)前已用容量;
判斷所述底層物理存儲(chǔ)裝置的當(dāng)前剩余容量與所述虛擬磁盤(pán)的預(yù)留可用容量之差是否不小于零,若是,則發(fā)送第二擴(kuò)容指令;否則,生成第二錯(cuò)誤信息;
所述對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容,包括:
當(dāng)接收到所述第二擴(kuò)容指令時(shí),對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容。
優(yōu)選地,所述對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容,包括:
對(duì)所述虛擬磁盤(pán)進(jìn)行大小為所述虛擬磁盤(pán)的預(yù)留可用容量減去所述虛擬磁盤(pán)的當(dāng)前可用容量的差值的擴(kuò)容。
第二方面,本發(fā)明實(shí)施例提供了一種虛擬磁盤(pán)擴(kuò)容的裝置,該裝置包括:檢測(cè)單元、判斷單元和擴(kuò)容單元,其中,
所述檢測(cè)單元,用于檢測(cè)虛擬磁盤(pán)的當(dāng)前可用容量和寫(xiě)入速度;
所述判斷單元,用于根據(jù)所述當(dāng)前可用容量和所述寫(xiě)入速度,判斷是否需要擴(kuò)大所述當(dāng)前可用容量;
所述擴(kuò)容單元,用于當(dāng)需要擴(kuò)大所述當(dāng)前可用容量時(shí),對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容。
優(yōu)選地,該虛擬磁盤(pán)擴(kuò)容的裝置進(jìn)一步包括:第一計(jì)算單元,其中,
所述第一計(jì)算單元,用于根據(jù)所述預(yù)留空間寫(xiě)入時(shí)間,通過(guò)第一公式計(jì)算所述虛擬磁盤(pán)的預(yù)留可用容量;
所述第一公式包括:
M=vt
其中,M用于表征所述虛擬磁盤(pán)的預(yù)留可用容量;v用于表征所述虛擬磁盤(pán)的寫(xiě)入速度;t用于表征所述預(yù)留空間寫(xiě)入時(shí)間;
所述判斷單元,用于判斷所述虛擬磁盤(pán)的預(yù)留可用容量減去所述虛擬磁盤(pán)的當(dāng)前可用容量的差值是否不小于零,若是,則不需要擴(kuò)大所述當(dāng)前可用容量;否則,需要擴(kuò)大所述當(dāng)前可用容量。
優(yōu)選地,該虛擬磁盤(pán)擴(kuò)容的裝置進(jìn)一步包括:第二計(jì)算單元和第一觸發(fā)單元,其中,
所述第二計(jì)算單元,用于根據(jù)所述虛擬磁盤(pán)的最大容量,通過(guò)第二公式計(jì)算所述虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量;
所述第二公式包括:
N1=N-N2
其中,N用于表征所述虛擬磁盤(pán)的最大容量;N1用于表征所述虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量;N2用于表征所述虛擬磁盤(pán)的當(dāng)前總?cè)萘浚?/p>
所述檢測(cè)單元,進(jìn)一步用于檢測(cè)所述虛擬磁盤(pán)的當(dāng)前總?cè)萘浚敵鼋o所述第二計(jì)算單元;
所述第一觸發(fā)單元,用于判斷所述虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量減去所述虛擬磁盤(pán)的預(yù)留可用容量的差值是否不小于零,若是,則發(fā)送第一擴(kuò)容指令;否則,生成第一錯(cuò)誤信息;
所述擴(kuò)容單元,用于當(dāng)接收到所述第一擴(kuò)容指令時(shí),對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容。
優(yōu)選地,該虛擬磁盤(pán)擴(kuò)容的裝置進(jìn)一步包括:第三計(jì)算單元和第二觸發(fā)單元,其中,
所述第三計(jì)算單元,用于通過(guò)第三公式計(jì)算所述底層物理存儲(chǔ)裝置的當(dāng)前剩余容量;
所述第三公式包括:
D1=D-D2
其中,D用于表征所述底層物理存儲(chǔ)裝置的最大容量;D1用于表征所述底層物理存儲(chǔ)裝置的當(dāng)前剩余容量;D2用于表征所述底層物理存儲(chǔ)裝置的當(dāng)前已用容量;
所述檢測(cè)單元,進(jìn)一步用于檢測(cè)所述虛擬磁盤(pán)所在底層物理存儲(chǔ)裝置的最大容量和所述底層物理存儲(chǔ)裝置的當(dāng)前已用容量,并輸出給所述第三計(jì)算單元;
所述第二觸發(fā)單元,用于判斷所述底層物理存儲(chǔ)裝置的當(dāng)前剩余容量與所述虛擬磁盤(pán)的預(yù)留可用容量之差是否不小于零,若是,則發(fā)送第二擴(kuò)容指令;否則,生成第二錯(cuò)誤信息;
所述擴(kuò)容單元,用于當(dāng)接收到所述第二擴(kuò)容指令時(shí),對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容。
優(yōu)選地,所述擴(kuò)容單元,用于對(duì)所述虛擬磁盤(pán)進(jìn)行大小為所述虛擬磁盤(pán)的預(yù)留可用容量減去所述虛擬磁盤(pán)的當(dāng)前可用容量的差值的擴(kuò)容。
第三方面,本發(fā)明實(shí)施例提供了一種虛擬磁盤(pán)擴(kuò)容的系統(tǒng),該虛擬磁盤(pán)擴(kuò)容的系統(tǒng)包括:虛擬磁盤(pán)和第二方面提供的任一所述虛擬磁盤(pán)擴(kuò)容的裝置。
本發(fā)明實(shí)施例提供了一種虛擬磁盤(pán)擴(kuò)容的方法、裝置和系統(tǒng),通過(guò)檢測(cè)虛擬磁盤(pán)的當(dāng)前可用容量和寫(xiě)入速度,根據(jù)當(dāng)前可用容量和所述寫(xiě)入速度,判斷是否需要擴(kuò)大當(dāng)前可用容量,當(dāng)需要擴(kuò)大當(dāng)前可用容量時(shí),對(duì)虛擬磁盤(pán)進(jìn)行擴(kuò)容。由于根據(jù)當(dāng)前可用容量和所述寫(xiě)入速度,判斷是否需要擴(kuò)大當(dāng)前可用容量,采用預(yù)留的擴(kuò)容技術(shù),提前準(zhǔn)備虛擬磁盤(pán)的可用容量,而不是在向虛擬磁盤(pán)寫(xiě)入文件時(shí)再進(jìn)行擴(kuò)容,從而能夠有效地提高虛擬磁盤(pán)的寫(xiě)入效率。
附圖說(shuō)明
為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是本發(fā)明一個(gè)實(shí)施例提供的一種虛擬磁盤(pán)擴(kuò)容的方法的流程圖;
圖2是本發(fā)明一個(gè)實(shí)施例提供的另一種虛擬磁盤(pán)擴(kuò)容的方法的流程圖;
圖3是本發(fā)明一個(gè)實(shí)施例提供的一種虛擬磁盤(pán)擴(kuò)容的裝置的結(jié)構(gòu)示意圖;
圖4是本發(fā)明一個(gè)實(shí)施例提供的另一種虛擬磁盤(pán)擴(kuò)容的裝置的結(jié)構(gòu)示意圖;
圖5是本發(fā)明一個(gè)實(shí)施例提供的又一種虛擬磁盤(pán)擴(kuò)容的裝置的結(jié)構(gòu)示意圖;
圖6是本發(fā)明一個(gè)實(shí)施例提供的再一種虛擬磁盤(pán)擴(kuò)容的裝置的結(jié)構(gòu)示意圖;
圖7是本發(fā)明一個(gè)實(shí)施例提供的一種虛擬磁盤(pán)擴(kuò)容的系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施方式
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如圖1所示,本發(fā)明實(shí)施例提供了一種虛擬磁盤(pán)擴(kuò)容的方法,該方法可以包括以下步驟:
步驟101:檢測(cè)虛擬磁盤(pán)的當(dāng)前可用容量和寫(xiě)入速度。
步驟102:根據(jù)所述當(dāng)前可用容量和所述寫(xiě)入速度,判斷是否需要擴(kuò)大所述當(dāng)前可用容量。
步驟103:當(dāng)需要擴(kuò)大所述當(dāng)前可用容量時(shí),對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容。
在上述實(shí)施例中,通過(guò)檢測(cè)虛擬磁盤(pán)的當(dāng)前可用容量和寫(xiě)入速度,根據(jù)當(dāng)前可用容量和所述寫(xiě)入速度,判斷是否需要擴(kuò)大當(dāng)前可用容量,當(dāng)需要擴(kuò)大當(dāng)前可用容量時(shí),對(duì)虛擬磁盤(pán)進(jìn)行擴(kuò)容。由于根據(jù)當(dāng)前可用容量和所述寫(xiě)入速度,判斷是否需要擴(kuò)大當(dāng)前可用容量,采用預(yù)留的擴(kuò)容技術(shù),提前準(zhǔn)備虛擬磁盤(pán)的可用容量,而不是在向虛擬磁盤(pán)寫(xiě)入文件時(shí)再進(jìn)行擴(kuò)容,從而能夠有效地提高虛擬磁盤(pán)的寫(xiě)入效率。
在該實(shí)施例中,虛擬磁盤(pán)的寫(xiě)入速度可以是寫(xiě)入平均速度,也可以是某一時(shí)刻的實(shí)時(shí)寫(xiě)入速度。當(dāng)前可用容量就是還可以寫(xiě)入多少的數(shù)據(jù)。例如:虛擬磁盤(pán)當(dāng)前的總?cè)萘繛?G,已經(jīng)寫(xiě)入數(shù)據(jù)占用的容量為2.6G,則現(xiàn)在虛擬磁盤(pán)的當(dāng)前可用容量為3G-2.6G=0.4G。
為了能夠準(zhǔn)確判斷是否需要擴(kuò)大當(dāng)前可用容量,在本發(fā)明一個(gè)實(shí)施例中,在所述判斷是否需要對(duì)所述虛擬磁盤(pán)的當(dāng)前可用容量進(jìn)行擴(kuò)容之前,進(jìn)一步包括:
預(yù)先設(shè)定預(yù)留空間寫(xiě)入時(shí)間;
根據(jù)所述預(yù)留空間寫(xiě)入時(shí)間,通過(guò)第一公式計(jì)算所述虛擬磁盤(pán)的預(yù)留可用容量;
所述第一公式包括:
M=vt
其中,M用于表征所述虛擬磁盤(pán)的預(yù)留可用容量;v用于表征所述虛擬磁盤(pán)的寫(xiě)入速度;t用于表征所述預(yù)留空間寫(xiě)入時(shí)間;
所述判斷是否需要對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容,包括:
判斷所述虛擬磁盤(pán)的預(yù)留可用容量減去所述虛擬磁盤(pán)的當(dāng)前可用容量的差值是否不小于零,若是,則不需要擴(kuò)大所述當(dāng)前可用容量;否則,需要擴(kuò)大所述當(dāng)前可用容量。
在該實(shí)施例中,預(yù)留空間寫(xiě)入時(shí)間可以根據(jù)實(shí)際情況自行設(shè)置。例如,虛擬磁盤(pán)的寫(xiě)入速度為10M/s,若預(yù)留空間寫(xiě)入時(shí)間為60s,那么預(yù)留可用容量為若預(yù)留空間寫(xiě)入時(shí)間為30s,那么預(yù)留可用容量為
在本發(fā)明一個(gè)實(shí)施例中,該虛擬磁盤(pán)擴(kuò)容的方法可以進(jìn)一步包括:
預(yù)先設(shè)定所述虛擬磁盤(pán)的最大容量;
在所述對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容之前,進(jìn)一步包括:
檢測(cè)所述虛擬磁盤(pán)的當(dāng)前總?cè)萘浚?/p>
根據(jù)所述虛擬磁盤(pán)的最大容量,通過(guò)第二公式計(jì)算所述虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量;
所述第二公式包括:
N1=N-N2
其中,N用于表征所述虛擬磁盤(pán)的最大容量;N1用于表征所述虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量;N2用于表征所述虛擬磁盤(pán)的當(dāng)前總?cè)萘浚?/p>
判斷所述虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量減去所述虛擬磁盤(pán)的預(yù)留可用容量的差值是否不小于零,若是,則發(fā)送第一擴(kuò)容指令;否則,生成第一錯(cuò)誤信息;
所述對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容,包括:
當(dāng)接收到所述第一擴(kuò)容指令時(shí),對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容。
在該實(shí)施例中,由于虛擬磁盤(pán)可以在容量上從相對(duì)較小的初始容量擴(kuò)容到某種最大容量。根據(jù)實(shí)際情況,虛擬磁盤(pán)的初始容量和最大容量均可以由用戶自行設(shè)定。例如:虛擬磁盤(pán)的初始容量為2G,虛擬磁盤(pán)的最大容量為10G。隨著文件的寫(xiě)入,以使虛擬磁盤(pán)不斷擴(kuò)容,虛擬磁盤(pán)的容量逐漸從2G擴(kuò)大到10G。由于虛擬磁盤(pán)的容量是從相對(duì)較小的初始容量擴(kuò)容到某種最大容量的,所以在某一時(shí)刻虛擬磁盤(pán)的容量就是虛擬磁盤(pán)的當(dāng)前總?cè)萘?。例如:虛擬磁盤(pán)的初始容量為2G,虛擬磁盤(pán)的最大容量為10G,現(xiàn)在已經(jīng)寫(xiě)入了1.7G的文件此時(shí),并且現(xiàn)在的當(dāng)前可用容量為0.6G,則虛擬磁盤(pán)的當(dāng)前總?cè)萘繛?.7G+0.6G=2.3G,虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量為10G-2.3G=7.7G。
值得說(shuō)明的是,擴(kuò)大虛擬磁盤(pán)的當(dāng)前可用容量等于擴(kuò)大虛擬磁盤(pán)的當(dāng)前總?cè)萘浚m然表述不同,但在實(shí)際情況下兩者的值是相等的。
在本發(fā)明一個(gè)實(shí)施例中,在所述對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容之前,進(jìn)一步包括:
檢測(cè)所述虛擬磁盤(pán)所在底層物理存儲(chǔ)裝置的最大容量和所述底層物理存儲(chǔ)裝置的當(dāng)前已用容量;
通過(guò)第三公式計(jì)算所述底層物理存儲(chǔ)裝置的當(dāng)前剩余容量;
所述第三公式包括:
D1=D-D2
其中,D用于表征所述底層物理存儲(chǔ)裝置的最大容量;D1用于表征所述底層物理存儲(chǔ)裝置的當(dāng)前剩余容量;D2用于表征所述底層物理存儲(chǔ)裝置的當(dāng)前已用容量;
判斷所述底層物理存儲(chǔ)裝置的當(dāng)前剩余容量與所述虛擬磁盤(pán)的預(yù)留可用容量之差是否不小于零,若是,則發(fā)送第二擴(kuò)容指令;否則,生成第二錯(cuò)誤信息;
所述對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容,包括:
當(dāng)接收到所述第二擴(kuò)容指令時(shí),對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容。
在該實(shí)施例中,底層物理存儲(chǔ)裝置可以是硬盤(pán)。硬盤(pán)自身也具有存儲(chǔ)容量,虛擬磁盤(pán)的容量占用硬盤(pán)存儲(chǔ)容量的一部分。因此,硬盤(pán)中文件占的容量與虛擬磁盤(pán)的容量不能超過(guò)硬盤(pán)的最大容量。同理,不能超過(guò)底層物理存儲(chǔ)裝置的最大容量。
在本發(fā)明一個(gè)實(shí)施例中,所述對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容,包括:
對(duì)所述虛擬磁盤(pán)進(jìn)行大小為所述虛擬磁盤(pán)的預(yù)留可用容量減去所述虛擬磁盤(pán)的當(dāng)前可用容量的差值的擴(kuò)容。
在該實(shí)施例中,虛擬磁盤(pán)的預(yù)留可用容量減去虛擬磁盤(pán)的當(dāng)前可用容量的差值,不僅決定是否需要擴(kuò)大虛擬磁盤(pán)的當(dāng)前可用容量,并且還決定了對(duì)虛擬磁盤(pán)進(jìn)行擴(kuò)容的大小。例如:利用上述第一公式計(jì)算出預(yù)留可用容量為600M,若檢測(cè)到虛擬磁盤(pán)的當(dāng)前可用容量為750M,則虛擬磁盤(pán)的預(yù)留可用容量減去虛擬磁盤(pán)的當(dāng)前可用容量的差值為600M-750M=-150M<0,則不需要擴(kuò)大虛擬磁盤(pán)的當(dāng)前可用容量,也就不需要擴(kuò)大虛擬磁盤(pán)的容量;若檢測(cè)到虛擬磁盤(pán)的當(dāng)前可用容量為543M,則虛擬磁盤(pán)的預(yù)留可用容量減去虛擬磁盤(pán)的當(dāng)前可用容量的差值為600M-543M=57M>0,則需要擴(kuò)大虛擬磁盤(pán)的當(dāng)前可用容量,且對(duì)虛擬磁盤(pán)進(jìn)行擴(kuò)容的大小為57M。
下面以底層物理存儲(chǔ)裝置是硬盤(pán)為例,對(duì)虛擬磁盤(pán)擴(kuò)容的方法進(jìn)行詳細(xì)的說(shuō)明。
如圖2所示,本發(fā)明實(shí)施例提供了一種一種虛擬磁盤(pán)擴(kuò)容的方法,該方法可以包括一下步驟:
步驟201:檢測(cè)虛擬磁盤(pán)的當(dāng)前可用容量和寫(xiě)入速度。
在該步驟中,測(cè)得虛擬磁盤(pán)的當(dāng)前可用容量是500M,寫(xiě)入速度為20M/s。
步驟202:根據(jù)預(yù)設(shè)的預(yù)留空間寫(xiě)入時(shí)間,通過(guò)第一公式計(jì)算虛擬磁盤(pán)的預(yù)留可用容量。
在該步驟中,預(yù)設(shè)的預(yù)留空間寫(xiě)入時(shí)間為30s,則通過(guò)第一公式計(jì)算得到預(yù)留可用容量為600M。
步驟203:判斷虛擬磁盤(pán)的預(yù)留可用容量減去虛擬磁盤(pán)的當(dāng)前可用容量的差值是否不小于零,若是,則不需要擴(kuò)大當(dāng)前可用容量;否則,執(zhí)行步驟204。
步驟204:確定虛擬磁盤(pán)的最大容量,以及檢測(cè)虛擬磁盤(pán)的當(dāng)前總?cè)萘俊?/p>
在該步驟中,虛擬磁盤(pán)的最大容量為用戶自行設(shè)定,此處虛擬磁盤(pán)的最大容量為9000M,檢測(cè)到虛擬磁盤(pán)的當(dāng)前總?cè)萘繛?555M。
步驟205:根據(jù)虛擬磁盤(pán)的最大容量,通過(guò)第二公式計(jì)算虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量。
在該步驟中,通過(guò)第二公式得到虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量為3445M。
步驟206:判斷虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量減去虛擬磁盤(pán)的預(yù)留可用容量的差值是否不小于零,若是,則執(zhí)行步驟207;否則,生成第一錯(cuò)誤信息。
在該步驟中,由于在步驟205中得到虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量為3445M,在步驟202中得到虛擬磁盤(pán)的預(yù)留可用容量為600M<3445M,此處應(yīng)該執(zhí)行步驟207。
步驟207:檢測(cè)虛擬磁盤(pán)所在硬盤(pán)的最大容量和硬盤(pán)的當(dāng)前已用容量。
在該步驟中,測(cè)得硬盤(pán)的最大容量為100000M,硬盤(pán)的當(dāng)前已用容量為45678M。
步驟208:通過(guò)第三公式計(jì)算硬盤(pán)的當(dāng)前剩余容量。
在該步驟中,通過(guò)第二公式得到硬盤(pán)的當(dāng)前剩余容量為54322M。
步驟209:判斷硬盤(pán)的當(dāng)前剩余容量與虛擬磁盤(pán)的預(yù)留可用容量之差是否不小于零,若是,則執(zhí)行步驟210;否則,生成第二錯(cuò)誤信息;
在該步驟中,由于在步驟208中得到硬盤(pán)的當(dāng)前剩余容量為54322M,在步驟202中得到虛擬磁盤(pán)的預(yù)留可用容量為600M<54322M,此處應(yīng)該執(zhí)行步驟210。
步驟210:對(duì)虛擬磁盤(pán)進(jìn)行大小為虛擬磁盤(pán)的預(yù)留可用容量減去虛擬磁盤(pán)的當(dāng)前可用容量的差值的擴(kuò)容。
在該步驟中,對(duì)虛擬磁盤(pán)進(jìn)行擴(kuò)容的大小為100M。
如圖3所示,本發(fā)明實(shí)施例提供了一種虛擬磁盤(pán)擴(kuò)容的裝置,該虛擬磁盤(pán)擴(kuò)容的裝置可以包括:檢測(cè)單元301、判斷單元302和擴(kuò)容單元303,其中,
所述檢測(cè)單元301,用于檢測(cè)虛擬磁盤(pán)的當(dāng)前可用容量和寫(xiě)入速度;
所述判斷單元302,用于根據(jù)所述當(dāng)前可用容量和所述寫(xiě)入速度,判斷是否需要擴(kuò)大所述當(dāng)前可用容量;
所述擴(kuò)容單元303,用于當(dāng)需要擴(kuò)大所述當(dāng)前可用容量時(shí),對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容。
如圖4所示,在本發(fā)明一個(gè)實(shí)施例中,該虛擬磁盤(pán)擴(kuò)容的裝置可以進(jìn)一步包括:第一計(jì)算單元401,其中,
所述第一計(jì)算單元401,用于根據(jù)所述預(yù)留空間寫(xiě)入時(shí)間,通過(guò)第一公式計(jì)算所述虛擬磁盤(pán)的預(yù)留可用容量;
所述第一公式包括:
M=vt
其中,M用于表征所述虛擬磁盤(pán)的預(yù)留可用容量;v用于表征所述虛擬磁盤(pán)的寫(xiě)入速度;t用于表征所述預(yù)留空間寫(xiě)入時(shí)間;
所述判斷單元302,用于判斷所述虛擬磁盤(pán)的預(yù)留可用容量減去所述虛擬磁盤(pán)的當(dāng)前可用容量的差值是否不小于零,若是,則不需要擴(kuò)大所述當(dāng)前可用容量;否則,需要擴(kuò)大所述當(dāng)前可用容量。
如圖5所示,在本發(fā)明一個(gè)實(shí)施例中,該虛擬磁盤(pán)擴(kuò)容的裝置可以進(jìn)一步包括:第二計(jì)算單元501和第一觸發(fā)單元502,其中,
所述第二計(jì)算單元501,用于根據(jù)所述虛擬磁盤(pán)的最大容量,通過(guò)第二公式計(jì)算所述虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量;
所述第二公式包括:
N1=N-N2
其中,N用于表征所述虛擬磁盤(pán)的最大容量;N1用于表征所述虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量;N2用于表征所述虛擬磁盤(pán)的當(dāng)前總?cè)萘浚?/p>
所述檢測(cè)單元301,進(jìn)一步用于檢測(cè)所述虛擬磁盤(pán)的當(dāng)前總?cè)萘?,輸出給所述第二計(jì)算單元501;
所述第一觸發(fā)單元502,用于判斷所述虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量減去所述虛擬磁盤(pán)的預(yù)留可用容量的差值是否不小于零,若是,則發(fā)送第一擴(kuò)容指令;否則,生成第一錯(cuò)誤信息;
所述擴(kuò)容單元303,用于當(dāng)接收到所述第一擴(kuò)容指令時(shí),對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容。
如圖6所示,在本發(fā)明一個(gè)實(shí)施例中,該虛擬磁盤(pán)擴(kuò)容的裝置可以進(jìn)一步包括:第三計(jì)算單元601和第二觸發(fā)單元602,其中,
所述第三計(jì)算單元601,用于通過(guò)第三公式計(jì)算所述底層物理存儲(chǔ)裝置的當(dāng)前剩余容量;
所述第三公式包括:
D1=D-D2
其中,D用于表征所述底層物理存儲(chǔ)裝置的最大容量;D1用于表征所述底層物理存儲(chǔ)裝置的當(dāng)前剩余容量;D2用于表征所述底層物理存儲(chǔ)裝置的當(dāng)前已用容量;
所述檢測(cè)單元301,進(jìn)一步用于檢測(cè)所述虛擬磁盤(pán)所在底層物理存儲(chǔ)裝置的最大容量和所述底層物理存儲(chǔ)裝置的當(dāng)前已用容量,并輸出給所述第三計(jì)算單元601;
所述第二觸發(fā)單元602,用于判斷所述底層物理存儲(chǔ)裝置的當(dāng)前剩余容量與所述虛擬磁盤(pán)的預(yù)留可用容量之差是否不小于零,若是,則發(fā)送第二擴(kuò)容指令;否則,生成第二錯(cuò)誤信息;
所述擴(kuò)容單元303,用于當(dāng)接收到所述第二擴(kuò)容指令時(shí),對(duì)所述虛擬磁盤(pán)進(jìn)行擴(kuò)容。
在本發(fā)明一個(gè)實(shí)施例中,所述擴(kuò)容單元303,用于對(duì)所述虛擬磁盤(pán)進(jìn)行大小為所述虛擬磁盤(pán)的預(yù)留可用容量減去所述虛擬磁盤(pán)的當(dāng)前可用容量的差值的擴(kuò)容。
上述裝置內(nèi)的各單元之間的信息交互、執(zhí)行過(guò)程等內(nèi)容,由于與本發(fā)明方法實(shí)施例基于同一構(gòu)思,具體內(nèi)容可參見(jiàn)本發(fā)明方法實(shí)施例中的敘述,此處不再贅述。
如圖7所示,本發(fā)明實(shí)施例提供了一種虛擬磁盤(pán)擴(kuò)容的系統(tǒng),該虛擬磁盤(pán)擴(kuò)容的系統(tǒng)包括:虛擬磁盤(pán)701和本發(fā)明實(shí)施例提供的任一所述虛擬磁盤(pán)擴(kuò)容的裝置702。
綜上,本發(fā)明的各實(shí)施例,至少具有如下有益效果:
1、在本發(fā)明的實(shí)施例中,通過(guò)檢測(cè)虛擬磁盤(pán)的當(dāng)前可用容量和寫(xiě)入速度,根據(jù)當(dāng)前可用容量和所述寫(xiě)入速度,判斷是否需要擴(kuò)大當(dāng)前可用容量,當(dāng)需要擴(kuò)大當(dāng)前可用容量時(shí),對(duì)虛擬磁盤(pán)進(jìn)行擴(kuò)容。由于根據(jù)當(dāng)前可用容量和所述寫(xiě)入速度,判斷是否需要擴(kuò)大當(dāng)前可用容量,采用預(yù)留的擴(kuò)容技術(shù),提前準(zhǔn)備虛擬磁盤(pán)的可用容量,而不是在向虛擬磁盤(pán)寫(xiě)入文件時(shí)再進(jìn)行擴(kuò)容,從而能夠有效地提高虛擬磁盤(pán)的寫(xiě)入效率。
2、在本發(fā)明的實(shí)施例中,通過(guò)用戶自行設(shè)定預(yù)留空間寫(xiě)入時(shí)間,使得用戶可以根據(jù)虛擬磁盤(pán)的寫(xiě)入速度,以及寫(xiě)入文件的頻率等客觀因素,對(duì)預(yù)留空間寫(xiě)入時(shí)間進(jìn)行設(shè)定,從而確保虛擬磁盤(pán)的預(yù)留可用容量大小,從而提高虛擬磁盤(pán)的寫(xiě)入效率。
3、在本發(fā)明的實(shí)施例中,通過(guò)判斷虛擬磁盤(pán)的預(yù)留可用容量與虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量的大小,可以確保虛擬磁盤(pán)的容量不會(huì)無(wú)限的擴(kuò)大而超過(guò)虛擬磁盤(pán)的最大容量,并且在虛擬磁盤(pán)的預(yù)留可用容量大于虛擬磁盤(pán)的當(dāng)前可擴(kuò)容量時(shí),會(huì)生成第一錯(cuò)誤信息,以提醒用戶。
4、在本發(fā)明的實(shí)施例中,通過(guò)判斷虛擬磁盤(pán)的預(yù)留可用容量與底層物理存儲(chǔ)裝置的當(dāng)前剩余容量的大小,可以確保虛擬磁盤(pán)的容量不會(huì)無(wú)限的擴(kuò)大而超過(guò)底層物理存儲(chǔ)裝置的最大容量,并且在虛擬磁盤(pán)的預(yù)留可用容量大于底層物理存儲(chǔ)裝置的當(dāng)前剩余容量時(shí),會(huì)生成第二錯(cuò)誤信息,以提醒用戶。
需要說(shuō)明的是,在本文中,諸如第一和第二之類的關(guān)系術(shù)語(yǔ)僅僅用來(lái)將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開(kāi)來(lái),而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語(yǔ)“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過(guò)程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒(méi)有明確列出的其他要素,或者是還包括為這種過(guò)程、方法、物品或者設(shè)備所固有的要素。在沒(méi)有更多限制的情況下,由語(yǔ)句“包括一個(gè)〃〃〃〃〃〃”限定的要素,并不排除在包括所述要素的過(guò)程、方法、物品或者設(shè)備中還存在另外的相同因素。
本領(lǐng)域普通技術(shù)人員可以理解:實(shí)現(xiàn)上述方法實(shí)施例的全部或部分步驟可以通過(guò)程序指令相關(guān)的硬件來(lái)完成,前述的程序可以存儲(chǔ)在計(jì)算機(jī)可讀取的存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),執(zhí)行包括上述方法實(shí)施例的步驟;而前述的存儲(chǔ)介質(zhì)包括:ROM、RAM、磁碟或者光盤(pán)等各種可以存儲(chǔ)程序代碼的介質(zhì)中。
最后需要說(shuō)明的是:以上所述僅為本發(fā)明的較佳實(shí)施例,僅用于說(shuō)明本發(fā)明的技術(shù)方案,并非用于限定本發(fā)明的保護(hù)范圍。凡在本發(fā)明的精神和原則之內(nèi)所做的任何修改、等同替換、改進(jìn)等,均包含在本發(fā)明的保護(hù)范圍內(nèi)。