一種分布式物理磁碟的使用方法、及虛擬機與流程
2023-12-09 17:42:22 1

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