亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

一種基于分布式存儲(chǔ)重復(fù)數(shù)據(jù)刪除的虛擬機(jī)系統(tǒng)盤的方法

文檔序號(hào):9910605閱讀:432來源:國知局
一種基于分布式存儲(chǔ)重復(fù)數(shù)據(jù)刪除的虛擬機(jī)系統(tǒng)盤的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及云平臺(tái)存儲(chǔ)虛擬化技術(shù)領(lǐng)域,特別是一種基于分布式存儲(chǔ)重復(fù)數(shù)據(jù)刪除的虛擬機(jī)系統(tǒng)盤的方法。
【背景技術(shù)】
[0002]—般的云計(jì)算平臺(tái)上有多個(gè)計(jì)算節(jié)點(diǎn),而每個(gè)計(jì)算節(jié)點(diǎn)上都有多個(gè)分布式存儲(chǔ)的虛擬機(jī),有些性能較高的節(jié)點(diǎn)甚至有幾十個(gè)虛擬機(jī),監(jiān)控代理監(jiān)控這些虛擬機(jī)在高峰期使用大量的網(wǎng)絡(luò)10,并且分布式存儲(chǔ)副本數(shù)越多,網(wǎng)絡(luò)1的壓力更大,這樣會(huì)帶來以下問題:
[0003]—是客戶不想花費(fèi)額外的錢來升級(jí)交換機(jī)。
[0004]二是高峰期大量的虛擬機(jī)同時(shí)讀寫,分布式存儲(chǔ)多副本的情況下,網(wǎng)絡(luò)1流量大。
[0005]三是分布式存儲(chǔ)成本高。
[0006]為了解決上述問題,需要有一種基于分布式存儲(chǔ)重復(fù)數(shù)據(jù)刪除的虛擬機(jī)系統(tǒng)盤方法;減輕網(wǎng)絡(luò)1的壓力并同時(shí)節(jié)省分布式存儲(chǔ)的成本。

【發(fā)明內(nèi)容】

[0007]本發(fā)明解決的技術(shù)問題在于提供一種基于分布式存儲(chǔ)重復(fù)數(shù)據(jù)刪除的虛擬機(jī)系統(tǒng)盤的方法;解決高峰期大量的虛擬機(jī)同時(shí)讀寫及分布式存儲(chǔ)多副本的情況下網(wǎng)絡(luò)1流量大、分布式存儲(chǔ)成本高等問題。
[0008]本發(fā)明解決上述技術(shù)問題的技術(shù)方案是:
[0009]所述的方法包括如下步驟:
[0010]步驟1:分布式存儲(chǔ)上創(chuàng)建存儲(chǔ)卷;
[0011 ]步驟2:通過存儲(chǔ)卷創(chuàng)建虛擬機(jī)系統(tǒng)盤;
[0012]步驟3:虛擬機(jī)寫數(shù)據(jù)到系統(tǒng)盤;
[0013]步驟4:分布式存儲(chǔ)卷服務(wù)將數(shù)據(jù)保存到緩存中;
[0014]步驟5:對(duì)緩存數(shù)據(jù)進(jìn)行滑動(dòng)分塊;
[0015]步驟6:通過Rabin指紋算法掃描每塊的指紋;
[0016]步驟7:查詢指紋集合是否已經(jīng)存在分布式存儲(chǔ)系統(tǒng)指紋表;
[0017]步驟8:挑選指紋不存在分布式存儲(chǔ)系統(tǒng)的文件塊存入分布式存儲(chǔ)系統(tǒng)中;
[0018]步驟9:分布式存儲(chǔ)系統(tǒng)更新指紋表。
[0019]所述的分布式存儲(chǔ)上創(chuàng)建存儲(chǔ)卷,在分布式存儲(chǔ)創(chuàng)建一個(gè)存儲(chǔ)卷;
[0020]所述的通過存儲(chǔ)卷創(chuàng)建虛擬機(jī)系統(tǒng)盤,分布式存儲(chǔ)卷先映射到本地文件塊,此文件塊作為虛擬機(jī)的系統(tǒng)盤來使用;
[0021]所述的虛擬機(jī)寫數(shù)據(jù)到系統(tǒng)盤,虛擬機(jī)在系統(tǒng)盤讀寫通過分布式存儲(chǔ)卷服務(wù)進(jìn)行讀寫;
[0022]所述的分布式存儲(chǔ)卷服務(wù)將數(shù)據(jù)保存到緩存中,分布式存儲(chǔ)卷服務(wù)將虛擬機(jī)讀寫的數(shù)據(jù)先放在本地緩存上,并不是馬上存入到分布式存儲(chǔ)上。
[0023]所述的對(duì)緩存數(shù)據(jù)進(jìn)行滑動(dòng)分塊,是對(duì)緩沖區(qū)的數(shù)據(jù)進(jìn)行滑動(dòng)分塊,通常每塊默認(rèn)最小大小是4K;用戶可以通過分布式存儲(chǔ)系統(tǒng)對(duì)分塊的默認(rèn)大小進(jìn)行設(shè)置。
[0024]所述的通過Rabin指紋算法掃描每塊的指紋,通過Rabin指紋算法計(jì)算整塊,得出一個(gè)唯一的指紋,并將每塊的指紋組成一個(gè)指紋集合;
[0025]所述的查詢指紋集合是否已經(jīng)存在分布式存儲(chǔ)系統(tǒng)指紋表,查詢指紋集合各個(gè)指紋是否存在通過分布式存儲(chǔ)系統(tǒng)的指紋表中,并返回結(jié)果,分布式存儲(chǔ)卷服務(wù)標(biāo)記每個(gè)指紋是否已在分布式存儲(chǔ)上存在;
[0026]所述的挑選指紋不存在分布式存儲(chǔ)系統(tǒng)的文件塊存入分布式存儲(chǔ)系統(tǒng)中,凡是被標(biāo)記為不存在的指紋,該指紋對(duì)應(yīng)的塊文件全部都上傳到分布式存儲(chǔ)系統(tǒng)中;如被標(biāo)記為存在的指紋,分布式存儲(chǔ)系統(tǒng)上的存儲(chǔ)卷做一個(gè)簡單的文件塊引用即可;
[0027]所述的分布式存儲(chǔ)系統(tǒng)更新指紋表,分布式存儲(chǔ)系統(tǒng)根據(jù)上傳文件塊的指紋集合,更新指紋表。
[0028]本發(fā)明由虛擬機(jī)提供分布式存儲(chǔ)卷服務(wù),虛擬機(jī)可以連續(xù)讀寫,區(qū)別于一般基于文件的重復(fù)數(shù)據(jù)刪除方法。本發(fā)明提供虛擬機(jī)系統(tǒng)盤,區(qū)別于一般只能提供虛擬機(jī)鏡像的重復(fù)數(shù)據(jù)刪除方法。本發(fā)明提供數(shù)據(jù)重復(fù)刪除放在虛擬機(jī)所在的宿主機(jī)上,區(qū)別于一般只能在服務(wù)端上執(zhí)行重復(fù)刪除的方法。本發(fā)明使用Rabin指紋算法,性能更加高效,區(qū)域于一般的指紋掃描方法。本發(fā)明解決了高峰期大量的虛擬機(jī)同時(shí)讀寫及分布式存儲(chǔ)多副本的情況下網(wǎng)絡(luò)1流量大、分布式存儲(chǔ)成本高等問題。
【附圖說明】
[0029]下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說明:
[0030]圖1為流程圖;
[0031 ]圖2為本發(fā)明邏輯結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0032]本發(fā)明的實(shí)施方式有多種,這里以云平臺(tái)為例說明其中一種實(shí)現(xiàn)方法,如圖1、2所示,具體實(shí)施過程如下:
[0033]1、分布式存儲(chǔ)上創(chuàng)建存儲(chǔ)卷;
[0034]/**
[0035]*分布式存儲(chǔ)上創(chuàng)建存儲(chǔ)卷
[0036]* Oparam name卷名稱
[0037]*Oparam size卷大小
[0038]~k ire turn boolean 返回結(jié)果
[0039]* /
[0040]public boolean createVolume(String name,int size){
[0041]return Distribute.createVolume(name,size);
[0042]}
[0043]2、通過存儲(chǔ)卷創(chuàng)建虛擬機(jī)系統(tǒng)盤;
[0044]/**
[0045]女通過存儲(chǔ)卷創(chuàng)建虛擬機(jī)系統(tǒng)盤
[0046]*Oparam instanceld虛擬機(jī)ID
[0047]* Oparam name卷名稱
[0048]/V @re turn 無返回值
[0049]* /
[0050]public void createVm(String instanceld?String name){
[0051]return VmService.createVm(instanceId,name);
[0052]}
[0053]3、虛擬機(jī)寫數(shù)據(jù)到系統(tǒng)盤;實(shí)則就是把數(shù)據(jù)寫入分布式存儲(chǔ)卷服務(wù)中
[0054]4、分布式存儲(chǔ)卷服務(wù)將數(shù)據(jù)保存到緩存中;
[0055]/**
[0056]*分布式存儲(chǔ)卷服務(wù)將數(shù)據(jù)保存到緩存中
[0057]* Oparam data帶寫入的數(shù)據(jù)
[0058]* ?return int成功寫入的字節(jié)數(shù)
[0059]女 /
[0060]public int writeBuffer(byte[]data){
[0061]return DataEngine.writeBuffer(data);
[0062]}
[0063]5、對(duì)緩存數(shù)據(jù)進(jìn)行滑動(dòng)分塊;
[0064]/* *
[0065]女對(duì)緩存數(shù)據(jù)進(jìn)行滑動(dòng)分塊
[0066]* Oparam per1d時(shí)間間隔[0067 ]* Ore turn無返回值
[0068]* /
[0069]public void chunk(){
[0070]return DataEngine.chunk();
[0071]}
[0072]6、通過Rabin指紋算法掃描每塊的指紋;
[0073]/**
[0074]'k通過Rabin指紋算法掃描每塊的指紋
[0075]-k ?return List〈String>指紋集合對(duì)象
[0076]女 /
[0077]public List<String>getHashCodeSet(){
[0078]return DataEngine.getHashCodeSet();
[0079]}
[0080]7、查詢指紋集合是否已經(jīng)存在分布式存儲(chǔ)系統(tǒng)指紋表;
[0081]/* *
[0082]女查詢指紋集合是否已經(jīng)存在分布式存儲(chǔ)系統(tǒng)指紋表
[0083]'k Oparam hashCodes指紋集合對(duì)象
[0084]-k ire turn boolean 返回結(jié)果
[0085]* /
[0086]public List〈String>muticastHashCodeIsExists(List〈String>hashCodes){
[0087]return Distribute.muticastHashCodeIsExists(hashCodes);
[0088]}
[0089]8、挑選指紋不存在分布式存儲(chǔ)系統(tǒng)的文件塊存入分布式存儲(chǔ)系統(tǒng)中;
[0090]/**
[0091 ]*挑選指紋不存在分布式存儲(chǔ)系統(tǒng)的文件塊存入分布式存儲(chǔ)系統(tǒng)中
[0092]~k iparam hashCodes指紋集合對(duì)象
[0093]* Oreturn boo lean返回結(jié)果
[0094]* /
[0095]public boolean upload(List<String>hashCodes){
[0096]return DataEngine.upload(hashCodes);
[0097]}
[0098]9、分布式存儲(chǔ)系統(tǒng)更新指紋表。
[0099]/**
[0100]*分布式存儲(chǔ)系統(tǒng)更新指紋表
[0101]~k iparam hashCodes指紋集合對(duì)象
[0102]-k ire turn boolean 返回結(jié)果
[0103]*/
[0104]public boolean updateHashCode(List<String>hashCodes) {
[0105]return Distribute.setThreshoId(hashCodes);
[0106]}
[0107]整個(gè)流程結(jié)束。
【主權(quán)項(xiàng)】
1.一種基于分布式存儲(chǔ)重復(fù)數(shù)據(jù)刪除的虛擬機(jī)系統(tǒng)盤的方法,其特征在于:所述的方法包括如下步驟: 步驟I:分布式存儲(chǔ)上創(chuàng)建存儲(chǔ)卷; 步驟2:通過存儲(chǔ)卷創(chuàng)建虛擬機(jī)系統(tǒng)盤; 步驟3:虛擬機(jī)寫數(shù)據(jù)到系統(tǒng)盤; 步驟4:分布式存儲(chǔ)卷服務(wù)將數(shù)據(jù)保存到緩存中; 步驟5:對(duì)緩存數(shù)據(jù)進(jìn)行滑動(dòng)分塊; 步驟6:通過Rabin指紋算法掃描每塊的指紋; 步驟7:查詢指紋集合是否已經(jīng)存在分布式存儲(chǔ)系統(tǒng)指紋表; 步驟8:挑選指紋不存在分布式存儲(chǔ)系統(tǒng)的文件塊存入分布式存儲(chǔ)系統(tǒng)中; 步驟9:分布式存儲(chǔ)系統(tǒng)更新指紋表。2.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述的分布式存儲(chǔ)上創(chuàng)建存儲(chǔ)卷,在分布式存儲(chǔ)創(chuàng)建一個(gè)存儲(chǔ)卷; 所述的通過存儲(chǔ)卷創(chuàng)建虛擬機(jī)系統(tǒng)盤,分布式存儲(chǔ)卷先映射到本地文件塊,此文件塊作為虛擬機(jī)的系統(tǒng)盤來使用; 所述的虛擬機(jī)寫數(shù)據(jù)到系統(tǒng)盤,虛擬機(jī)在系統(tǒng)盤讀寫通過分布式存儲(chǔ)卷服務(wù)進(jìn)行讀與; 所述的分布式存儲(chǔ)卷服務(wù)將數(shù)據(jù)保存到緩存中,分布式存儲(chǔ)卷服務(wù)將虛擬機(jī)讀寫的數(shù)據(jù)先放在本地緩存上,并不是馬上存入到分布式存儲(chǔ)上。3.根據(jù)權(quán)利要求1所述的方法,其特征在于:所述的對(duì)緩存數(shù)據(jù)進(jìn)行滑動(dòng)分塊,是對(duì)緩沖區(qū)的數(shù)據(jù)進(jìn)行滑動(dòng)分塊,通常每塊默認(rèn)最小大小是4K;用戶可以通過分布式存儲(chǔ)系統(tǒng)對(duì)分塊的默認(rèn)大小進(jìn)行設(shè)置。4.根據(jù)權(quán)利要求2所述的方法,其特征在于:所述的對(duì)緩存數(shù)據(jù)進(jìn)行滑動(dòng)分塊,是對(duì)緩沖區(qū)的數(shù)據(jù)進(jìn)行滑動(dòng)分塊,通常每塊默認(rèn)最小大小是4K;用戶可以通過分布式存儲(chǔ)系統(tǒng)對(duì)分塊的默認(rèn)大小進(jìn)行設(shè)置。5.根據(jù)權(quán)利要求1至4任一項(xiàng)所述的方法,其特征在于:所述的通過Rabin指紋算法掃描每塊的指紋,通過Rabin指紋算法計(jì)算整塊,得出一個(gè)唯一的指紋,并將每塊的指紋組成一個(gè)指紋集合; 所述的查詢指紋集合是否已經(jīng)存在分布式存儲(chǔ)系統(tǒng)指紋表,查詢指紋集合各個(gè)指紋是否存在通過分布式存儲(chǔ)系統(tǒng)的指紋表中,并返回結(jié)果,分布式存儲(chǔ)卷服務(wù)標(biāo)記每個(gè)指紋是否已在分布式存儲(chǔ)上存在; 所述的挑選指紋不存在分布式存儲(chǔ)系統(tǒng)的文件塊存入分布式存儲(chǔ)系統(tǒng)中,凡是被標(biāo)記為不存在的指紋,該指紋對(duì)應(yīng)的塊文件全部都上傳到分布式存儲(chǔ)系統(tǒng)中;如被標(biāo)記為存在的指紋,分布式存儲(chǔ)系統(tǒng)上的存儲(chǔ)卷做一個(gè)簡單的文件塊引用即可; 所述的分布式存儲(chǔ)系統(tǒng)更新指紋表,分布式存儲(chǔ)系統(tǒng)根據(jù)上傳文件塊的指紋集合,更新指紋表。
【專利摘要】本發(fā)明涉及云平臺(tái)存儲(chǔ)虛擬化技術(shù)領(lǐng)域,特別是一種基于分布式存儲(chǔ)重復(fù)數(shù)據(jù)刪除的虛擬機(jī)系統(tǒng)盤的方法。本發(fā)明首先在分布式存儲(chǔ)上創(chuàng)建存儲(chǔ)卷;通過存儲(chǔ)卷創(chuàng)建虛擬機(jī)系統(tǒng)盤;虛擬機(jī)寫數(shù)據(jù)到系統(tǒng)盤;分布式存儲(chǔ)卷服務(wù)將數(shù)據(jù)保存到緩存中;對(duì)緩存數(shù)據(jù)進(jìn)行滑動(dòng)分塊;通過Rabin指紋算法掃描每塊的指紋;查詢指紋集合是否已經(jīng)存在分布式存儲(chǔ)系統(tǒng)指紋表;挑選指紋不存在分布式存儲(chǔ)系統(tǒng)的文件塊存入分布式存儲(chǔ)系統(tǒng)中;最后分布式存儲(chǔ)系統(tǒng)更新指紋表。本發(fā)明解決了減輕基于云平臺(tái)分布式存儲(chǔ)的虛擬機(jī)網(wǎng)絡(luò)流量壓力;可應(yīng)用于云平臺(tái)存儲(chǔ)虛擬化。
【IPC分類】G06F3/06
【公開號(hào)】CN105677238
【申請(qǐng)?zhí)枴緾N201511018317
【發(fā)明人】馬桂成, 楊松, 季統(tǒng)凱
【申請(qǐng)人】國云科技股份有限公司
【公開日】2016年6月15日
【申請(qǐng)日】2015年12月28日
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1