本發(fā)明涉及信息技術(shù)領(lǐng)域,特別涉及一種分布式系統(tǒng)服務(wù)器的存儲(chǔ)控制方法、及服務(wù)器。
背景技術(shù):
分布式存儲(chǔ)系統(tǒng),是將數(shù)據(jù)分散存儲(chǔ)在多臺(tái)獨(dú)立的設(shè)備上。
傳統(tǒng)的網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)采用集中的存儲(chǔ)服務(wù)器存放所有數(shù)據(jù),存儲(chǔ)服務(wù)器成為系統(tǒng)性能的瓶頸,也是可靠性和安全性的焦點(diǎn),不能滿足大規(guī)模存儲(chǔ)應(yīng)用的需要。分布式網(wǎng)絡(luò)存儲(chǔ)系統(tǒng)采用可擴(kuò)展的系統(tǒng)結(jié)構(gòu),利用多臺(tái)存儲(chǔ)服務(wù)器分擔(dān)存儲(chǔ)負(fù)荷,利用位置服務(wù)器定位存儲(chǔ)信息,它不但提高了系統(tǒng)的可靠性、可用性和存取效率,還易于擴(kuò)展。
虛擬機(jī)(virtualmachine)指通過軟件模擬的具有完整硬件系統(tǒng)功能的、運(yùn)行在一個(gè)完全隔離環(huán)境中的完整計(jì)算機(jī)系統(tǒng)。
虛擬系統(tǒng)通過生成現(xiàn)有操作系統(tǒng)的全新虛擬鏡像,它具有真實(shí)windows系統(tǒng)完全一樣的功能,進(jìn)入虛擬系統(tǒng)后,所有操作都是在這個(gè)全新的獨(dú)立的虛擬系統(tǒng)里面進(jìn)行,可以獨(dú)立安裝運(yùn)行軟件,保存數(shù)據(jù),擁有自己的獨(dú)立桌面,不會(huì)對(duì)真正的系統(tǒng)產(chǎn)生任何影響,而且具有能夠在現(xiàn)有系統(tǒng)與虛擬鏡像之間靈活切換的一類操作系統(tǒng)。虛擬系統(tǒng)和傳統(tǒng)的虛擬機(jī)(parallelsdesktop,vmware,virtualbox,virtualpc)不同在于:虛擬系統(tǒng)不會(huì)降低電腦的性能,啟動(dòng)虛擬系統(tǒng)不需要像啟動(dòng)windows系統(tǒng)那樣耗費(fèi)時(shí)間,運(yùn)行程序更加方便快捷;虛擬系統(tǒng)只能模擬和現(xiàn)有操作系統(tǒng)相同的環(huán)境,而虛擬機(jī)則可以模擬出其他種類的操作系統(tǒng);而且虛擬機(jī)需要模擬底層的硬件指令,所以在應(yīng)用程序運(yùn)行速度上比虛擬系統(tǒng)慢得多。
在分布式系統(tǒng)存儲(chǔ)系統(tǒng)中,需要將數(shù)據(jù)存儲(chǔ)到多個(gè)獨(dú)立的設(shè)備上,在這個(gè)過程中,經(jīng)常出現(xiàn)擁塞導(dǎo)致存儲(chǔ)速度慢,因此整個(gè)數(shù)據(jù)存儲(chǔ)效率較低。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種分布式系統(tǒng)服務(wù)器的存儲(chǔ)控制方法、及服務(wù)器,用于減少數(shù)據(jù)擁塞的幾率,并且提高數(shù)據(jù)存儲(chǔ)的安全性。
一方面本發(fā)明實(shí)施例提供了一種分布式系統(tǒng)服務(wù)器的存儲(chǔ)控制方法,應(yīng)用于包含j個(gè)物理磁盤的分布式系統(tǒng)中的服務(wù)器,該服務(wù)器包含虛擬機(jī)控制器,所述j個(gè)物理磁盤中每個(gè)物理磁盤的存儲(chǔ)空間被分為大小相等的小物理磁盤,每個(gè)物理磁盤內(nèi)的小物理磁盤的序號(hào)按照地址從低到高排序;所述j個(gè)物理磁盤各自具有大物理磁盤標(biāo)識(shí),各小物理磁盤具有小物理磁盤標(biāo)識(shí),所述小物理磁盤標(biāo)識(shí)由所述大物理磁盤標(biāo)識(shí)與所述小物理磁盤的序號(hào)組合得到,所述方法包括:
所述虛擬機(jī)控制器獲取小物理磁盤的分配狀態(tài),以及所述j個(gè)物理磁盤的活躍程度;
所述虛擬機(jī)控制器在接收到虛擬機(jī)創(chuàng)建請(qǐng)求后,確定將要?jiǎng)?chuàng)建的虛擬機(jī)的存儲(chǔ)空間需求;依據(jù)所述小物理磁盤的分配狀態(tài)確定處于未分配狀態(tài)的小物理磁盤;從處于未分配狀態(tài)的小物理磁盤中選擇k個(gè)小物理磁盤作為目標(biāo)物理磁盤,所述k個(gè)小物理磁盤的存儲(chǔ)空間之和滿足所述存儲(chǔ)空間需求;所述k為2的l次方,所述l大于或等于3;所述k個(gè)小物理磁盤各自位于不同的物理磁盤;
所述虛擬機(jī)控制器響應(yīng)所述虛擬機(jī)創(chuàng)建請(qǐng)求在所述目標(biāo)物理磁盤中安裝虛擬操作系統(tǒng)構(gòu)建虛擬機(jī);
所述虛擬機(jī)控制器接收來自所述虛擬機(jī)的活躍度查詢請(qǐng)求,所述活躍度查詢請(qǐng)求由所述虛擬機(jī)在啟動(dòng)并運(yùn)行后,在運(yùn)行過程中有數(shù)據(jù)存儲(chǔ)需求時(shí)發(fā)送;
所述虛擬機(jī)控制器解析所述活躍度查詢請(qǐng)求,獲得在所述活躍度查詢請(qǐng)求中攜帶的所述目標(biāo)物理磁盤中各小物理磁盤的小物理磁盤標(biāo)識(shí);
所述虛擬機(jī)控制器在接收到所述活躍度查詢請(qǐng)求后,向所述虛擬機(jī)返回所述目標(biāo)物理磁盤中各小物理磁盤所在的物理磁盤的活躍程度;所述目標(biāo)物理磁盤中各小物理磁盤所在的物理磁盤的活躍程度用于所述虛擬機(jī)將需要存儲(chǔ)的數(shù)據(jù)拆分為大于2且小于或等于k/2個(gè)目標(biāo)數(shù)據(jù),按照所述目標(biāo)物理磁盤中各小物理磁盤所在的物理磁盤的活躍程度從低到高,將各目標(biāo)數(shù)據(jù)分別存儲(chǔ)到所述目標(biāo)物理磁盤中的各小物理磁盤。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述大物理磁盤標(biāo)識(shí)為p位的二進(jìn)制字符串,所述小物理磁盤標(biāo)識(shí)為q位的二進(jìn)制字符串;所述小物理磁盤的序號(hào)為位于小磁盤標(biāo)識(shí)的低位部分,每個(gè)小物理磁盤的存儲(chǔ)空間為r位;所述方法還包括:
所述虛擬機(jī)控制器接收所述虛擬機(jī)發(fā)送的查詢請(qǐng)求,在所述查詢請(qǐng)求中包含訪存操作指定的虛擬地址;所述目標(biāo)物理磁盤由其包含的各小物理磁盤按照所述各小物理磁盤所在的大物理磁盤標(biāo)識(shí)從低到高依次排序組成,所述虛擬地址以所述目標(biāo)物理磁盤的起始地址為起始虛擬地址順序編號(hào)獲得;在所述虛擬機(jī)控制器中存儲(chǔ)有地址映射表,所述地址映射表的表項(xiàng)包含:虛擬盤序號(hào)、小物理磁盤標(biāo)識(shí);
所述虛擬機(jī)控制器計(jì)算所述虛擬地址與所述r的商取整得到所述虛擬地址的虛擬盤序號(hào),計(jì)算所述虛擬地址與所述r的商取余得到偏移量;
所述虛擬機(jī)控制器查找所述地址映射表獲得包含所述虛擬地址的虛擬盤序號(hào)的表項(xiàng),并確定該表項(xiàng)中包含的小物理磁盤標(biāo)識(shí)作為目標(biāo)小物理磁盤標(biāo)識(shí):
所述虛擬機(jī)控制器截取所述小物理磁盤標(biāo)識(shí)的前p位作為目標(biāo)大物理磁盤標(biāo)識(shí),向所述目標(biāo)大物理磁盤標(biāo)識(shí)對(duì)應(yīng)的物理磁盤發(fā)送讀請(qǐng)求,在所述讀請(qǐng)求中包含所述小物理磁盤標(biāo)識(shí)以及所述偏移量,使所述小物理磁盤標(biāo)識(shí)對(duì)應(yīng)的小物理磁盤返回在所述小物理磁盤的起始位置偏移所述偏移量對(duì)應(yīng)物理地址的數(shù)據(jù);
所述虛擬機(jī)控制器向所述虛擬機(jī)發(fā)送所述小物理磁盤標(biāo)識(shí)對(duì)應(yīng)的小物理磁盤返回的數(shù)據(jù)。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述虛擬機(jī)控制器計(jì)算所述虛擬地址與所述r的商取整得到所述虛擬地址的虛擬盤序號(hào),計(jì)算所述虛擬地址與所述r的商取余得到偏移量包括:
所述虛擬機(jī)控制器截取所述虛擬地址的前r位得到所述虛擬盤序號(hào),截取所述虛擬地址的剩余位得到所述偏移量。
在一個(gè)可選的實(shí)現(xiàn)方式中,在所述虛擬機(jī)被創(chuàng)建之后,所述方法還包括:
所述虛擬機(jī)控制器接收虛擬機(jī)刪除請(qǐng)求,所述虛擬機(jī)刪除請(qǐng)求用于請(qǐng)求刪除所述虛擬機(jī);
所述虛擬機(jī)控制器將所述目標(biāo)物理磁盤中包含的各小物理磁盤的分配狀態(tài)設(shè)置為未分配狀態(tài),不刪除所述目標(biāo)物理磁盤中包含的各小物理磁盤已經(jīng)被寫入的數(shù)據(jù)。
在一個(gè)可選的實(shí)現(xiàn)方式中,在所述虛擬機(jī)控制器將所述目標(biāo)物理磁盤中包含的各小物理磁盤的分配狀態(tài)設(shè)置為未分配狀態(tài)之后,所述方法還包括:
所述虛擬機(jī)控制器記錄所述目標(biāo)物理磁盤中包含的各小物理磁盤,在下一次創(chuàng)建新虛擬機(jī)時(shí),以隨機(jī)方式獲取所述新虛擬機(jī)所需的小物理磁盤,并確定獲取到的小物理磁盤中少于或等于兩個(gè)小物理磁盤屬于所述目標(biāo)物理磁盤中包含的小物理磁盤。
二方面本發(fā)明實(shí)施例提供了一種服務(wù)器,該服務(wù)器包含虛擬機(jī)控制器,應(yīng)用于包含所述虛擬機(jī)控制器、虛擬機(jī)和j個(gè)物理磁盤的分布式存儲(chǔ)系統(tǒng);所述j個(gè)物理磁盤中每個(gè)物理磁盤的存儲(chǔ)空間被分為大小相等的小物理磁盤,每個(gè)物理磁盤內(nèi)的小物理磁盤的序號(hào)按照地址從低到高排序;所述j個(gè)物理磁盤各自具有大物理磁盤標(biāo)識(shí),各小物理磁盤具有小物理磁盤標(biāo)識(shí),所述小物理磁盤標(biāo)識(shí)由所述大物理磁盤標(biāo)識(shí)與所述小物理磁盤的序號(hào)組合得到,所述虛擬機(jī)控制器包括:
監(jiān)測(cè)單元,用于獲取小物理磁盤的分配狀態(tài),以及所述j個(gè)物理磁盤的活躍程度;
接收單元,用于接收虛擬機(jī)創(chuàng)建請(qǐng)求;接收來自所述虛擬機(jī)的活躍度查詢請(qǐng)求;所述活躍度查詢請(qǐng)求由所述虛擬機(jī)在啟動(dòng)并運(yùn)行后,在運(yùn)行過程中有數(shù)據(jù)存儲(chǔ)需求時(shí)發(fā)送;
處理器單元,用于在接收到虛擬機(jī)創(chuàng)建請(qǐng)求后,確定將要?jiǎng)?chuàng)建的虛擬機(jī)的存儲(chǔ)空間需求;依據(jù)所述小物理磁盤的分配狀態(tài)確定處于未分配狀態(tài)的小物理磁盤;從處于未分配狀態(tài)的小物理磁盤中選擇k個(gè)小物理磁盤作為目標(biāo)物理磁盤,所述k個(gè)小物理磁盤的存儲(chǔ)空間之和滿足所述存儲(chǔ)空間需求;所述k為2的l次方,所述l大于或等于3;所述k個(gè)小物理磁盤各自位于不同的物理磁盤;響應(yīng)所述虛擬機(jī)創(chuàng)建請(qǐng)求在所述目標(biāo)物理磁盤中安裝虛擬操作系統(tǒng)構(gòu)建虛擬機(jī);解析所述活躍度查詢請(qǐng)求,獲得在所述活躍度查詢請(qǐng)求中攜帶的所述目標(biāo)物理磁盤中各小物理磁盤的小物理磁盤標(biāo)識(shí);
發(fā)送單元,用于向所述虛擬機(jī)返回所述目標(biāo)物理磁盤中各小物理磁盤所在的物理磁盤的活躍程度;所述目標(biāo)物理磁盤中各小物理磁盤所在的物理磁盤的活躍程度用于所述虛擬機(jī)將需要存儲(chǔ)的數(shù)據(jù)拆分為大于2且小于或等于k/2個(gè)目標(biāo)數(shù)據(jù),按照所述目標(biāo)物理磁盤中各小物理磁盤所在的物理磁盤的活躍程度從低到高,將各目標(biāo)數(shù)據(jù)分別存儲(chǔ)到所述目標(biāo)物理磁盤中的各小物理磁盤。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述大物理磁盤標(biāo)識(shí)為p位的二進(jìn)制字符串,所述小物理磁盤標(biāo)識(shí)為q位的二進(jìn)制字符串;所述小物理磁盤的序號(hào)為位于小磁盤標(biāo)識(shí)的低位部分,每個(gè)小物理磁盤的存儲(chǔ)空間為r位;
所述接收單元,還用于接收所述虛擬機(jī)發(fā)送的查詢請(qǐng)求,在所述查詢請(qǐng)求中包含訪存操作指定的虛擬地址;所述目標(biāo)物理磁盤由其包含的各小物理磁盤按照所述各小物理磁盤所在的大物理磁盤標(biāo)識(shí)從低到高依次排序組成,所述虛擬地址以所述目標(biāo)物理磁盤的起始地址為起始虛擬地址順序編號(hào)獲得;在所述虛擬機(jī)控制器中存儲(chǔ)有地址映射表,所述地址映射表的表項(xiàng)包含:虛擬盤序號(hào)、小物理磁盤標(biāo)識(shí);
所述處理器單元,還用于計(jì)算所述虛擬地址與所述r的商取整得到所述虛擬地址的虛擬盤序號(hào),計(jì)算所述虛擬地址與所述r的商取余得到偏移量;查找所述地址映射表獲得包含所述虛擬地址的虛擬盤序號(hào)的表項(xiàng),并確定該表項(xiàng)中包含的小物理磁盤標(biāo)識(shí)作為目標(biāo)小物理磁盤標(biāo)識(shí);截取所述小物理磁盤標(biāo)識(shí)的前p位作為目標(biāo)大物理磁盤標(biāo)識(shí);
所述發(fā)送單元,還用于向所述目標(biāo)大物理磁盤標(biāo)識(shí)對(duì)應(yīng)的物理磁盤發(fā)送讀請(qǐng)求,在所述讀請(qǐng)求中包含所述小物理磁盤標(biāo)識(shí)以及所述偏移量,使所述小物理磁盤標(biāo)識(shí)對(duì)應(yīng)的小物理磁盤返回在所述小物理磁盤的起始位置偏移所述偏移量對(duì)應(yīng)物理地址的數(shù)據(jù);向所述虛擬機(jī)發(fā)送所述小物理磁盤標(biāo)識(shí)對(duì)應(yīng)的小物理磁盤返回的數(shù)據(jù)。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述處理器單元,用于計(jì)算所述虛擬地址與所述r的商取整得到所述虛擬地址的虛擬盤序號(hào),計(jì)算所述虛擬地址與所述r的商取余得到偏移量包括:
截取所述虛擬地址的前r位得到所述虛擬盤序號(hào),截取所述虛擬地址的剩余位得到所述偏移量。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述接收單元,還用于在所述虛擬機(jī)被創(chuàng)建之后,接收虛擬機(jī)刪除請(qǐng)求,所述虛擬機(jī)刪除請(qǐng)求用于請(qǐng)求刪除所述虛擬機(jī);
所述處理器單元,還用于將所述目標(biāo)物理磁盤中包含的各小物理磁盤的分配狀態(tài)設(shè)置為未分配狀態(tài),不刪除所述目標(biāo)物理磁盤中包含的各小物理磁盤已經(jīng)被寫入的數(shù)據(jù)。
在一個(gè)可選的實(shí)現(xiàn)方式中,所述處理器單元,還用于在所述虛擬機(jī)控制器將所述目標(biāo)物理磁盤中包含的各小物理磁盤的分配狀態(tài)設(shè)置為未分配狀態(tài)之后,記錄所述目標(biāo)物理磁盤中包含的各小物理磁盤,在下一次創(chuàng)建新虛擬機(jī)時(shí),以隨機(jī)方式獲取所述新虛擬機(jī)所需的小物理磁盤,并確定獲取到的小物理磁盤中少于或等于兩個(gè)小物理磁盤屬于所述目標(biāo)物理磁盤中包含的小物理磁盤。
從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):特別設(shè)定了物理磁盤的標(biāo)識(shí)組成方式,方便后續(xù)物理磁盤的查找;另外,虛擬機(jī)的物理磁盤分配過程中充分考慮了各物理磁盤的活躍度,使得虛擬機(jī)能夠分配到較為合適的物理磁盤,相對(duì)較為不活躍的磁盤可以減少擁塞;另外,將需要存儲(chǔ)的數(shù)據(jù)進(jìn)行了拆分,按照物理磁盤的活躍度再次進(jìn)行數(shù)據(jù)分配,一方面進(jìn)一步減少了數(shù)據(jù)擁塞的可能性,提高數(shù)據(jù)存儲(chǔ)的并行度,另外還能夠降低數(shù)據(jù)被整體存儲(chǔ)到同一小物理磁盤導(dǎo)致可能被竊取的可能性,因此可以提高數(shù)據(jù)存儲(chǔ)的安全性。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)實(shí)施例描述中所需要使用的附圖作簡(jiǎn)要介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域的普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例方法流程示意圖;
圖2為本發(fā)明實(shí)施例小物理磁盤標(biāo)識(shí)組成結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例系統(tǒng)結(jié)構(gòu)示意圖;
圖4為本發(fā)明實(shí)施例服務(wù)器結(jié)構(gòu)示意圖。
具體實(shí)施方式
為了使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步地詳細(xì)描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部份實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其它實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供了一種分布式系統(tǒng)服務(wù)器的存儲(chǔ)控制方法,應(yīng)用于包含j個(gè)物理磁盤的分布式系統(tǒng)中的服務(wù)器,該服務(wù)器包含虛擬機(jī)控制器,上述j個(gè)物理磁盤中每個(gè)物理磁盤的存儲(chǔ)空間被分為大小相等的小物理磁盤,每個(gè)物理磁盤內(nèi)的小物理磁盤的序號(hào)按照地址從低到高排序;上述j個(gè)物理磁盤各自具有大物理磁盤標(biāo)識(shí),各小物理磁盤具有小物理磁盤標(biāo)識(shí),上述小物理磁盤標(biāo)識(shí)由上述大物理磁盤標(biāo)識(shí)與上述小物理磁盤的序號(hào)組合得到,如圖1所示,包括:
小物理磁盤標(biāo)識(shí)的結(jié)構(gòu)請(qǐng)參閱圖2所示;
101:上述虛擬機(jī)控制器獲取小物理磁盤的分配狀態(tài),以及上述j個(gè)物理磁盤的活躍程度;
活躍程度可以用物理磁盤當(dāng)前或者綜合歷史數(shù)據(jù)統(tǒng)計(jì)得到的平均數(shù)據(jù)吞吐量,或者平均數(shù)據(jù)吞吐量占對(duì)應(yīng)物理磁盤的數(shù)據(jù)存儲(chǔ)能力的比例。越活躍的物理磁盤其數(shù)據(jù)存儲(chǔ)壓力越大,形成擁塞的可能性也將會(huì)越大。
102:上述虛擬機(jī)控制器在接收到虛擬機(jī)創(chuàng)建請(qǐng)求后,確定將要?jiǎng)?chuàng)建的虛擬機(jī)的存儲(chǔ)空間需求;依據(jù)上述小物理磁盤的分配狀態(tài)確定處于未分配狀態(tài)的小物理磁盤;從處于未分配狀態(tài)的小物理磁盤中選擇k個(gè)小物理磁盤作為目標(biāo)物理磁盤,上述k個(gè)小物理磁盤的存儲(chǔ)空間之和滿足上述存儲(chǔ)空間需求;上述k為2的l次方,上述l大于或等于3;上述k個(gè)小物理磁盤各自位于不同的物理磁盤;
虛擬機(jī)創(chuàng)建請(qǐng)求可以是任意設(shè)備發(fā)出的,假定我們的系統(tǒng)應(yīng)用于大型公司員工的虛擬機(jī)創(chuàng)建,那么可以是管理者發(fā)出的。對(duì)于不同的虛擬機(jī)可能會(huì)有不同的存儲(chǔ)空間需求,例如:做業(yè)務(wù)的員工和做軟件開發(fā)的員工,對(duì)存儲(chǔ)空間的需求是不一樣的。在本實(shí)施例中,可以假定每個(gè)小物理磁盤是500k,假定需要5000k的存儲(chǔ)空間,那么可以分成10個(gè)小物理磁盤。這10個(gè)小物理磁盤從那些相對(duì)較為空閑的物理磁盤中選取。由于不同的虛擬機(jī)被使用的可能性是不同的,因此通過對(duì)小物理磁盤的選擇性分配可以達(dá)到第一次均衡。
103:上述虛擬機(jī)控制器響應(yīng)上述虛擬機(jī)創(chuàng)建請(qǐng)求在上述目標(biāo)物理磁盤中安裝虛擬操作系統(tǒng)構(gòu)建虛擬機(jī);
在虛擬機(jī)被創(chuàng)建以后,虛擬機(jī)的操作系統(tǒng)被安裝,那么將會(huì)成為一個(gè)真正的虛擬機(jī)。虛擬機(jī)會(huì)獲知自己被分配的目標(biāo)物理磁盤,以及這些目標(biāo)物理磁盤所處的位置。
104:上述虛擬機(jī)控制器接收來自上述虛擬機(jī)的活躍度查詢請(qǐng)求,上述活躍度查詢請(qǐng)求由上述虛擬機(jī)在啟動(dòng)并運(yùn)行后,在運(yùn)行過程中有數(shù)據(jù)存儲(chǔ)需求時(shí)發(fā)送;
105:上述虛擬機(jī)控制器解析上述活躍度查詢請(qǐng)求,獲得在上述活躍度查詢請(qǐng)求中攜帶的上述目標(biāo)物理磁盤中各小物理磁盤的小物理磁盤標(biāo)識(shí);上述虛擬機(jī)控制器在接收到上述活躍度查詢請(qǐng)求后,向上述虛擬機(jī)返回上述目標(biāo)物理磁盤中各小物理磁盤所在的物理磁盤的活躍程度;
106:上述目標(biāo)物理磁盤中各小物理磁盤所在的物理磁盤的活躍程度用于上述虛擬機(jī)將需要存儲(chǔ)的數(shù)據(jù)拆分為大于2且小于或等于k/2個(gè)目標(biāo)數(shù)據(jù),按照上述目標(biāo)物理磁盤中各小物理磁盤所在的物理磁盤的活躍程度從低到高,將各目標(biāo)數(shù)據(jù)分別存儲(chǔ)到上述目標(biāo)物理磁盤中的各小物理磁盤。
本步驟中,設(shè)定目標(biāo)數(shù)據(jù)的數(shù)量,一方面可以保持?jǐn)?shù)據(jù)被分的目標(biāo)數(shù)據(jù)較多,提高安全性和存儲(chǔ)并行度;另一方面考慮到需要存儲(chǔ)到那些比較空閑的物理磁盤中,減少出現(xiàn)擁塞的可能性。
在本發(fā)明實(shí)施例中,特別設(shè)定了物理磁盤的標(biāo)識(shí)組成方式,方便后續(xù)物理磁盤的查找;另外,虛擬機(jī)的物理磁盤分配過程中充分考慮了各物理磁盤的活躍度,使得虛擬機(jī)能夠分配到較為合適的物理磁盤,相對(duì)較為不活躍的磁盤可以減少擁塞;另外,將需要存儲(chǔ)的數(shù)據(jù)進(jìn)行了拆分,按照物理磁盤的活躍度再次進(jìn)行數(shù)據(jù)分配,一方面進(jìn)一步減少了數(shù)據(jù)擁塞的可能性,提高數(shù)據(jù)存儲(chǔ)的并行度,另外還能夠降低數(shù)據(jù)被整體存儲(chǔ)到同一小物理磁盤導(dǎo)致可能被竊取的可能性,因此可以提高數(shù)據(jù)存儲(chǔ)的安全性。
優(yōu)選地,如圖2所示,上述虛擬機(jī)控制器接收上述虛擬機(jī)發(fā)送的查詢請(qǐng)求,在上述查詢請(qǐng)求中包含訪存操作指定的虛擬地址;上述目標(biāo)物理磁盤由其包含的各小物理磁盤按照上述各小物理磁盤所在的大物理磁盤標(biāo)識(shí)從低到高依次排序組成,上述虛擬地址以上述目標(biāo)物理磁盤的起始地址為起始虛擬地址順序編號(hào)獲得;在上述虛擬機(jī)控制器中存儲(chǔ)有地址映射表,上述地址映射表的表項(xiàng)包含:虛擬盤序號(hào)、小物理磁盤標(biāo)識(shí);
上述虛擬機(jī)控制器計(jì)算上述虛擬地址與上述r的商取整得到上述虛擬地址的虛擬盤序號(hào),計(jì)算上述虛擬地址與上述r的商取余得到偏移量;
上述虛擬機(jī)控制器查找上述地址映射表獲得包含上述虛擬地址的虛擬盤序號(hào)的表項(xiàng),并確定該表項(xiàng)中包含的小物理磁盤標(biāo)識(shí)作為目標(biāo)小物理磁盤標(biāo)識(shí);
上述虛擬機(jī)控制器截取上述小物理磁盤標(biāo)識(shí)的前p位作為目標(biāo)大物理磁盤標(biāo)識(shí),向上述目標(biāo)大物理磁盤標(biāo)識(shí)對(duì)應(yīng)的物理磁盤發(fā)送讀請(qǐng)求,在上述讀請(qǐng)求中包含上述小物理磁盤標(biāo)識(shí)以及上述偏移量,使上述小物理磁盤標(biāo)識(shí)對(duì)應(yīng)的小物理磁盤返回在上述小物理磁盤的起始位置偏移上述偏移量對(duì)應(yīng)物理地址的數(shù)據(jù);
上述虛擬機(jī)控制器向上述虛擬機(jī)發(fā)送上述小物理磁盤標(biāo)識(shí)對(duì)應(yīng)的小物理磁盤返回的數(shù)據(jù)。
在本實(shí)施例中,設(shè)定了一個(gè)特別的大物理磁盤標(biāo)識(shí)、小物理磁盤標(biāo)識(shí),這樣可以設(shè)定一個(gè)地址映射表,方便后續(xù)迅速查到到對(duì)應(yīng)的物理磁盤。由于在目標(biāo)物理磁盤中,虛擬機(jī)會(huì)認(rèn)為改目標(biāo)物理磁盤是一個(gè)真實(shí)的物理磁盤,這樣地址應(yīng)該是目標(biāo)物理磁盤中是連續(xù)的,然而實(shí)際上目標(biāo)物理磁盤中的存儲(chǔ)空間位于不同的物理磁盤,因此物理地址實(shí)際上是不同的;因此需要對(duì)虛擬地址進(jìn)行轉(zhuǎn)換;虛擬地址的使用是為了在虛擬機(jī)中方便應(yīng)用,例如:軟件編程等。虛擬地址是把上述目標(biāo)物理磁盤看作是一個(gè)整體的物理磁盤后獲得的地址,因?yàn)樵撎摂M地址并不與實(shí)際的物理磁盤地址對(duì)應(yīng),因此稱為虛擬地址。通過本發(fā)明實(shí)施例方案,可以迅速查到的對(duì)應(yīng)的物理磁盤和對(duì)應(yīng)的物理地址,因此可以快速存儲(chǔ)數(shù)據(jù),相應(yīng)地,也可以快速讀取數(shù)據(jù)。
進(jìn)一步地,鑒于本發(fā)明實(shí)施例所設(shè)定的特殊映射表,本發(fā)明實(shí)施例可以使用如下方式進(jìn)行計(jì)算:上述虛擬機(jī)控制器計(jì)算上述虛擬地址與上述r的商取整得到上述虛擬地址的虛擬盤序號(hào),計(jì)算上述虛擬地址與上述r的商取余得到偏移量包括:
上述虛擬機(jī)控制器截取上述虛擬地址的前r位得到上述虛擬盤序號(hào),截取上述虛擬地址的剩余位得到上述偏移量。
本發(fā)明實(shí)施例使用截取的方式得到結(jié)果,可以減少大量的邏輯運(yùn)算,因此可以減少運(yùn)算量,提高數(shù)據(jù)存儲(chǔ)的效率。
進(jìn)一步地,本發(fā)明實(shí)施例還提供了虛擬機(jī)刪除的方案,如下:在上述虛擬機(jī)被創(chuàng)建之后,上述方法還包括:
上述虛擬機(jī)控制器接收虛擬機(jī)刪除請(qǐng)求,上述虛擬機(jī)刪除請(qǐng)求用于請(qǐng)求刪除上述虛擬機(jī);
上述虛擬機(jī)控制器將上述目標(biāo)物理磁盤中包含的各小物理磁盤的分配狀態(tài)設(shè)置為未分配狀態(tài),不刪除上述目標(biāo)物理磁盤中包含的各小物理磁盤已經(jīng)被寫入的數(shù)據(jù)。
在本發(fā)明實(shí)施例中,由于數(shù)據(jù)存儲(chǔ)的方式是將數(shù)據(jù)拆分了存儲(chǔ),這樣安全性較高,在刪除虛擬機(jī)的時(shí)候,可以僅標(biāo)記小物理磁盤的分配狀態(tài),不進(jìn)行數(shù)據(jù)刪除操作;一方面可以保證數(shù)據(jù)安全性,另一方面還可以減少物理磁盤的擦寫次數(shù),提高物理磁盤的壽命。
本發(fā)明實(shí)施例還提供了后續(xù)再次分配物理磁盤的可選實(shí)現(xiàn)方案,如下:在上述虛擬機(jī)控制器將上述目標(biāo)物理磁盤中包含的各小物理磁盤的分配狀態(tài)設(shè)置為未分配狀態(tài)之后,上述方法還包括:
上述虛擬機(jī)控制器記錄上述目標(biāo)物理磁盤中包含的各小物理磁盤,在下一次創(chuàng)建新虛擬機(jī)時(shí),以隨機(jī)方式獲取上述新虛擬機(jī)所需的小物理磁盤,并確定獲取到的小物理磁盤中少于或等于兩個(gè)小物理磁盤屬于上述目標(biāo)物理磁盤中包含的小物理磁盤。
采用本實(shí)施例方案,可以進(jìn)一步提高數(shù)據(jù)安全性。這是基于數(shù)據(jù)被存儲(chǔ)到多個(gè)物理磁盤,雖然這些小物理磁盤中的數(shù)據(jù)并不具有連續(xù)性,但是如果這些物理磁盤又被分配到同一虛擬機(jī),鑒于本發(fā)明實(shí)施例所使用的特殊小物理磁盤組成目標(biāo)物理磁盤的方案,則有可能被恢復(fù)出來;為了避免這種情況的發(fā)生,提出了本實(shí)施例實(shí)現(xiàn)方案。
本發(fā)明實(shí)施例還提供了一種分布式存儲(chǔ)系統(tǒng),如圖3所示,可以一并參閱圖1所示,包括:虛擬機(jī)控制器、虛擬機(jī)和j個(gè)物理磁盤;上述j個(gè)物理磁盤中每個(gè)物理磁盤的存儲(chǔ)空間被分為大小相等的小物理磁盤,每個(gè)物理磁盤內(nèi)的小物理磁盤的序號(hào)按照地址從低到高排序;上述j個(gè)物理磁盤各自具有大物理磁盤標(biāo)識(shí),各小物理磁盤具有小物理磁盤標(biāo)識(shí),上述小物理磁盤標(biāo)識(shí)由上述大物理磁盤標(biāo)識(shí)與上述小物理磁盤的序號(hào)組合得到,其特征在于,
上述虛擬機(jī)控制器,用于獲取小物理磁盤的分配狀態(tài),以及上述j個(gè)物理磁盤的活躍程度;在接收到虛擬機(jī)創(chuàng)建請(qǐng)求后,確定將要?jiǎng)?chuàng)建的虛擬機(jī)的存儲(chǔ)空間需求;依據(jù)上述小物理磁盤的分配狀態(tài)確定處于未分配狀態(tài)的小物理磁盤;從處于未分配狀態(tài)的小物理磁盤中選擇k個(gè)小物理磁盤作為目標(biāo)物理磁盤,上述k個(gè)小物理磁盤的存儲(chǔ)空間之和滿足上述存儲(chǔ)空間需求;上述k大于或等于8;上述k個(gè)小物理磁盤各自位于不同的物理磁盤;響應(yīng)上述虛擬機(jī)創(chuàng)建請(qǐng)求在上述目標(biāo)物理磁盤中安裝虛擬操作系統(tǒng)構(gòu)建虛擬機(jī);
上述虛擬機(jī),用于啟動(dòng)并運(yùn)行,在上述虛擬機(jī)運(yùn)行過程中若有數(shù)據(jù)存儲(chǔ)需求,則向上述虛擬機(jī)控制器發(fā)送活躍度查詢請(qǐng)求,在上述活躍度查詢請(qǐng)求中攜帶上述目標(biāo)物理磁盤中各小物理磁盤的小物理磁盤標(biāo)識(shí);
上述虛擬機(jī)控制器,還用于在接收到上述活躍度查詢請(qǐng)求后,向上述虛擬機(jī)返回上述目標(biāo)物理磁盤中各小物理磁盤所在的物理磁盤的活躍程度;將需要存儲(chǔ)的數(shù)據(jù)拆分為大于2且小于或等于k/2個(gè)目標(biāo)數(shù)據(jù),按照上述目標(biāo)物理磁盤中各小物理磁盤所在的物理磁盤的活躍程度從低到高,將各目標(biāo)數(shù)據(jù)分別存儲(chǔ)到上述目標(biāo)物理磁盤中的各小物理磁盤。
小物理磁盤標(biāo)識(shí)的結(jié)構(gòu)請(qǐng)參閱圖2所示;
活躍程度可以用物理磁盤當(dāng)前或者綜合歷史數(shù)據(jù)統(tǒng)計(jì)得到的平均數(shù)據(jù)吞吐量,或者平均數(shù)據(jù)吞吐量占對(duì)應(yīng)物理磁盤的數(shù)據(jù)存儲(chǔ)能力的比例。越活躍的物理磁盤其數(shù)據(jù)存儲(chǔ)壓力越大,形成擁塞的可能性也將會(huì)越大。
虛擬機(jī)創(chuàng)建請(qǐng)求可以是任意設(shè)備發(fā)出的,假定我們的系統(tǒng)應(yīng)用于大型公司員工的虛擬機(jī)創(chuàng)建,那么可以是管理者發(fā)出的。對(duì)于不同的虛擬機(jī)可能會(huì)有不同的存儲(chǔ)空間需求,例如:做業(yè)務(wù)的員工和做軟件開發(fā)的員工,對(duì)存儲(chǔ)空間的需求是不一樣的。在本實(shí)施例中,可以假定每個(gè)小物理磁盤是500k,假定需要5000k的存儲(chǔ)空間,那么可以分成10個(gè)小物理磁盤。這10個(gè)小物理磁盤從那些相對(duì)較為空閑的物理磁盤中選取。由于不同的虛擬機(jī)被使用的可能性是不同的,因此通過對(duì)小物理磁盤的選擇性分配可以達(dá)到第一次均衡。
在虛擬機(jī)被創(chuàng)建以后,虛擬機(jī)的操作系統(tǒng)被安裝,那么將會(huì)成為一個(gè)真正的虛擬機(jī)。虛擬機(jī)會(huì)獲知自己被分配的目標(biāo)物理磁盤,以及這些目標(biāo)物理磁盤所處的位置。
本實(shí)施例中,設(shè)定目標(biāo)數(shù)據(jù)的數(shù)量,一方面可以保持?jǐn)?shù)據(jù)被分的目標(biāo)數(shù)據(jù)較多,提高安全性和存儲(chǔ)并行度;另一方面考慮到需要存儲(chǔ)到那些比較空閑的物理磁盤中,減少出現(xiàn)擁塞的可能性。
在本發(fā)明實(shí)施例中,特別設(shè)定了物理磁盤的標(biāo)識(shí)組成方式,方便后續(xù)物理磁盤的查找;另外,虛擬機(jī)的物理磁盤分配過程中充分考慮了各物理磁盤的活躍度,使得虛擬機(jī)能夠分配到較為合適的物理磁盤,相對(duì)較為不活躍的磁盤可以減少擁塞;另外,將需要存儲(chǔ)的數(shù)據(jù)進(jìn)行了拆分,按照物理磁盤的活躍度再次進(jìn)行數(shù)據(jù)分配,一方面進(jìn)一步減少了數(shù)據(jù)擁塞的可能性,提高數(shù)據(jù)存儲(chǔ)的并行度,另外還能夠降低數(shù)據(jù)被整體存儲(chǔ)到同一小物理磁盤導(dǎo)致可能被竊取的可能性,因此可以提高數(shù)據(jù)存儲(chǔ)的安全性。
優(yōu)選地,如圖2所示,上述大物理磁盤標(biāo)識(shí)為p位的二進(jìn)制字符串,上述小物理磁盤標(biāo)識(shí)為q位的二進(jìn)制字符串;上述小物理磁盤的序號(hào)為位于小磁盤標(biāo)識(shí)的低位部分,每個(gè)小物理磁盤的存儲(chǔ)空間為r位;
上述虛擬機(jī),還用于在確定需要進(jìn)行訪存操作后,確定上述訪存操作指定的虛擬地址;上述目標(biāo)物理磁盤由其包含的各小物理磁盤按照上述各小物理磁盤所在的大物理磁盤標(biāo)識(shí)從低到高依次排序組成,上述虛擬地址以上述目標(biāo)物理磁盤的起始地址為起始虛擬地址順序編號(hào)獲得;在上述虛擬機(jī)中存儲(chǔ)有地址映射表,上述地址映射表的表項(xiàng)包含;虛擬盤序號(hào)、小物理磁盤標(biāo)識(shí);計(jì)算上述虛擬地址與上述r的商取整得到上述虛擬地址的虛擬盤序號(hào),計(jì)算上述虛擬地址與上述r的商取余得到偏移量;查找上述地址映射表獲得包含上述虛擬地址的虛擬盤序號(hào)的表項(xiàng),并確定該表項(xiàng)中包含的小物理磁盤標(biāo)識(shí)作為目標(biāo)小物理磁盤標(biāo)識(shí);截取上述小物理磁盤標(biāo)識(shí)的前p位作為目標(biāo)大物理磁盤標(biāo)識(shí),向上述目標(biāo)大物理磁盤標(biāo)識(shí)對(duì)應(yīng)的物理磁盤發(fā)送讀請(qǐng)求,在上述讀請(qǐng)求中包含上述小物理磁盤標(biāo)識(shí)以及上述偏移量,使上述小物理磁盤標(biāo)識(shí)對(duì)應(yīng)的小物理磁盤返回在上述小物理磁盤的起始位置偏移上述偏移量對(duì)應(yīng)物理地址的數(shù)據(jù)。
在本實(shí)施例中,設(shè)定了一個(gè)特別的大物理磁盤標(biāo)識(shí)、小物理磁盤標(biāo)識(shí),這樣可以設(shè)定一個(gè)地址映射表,方便后續(xù)迅速查到到對(duì)應(yīng)的物理磁盤。由于在目標(biāo)物理磁盤中,虛擬機(jī)會(huì)認(rèn)為改目標(biāo)物理磁盤是一個(gè)真實(shí)的物理磁盤,這樣地址應(yīng)該是目標(biāo)物理磁盤中是連續(xù)的,然而實(shí)際上目標(biāo)物理磁盤中的存儲(chǔ)空間位于不同的物理磁盤,因此物理地址實(shí)際上是不同的;因此需要對(duì)虛擬地址進(jìn)行轉(zhuǎn)換;虛擬地址的使用是為了在虛擬機(jī)中方便應(yīng)用,例如:軟件編程等。虛擬地址是把上述目標(biāo)物理磁盤看作是一個(gè)整體的物理磁盤后獲得的地址,因?yàn)樵撎摂M地址并不與實(shí)際的物理磁盤地址對(duì)應(yīng),因此稱為虛擬地址。通過本發(fā)明實(shí)施例方案,可以迅速查到的對(duì)應(yīng)的物理磁盤和對(duì)應(yīng)的物理地址,因此可以快速存儲(chǔ)數(shù)據(jù),相應(yīng)地,也可以快速讀取數(shù)據(jù)。
進(jìn)一步地,鑒于本發(fā)明實(shí)施例所設(shè)定的特殊映射表,本發(fā)明實(shí)施例可以使用如下方式進(jìn)行計(jì)算:上述虛擬機(jī),用于計(jì)算上述虛擬地址與上述r的商取整得到上述虛擬地址的虛擬盤序號(hào),計(jì)算上述虛擬地址與上述r的商取余得到偏移量包括:
截取上述虛擬地址的前r位得到上述虛擬盤序號(hào),截取上述虛擬地址的剩余位得到上述偏移量。
本發(fā)明實(shí)施例使用截取的方式得到結(jié)果,可以減少大量的邏輯運(yùn)算,因此可以減少運(yùn)算量,提高數(shù)據(jù)存儲(chǔ)的效率。
進(jìn)一步地,本發(fā)明實(shí)施例還提供了虛擬機(jī)刪除的方案,如下:上述虛擬機(jī)控制器,還用于在上述虛擬機(jī)被創(chuàng)建之后,接收虛擬機(jī)刪除請(qǐng)求,上述虛擬機(jī)刪除請(qǐng)求用于請(qǐng)求刪除上述虛擬機(jī);將上述目標(biāo)物理磁盤中包含的各小物理磁盤的分配狀態(tài)設(shè)置為未分配狀態(tài),不刪除上述目標(biāo)物理磁盤中包含的各小物理磁盤已經(jīng)被寫入的數(shù)據(jù)。
在本發(fā)明實(shí)施例中,由于數(shù)據(jù)存儲(chǔ)的方式是將數(shù)據(jù)拆分了存儲(chǔ),這樣安全性較高,在刪除虛擬機(jī)的時(shí)候,可以僅標(biāo)記小物理磁盤的分配狀態(tài),不進(jìn)行數(shù)據(jù)刪除操作;一方面可以保證數(shù)據(jù)安全性,另一方面還可以減少物理磁盤的擦寫次數(shù),提高物理磁盤的壽命。
本發(fā)明實(shí)施例還提供了后續(xù)再次分配物理磁盤的可選實(shí)現(xiàn)方案,如下:上述虛擬機(jī)控制器,還用于在將上述目標(biāo)物理磁盤中包含的各小物理磁盤的分配狀態(tài)設(shè)置為未分配狀態(tài)之后,記錄上述目標(biāo)物理磁盤中包含的各小物理磁盤,在下一次創(chuàng)建新虛擬機(jī)時(shí),以隨機(jī)方式獲取上述新虛擬機(jī)所需的小物理磁盤,并確定獲取到的小物理磁盤中少于或等于兩個(gè)小物理磁盤屬于上述目標(biāo)物理磁盤中包含的小物理磁盤。
采用本實(shí)施例方案,可以進(jìn)一步提高數(shù)據(jù)安全性。這是基于數(shù)據(jù)被存儲(chǔ)到多個(gè)物理磁盤,雖然這些小物理磁盤中的數(shù)據(jù)并不具有連續(xù)性,但是如果這些物理磁盤又被分配到同一虛擬機(jī),鑒于本發(fā)明實(shí)施例所使用的特殊小物理磁盤組成目標(biāo)物理磁盤的方案,則有可能被恢復(fù)出來;為了避免這種情況的發(fā)生,提出了本實(shí)施例實(shí)現(xiàn)方案。
本發(fā)明實(shí)施例還提供了一種服務(wù)器,該服務(wù)器包含虛擬機(jī)控制器,應(yīng)用于包含上述虛擬機(jī)控制器、虛擬機(jī)和j個(gè)物理磁盤的分布式存儲(chǔ)系統(tǒng);上述j個(gè)物理磁盤中每個(gè)物理磁盤的存儲(chǔ)空間被分為大小相等的小物理磁盤,每個(gè)物理磁盤內(nèi)的小物理磁盤的序號(hào)按照地址從低到高排序;上述j個(gè)物理磁盤各自具有大物理磁盤標(biāo)識(shí),各小物理磁盤具有小物理磁盤標(biāo)識(shí),上述小物理磁盤標(biāo)識(shí)由上述大物理磁盤標(biāo)識(shí)與上述小物理磁盤的序號(hào)組合得到,如圖4所示,上述虛擬機(jī)控制器包括:
監(jiān)測(cè)單元401,用于獲取小物理磁盤的分配狀態(tài),以及上述j個(gè)物理磁盤的活躍程度;
接收單元402,用于接收虛擬機(jī)創(chuàng)建請(qǐng)求;接收來自上述虛擬機(jī)的活躍度查詢請(qǐng)求;上述活躍度查詢請(qǐng)求由上述虛擬機(jī)在啟動(dòng)并運(yùn)行后,在運(yùn)行過程中有數(shù)據(jù)存儲(chǔ)需求時(shí)發(fā)送;
處理器單元403,用于在接收到虛擬機(jī)創(chuàng)建請(qǐng)求后,確定將要?jiǎng)?chuàng)建的虛擬機(jī)的存儲(chǔ)空間需求;依據(jù)上述小物理磁盤的分配狀態(tài)確定處于未分配狀態(tài)的小物理磁盤;從處于未分配狀態(tài)的小物理磁盤中選擇k個(gè)小物理磁盤作為目標(biāo)物理磁盤,上述k個(gè)小物理磁盤的存儲(chǔ)空間之和滿足上述存儲(chǔ)空間需求;上述k為2的l次方,上述l大于或等于3;上述k個(gè)小物理磁盤各自位于不同的物理磁盤;響應(yīng)上述虛擬機(jī)創(chuàng)建請(qǐng)求在上述目標(biāo)物理磁盤中安裝虛擬操作系統(tǒng)構(gòu)建虛擬機(jī);解析上述活躍度查詢請(qǐng)求,獲得在上述活躍度查詢請(qǐng)求中攜帶的上述目標(biāo)物理磁盤中各小物理磁盤的小物理磁盤標(biāo)識(shí);
發(fā)送單元404,用于向上述虛擬機(jī)返回上述目標(biāo)物理磁盤中各小物理磁盤所在的物理磁盤的活躍程度;上述目標(biāo)物理磁盤中各小物理磁盤所在的物理磁盤的活躍程度用于上述虛擬機(jī)將需要存儲(chǔ)的數(shù)據(jù)拆分為大于2且小于或等于k/2個(gè)目標(biāo)數(shù)據(jù),按照上述目標(biāo)物理磁盤中各小物理磁盤所在的物理磁盤的活躍程度從低到高,將各目標(biāo)數(shù)據(jù)分別存儲(chǔ)到上述目標(biāo)物理磁盤中的各小物理磁盤。
小物理磁盤標(biāo)識(shí)的結(jié)構(gòu)請(qǐng)參閱圖2所示;
活躍程度可以用物理磁盤當(dāng)前或者綜合歷史數(shù)據(jù)統(tǒng)計(jì)得到的平均數(shù)據(jù)吞吐量,或者平均數(shù)據(jù)吞吐量占對(duì)應(yīng)物理磁盤的數(shù)據(jù)存儲(chǔ)能力的比例。越活躍的物理磁盤其數(shù)據(jù)存儲(chǔ)壓力越大,形成擁塞的可能性也將會(huì)越大。
虛擬機(jī)創(chuàng)建請(qǐng)求可以是任意設(shè)備發(fā)出的,假定我們的系統(tǒng)應(yīng)用于大型公司員工的虛擬機(jī)創(chuàng)建,那么可以是管理者發(fā)出的。對(duì)于不同的虛擬機(jī)可能會(huì)有不同的存儲(chǔ)空間需求,例如:做業(yè)務(wù)的員工和做軟件開發(fā)的員工,對(duì)存儲(chǔ)空間的需求是不一樣的。在本實(shí)施例中,可以假定每個(gè)小物理磁盤是500k,假定需要5000k的存儲(chǔ)空間,那么可以分成10個(gè)小物理磁盤。這10個(gè)小物理磁盤從那些相對(duì)較為空閑的物理磁盤中選取。由于不同的虛擬機(jī)被使用的可能性是不同的,因此通過對(duì)小物理磁盤的選擇性分配可以達(dá)到第一次均衡。
在虛擬機(jī)被創(chuàng)建以后,虛擬機(jī)的操作系統(tǒng)被安裝,那么將會(huì)成為一個(gè)真正的虛擬機(jī)。虛擬機(jī)會(huì)獲知自己被分配的目標(biāo)物理磁盤,以及這些目標(biāo)物理磁盤所處的位置。
本實(shí)施例中,設(shè)定目標(biāo)數(shù)據(jù)的數(shù)量,一方面可以保持?jǐn)?shù)據(jù)被分的目標(biāo)數(shù)據(jù)較多,提高安全性和存儲(chǔ)并行度;另一方面考慮到需要存儲(chǔ)到那些比較空閑的物理磁盤中,減少出現(xiàn)擁塞的可能性。
在本發(fā)明實(shí)施例中,特別設(shè)定了物理磁盤的標(biāo)識(shí)組成方式,方便后續(xù)物理磁盤的查找;另外,虛擬機(jī)的物理磁盤分配過程中充分考慮了各物理磁盤的活躍度,使得虛擬機(jī)能夠分配到較為合適的物理磁盤,相對(duì)較為不活躍的磁盤可以減少擁塞;另外,將需要存儲(chǔ)的數(shù)據(jù)進(jìn)行了拆分,按照物理磁盤的活躍度再次進(jìn)行數(shù)據(jù)分配,一方面進(jìn)一步減少了數(shù)據(jù)擁塞的可能性,提高數(shù)據(jù)存儲(chǔ)的并行度,另外還能夠降低數(shù)據(jù)被整體存儲(chǔ)到同一小物理磁盤導(dǎo)致可能被竊取的可能性,因此可以提高數(shù)據(jù)存儲(chǔ)的安全性。
優(yōu)選地,如圖2所示,上述大物理磁盤標(biāo)識(shí)為p位的二進(jìn)制字符串,上述小物理磁盤標(biāo)識(shí)為q位的二進(jìn)制字符串;上述小物理磁盤的序號(hào)為位于小磁盤標(biāo)識(shí)的低位部分,每個(gè)小物理磁盤的存儲(chǔ)空間為r位;
上述接收單元402,還用于接收上述虛擬機(jī)發(fā)送的查詢請(qǐng)求,在上述查詢請(qǐng)求中包含訪存操作指定的虛擬地址;上述目標(biāo)物理磁盤由其包含的各小物理磁盤按照上述各小物理磁盤所在的大物理磁盤標(biāo)識(shí)從低到高依次排序組成,上述虛擬地址以上述目標(biāo)物理磁盤的起始地址為起始虛擬地址順序編號(hào)獲得;在上述虛擬機(jī)控制器中存儲(chǔ)有地址映射表,上述地址映射表的表項(xiàng)包含:虛擬盤序號(hào)、小物理磁盤標(biāo)識(shí);
上述處理器單元403,還用于計(jì)算上述虛擬地址與上述r的商取整得到上述虛擬地址的虛擬盤序號(hào),計(jì)算上述虛擬地址與上述r的商取余得到偏移量;查找上述地址映射表獲得包含上述虛擬地址的虛擬盤序號(hào)的表項(xiàng),并確定該表項(xiàng)中包含的小物理磁盤標(biāo)識(shí)作為目標(biāo)小物理磁盤標(biāo)識(shí);截取上述小物理磁盤標(biāo)識(shí)的前p位作為目標(biāo)大物理磁盤標(biāo)識(shí);
所述發(fā)送單元404,還用于向上述目標(biāo)大物理磁盤標(biāo)識(shí)對(duì)應(yīng)的物理磁盤發(fā)送讀請(qǐng)求,在上述讀請(qǐng)求中包含上述小物理磁盤標(biāo)識(shí)以及上述偏移量,使上述小物理磁盤標(biāo)識(shí)對(duì)應(yīng)的小物理磁盤返回在上述小物理磁盤的起始位置偏移上述偏移量對(duì)應(yīng)物理地址的數(shù)據(jù);向上述虛擬機(jī)發(fā)送上述小物理磁盤標(biāo)識(shí)對(duì)應(yīng)的小物理磁盤返回的數(shù)據(jù)。
在本實(shí)施例中,設(shè)定了一個(gè)特別的大物理磁盤標(biāo)識(shí)、小物理磁盤標(biāo)識(shí),這樣可以設(shè)定一個(gè)地址映射表,方便后續(xù)迅速查到到對(duì)應(yīng)的物理磁盤。由于在目標(biāo)物理磁盤中,虛擬機(jī)會(huì)認(rèn)為改目標(biāo)物理磁盤是一個(gè)真實(shí)的物理磁盤,這樣地址應(yīng)該是目標(biāo)物理磁盤中是連續(xù)的,然而實(shí)際上目標(biāo)物理磁盤中的存儲(chǔ)空間位于不同的物理磁盤,因此物理地址實(shí)際上是不同的;因此需要對(duì)虛擬地址進(jìn)行轉(zhuǎn)換;虛擬地址的使用是為了在虛擬機(jī)中方便應(yīng)用,例如:軟件編程等。虛擬地址是把上述目標(biāo)物理磁盤看作是一個(gè)整體的物理磁盤后獲得的地址,因?yàn)樵撎摂M地址并不與實(shí)際的物理磁盤地址對(duì)應(yīng),因此稱為虛擬地址。通過本發(fā)明實(shí)施例方案,可以迅速查到的對(duì)應(yīng)的物理磁盤和對(duì)應(yīng)的物理地址,因此可以快速存儲(chǔ)數(shù)據(jù),相應(yīng)地,也可以快速讀取數(shù)據(jù)。
進(jìn)一步地,鑒于本發(fā)明實(shí)施例所設(shè)定的特殊映射表,本發(fā)明實(shí)施例可以使用如下方式進(jìn)行計(jì)算:上述處理器單元403,用于計(jì)算上述虛擬地址與上述r的商取整得到上述虛擬地址的虛擬盤序號(hào),計(jì)算上述虛擬地址與上述r的商取余得到偏移量包括:
截取上述虛擬地址的前r位得到上述虛擬盤序號(hào),截取上述虛擬地址的剩余位得到上述偏移量。
本發(fā)明實(shí)施例使用截取的方式得到結(jié)果,可以減少大量的邏輯運(yùn)算,因此可以減少運(yùn)算量,提高數(shù)據(jù)存儲(chǔ)的效率。
進(jìn)一步地,本發(fā)明實(shí)施例還提供了虛擬機(jī)刪除的方案,如下:上述接收單元402,還用于在上述虛擬機(jī)被創(chuàng)建之后,接收虛擬機(jī)刪除請(qǐng)求,上述虛擬機(jī)刪除請(qǐng)求用于請(qǐng)求刪除上述虛擬機(jī);
上述處理器單元403,還用于將上述目標(biāo)物理磁盤中包含的各小物理磁盤的分配狀態(tài)設(shè)置為未分配狀態(tài),不刪除上述目標(biāo)物理磁盤中包含的各小物理磁盤已經(jīng)被寫入的數(shù)據(jù)。
在本發(fā)明實(shí)施例中,由于數(shù)據(jù)存儲(chǔ)的方式是將數(shù)據(jù)拆分了存儲(chǔ),這樣安全性較高,在刪除虛擬機(jī)的時(shí)候,可以僅標(biāo)記小物理磁盤的分配狀態(tài),不進(jìn)行數(shù)據(jù)刪除操作;一方面可以保證數(shù)據(jù)安全性,另一方面還可以減少物理磁盤的擦寫次數(shù),提高物理磁盤的壽命。
本發(fā)明實(shí)施例還提供了后續(xù)再次分配物理磁盤的可選實(shí)現(xiàn)方案,如下:上述處理器單元403,還用于在上述虛擬機(jī)控制器將上述目標(biāo)物理磁盤中包含的各小物理磁盤的分配狀態(tài)設(shè)置為未分配狀態(tài)之后,記錄上述目標(biāo)物理磁盤中包含的各小物理磁盤,在下一次創(chuàng)建新虛擬機(jī)時(shí),以隨機(jī)方式獲取上述新虛擬機(jī)所需的小物理磁盤,并確定獲取到的小物理磁盤中少于或等于兩個(gè)小物理磁盤屬于上述目標(biāo)物理磁盤中包含的小物理磁盤。
采用本實(shí)施例方案,可以進(jìn)一步提高數(shù)據(jù)安全性。這是基于數(shù)據(jù)被存儲(chǔ)到多個(gè)物理磁盤,雖然這些小物理磁盤中的數(shù)據(jù)并不具有連續(xù)性,但是如果這些物理磁盤又被分配到同一虛擬機(jī),鑒于本發(fā)明實(shí)施例所使用的特殊小物理磁盤組成目標(biāo)物理磁盤的方案,則有可能被恢復(fù)出來;為了避免這種情況的發(fā)生,提出了本實(shí)施例實(shí)現(xiàn)方案。
本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述各方法實(shí)施例中的全部或部分步驟是可以通過程序來指令相關(guān)的硬件完成,相應(yīng)的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。
以上僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明實(shí)施例揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。