本發明專利技術提供一種數據控制方法及系統,涉及計算機技術領域,所述方法包括:接收克隆虛擬機發送的讀數據請求;確定所述讀數據請求所請求讀取的數據塊所屬鏡像;當所述請求讀取的數據塊屬于基礎鏡像時,從所述內存中讀取所述數據塊,并將所述數據塊發送給所述克隆虛擬機;當所述請求讀取的數據塊屬于更新鏡像時,從所述磁盤中讀取所述數據塊,并將所述數據塊寫入所述內存中,再從所述內存中讀取所述數據塊,并發送給所述克隆虛擬機。
【技術實現步驟摘要】
【國外來華專利技術】
本專利技術涉及計算機
,尤其涉及一種數據控制方法及系統。
技術介紹
目前,通過虛擬化技術可以將一臺物理機(即實體計算機)的物理資源虛擬成多個虛擬機,每個虛擬機均可以實現該物理機的功能。虛擬機具有克隆功能,利用一個虛擬機(該虛擬機相當于源虛擬機)可以克隆出來一個或多個克隆虛擬機,每個克隆虛擬機可以具有與源虛擬機完全相同的操作系統、應用軟件以及數據文檔,克隆虛擬機生成之后,還可以自行增加新的數據或者更新已有的數據。現有技術提供一種鏈接克隆技術,通過基礎鏡像和更新鏡像來實現克隆虛擬機的運行。基礎鏡像為克隆虛擬機和源虛擬機共同的數據部分,更新鏡像是克隆虛擬機與源虛擬機不同的數據部分。然而,現有的基礎鏡像和更新鏡像是保存在磁盤上的,當各個克隆虛擬機運行時,每個克隆虛擬機在將讀取的基礎鏡像中的數據寫入內存時,由于每個克隆虛擬機在內存中寫入的基礎鏡像均相同,導致內存資源的利用率不高。
技術實現思路
本專利技術提供一種數據控制方法及系統,可以提高內存資源的利用率。為了達到上述專利技術目的,本專利技術采用如下技術方案:第一方面,提供一種 數據控制方法,基礎鏡像保存在內存中,更新鏡像保存在磁盤中,所述方法包括:接收克隆虛擬機發送的讀數據請求;確定所述讀數據請求所請求讀取的數據塊所屬鏡像;當所述請求讀取的數據塊屬于基礎鏡像時,從所述內存中讀取所述數據塊,并將所述數據塊發送給所述克隆虛擬機;當所述請求讀取的數據塊屬于更新鏡像時,從所述磁盤中讀取所述數據塊,并將所述數據塊寫入所述內存中,再從所述內存中讀取所述數據塊,并發送給所述克隆虛擬機。結合第一方面,在第一方面的第一種實現方式中,所述基礎鏡像進行壓縮后保存在所述內存的虛擬設備中,所述當所述請求讀取的數據塊屬于基礎鏡像時,從所述內存中讀取所述數據塊,并將所述數據塊發送給所述克隆虛擬機包括:當所述請求讀取的數據塊屬于基礎鏡像時,從所述內存的虛擬設備中讀取并解壓縮所述數據塊,將解壓縮后的數據塊發送給所述克隆虛擬機。結合第一方面或第一方面的第一種實現方式,在第一方面的第二種實現方式中,還包括:接收所述克隆虛擬機發送的寫數據請求;判斷所述寫數據請求所請求寫入的數據是否構成完整的數據塊;如果構成完整的數據塊,則寫入所述更新鏡像中,如果沒有構成完整的數據塊,則從所述基礎鏡像中取出所述數據對應的數據塊,將所述數據更新至所述數據對應的數據塊中,并將更新后的數據塊寫入所述更新鏡像中。結合第一方面或者第一方面的以上任一種實現方式,在第一方面的第三種實現方式中,所述內存中的數據塊保存在所述內存的各個頁面中,所述方法還包括:定期掃描所述內存中的各個頁面;分別利用各個頁面中的數據進行哈希運算,得到各個頁面的哈希值;如果哈希值相同的頁面大于兩個,則保留所述哈希值相同的頁面中的一個頁面,刪除其余的頁面。 第二方面,提供一種數據控制系統,基礎鏡像保存在內存中,更新鏡像保存在磁盤中,所述系統包括:接收模塊,用于接收克隆虛擬機發送的讀數據請求;控制模塊,用于確定所述讀數據請求所請求讀取的數據塊所屬鏡像;讀取模塊,用于當所述控制模塊確定所述請求讀取的數據塊屬于基礎鏡像時,從所述內存中讀取所述數據塊;發送模塊,用于將所述數據塊發送給所述克隆虛擬機;所述讀取模塊,還用于當所述控制模塊確定所述請求讀取的數據塊屬于更新鏡像時,從所述磁盤中讀取所述數據塊;寫入模塊,用于將所述數據塊寫入所述內存中;所述讀取模塊,還用于從所述內存中讀取所述數據塊,并由所述發送模塊發送給所述克隆虛擬機。結合第二方面,在第二方面的第一種實現方式中,所述基礎鏡像進行壓縮后保存在所述內存的虛擬設備中,所述讀取模塊,具體用于當所述控制模塊確定所述請求讀取的數據塊屬于基礎鏡像時,從所述內存的虛擬設備中讀取并解壓縮所述數據塊;所述發送模塊,具體用于將解壓縮后的數據塊發送給所述克隆虛擬機。結合第二方面或第二方面的第一種實現方式,在第二方面的第二種實現方式中,所述接收模塊,還用于接收所述克隆虛擬機發送的寫數據請求;所述控制模塊,還用于判斷所述寫數據請求所請求寫入的數據是否構成完整的數據塊;所述寫入模塊,還用于如果所述控制模塊判斷出所述寫數據請求所請求寫入的數據構成完整的數據塊,則寫入所述更新鏡像中;所述讀取模塊,還用于如果所述控制模塊判斷出所述寫數據請求所請求寫入的數據沒有構成完整的數據塊,則從所述基礎鏡像中取出所述數據對應的數據塊,將所述數據更新至所述數據對應的數據塊中,所述寫入模塊,還用于將更新后的數據塊寫入所述更新鏡像中。結合第二方面或者第二方面的以上任一種實現方式,在第二方面的第三種實現方式中,所述內存中的數據塊保存在所述內存的各個頁面中,所述系統還包括:掃描模塊,用于定期掃描所述內存中的各個頁面;運算模塊,用于分別利用各個頁面中的數據進行哈希運算,得到各個頁面的哈希值;處理模塊,用于如果哈希值相同的頁面大于兩個,則保留所述哈希值相同的頁面中的一個頁面,刪除其余的頁面。第三方面,提供一種數據控制系統,基礎鏡像保存在內存中,更新鏡像保存在磁盤中,所述系統包括:接收器,用于接收克隆虛擬機發送的讀數據請求;處理器,用于確定所述讀數據請求所請求讀取的數據塊所屬鏡像;所述處理器,還用于當確定所述請求讀取的數據塊屬于基礎鏡像時,從所述內存中讀取所述數據塊;發射器,用于將所述數據塊發送給所述克隆虛擬機;所述處理器,還用于當所述請求讀取的數據塊屬于更新鏡像時,從所述磁盤中讀取所述數據塊,并將所述數據塊寫入所述內存中,從所述內存中讀取所述數據塊,并由所述發射器發送給所述克隆虛擬機。結合第三方面,在第三方面的第一種實現方式中,所述基礎鏡像進行壓縮后保存在所述內存的虛擬設備中,所述處理器,具體用于當確定所述請求讀取的數據塊屬于基礎鏡像時,從所述內存的虛擬設備中讀取并解壓縮所述數據塊;所述發射器,具體用于將解壓縮后的數據塊發送給所述克隆虛擬機。結合第三方面或第三方面的第一種實現方式,在第三方面的第二種實現方式中,所述接收器,還用于接收所述克隆虛擬機發送的寫數據請求;所述處理器,還用于判斷所述寫數據請求所請求寫入的數據是否構成完整的數據塊; 所述處理器,還用于如果判斷出所述寫數據請求所請求寫入的數據構成完整的數據塊,則寫入所述更新鏡像中;所述處理器,還用于如果判斷出所述寫數據請求所請求寫入的數據沒有構成完整的數據塊,從基礎鏡像中取出所述數據對應的數據塊,將所述數據更新至所述數據對應的數據塊中,將更新后的數據塊寫入所述更新鏡像中。結合第三方面或者第三方面的以上任一種實現方式,在第三方面的第三種實現方式中,所述內存中的數據塊保存在所述內存的頁面中,所述處理器,還用于定期掃描所述內存中的各個頁面;分別利用各個頁面中的數據進行哈希運算,得到各個頁面的哈希值;如果哈希值相同的頁面大于兩個,則保留所述哈希值相同的頁面中的一個頁面,刪除其余的頁面。本專利技術實施例中,由于各個克隆虛擬機共用的基礎鏡像存放在內存中,因而,克隆虛擬機請求讀取的數據塊屬于基礎鏡像時,可以直接從內存中讀取所述請求讀取的數據塊。本專利技術實施例中由于各個克隆虛擬機共用的基礎鏡像存放在內存中,亦即內存中保存了一份基礎鏡像,與現有現有技術中每個克隆虛擬機均需要在內存中占用一定空間來寫入相同的基礎鏡像,導致內存保存了多份相同的基礎本文檔來自技高網...
【技術保護點】
【技術特征摘要】
【國外來華專利技術】
【專利技術屬性】
技術研發人員:薄海,
申請(專利權)人:華為技術有限公司,
類型:
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。