一種文件存儲(chǔ)及處理方法、設(shè)備和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實(shí)施例涉及云計(jì)算技術(shù)領(lǐng)域,尤其涉及一種文件存儲(chǔ)及處理方法、設(shè)備和系統(tǒng)。
【背景技術(shù)】
[0002]鏡像服務(wù)組件OpenStack是一個(gè)正在開發(fā)中的云計(jì)算平臺(tái)項(xiàng)目,覆蓋了網(wǎng)絡(luò)、虛擬化、操作系統(tǒng)、服務(wù)器等各個(gè)方面。參見圖1,OpenStack可以包括虛擬機(jī)鏡像查找及檢索系統(tǒng)Glance、計(jì)算控制器Nova、對(duì)象存儲(chǔ)Swift系統(tǒng)/網(wǎng)絡(luò)附屬存儲(chǔ)(Network AttachedStorage, NAS)系統(tǒng)等。其中,Nova用于為單個(gè)Nova用戶或使用群組管理虛擬機(jī)實(shí)例的整個(gè)生命周期,根據(jù)Nova用戶需求來提供虛擬服務(wù)。負(fù)責(zé)虛擬機(jī)創(chuàng)建、開機(jī)、關(guān)機(jī)、掛起、暫停、調(diào)整、迀移、重啟、銷毀等操作,配置CPU、內(nèi)存等信息規(guī)格。Glance作為鏡像服務(wù)組件OpenStack的一個(gè)子項(xiàng)目,用于為OpenStack中的Nova提供虛擬機(jī)鏡像注冊(cè)以及文件存儲(chǔ),支持多種虛擬機(jī)鏡像格式(AK1、AM1、AR1、ISO、QCOff2, Raw、VD1、VHD、VMDK),有創(chuàng)建上傳鏡像、刪除鏡像、編輯鏡像基本信息的功能。Swift系統(tǒng)/NAS系統(tǒng)可以作為Glance的后端存儲(chǔ)為Glance提供鏡像存儲(chǔ)。
[0003]在分布式數(shù)據(jù)中心場(chǎng)景中,當(dāng)多套Nova使用同一套Glance時(shí),需要通過網(wǎng)絡(luò)從Swift系統(tǒng)或NAS系統(tǒng)遠(yuǎn)程獲取其存儲(chǔ)的虛擬機(jī)鏡像文件,并根據(jù)獲取到的虛擬機(jī)鏡像文件創(chuàng)建虛擬機(jī),因而使得虛擬機(jī)鏡像文件的獲取速度慢,從而降低了虛擬機(jī)的創(chuàng)建效率。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實(shí)施例提供一種文件存儲(chǔ)及處理方法、設(shè)備和系統(tǒng),能夠解決現(xiàn)有技術(shù)中多套計(jì)算控制器Nova使用同一套虛擬機(jī)鏡像查找及檢索系統(tǒng)Glance時(shí),需要從Glance的后端存儲(chǔ)遠(yuǎn)程獲取虛擬機(jī)鏡像文件,從而導(dǎo)致虛擬機(jī)創(chuàng)建效率低的問題。
[0005]為達(dá)到上述目的,本發(fā)明的實(shí)施例采用如下技術(shù)方案:
[0006]第一方面,提供一種文件存儲(chǔ)方法,包括:
[0007]虛擬機(jī)鏡像查找及檢索系統(tǒng)Glance服務(wù)器將內(nèi)容分發(fā)網(wǎng)絡(luò)⑶N配置為所述Glance的存儲(chǔ)后端;
[0008]所述Glance服務(wù)器將管理的虛擬機(jī)鏡像文件存儲(chǔ)于內(nèi)容分發(fā)網(wǎng)絡(luò)⑶N分發(fā)節(jié)點(diǎn)。
[0009]第二方面,提供一種文件處理方法,包括:
[0010]內(nèi)容分發(fā)網(wǎng)絡(luò)⑶N分發(fā)節(jié)點(diǎn)存儲(chǔ)虛擬機(jī)鏡像查找及檢索系統(tǒng)Glance服務(wù)器管理的虛擬機(jī)鏡像文件;
[0011 ] 所述分發(fā)節(jié)點(diǎn)根據(jù)分發(fā)策略將所述虛擬機(jī)鏡像文件分發(fā)至所述CDN邊緣節(jié)點(diǎn)。
[0012]結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述分發(fā)節(jié)點(diǎn)根據(jù)分發(fā)策略將所述虛擬機(jī)鏡像文件分發(fā)至所述CDN邊緣節(jié)點(diǎn)包括:
[0013]所述分發(fā)節(jié)點(diǎn)將所述虛擬機(jī)鏡像文件中的鏡像描述文件分發(fā)至所述邊緣節(jié)點(diǎn);
[0014]在將所述鏡像描述文件分發(fā)至所述邊緣節(jié)點(diǎn)后,所述分發(fā)節(jié)點(diǎn)將所述虛擬機(jī)鏡像文件中的非鏡像描述文件分發(fā)至所述邊緣節(jié)點(diǎn)。
[0015]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述分發(fā)節(jié)點(diǎn)將所述虛擬機(jī)鏡像文件中的非鏡像描述文件分發(fā)至所述邊緣節(jié)點(diǎn)包括:
[0016]所述分發(fā)節(jié)點(diǎn)將所述非鏡像描述文件中用于啟動(dòng)虛擬機(jī)的啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)點(diǎn);
[0017]所述分發(fā)節(jié)點(diǎn)在將所述啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)點(diǎn)后,將所述非鏡像描述文件中所述啟動(dòng)子文件集合以外的其它子文件分發(fā)至所述邊緣節(jié)點(diǎn)。
[0018]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第三種可能的實(shí)現(xiàn)方式中,所述分發(fā)節(jié)點(diǎn)將所述非鏡像描述文件中用于啟動(dòng)虛擬機(jī)的啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)點(diǎn)包括:
[0019]所述分發(fā)節(jié)點(diǎn)根據(jù)所述鏡像描述文件中的第一信息確定所述非鏡像描述文件中用于啟動(dòng)虛擬機(jī)的啟動(dòng)子文件集合,所述第一信息包括所述虛擬機(jī)鏡像文件的目錄結(jié)構(gòu)和所述虛擬機(jī)鏡像文件中的子文件是否用于啟動(dòng)虛擬機(jī)的啟動(dòng)標(biāo)識(shí);
[0020]所述分發(fā)節(jié)點(diǎn)將所述啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)點(diǎn)。
[0021]結(jié)合第二方面的第三種可能的實(shí)現(xiàn)方式,在第二方面的第四種可能的實(shí)現(xiàn)方式中,所述第一信息還包括用于啟動(dòng)虛擬機(jī)的子文件在啟動(dòng)虛擬機(jī)時(shí)的使用順序;
[0022]所述分發(fā)節(jié)點(diǎn)將所述啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)點(diǎn)包括:
[0023]所述分發(fā)節(jié)點(diǎn)根據(jù)所述第一信息中用于啟動(dòng)虛擬機(jī)的子文件在啟動(dòng)虛擬機(jī)時(shí)的使用順序,將所述啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)點(diǎn)。
[0024]結(jié)合第二方面的第二種可能的實(shí)現(xiàn)方式,在第二方面的第五種可能的實(shí)現(xiàn)方式中,所述分發(fā)節(jié)點(diǎn)將所述非鏡像描述文件中用于啟動(dòng)虛擬機(jī)的啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)點(diǎn)包括:
[0025]所述分發(fā)節(jié)點(diǎn)根據(jù)所述虛擬機(jī)鏡像文件創(chuàng)建虛擬機(jī),并保存創(chuàng)建記錄,所述創(chuàng)建記錄包括啟動(dòng)虛擬機(jī)時(shí)使用的子文件;
[0026]所述分發(fā)節(jié)點(diǎn)根據(jù)所述創(chuàng)建記錄確定所述非鏡像描述文件中用于啟動(dòng)虛擬機(jī)的啟動(dòng)子文件集合;
[0027]所述分發(fā)節(jié)點(diǎn)將所述啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)點(diǎn)。
[0028]結(jié)合第二方面的第五種可能的實(shí)現(xiàn)方式,在第二方面的第六種可能的實(shí)現(xiàn)方式中,所述創(chuàng)建記錄還包括啟動(dòng)虛擬機(jī)時(shí)使用的子文件的順序;
[0029]所述分發(fā)節(jié)點(diǎn)將所述啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)點(diǎn)包括:
[0030]所述分發(fā)節(jié)點(diǎn)根據(jù)所述創(chuàng)建記錄中啟動(dòng)虛擬機(jī)時(shí)使用的子文件的順序,將所述啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)點(diǎn)。
[0031]結(jié)合第二方面的第二種至第六種可能的實(shí)現(xiàn)方式中的任意一種,在第二方面的第七種可能的實(shí)現(xiàn)方式中,在所述分發(fā)節(jié)點(diǎn)將所述非鏡像描述文件中的第一子文件分發(fā)至所述邊緣節(jié)點(diǎn)之前,所述方法還包括:
[0032]所述分發(fā)節(jié)點(diǎn)確定已分發(fā)的子文件中是否存在與所述第一子文件的內(nèi)容相同的第二子文件;
[0033]若是,則所述分發(fā)節(jié)點(diǎn)不將所述第一子文件分發(fā)至所述邊緣節(jié)點(diǎn);
[0034]若否,則所述分發(fā)節(jié)點(diǎn)將所述第一子文件分發(fā)至所述邊緣節(jié)點(diǎn)。
[0035]結(jié)合第二方面的第七種可能的實(shí)現(xiàn)方式,在第二方面的第八種可能的實(shí)現(xiàn)方式中,所述分發(fā)節(jié)點(diǎn)確定已分發(fā)的子文件中是否存在與所述第一子文件的內(nèi)容相同的第二子文件包括:
[0036]所述分發(fā)節(jié)點(diǎn)根據(jù)所述鏡像描述文件中的第二信息確定已分發(fā)的子文件中是否存在與所述第一子文件的內(nèi)容相同的第二子文件,所述第二信息包括所述虛擬機(jī)鏡像文件的目錄結(jié)構(gòu),所述虛擬機(jī)鏡像文件中的子文件的物理偏移量信息,以及所述虛擬機(jī)鏡像文件中的子文件的內(nèi)容標(biāo)識(shí)。
[0037]第三方面,提供一種文件處理方法,包括:
[0038]內(nèi)容分發(fā)網(wǎng)絡(luò)CDN邊緣節(jié)點(diǎn)接收所述CDN分發(fā)節(jié)點(diǎn)分發(fā)的虛擬機(jī)鏡像文件,所述虛擬機(jī)鏡像文件為存儲(chǔ)于所述CDN分發(fā)節(jié)點(diǎn)中的虛擬機(jī)鏡像查找及檢索系統(tǒng)Glance服務(wù)器管理的文件;
[0039]所述邊緣節(jié)點(diǎn)對(duì)所述虛擬機(jī)鏡像文件進(jìn)行處理。
[0040]結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,所述邊緣節(jié)點(diǎn)對(duì)所述虛擬機(jī)鏡像文件進(jìn)行處理包括:
[0041]所述邊緣節(jié)點(diǎn)確定所述虛擬機(jī)鏡像文件中用于啟動(dòng)虛擬機(jī)的啟動(dòng)子文件集合和/或重復(fù)子文件集合,所述重復(fù)子文件集合中的第三子文件的內(nèi)容與所述邊緣節(jié)點(diǎn)未接收到的所述虛擬機(jī)鏡像文件中的第四子文件的內(nèi)容相同;
[0042]所述邊緣節(jié)點(diǎn)在高速緩存中緩存所述啟動(dòng)子文件集合和/或重復(fù)子文件集合。
[0043]結(jié)合第三方面的第一種可能的實(shí)現(xiàn)方式,在第三方面的第二種可能的實(shí)現(xiàn)方式中,所述邊緣節(jié)點(diǎn)接收到的所述虛擬機(jī)鏡像文件包括鏡像描述文件,所述鏡像描述文件包括第一信息和第二信息,所述第一信息包括所述虛擬機(jī)鏡像文件中的子文件是否用于啟動(dòng)虛擬機(jī)的啟動(dòng)標(biāo)識(shí),所述第二信息包括所述虛擬機(jī)鏡像文件的目錄結(jié)構(gòu),所述虛擬機(jī)鏡像文件中子文件的物理偏移量信息,以及所述虛擬機(jī)鏡像文件中子文件的內(nèi)容標(biāo)識(shí);
[0044]所述邊緣節(jié)點(diǎn)確定接收到的所述虛擬機(jī)鏡像文件中用于啟動(dòng)虛擬機(jī)的啟動(dòng)子文件集合和/或重復(fù)子文件集合包括:
[0045]所述邊緣節(jié)點(diǎn)根據(jù)所述第一信息確定所述啟動(dòng)子文件集合;
[0046]所述邊緣節(jié)點(diǎn)根據(jù)所述第二信息確定所述重復(fù)子文件集合。
[0047]結(jié)合第三方面至第三方面的第二種可能的實(shí)現(xiàn)方式,在第三方面的第三種可能的實(shí)現(xiàn)方式中,所述方法還包括:
[0048]若所述虛擬機(jī)鏡像文件為高熱度虛擬機(jī)鏡像文件,則所述邊緣節(jié)點(diǎn)在高速緩存中緩存所述高熱度虛擬機(jī)鏡像文件。
[0049]第四方面,提供一種虛擬機(jī)鏡像查找及檢索系統(tǒng)Glance服務(wù)器,包括:
[0050]配置單元,用于將內(nèi)容分發(fā)網(wǎng)絡(luò)CDN配置為所述Glance的存儲(chǔ)后端;
[0051]處理單元,用于將將所述Glance服務(wù)器管理的虛擬機(jī)鏡像文件存儲(chǔ)于內(nèi)容分發(fā)網(wǎng)絡(luò)CDN分發(fā)節(jié)點(diǎn)。
[0052]第五方面,提供一種內(nèi)容分發(fā)網(wǎng)絡(luò)⑶N分發(fā)節(jié)點(diǎn),包括:
[0053]存儲(chǔ)單元,用于存儲(chǔ)虛擬機(jī)鏡像查找及檢索系統(tǒng)Glance服務(wù)器管理的虛擬機(jī)鏡像文件;
[0054]分發(fā)單元,用于根據(jù)分發(fā)策略將所述虛擬機(jī)鏡像文件分發(fā)至所述CDN邊緣節(jié)點(diǎn)。
[0055]結(jié)合第五方面,在第五方面的第一種可能的實(shí)現(xiàn)方式中,所述分發(fā)單元具體用于:
[0056]將所述虛擬機(jī)鏡像文件中的鏡像描述文件分發(fā)至所述邊緣節(jié)點(diǎn);
[0057]在將所述鏡像描述文件分發(fā)至所述邊緣節(jié)點(diǎn)后,將所述虛擬機(jī)鏡像文件中的非鏡像描述文件分發(fā)至所述邊緣節(jié)點(diǎn)。
[0058]結(jié)合第五方面的第一種可能的實(shí)現(xiàn)方式,在第五方面的第二種可能的實(shí)現(xiàn)方式中,所述分發(fā)單元具體用于:
[0059]將所述非鏡像描述文件中用于啟動(dòng)虛擬機(jī)的啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)占.V,
[0060]在將所述啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)點(diǎn)后,將所述非鏡像描述文件中所述啟動(dòng)子文件集合以外的其它子文件分發(fā)至所述邊緣節(jié)點(diǎn)。
[0061]結(jié)合第五方面的第二種可能的實(shí)現(xiàn)方式,在第五方面的第三種可能的實(shí)現(xiàn)方式中,所述分發(fā)單元具體用于:
[0062]根據(jù)所述鏡像描述文件中的第一信息確定所述非鏡像描述文件中用于啟動(dòng)虛擬機(jī)的啟動(dòng)子文件集合,所述第一信息包括所述虛擬機(jī)鏡像文件的目錄結(jié)構(gòu)和所述虛擬機(jī)鏡像文件中的子文件是否用于啟動(dòng)虛擬機(jī)的啟動(dòng)標(biāo)識(shí);
[0063]將所述啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)點(diǎn)。
[0064]結(jié)合第五方面的第三種可能的實(shí)現(xiàn)方式,在第五方面的第四種可能的實(shí)現(xiàn)方式中,所述第一信息還包括用于啟動(dòng)虛擬機(jī)的子文件在啟動(dòng)虛擬機(jī)時(shí)的使用順序;
[0065]所述分發(fā)單元具體用于:
[0066]根據(jù)所述第一信息中用于啟動(dòng)虛擬機(jī)的子文件在啟動(dòng)虛擬機(jī)時(shí)的使用順序,將所述啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)點(diǎn)。
[0067]結(jié)合第五方面的第二種可能的實(shí)現(xiàn)方式,在第五方面的第五種可能的實(shí)現(xiàn)方式中,所述分發(fā)單元具體用于:
[0068]根據(jù)所述虛擬機(jī)鏡像文件創(chuàng)建虛擬機(jī),并保存創(chuàng)建記錄,所述創(chuàng)建記錄包括啟動(dòng)虛擬機(jī)時(shí)使用的子文件;
[0069]根據(jù)所述創(chuàng)建記錄確定所述非鏡像描述文件中用于啟動(dòng)虛擬機(jī)的啟動(dòng)子文件集合;
[0070]將所述啟動(dòng)子文件集合分發(fā)至所述邊緣節(jié)點(diǎn)。
[0071]結(jié)合第五方面的第五種可能的實(shí)現(xiàn)方式