本發明涉及一種虛擬化資源聚合技術,特別是涉及一種虛擬化資源的分配和調度方法及系統。
背景技術:
在云計算領域,虛擬化和效用計算的引入,給云計算的應用和發展帶來了更多的機會,同時也提出了更多和更高的挑戰。由于云計算中軟硬件和網絡應用的多樣性和豐富性、網絡應用的負載的實時動態變化性和人工管理復雜系統的限制性,給虛擬化云計算的控制和管理帶來了新的問題。
而目前本領域中并沒有對多個云環境進行綜合效能評估的機制,且無法根據云環境實際運行效能和資源使用情況,在多個云環境之間對虛擬機(資源實例)進行資源統一分配和調度的決策,這些成為了制約運計算系統發展的一個主要因素。
技術實現要素:
因此,本發明的目的在于提供一種虛擬化資源的分配和調度方法及系統,其可對云環境進行實時監控,并可通過對多個云環境的進行效能評估,實現在多個云環境之間進行虛擬化資源的調度和管理。
為了實現上述目的,本發明提供一種虛擬化資源的分配和調度方法,其特點在于,該方法應用于多個云環境中,該方法包括:
(a)監測并獲取每一所述云環境的云環境參數;
(b)獲取一資源請求,根據所述云環境參數與所述資源請求形成一虛擬化資源的分配和調度決策,以將所述資源請求分配至符合所述資源請求的云環境中。
在本發明的一實施例中,在步驟(b)中,所述根據所述云環境參數與所述資源請求形成一虛擬化資源的分配和調度決策的步驟是將所述資源請求與 所述云環境參數、和/或通過對所述云環境參數進行計算獲得的云環境指標進行適配,從而獲得符合所述資源請求的云環境,并形成所述虛擬化資源的分配和調度決策。
在本發明的一實施例中,每一所述云環境包括有虛擬機、虛擬化平臺及物理資源。
在本發明的一實施例中,所述云環境參數包括以下參數中的至少一種:物理資源的配置參數、物理資源的性能參數、虛擬機的性能參數、虛擬化平臺的性能參數、云環境的地理位置參數、資源價格參數。
在本發明的一實施例中,所述物理資源的配置參數至少包括cpu、內存、磁盤、和/或網絡的配置參數;所述物理資源的性能參數至少包括物理機的cpu利用率、內存利用率、磁盤i/o負載、和/或網卡流量帶寬;所述虛擬機的性能參數至少包括虛擬機的cpu利用率、內存利用率、磁盤i/o負載、和/或網卡流量帶寬。
在本發明的一實施例中,所述云環境參數是通過程序自動采集方式獲取,或是通過人工輸入方式獲取。
在本發明的一實施例中,所述云環境指標至少包括:cpu利用率指標、內存利用率指標、i/o利用率指標、網絡使用率指標、資源空閑率指標、和/或系統運行異常指標;其中,所述cpu利用率指標是通過對每一所述云環境內的所有物理機和虛擬機的cpu利用率進行綜合計算獲得;所述內存利用率指標是通過對每一所述云環境內的所有物理機和虛擬機的內存利用率進行綜合計算獲得;所述i/o利用率指標是通過對每一所述云環境內的所有物理機和虛擬機的i/o利用率進行綜合計算獲得;所述網絡使用率指標是通過對每一所述云環境內的所有物理機和虛擬機的網絡利用率進行綜合計算獲得;所述資源空閑率指標是通過對每一所述云環境內的所有物理機和虛擬機的cpu、內存、i/o、網絡空閑資源進行綜合計算獲得;所述系統運行異常指標是通過對每一所述云環境內的所有物理機和虛擬機的運行異常數據進行綜合計算獲得。
在本發明的一實施例中,在步驟(b)中是通過淘汰方式和/或指標方式進行適配,以獲得符合所述資源請求的云環境。
在本發明的一實施例中,在步驟(b)中,是先判斷所述資源請求要求的云環境數量,如果要求的云環境數量是單個,則通過淘汰方式對備選云環境進 行適配以獲得單個最佳云環境作為符合所述資源請求的云環境,或通過指標方式對備選云環境進行適配以獲得綜合評價最高的云環境作為符合所述資源請求的云環境;如果要求的云環境數量是多個,則通過指標方式對備選云環境進行適配獲得綜合評價排名最高的前n個云環境作為符合所述資源請求的云環境。
在本發明的一實施例中,所述淘汰方式是采用動態匹配規則,直接根據所述云環境參數和/或所述云環境指標對備選云環境進行匹配,如果備選云環境滿足一條件,則被淘汰掉,否則進入下一條規則進行匹配;并且,當剩余一個云環境時,停止后面的規則匹配,所述剩余一個云環境作為所述單個最佳云環境,如果全部規則匹配完成還沒有確定唯一的云環境,則返回當前排序狀態下的第一個云環境作為所述單個最佳云環境。
在本發明的一實施例中,所述指標方式是通過對備選云環境的所述云環境參數和/或所述云環境指標進行分析和評估,并對評估結果進行比較和排序,綜合評價排名最高的前n個云環境作為符合所述資源請求的云環境。
為了實現上述目的,本發明還提供一種虛擬化資源的分配和調度系統,其特點在于,包括:
監測和數據獲取單元,用于監測并獲取每一所述云環境的云環境參數,以及獲取資源請求;
分析評估單元,與所述監測和數據獲取單元連接,用于對所述云環境參數進行計算以獲得每一所述云環境的云環境指標;
調度管理單元,與所述分析評估單元連接,用于根據所述資源請求與所述云環境參數、和/或所述云環境指標進行適配,形成一虛擬化資源的分配和調度決策,以將所述資源請求分配至符合所述資源請求的云環境中。
通過本發明,能夠隨時監測云環境的資源和運行狀況。并且,通過對云環境的監測和數據收集,可以實現對云環境的效能評估,而通過云環境的效能評估方式,可實現在多個云環境之間進行虛擬化資源的分配和調整的決策機制。
通過本發明,一方面,當某個云環境出現資源不足時,可以將新的資源請求自動調配到其它資源充足的云環境中,從而為異地和異構的云環境的資源整合提供可能。另一方面,也可以根據用戶的資源請求,例如成本要求、性能要求、穩定性要求等,自動適配最佳的云環境,為客戶創建虛擬機(資源實例), 從而不僅可為用戶提供最佳性價比的虛擬化產品,而且能避免資源浪費或不足。
附圖說明
為讓本發明的上述和其他目的、特征、優點與實施例能更明顯易懂,所附附圖的說明如下:
圖1為本發明的虛擬化資源分配和調度方法示意圖;
圖2為本發明的虛擬化資源分配和調度方法的一較佳實施例的示意圖;
圖3為本發明中通過淘汰方式進行適配的邏輯示意圖;
圖4為本發明的虛擬化資源分配和調度系統的結構示意圖。
具體實施方式
下文是舉實施例配合所附附圖作詳細說明,但所提供的實施例并非用以限制本發明所涵蓋的范圍。
如圖1所示,本發明的虛擬化資源的分配和調度方法是應用于多個云環境中,該方法包括:
(a)監測并獲取每一云環境的云環境參數;
(b)獲取一資源請求,根據所述云環境參數與所述資源請求形成一虛擬化資源的分配和調度決策,以將所述資源請求分配至符合所述資源請求的云環境中。
其中,在步驟(a)中,是對所有云環境進行全面監測,并可根據需要來獲取相應的云環境參數。在本發明一實施例中,所獲取的云環境參數可以包括以下參數中的至少一種:物理資源的配置參數、物理資源的性能參數、虛擬機的性能參數、虛擬化平臺的性能參數、云環境的地理位置參數、資源價格參數。
所述物理資源的配置參數至少包括cpu的配置參數(例如cpu的核心數、主頻等)、內存的配置參數(例如內存大小等)、磁盤的配置參數(例如磁盤大小、磁盤接口類型、磁盤i/o物理指標等)、和/或網絡的配置參數(例如網卡帶寬、網絡接入帶寬等)等硬件配置參數。
所述物理資源的性能參數至少包括物理機的cpu利用率、內存利用率、磁盤i/o負載、和/或網卡流量帶寬等參數。
所述虛擬機的性能參數至少包括虛擬機的cpu利用率、內存利用率、磁盤i/o負載、和/或網卡流量帶寬等參數。
在本發明其它實施例中,所述云環境參數還可以包括其它參數,這同樣并不作為對本發明的限制。并且,在本發明中,所述云環境參數可以是通過程序自動采集方式獲取,例如所述物理資源的配置參數、物理資源的性能參數、虛擬機的性能參數、虛擬化平臺的性能參數等,或是通過人工輸入方式獲取,例如所述云環境的地理位置參數、資源價格參數等。
其中,在步驟(b)中,所述根據所述云環境參數與所述資源請求形成一虛擬化資源的分配和調度決策的步驟是將所述資源請求與所述云環境參數、和/或通過對所述云環境參數進行計算獲得的云環境指標進行適配,從而獲得符合所述資源請求的云環境,并形成所述虛擬化資源的分配和調度決策。
在本發明中,通過一算法對所述云環境參數進行計算,可以獲得每一云環境的云環境指標。在一實施例中,所述云環境指標例如可至少包括:cpu利用率指標、內存利用率指標、i/o利用率指標、網絡使用率指標、資源空閑率指標、和/或系統運行異常指標等。在其它實施例中,所述云環境指標還可包括每一個云環境的整體指標,其可通過對上述各個云環境指標進行加權計算獲得,例如性價比整體指標等。
其中,所述cpu利用率指標是通過對每一所述云環境內的所有物理機和虛擬機的cpu利用率進行綜合計算獲得。所述內存利用率指標是通過對每一所述云環境內的所有物理機和虛擬機的內存利用率進行綜合計算獲得。所述i/o利用率指標是通過對每一所述云環境內的所有物理機和虛擬機的i/o利用率進行綜合計算獲得。所述網絡使用率指標是通過對每一所述云環境內的所有物理機和虛擬機的網絡利用率進行綜合計算獲得。所述資源空閑率指標是通過對每一所述云環境內的所有物理機和虛擬機的cpu、內存、i/o、網絡空閑資源進行綜合計算獲得。所述系統運行異常指標是通過對每一所述云環境內的所有物理機和虛擬機的運行異常數據進行綜合計算獲得。在本發明中,計算所述云環境指標所采用的算法為已知算法,在此不再贅述。
在本發明中,步驟(b)中的所述資源請求是來源于用戶,其包括多個預設條件,例如要求的云環境數量、成本要求、性能要求、穩定性要求等。根據不同的資源請求,可以采用不同方法來進行適配。例如,可以直接根據所述資 源請求與所述云環境參數進行適配,也可以根據所述資源請求與通過對所述云環境參數進行計算獲得的云環境指標進行適配,或者是根據所述資源請求與所述云環境參數和所述云環境指標進行適配。在一實施例中,所述資源請求的預設條件可以分為兩種類型:一種為篩選型預設條件,即直接根據云環境參數,就能選擇出符合條件的云環境,例如云環境的地理位置參數、資源價格參數等;另一種為比較型預設條件,即通過對云環境參數和/或云環境指標進行分析評估,并對評估結果進行比較和排序,從而得出符合條件的云環境,例如性價比等。
在本發明的一實施例中,所述步驟(b)中是通過淘汰方式和/或指標方式進行適配,以獲得符合所述資源請求的云環境。所述淘汰方式、指標方式的具體方法將在后文進行詳細描述。而在其它實施例中,本領域技術人員可以通過其它方式來進行適配,以獲得符合所述資源請求的云環境,這些并不作為對本發明的限制。
在本發明的另一實施例中,在步驟(b)中,是先判斷所述資源請求要求的云環境數量。如果要求的云環境數量是單個,則通過淘汰方式對備選云環境進行適配以獲得單個最佳云環境作為符合所述資源請求的云環境,或通過指標方式對備選云環境進行適配以獲得綜合評價最高的云環境作為符合所述資源請求的云環境。如果要求的云環境數量是多個,則通過指標方式對備選云環境進行適配獲得綜合評價排名最高的前n個云環境作為符合所述資源請求的云環境。
如圖2所示,其示出了本發明的虛擬化資源的分配和調度方法的一個較佳實施例,其中:
當獲取到一個新的資源請求時,先判斷該資源請求要求的云環境數量。
如果要求的云環境數量為單個云環境,則判斷該資源請求中是否包含比較型預設條件。如果包含比較型預設條件,則先進一步判斷是否包含篩選型預設條件;若包含篩選型預設條件,則根據所述篩選型預設條件篩選云環境以獲得備選云環境,否則認為所有云環境皆為備選云環境;之后,即可通過指標方式對備選云環境進行分析評估,并根據所述比較型預設條件對云環境指標進行選擇,從而獲得綜合評價最高的云環境作為符合所述資源請求的云環境。如果不包含比較型預設條件,則先進一步判斷是否包含篩選型預設條件;若包含篩選 型預設條件,則根據所述篩選型預設條件篩選云環境以獲得備選云環境,否則認為所有云環境皆為備選云環境;之后,即可通過淘汰方式對備選云環境進行分析評估,從而獲得單個最佳云環境作為符合所述資源請求的云環境。
如果要求的云環境數量為允許多個云環境,則可先進一步判斷該資源請求中是否包含篩選型預設條件。如果包含篩選型預設條件,則根據所述篩選型預設條件篩選云環境以獲得備選云環境,并通過指標方式對備選云環境進行分析評估;否則認為所有云環境皆為備選云環境,可直接通過指標方式對備選云環境進行分析評估;之后,再進一步判斷該資源請求中是否還包含篩選型預設條件,如果包含篩選型預設條件,則根據所述篩選型預設條件和云環境指標進行選擇,否則直接根據云環境指標進行選擇;最終,綜合評價排名最高的前n個云環境作為符合所述資源請求的云環境。
在本發明中,所述淘汰方式是采用動態匹配規則,直接根據所述云環境參數和/或所述云環境指標對備選云環境進行匹配,如果備選云環境滿足一條件,則被淘汰掉,否則進入下一條規則進行匹配;并且,當剩余一個云環境時,停止后面的規則匹配,所述剩余一個云環境作為所述單個最佳云環境,如果全部規則匹配完成還沒有確定唯一的云環境,則返回當前排序狀態下的第一個云環境作為所述單個最佳云環境。
在一實施例中,上述匹配規則的順序可為:物理資源超限狀況(包括cpu超限狀況、內存超限狀況、i/o超限狀況)、物理資源分配狀況(包括cpu分配狀況、內存分配狀況、i/o分配狀況)、物理資源分布狀況(包括cpu分布狀況、內存分布狀況、i/o分布狀況)、虛擬機售賣率、資源轉化利用率(包括cpu轉化利用率、內存轉化利用率、i/o轉化利用率)、資源最大值(包括cpu最大值、內存最大值、i/o最大值)。
其中,cpu超限狀況的匹配方法是:用當前未被淘汰的云環境的cpu利用率的平均值與最高運行等級的閥值進行比較;大于等于閥值,則淘汰;小于閥值,則進行下一條規則匹配。內存超限狀況、i/o超限狀況的匹配方法與cpu超限狀況的匹配方法相同,在此不再贅述。
其中,cpu分配狀況的匹配方法是:取當前未被淘汰的云環境的cpu利用率的平均值,根據平均值從小到大進行排序,從第一個值開始進行循環判斷,當前位置的值與下一個值的差是否大于等于設定值,如果大于等于,則淘汰后 面所有的環境,如果小于,則判斷下一個值,直到循環結束。內存分配狀況、i/o分配狀況的匹配方法與cpu分配狀況的匹配方法相同,在此不再贅述。
其中,cpu分布狀況的匹配方法是:取當前未被淘汰的云環境的cpu利用率的方差,根據方差從小到大進行排序,從第一個值開始進行循環判斷,當前位置的值與下一個值的差是否大于等于設定值,如果大于等于,則淘汰后面所有的環境,如果小于,則判斷下一個值,直到循環結束。內存分布狀況、i/o分布狀況的匹配方法與cpu分布狀況的匹配方法相同,在此不再贅述。
其中,虛擬機售賣率=已售cpu核數/物理環境總核數。虛擬機售賣率的匹配方法是:取當前未被淘汰的云環境的售賣率,根據售賣率從小到大進行排序,從第一個值開始進行循環判斷,當前位置的值與下一個值的差是否大于等于設定值,如果大于等于,則淘汰后面所有的環境,如果小于,則判斷下一個值,直到循環結束。
其中,資源轉化利用率=虛擬機使用的資源總和/物理資源總和。內存利用率的匹配方法是:取當前未被淘汰的云環境的內存轉化率,根據內存轉化率從小到大進行排序,從第一個值開始進行循環判斷,當前位置的值與下一個值的差是否大于等于設定值,如果大于等于,則淘汰后面所有的環境,如果小于,則判斷下一個值,直到循環結束。cpu轉化利用率、i/o轉化利用率的匹配方法與內存轉化利用率的匹配方法相同,在此不再贅述。
其中,cpu最大值的匹配方法是:取當前未被淘汰的云環境的cpu利用率的最大值,根據最大值從小到大進行排序,從第一個值開始進行循環判斷,當前位置的值與下一個值的差是否大于等于設定值,如果大于等于,則淘汰后面所有的環境,如果小于,則判斷下一個值,直到循環結束。內存最大值、i/o最大值的匹配方法與cpu最大值的匹配方法相同,在此不再贅述。
如圖3所示,示出了本發明中通過淘汰方式進行適配的邏輯過程。通過此邏輯過程,按照上述匹配規則的順序對每一個備選云環境進行適配,即可最終獲得所述單個最佳云環境。
在本發明中,所述指標方式是通過對備選云環境的所述云環境參數和/或所述云環境指標進行分析和評估,并對評估結果進行比較和排序,綜合評價排名最高的前n個云環境作為符合所述資源請求的云環境。其中,進行分析和評估時可采用一些已知算法對所述云環境指標進行計算,并對計算結果進行比 較和排序。
相應地,如圖4所示,本發明的虛擬化資源的分配和調度系統包括:
監測和數據獲取單元,用于監測并獲取每一云環境的云環境參數,以及獲取資源請求;
分析評估單元,與所述監測和數據獲取單元連接,用于對所述云環境參數進行計算,獲得每一云環境的云環境指標;
調度管理單元,與所述分析評估單元連接,用于根據所述資源請求與所述云環境參數、和/或所述云環境指標進行適配,形成一虛擬化資源的分配和調度決策,以將所述資源請求分配至符合所述資源請求的云環境中。
在本發明中,所述監測和數據獲取單元所獲取的云環境參數不僅包括每一云環境的原始數據,例如物理機cpu、虛擬機cpu等數據,還包括經所述分析評估單元計算后得到的數據,例如物理機的cpu利用率、虛擬機的cpu利用率等數據。而所述分析評估單元則主要是對所獲取的數據進行分析和評估,例如利用不同算法進行計算,以獲得所述調度管理單元進行適配所需的不同數據。
在圖2中,所述監測和數據獲取單元是監測兩個云環境,即云環境a和云環境b。而每一云環境a、b均包括有虛擬機(即資源實例)、虛擬化平臺(例如:kvm,xen)及物理資源,其中虛擬機中包括有計算資源、存儲資源以及網絡資源等。雖然在圖2中示出的是兩個云環境,但是,可以理解的是,所述云環境的數量并不局限于兩個,其可以任何數量的云環境,這些并不作為對本發明的限制。
通過本發明,能夠隨時監測云環境的資源和運行狀況。并且,通過對云環境的監測和數據收集,可以實現對云環境的效能評估,而通過云環境的效能評估方式,可實現在多個云環境之間進行虛擬化資源的分配和調整的決策機制。
并且,通過本發明,一方面,當某個云環境出現資源不足時,可以將新的虛擬機(資源實例)創建需求,自動調配到其它資源充足的云環境上,從而為異地和異構云環境的資源整合提供可能。另一方面,也可以根據用戶需求(例如成本要求,性能要求,穩定性要求等),自動適配最佳云環境,為客戶創建虛擬機(資源實例),從而不僅可為用戶提供最佳性價比的虛擬化產品,而且能避免資源浪費或不足。
雖然本發明已以實施方式揭露如上,然其并非用以限定本發明,任何熟悉此技藝者,在不脫離本發明的精神和范圍內,當可作各種的更動與潤飾,因此本發明的保護范圍當視所附的權利要求書所界定的范圍為準。