一種分布式系統伺服器的存儲控制方法、及伺服器與流程
2023-10-20 11:06:32

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