本發(fā)明涉及云平臺(tái)存儲(chǔ)虛擬化技術(shù)領(lǐng)域,特別是一種基于異構(gòu)存儲(chǔ)虛擬機(jī)的通用獲取磁盤利用率的方法。
背景技術(shù):
一般的云計(jì)算平臺(tái)正在使用的虛擬機(jī),有各種異構(gòu)存儲(chǔ)的虛擬機(jī),有本地存儲(chǔ)、網(wǎng)絡(luò)存儲(chǔ)或分布式存儲(chǔ)等各種存儲(chǔ),基于這些存儲(chǔ)創(chuàng)建了虛擬機(jī),為了統(tǒng)一管理,都通過塊文件的方式來統(tǒng)一創(chuàng)建虛擬機(jī),高效管理虛擬機(jī),然而這樣會(huì)帶來以下問題:
一是塊文件自身無法獲取已用空間。
二是若每種存儲(chǔ)都采用單獨(dú)的方式獲取,不夠通用,管理復(fù)雜。
三是傳統(tǒng)的獲取方式是以只讀的方式將虛擬機(jī)磁盤掛載到宿主機(jī)上,再獲取其已用空間,這種方法容易導(dǎo)致虛擬機(jī)磁盤文件系統(tǒng)異常,并且性能差低,每一塊虛擬機(jī)磁盤都需要幾秒鐘。
四是傳統(tǒng)的獲取方式需要區(qū)分虛擬機(jī)操作系統(tǒng),區(qū)分系統(tǒng)盤格式。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明解決的技術(shù)問題在于提供一種基于異構(gòu)存儲(chǔ)虛擬機(jī)的通用獲取磁盤利用率的方法;解決云平臺(tái)獲取磁盤利用率不夠通用、獲取方法復(fù)雜、容易引發(fā)磁盤文件系統(tǒng)異常、性能差、需要區(qū)分虛擬機(jī)操作系統(tǒng)、磁盤分區(qū)格式的問題。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
所述的方法是異構(gòu)存儲(chǔ)統(tǒng)一創(chuàng)建塊文件,基于塊文件創(chuàng)建虛擬機(jī);然后獲取虛擬機(jī)列表和所用的存儲(chǔ)設(shè)備列表;過濾存儲(chǔ)設(shè)備;再獲取存儲(chǔ)設(shè)備的塊路徑;最后獲取磁盤的利用率。
所述獲取磁盤的利用率,是指獲取磁盤虛擬大小和已用空間,通過已用空間除以磁盤虛擬大小計(jì)算磁盤利用率;
所述的磁盤虛擬大小,是虛擬機(jī)看到的磁盤總大小;通過執(zhí)行命令:“qemu-img info塊文件全路徑”,獲取其虛擬機(jī)大??;
所述的磁盤已用空間,是虛擬機(jī)真實(shí)已用空間,通過執(zhí)行命令:“qemu-img check塊文件全路徑”,獲取塊文件已寫空間位移,也就是虛擬機(jī)真實(shí)已用空間大小。
所述的異構(gòu)存儲(chǔ)統(tǒng)一創(chuàng)建塊文件是指異構(gòu)存儲(chǔ)統(tǒng)一創(chuàng)建塊設(shè)備文件;
所述的異構(gòu)存儲(chǔ),包括本地磁盤、網(wǎng)絡(luò)存儲(chǔ)、分布式存儲(chǔ);
所述的塊文件,是每個(gè)塊都能獨(dú)立于其它塊而讀寫,本地磁盤或網(wǎng)絡(luò)存儲(chǔ)掛載到本地,通過卷組劃分多個(gè)邏輯卷,每個(gè)邏輯卷是一個(gè)塊文件;分布式存儲(chǔ)映射到本地同樣是一個(gè)塊文件;
所述的卷組,是由一個(gè)或多個(gè)物理卷所組成的存儲(chǔ)池,在卷組上能創(chuàng)建一個(gè)或多個(gè)邏輯卷;
所述的邏輯卷,是由邏輯磁盤形成的虛擬盤,也可稱為磁盤分區(qū)。
所述基于塊文件創(chuàng)建虛擬機(jī),是指在一個(gè)塊里面導(dǎo)入一個(gè)鏡像快照文件;
所述的鏡像快照文件,是虛擬機(jī)使用的磁盤,也是母鏡像的一個(gè)快照,其一開始的實(shí)際大小為0。
所述獲取虛擬機(jī)列表,是指獲取宿主機(jī)下所有正在運(yùn)行的虛擬機(jī)列表。
所述獲取虛擬機(jī)所用的存儲(chǔ)設(shè)備列表,是指獲取虛擬機(jī)所有的存儲(chǔ)設(shè)備,包括其存儲(chǔ)設(shè)備名稱、類型。
所述過濾存儲(chǔ)設(shè)備,是指過濾存儲(chǔ)設(shè)備其中類型不是磁盤的存儲(chǔ)設(shè)備。
所述獲取存儲(chǔ)設(shè)備的塊路徑,是指獲取存儲(chǔ)設(shè)備對(duì)應(yīng)在文件系統(tǒng)的全路徑。
本發(fā)明通過一種基于異構(gòu)存儲(chǔ)虛擬機(jī)的通用獲取磁盤利用率的方法,統(tǒng)一、簡(jiǎn)單、穩(wěn)定和高效獲取異構(gòu)存儲(chǔ)虛擬機(jī)的磁盤利用率。本發(fā)明適應(yīng)于云平臺(tái)上通過異構(gòu)存儲(chǔ)創(chuàng)建不同存儲(chǔ)類型的虛擬機(jī)。本發(fā)明提供通用獲取磁盤利用率,基于塊設(shè)備導(dǎo)入鏡像快照文件的虛擬機(jī),區(qū)別于一般直接基于鏡像快照文件的虛擬機(jī)。本發(fā)明獲取的方法在宿主機(jī)上執(zhí)行,并不需要將虛擬機(jī)磁盤掛載到宿主機(jī)上,區(qū)別于一般需要將系統(tǒng)盤掛載到宿主機(jī)的方法。本發(fā)明獲取的方法不需要通過虛擬機(jī)代理獲取,區(qū)別于一般需要代理獲取的方法。本發(fā)明獲取的方法執(zhí)行需要在宿主機(jī)上執(zhí)行命令行,獲取方法性能高,區(qū)別于一般需要獲取掛載點(diǎn)大小的性能差的方法。本發(fā)明獲取的方法是不區(qū)分虛擬機(jī)操作系統(tǒng),也不區(qū)分虛擬機(jī)磁盤分區(qū)格式,區(qū)別于一般需要區(qū)別虛擬機(jī)操作系統(tǒng)或磁盤分區(qū)格式的方法
附圖說明
下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說明:
圖1為流程圖;
圖2為本發(fā)明結(jié)構(gòu)圖。
具體實(shí)施方式
本發(fā)明的實(shí)施方式有多種,這里以私有云平臺(tái)為例說明其中一種實(shí)現(xiàn)方法,如圖1、2所示,具體實(shí)施過程如下:
1、異構(gòu)存儲(chǔ)統(tǒng)一創(chuàng)建塊文件,代碼如下:
2、基于塊文件創(chuàng)建虛擬機(jī),代碼如下:
3、獲取虛擬機(jī)列表,代碼如下:
4、獲取虛擬機(jī)所用的存儲(chǔ)設(shè)備列表,代碼如下:
5、過濾存儲(chǔ)設(shè)備,代碼如下:
6、獲取存儲(chǔ)設(shè)備的塊路徑,代碼如下:
7、獲取磁盤的利用率,代碼如下:
整個(gè)流程結(jié)束。