
本發(fā)明涉及通信
技術(shù)領(lǐng)域:
,尤其涉及內(nèi)容分發(fā)方法、虛擬服務(wù)器管理方法、云平臺和系統(tǒng)。
背景技術(shù):
:內(nèi)容分發(fā)網(wǎng)絡(luò)(contentdeliverynetwork,CDN)系統(tǒng)是一種在因特網(wǎng)(internet)上構(gòu)建的分布式服務(wù)器系統(tǒng)。CDN系統(tǒng)也常稱為內(nèi)容分發(fā)系統(tǒng)或內(nèi)容分發(fā)網(wǎng)絡(luò),該系統(tǒng)包含多個(gè)數(shù)據(jù)中心,其目的是使網(wǎng)絡(luò)上的內(nèi)容更快、更穩(wěn)定的傳輸給用戶,降低網(wǎng)絡(luò)時(shí)延,提升用戶體驗(yàn)。上述每個(gè)數(shù)據(jù)中心可以稱為一個(gè)CDN節(jié)點(diǎn),CDN節(jié)點(diǎn)可位于多個(gè)地點(diǎn),多個(gè)不同的網(wǎng)絡(luò),以減少傳輸內(nèi)容所需的流量,進(jìn)而降低帶寬成本。這些CDN節(jié)點(diǎn)之間也會動態(tài)的互相傳輸內(nèi)容,并對用戶的下載行為進(jìn)行優(yōu)化,減少內(nèi)容供應(yīng)者所需要的帶寬成本,改善用戶的下載速度,提高系統(tǒng)的穩(wěn)定性。CDN系統(tǒng)中的CDN節(jié)點(diǎn)可以分為中心節(jié)點(diǎn)和邊緣節(jié)點(diǎn),其中,每個(gè)中心節(jié)點(diǎn)包括一臺或多臺中心服務(wù)器,每個(gè)邊緣節(jié)點(diǎn)包括一臺或多臺邊緣服務(wù)器。中心節(jié)點(diǎn)一般會緩存需要分發(fā)的所有的網(wǎng)絡(luò)內(nèi)容,而邊緣節(jié)點(diǎn)僅僅緩存需要分發(fā)的網(wǎng)絡(luò)內(nèi)容的一部分。當(dāng)用戶訪問某一互聯(lián)網(wǎng)內(nèi)容時(shí),域名系統(tǒng)(domainnamesystem,DNS)會把用戶的訪問分配到離用戶最近的邊緣節(jié)點(diǎn)上,如果用戶訪問的邊緣節(jié)點(diǎn)存儲有用戶需要的內(nèi)容,那么該邊緣節(jié)點(diǎn)會把用戶請求的內(nèi)容直接返回給用戶。如果用戶訪問的邊緣節(jié)點(diǎn)沒有存儲用戶需要的內(nèi)容,那么該邊緣節(jié)點(diǎn)就回內(nèi)容源頭所在的服務(wù)器獲取用戶所訪問內(nèi)容,再返回給用戶,例如,該邊緣節(jié)點(diǎn)可以從中心節(jié)點(diǎn)獲取用戶所訪問內(nèi)容,再返回給用 戶?,F(xiàn)有技術(shù)中,將云計(jì)算應(yīng)用到了內(nèi)容分發(fā)方法中。其中,云計(jì)算提供的基礎(chǔ)設(shè)施即服務(wù)(infrastructureasaservice,IaaS)是消費(fèi)者使用處理、儲存、網(wǎng)絡(luò)以及各種基礎(chǔ)運(yùn)算資源,部署與執(zhí)行操作系統(tǒng)或應(yīng)用程序等各種軟件。客戶端無須購買服務(wù)器、軟件等網(wǎng)絡(luò)設(shè)備,即可任意部署和運(yùn)行處理、存儲、網(wǎng)絡(luò)和其它基本的計(jì)算資源,從而可以控制操作系統(tǒng)、儲存裝置、已部署的應(yīng)用程序。企業(yè)可以根據(jù)自己不斷變化的組織架構(gòu)、管控模式和業(yè)務(wù)需求,基于虛擬化技術(shù)快速部署資源或獲得服務(wù),為企業(yè)云應(yīng)用服務(wù)快速提供動態(tài)、靈活、彈性、虛擬、共享和高效的計(jì)算資源服務(wù)。IaaS中最重要的技術(shù)是虛擬化技術(shù),即在單臺物理服務(wù)器上利用虛擬化管理軟件創(chuàng)建多個(gè)虛擬機(jī),每一臺虛擬機(jī)作為一臺服務(wù)器使用?,F(xiàn)有技術(shù)的內(nèi)容分發(fā)方法,采用了直接基于云計(jì)算技術(shù)的內(nèi)容分發(fā)網(wǎng)絡(luò)(CDN)。內(nèi)容分發(fā)網(wǎng)絡(luò)一般是分層結(jié)構(gòu),除了前面提到的由中心節(jié)點(diǎn)和邊緣節(jié)點(diǎn)構(gòu)成的兩層結(jié)構(gòu),內(nèi)容分發(fā)網(wǎng)絡(luò)還可以是由中心節(jié)點(diǎn)、中間節(jié)點(diǎn)和邊緣節(jié)點(diǎn)構(gòu)成的三層結(jié)構(gòu)。其中每個(gè)層次都是由一個(gè)或多個(gè)服務(wù)器組成的服務(wù)器集群。直接基于云計(jì)算技術(shù)的內(nèi)容分發(fā)網(wǎng)絡(luò),其具體表現(xiàn)形式是利用云計(jì)算的虛擬化技術(shù),直接將虛擬服務(wù)器看作傳統(tǒng)內(nèi)容分發(fā)網(wǎng)絡(luò)中的物理服務(wù)器。在不同數(shù)據(jù)中心上構(gòu)建中心節(jié)點(diǎn)的服務(wù)器集群、中間節(jié)點(diǎn)的服務(wù)器集群或邊緣節(jié)點(diǎn)的服務(wù)器集群等,其中,服務(wù)器集群中的服務(wù)器都是虛擬服務(wù)器。這種直接基于云計(jì)算技術(shù)的內(nèi)容分發(fā)網(wǎng)絡(luò)的好處是對內(nèi)容分發(fā)網(wǎng)絡(luò)管理控制軟件可直接應(yīng)用,并且具有云計(jì)算帶來的優(yōu)點(diǎn),如可以使用通用硬件、設(shè)備占用空間小等等。但是,由于直接基于虛擬服務(wù)器構(gòu)成的服務(wù)器集群來構(gòu)建內(nèi)容分發(fā)網(wǎng)絡(luò),導(dǎo)致內(nèi)容分發(fā)網(wǎng)絡(luò)的內(nèi)容輸入輸出(input/output,I/O)需要通過虛擬服務(wù)器來進(jìn)行,基于虛擬服務(wù)器的內(nèi)容I/O的性能遠(yuǎn)低于基于物理服務(wù)器的內(nèi)容I/O的性能,從而基于云計(jì)算的內(nèi)容分發(fā)網(wǎng)絡(luò)的內(nèi)容I/O的性能大大降低,影 響用戶的體驗(yàn)。技術(shù)實(shí)現(xiàn)要素:本發(fā)明實(shí)施例提供內(nèi)容分發(fā)方法、虛擬服務(wù)器管理方法、云平臺和系統(tǒng),可以使基于云計(jì)算的內(nèi)容分發(fā)網(wǎng)絡(luò)的內(nèi)容I/O的性能得到大幅提升。第一方面,提供了一種內(nèi)容分發(fā)方法,應(yīng)用于內(nèi)容分發(fā)系統(tǒng),該內(nèi)容分發(fā)系統(tǒng)包括至少兩個(gè)虛擬服務(wù)器和至少兩個(gè)存儲服務(wù)器,上述至少兩個(gè)虛擬服務(wù)器中的任意一個(gè)虛擬服務(wù)器均管理上述至少兩個(gè)存儲服務(wù)器中的一個(gè)或多個(gè)存儲服務(wù)器,任意一個(gè)虛擬服務(wù)器作為第一虛擬服務(wù)器執(zhí)行以下方法,包括:第一虛擬服務(wù)器接收內(nèi)容請求方發(fā)送的第一請求消息,第一請求消息中攜帶用戶請求內(nèi)容的第一統(tǒng)一資源定位符(uniformresourcelocator,URL);第一虛擬服務(wù)器根據(jù)自身維護(hù)的緩存列表,判斷第一虛擬服務(wù)器管理的存儲服務(wù)器中的一個(gè)存儲服務(wù)器緩存了第一URL對應(yīng)的內(nèi)容;將第一請求消息重定向至緩存列表中記錄的緩存了第一URL對應(yīng)內(nèi)容的第一存儲服務(wù)器,上述重定向至第一存儲服務(wù)器的第一請求消息用于指示第一存儲服務(wù)器將緩存的第一URL對應(yīng)的內(nèi)容發(fā)送給內(nèi)容請求方。本發(fā)明實(shí)施例提供了一種內(nèi)容分發(fā)方法,由于將服務(wù)器集群的計(jì)算能力和存儲能力分開來,將計(jì)算能力利用云計(jì)算的虛擬化技術(shù)實(shí)現(xiàn),而存儲能力采用獨(dú)立的存儲服務(wù)器實(shí)現(xiàn),從而使存儲服務(wù)器可以直接將內(nèi)容發(fā)送給內(nèi)容請求方,而無需通過虛擬服務(wù)器,因此有效提高了內(nèi)容I/O吞吐性能。結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,該方法還包括:第一虛擬服務(wù)器接收內(nèi)容請求方發(fā)送的第二請求消息,第二請求消息中攜帶用戶請求內(nèi)容的第二URL;第一虛擬服務(wù)器根據(jù)自身維護(hù)的緩存列表,判斷第一虛擬服務(wù)器管理的所有存儲服務(wù)器中均未緩存第二請求消息攜帶的第二URL對應(yīng)的內(nèi)容;第一虛擬服務(wù)器根據(jù)一致性哈希算法,確定用于緩存第二請求消息攜帶 的第二URL對應(yīng)的內(nèi)容的第二存儲服務(wù)器;將第二請求消息重定向至第二存儲服務(wù)器,上述重定向至第二存儲服務(wù)器的第二請求消息用于指示第二存儲服務(wù)器回源獲取用戶請求的內(nèi)容,將回源獲取的用戶請求的內(nèi)容發(fā)送給內(nèi)容請求方。上述實(shí)現(xiàn)方式中,給出了當(dāng)虛擬服務(wù)器管理的所有存儲服務(wù)器中均未緩存用戶請求的內(nèi)容時(shí),根據(jù)一致性哈希算法確定用于緩存用戶請求的內(nèi)容的存儲服務(wù)器,由該存儲服務(wù)器回源獲取用戶請求的內(nèi)容,將回源獲取的用戶請求的內(nèi)容發(fā)送給內(nèi)容請求方,通過該方法可以在提高內(nèi)容I/O的性能的基礎(chǔ)上,確保負(fù)載均衡。結(jié)合第一方面,在第一方面的第二種可能的實(shí)現(xiàn)方式中,第一虛擬服務(wù)器根據(jù)自身維護(hù)的緩存列表,判斷第一虛擬服務(wù)器管理的存儲服務(wù)器中的一個(gè)存儲服務(wù)器緩存了第一URL對應(yīng)的內(nèi)容之前,該方法還包括:第一虛擬服務(wù)器根據(jù)第一請求消息中攜帶的用戶請求內(nèi)容的第一URL,確定第一虛擬服務(wù)器處理第一URL。結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,第一虛擬服務(wù)器根據(jù)自身維護(hù)的緩存列表,判斷第一虛擬服務(wù)器管理的所有存儲服務(wù)器中均未緩存第二請求消息攜帶的第二URL對應(yīng)的內(nèi)容之前,該方法還包括:第一虛擬服務(wù)器根據(jù)第二請求消息中攜帶的用戶請求內(nèi)容的第二URL,確定第一虛擬服務(wù)器處理第二URL。結(jié)合第一方面的第二種或第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,該方法還包括:第一虛擬服務(wù)器接收內(nèi)容請求方發(fā)送的第三請求消息,第三請求消息中攜帶用戶請求內(nèi)容的第三URL;第一虛擬服務(wù)器根據(jù)第三請求消息中攜帶的用戶請求內(nèi)容的第三URL,確定第二虛擬服務(wù)器處理第三URL;將第三請求消息重定向至第二虛擬服務(wù)器。上述實(shí)現(xiàn)方式中,給出了虛擬服務(wù)器在接收到內(nèi)容請求方發(fā)送的請求消息后,在對該請求消息進(jìn)行相應(yīng)處理前,先要根據(jù)請求消息中攜帶的URL,判斷處理該URL的虛擬服務(wù)器,當(dāng)判斷出自身為處理該URL的虛擬服務(wù)器時(shí),再對該請求消息進(jìn)行相應(yīng)處理,當(dāng)判斷出應(yīng)該由其他虛擬服務(wù)器來處理該URL時(shí),將該請求消息重定向至其他虛擬服務(wù)器。本領(lǐng)域技術(shù)人員可以理解,上述第一虛擬服務(wù)器為內(nèi)容分發(fā)系統(tǒng)所包含的多個(gè)虛擬服務(wù)器中最先接收到該請求消息的虛擬服務(wù)器,上述第二虛擬服務(wù)器為在第一虛擬服務(wù)器對請求消息進(jìn)行重定向處理后才接收到該請求消息的虛擬服務(wù)器。由于每個(gè)虛擬服務(wù)器只處理自身對應(yīng)的URL,從而實(shí)現(xiàn)了虛擬服務(wù)器級別的負(fù)載均衡。結(jié)合第一方面的第二種或第三種或第四種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,第一虛擬服務(wù)器根據(jù)請求消息中攜帶的用戶請求內(nèi)容的URL,確定處理該URL的虛擬服務(wù)器,包括:第一虛擬服務(wù)器根據(jù)請求消息中攜帶的用戶請求內(nèi)容的URL,計(jì)算該URL的哈希值;獲取分布式數(shù)據(jù)庫中所有分塊的哈希值,根據(jù)該URL的哈希值,按照一致性哈希算法查詢該URL對應(yīng)的分塊,其中,內(nèi)容分發(fā)系統(tǒng)包括的存儲服務(wù)器中的每一個(gè)存儲服務(wù)器均劃分為至少一個(gè)分塊;根據(jù)該URL對應(yīng)的分塊的哈希值,以及分布式數(shù)據(jù)庫中存儲的分塊的哈希值與虛擬服務(wù)器的哈希值的對應(yīng)關(guān)系,確定處理該URL的虛擬服務(wù)器。上述實(shí)現(xiàn)方式中,給出了確定處理URL的虛擬服務(wù)器的方法,由于分布式數(shù)據(jù)庫中存儲了分塊的哈希值與虛擬服務(wù)器的哈希值的對應(yīng)關(guān)系,因此本發(fā)明實(shí)施例中,先根據(jù)一致性哈希算法確定URL對應(yīng)的分塊的哈希值,然后根據(jù)確定出的分塊的哈希值就可以在分布式數(shù)據(jù)庫中查找到處理該URL的虛擬服務(wù)器。這種方式簡單、容易實(shí)現(xiàn),并且可以利用云計(jì)算的優(yōu)點(diǎn),提高處理效率。結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第六種可能的實(shí)現(xiàn)方式中,內(nèi)容分發(fā)系統(tǒng)包括的存儲服務(wù)器中的每一個(gè)存儲服務(wù)器均劃分為至少一個(gè)分塊,上述將第二請求消息重定向至第二存儲服務(wù)器之后,該方法還包括:第一虛擬服務(wù)器更新第二URL對應(yīng)的熱度信息;根據(jù)熱度信息,確定需要緩存第二URL對應(yīng)的內(nèi)容;確定第二URL對應(yīng)的分塊的存儲容量未滿;通知第二存儲服務(wù)器緩存第二URL對應(yīng)的內(nèi)容到第二URL對應(yīng)的分塊。上述實(shí)現(xiàn)方式中,給出了當(dāng)存儲服務(wù)器中未緩存URL對應(yīng)的內(nèi)容時(shí),根據(jù)熱度信息確定是否需要緩存URL對應(yīng)的內(nèi)容,由于緩存URL對應(yīng)的內(nèi)容可以有效節(jié)約將內(nèi)容發(fā)送給內(nèi)容請求方的時(shí)間,因此盡量緩存訪問熱度高的內(nèi)容可以提高內(nèi)容分發(fā)系統(tǒng)的I/O效率;以及,當(dāng)URL對應(yīng)的分塊的存儲容量未滿時(shí),緩存URL對應(yīng)的內(nèi)容到URL對應(yīng)的分塊,可以有效實(shí)現(xiàn)負(fù)載均衡。結(jié)合第一方面的第六種可能的實(shí)現(xiàn)方式,在第一方面的第七種可能的實(shí)現(xiàn)方式中,每個(gè)分塊對應(yīng)一個(gè)虛擬服務(wù)器,該方法還包括:第一虛擬服務(wù)器確定第二URL對應(yīng)的分塊的存儲容量已滿;確定第一虛擬服務(wù)器管理的多個(gè)分塊中的至少一個(gè)分塊的存儲容量未滿,選擇一個(gè)存儲容量未滿的分塊;第一虛擬服務(wù)器通知第二存儲服務(wù)器緩存第二URL對應(yīng)的內(nèi)容到選擇的分塊,并且,第一虛擬服務(wù)器將第二URL的哈希值、緩存第二URL對應(yīng)的內(nèi)容的分塊的哈希值和第二URL對應(yīng)的熱度信息添加到緩存隊(duì)列的記錄中;或第一虛擬服務(wù)器確定第二URL對應(yīng)的分塊的存儲容量已滿;確定第一虛擬服務(wù)器管理的多個(gè)分塊的存儲容量均已滿,從緩存隊(duì)列中查詢熱度低于第一閾值的記錄;根據(jù)查詢到的記錄,通知該記錄中的分塊對應(yīng)的存儲服務(wù)器刪除該記錄中的URL對應(yīng)的內(nèi)容。上述實(shí)現(xiàn)方式中,給出了虛擬服務(wù)器管理存儲服務(wù)器存儲和刪除內(nèi)容的方法,當(dāng)每個(gè)分塊對應(yīng)一個(gè)虛擬服務(wù)器,且URL對應(yīng)的分塊的存儲容量已滿時(shí),將URL對應(yīng)的內(nèi)容存儲在該虛擬服務(wù)器管理的其他存儲容量未滿的分塊;當(dāng)每個(gè)分塊對應(yīng)一個(gè)虛擬服務(wù)器,且URL對應(yīng)的分塊的存儲容量已滿時(shí),該虛擬服務(wù)器管理的所有分塊的存儲容量均已滿時(shí),根據(jù)熱度信息刪除熱度低的內(nèi)容。該方式可以使虛擬服務(wù)器拉通存儲自己管理的分塊,提高磁盤利用率。結(jié)合第一方面的第六種可能的實(shí)現(xiàn)方式,在第一方面的第八種可能的實(shí)現(xiàn)方式中,每個(gè)分塊具有多個(gè)哈希值,每個(gè)分塊的一個(gè)哈希值對應(yīng)一個(gè)虛擬服務(wù)器,上述將第二請求消息重定向至第二存儲服務(wù)器之后,該方法還包括:第一虛擬服務(wù)器接收當(dāng)?shù)诙RL對應(yīng)的分塊的存儲容量已滿時(shí),該分塊所屬的第二存儲服務(wù)器向管理該分塊的多個(gè)虛擬服務(wù)器上報(bào)的該分塊已滿的通知信息;第一虛擬服務(wù)器向第二存儲服務(wù)器發(fā)送刪除通知,該刪除通知中攜帶第一虛擬服務(wù)器管理的該分塊中熱度低于第二閾值的內(nèi)容的URL,該刪除通知用于指示第二存儲服務(wù)器根據(jù)該刪除通知中攜帶的URL對應(yīng)的內(nèi)容的熱度信息,確定是否將該刪除通知中攜帶的URL對應(yīng)的內(nèi)容刪除。上述實(shí)現(xiàn)方式中,給出了虛擬服務(wù)器管理存儲服務(wù)器刪除內(nèi)容的方法,當(dāng)每個(gè)分塊對應(yīng)多個(gè)虛擬服務(wù)器,且URL對應(yīng)的分塊的存儲容量已滿時(shí),該虛擬服務(wù)器向URL對應(yīng)的存儲服務(wù)器發(fā)送刪除通知,由存儲服務(wù)器根據(jù)該分塊對應(yīng)的多個(gè)虛擬服務(wù)器分別發(fā)送的刪除通知,通過比較刪除通知中攜帶的熱度信息,刪除熱度低的內(nèi)容。該方式通過多個(gè)虛擬服務(wù)器的協(xié)商,刪除存儲服務(wù)器的分塊中熱度低的內(nèi)容的準(zhǔn)確性高。優(yōu)選地,可以通過多次發(fā)送刪除通知的方式,來進(jìn)一步提高刪除內(nèi)容的準(zhǔn)確性,例如,當(dāng)存儲服務(wù)器要刪除分塊中三分之一存儲容量的內(nèi)容時(shí),可以僅在刪除通知中攜帶三十分之一存儲容量的內(nèi)容的URL,通過一次比較確認(rèn) 某個(gè)虛擬服務(wù)器的刪除通知中攜帶的URL對應(yīng)的內(nèi)容,向該虛擬服務(wù)器發(fā)送通知信息,指示該虛擬服務(wù)器再次發(fā)送刪除通知。第二方面,提供了一種虛擬服務(wù)器管理方法,應(yīng)用于內(nèi)容分發(fā)系統(tǒng),內(nèi)容分發(fā)系統(tǒng)包括至少兩個(gè)虛擬服務(wù)器和至少兩個(gè)存儲服務(wù)器,上述至少兩個(gè)虛擬服務(wù)器中的任意一個(gè)虛擬服務(wù)器均管理上述至少兩個(gè)存儲服務(wù)器中的一個(gè)或多個(gè)存儲服務(wù)器,上述一個(gè)或多個(gè)存儲服務(wù)器中的每一個(gè)存儲服務(wù)器均劃分為至少一個(gè)分塊,上述至少一個(gè)分塊中的每個(gè)分塊由一個(gè)虛擬服務(wù)器管理,該方法包括:云平臺計(jì)算內(nèi)容分發(fā)系統(tǒng)的每個(gè)分塊的哈希值和每個(gè)虛擬服務(wù)器的哈希值;根據(jù)一致性哈希算法或隨機(jī)選取的方式,確定每個(gè)分塊對應(yīng)的虛擬服務(wù)器;建立分布式數(shù)據(jù)庫,在該分布式數(shù)據(jù)庫中存儲分塊的哈希值與虛擬服務(wù)器的哈希值的對應(yīng)關(guān)系。本發(fā)明實(shí)施例提供了一種虛擬服務(wù)器管理方法,該方法中通過建立分布式數(shù)據(jù)庫,預(yù)先確定了分塊和虛擬服務(wù)器的對應(yīng)關(guān)系,每個(gè)分塊由一個(gè)虛擬服務(wù)器管理,可以使虛擬服務(wù)器拉通存儲自己管理的分塊,提高磁盤利用率。結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,該方法還包括:云平臺根據(jù)內(nèi)容分發(fā)系統(tǒng)的負(fù)荷,確定需要新增虛擬服務(wù)器;確定需要分配給新增虛擬服務(wù)器的分塊數(shù)目;從所有分塊中選擇上述分塊數(shù)目個(gè)分塊;刪除選擇的分塊中的內(nèi)容;將所選分塊分配給新增虛擬服務(wù)器,并更新分布式數(shù)據(jù)庫中分塊與虛擬服務(wù)器的對應(yīng)關(guān)系;或云平臺根據(jù)內(nèi)容分發(fā)系統(tǒng)的負(fù)荷,確定需要減少虛擬服務(wù)器;云平臺通知存儲服務(wù)器刪除待減少的虛擬服務(wù)器對應(yīng)的分塊中的內(nèi)容;將待減少的虛擬服務(wù)器對應(yīng)的分塊分配給其他的虛擬服務(wù)器,更新分塊與虛擬服務(wù)器的對應(yīng)關(guān)系;刪除上述待減少的虛擬服務(wù)器。上述實(shí)現(xiàn)方式中,給出了每個(gè)分塊由一個(gè)虛擬服務(wù)器管理時(shí),虛擬服務(wù)器伸縮的處理流程,無論增加或者減少虛擬服務(wù)器都要更新分布式數(shù)據(jù)庫中分塊與虛擬服務(wù)器的對應(yīng)關(guān)系,從而在虛擬服務(wù)器伸縮后仍然可以實(shí)現(xiàn)內(nèi)容分發(fā)的分布式處理。其中,當(dāng)增加虛擬服務(wù)器時(shí),更新分布式數(shù)據(jù)庫不僅需要在數(shù)據(jù)庫中增加新增虛擬服務(wù)器與其管理的分塊的哈希值之間的對應(yīng)關(guān)系,還要刪除為新增虛擬服務(wù)器分配的分塊與原管理該分塊的虛擬服務(wù)器的哈希值之間的對應(yīng)關(guān)系;當(dāng)減少虛擬服務(wù)器時(shí),更新分布式數(shù)據(jù)庫不僅需要在數(shù)據(jù)庫中刪除減少的虛擬服務(wù)器與該虛擬服務(wù)器原來管理的分塊的哈希值之間的對應(yīng)關(guān)系,還要增加該虛擬服務(wù)器原來管理的分塊與為該虛擬服務(wù)器原來管理的分塊重新分配的虛擬服務(wù)器的哈希值之間的對應(yīng)關(guān)系。第三方面,提供了一種虛擬服務(wù)器管理方法,應(yīng)用于內(nèi)容分發(fā)系統(tǒng),內(nèi)容分發(fā)系統(tǒng)包括至少兩個(gè)虛擬服務(wù)器和至少兩個(gè)存儲服務(wù)器,上述至少兩個(gè)虛擬服務(wù)器中的任意一個(gè)虛擬服務(wù)器均管理上述至少兩個(gè)存儲服務(wù)器中的一個(gè)或多個(gè)存儲服務(wù)器,上述一個(gè)或多個(gè)存儲服務(wù)器中的每一個(gè)存儲服務(wù)器均劃分為至少一個(gè)分塊,上述至少一個(gè)分塊中的每個(gè)分塊由多個(gè)虛擬服務(wù)器管理,每個(gè)分塊具有多個(gè)哈希值,每個(gè)分塊的一個(gè)哈希值對應(yīng)一個(gè)虛擬服務(wù)器,該方法包括:云平臺計(jì)算內(nèi)容分發(fā)系統(tǒng)的每個(gè)分塊的哈希值和每個(gè)虛擬服務(wù)器的哈希值;根據(jù)一致性哈希算法或隨機(jī)選取的方式,確定每個(gè)分塊對應(yīng)的多個(gè)虛擬服務(wù)器;建立分布式數(shù)據(jù)庫,在該分布式數(shù)據(jù)庫中存儲分塊的哈希值與虛擬服務(wù)器的哈希值的對應(yīng)關(guān)系。本發(fā)明實(shí)施例提供了一種虛擬服務(wù)器管理方法,該方法中通過建立分布式數(shù)據(jù)庫,預(yù)先確定了分塊的哈希值和虛擬服務(wù)器的對應(yīng)關(guān)系,每個(gè)分塊由多個(gè)虛擬服務(wù)器管理的情況下,實(shí)現(xiàn)內(nèi)容分發(fā)的分布式處理。結(jié)合第三方面,在第三方面的第一種可能的實(shí)現(xiàn)方式中,該方法還包括:云平臺根據(jù)內(nèi)容分發(fā)系統(tǒng)的負(fù)荷,確定需要新增虛擬服務(wù)器;云平臺計(jì)算新增虛擬服務(wù)器的哈希值;獲取所有分塊的所有哈希值;基于一致性哈希算法,為新增虛擬服務(wù)器分配對應(yīng)的分塊的一個(gè)哈希值;刪除分配的分塊中的屬于該分塊的一個(gè)哈希值原對應(yīng)虛擬服務(wù)器的緩存隊(duì)列的內(nèi)容;將所選分塊的一個(gè)哈希值分配給新增虛擬服務(wù)器,并更新分布式數(shù)據(jù)庫中分塊的哈希值與虛擬服務(wù)器的對應(yīng)關(guān)系;或云平臺根據(jù)內(nèi)容分發(fā)系統(tǒng)的負(fù)荷,確定需要減少虛擬服務(wù)器;云平臺確定待減少的虛擬服務(wù)器對應(yīng)的分塊的哈希值;通知存儲服務(wù)器刪除待減少的虛擬服務(wù)器對應(yīng)的分塊中的屬于該虛擬服務(wù)器的緩存隊(duì)列的內(nèi)容;將待減少的虛擬服務(wù)器對應(yīng)的分塊的哈希值分配給其他的虛擬服務(wù)器,更新分塊的哈希值與虛擬服務(wù)器的對應(yīng)關(guān)系;刪除該待減少的虛擬服務(wù)器。上述實(shí)現(xiàn)方式中,給出了每個(gè)分塊由多個(gè)虛擬服務(wù)器管理時(shí),虛擬服務(wù)器伸縮的處理流程,無論增加或者減少虛擬服務(wù)器都要更新分布式數(shù)據(jù)庫中分塊的哈希值與虛擬服務(wù)器的對應(yīng)關(guān)系,從而在虛擬服務(wù)器伸縮后仍然可以實(shí)現(xiàn)內(nèi)容分發(fā)的分布式處理。其中,當(dāng)增加虛擬服務(wù)器時(shí),更新分布式數(shù)據(jù)庫僅需要在數(shù)據(jù)庫中增加新增虛擬服務(wù)器與其管理的分塊的哈希值之間的對應(yīng)關(guān)系,而無需刪除為新增虛擬服務(wù)器分配的分塊與原管理該分塊的虛擬服務(wù)器的哈希值之間的對應(yīng)關(guān)系;當(dāng)減少虛擬服務(wù)器時(shí),更新分布式數(shù)據(jù)庫僅 需要在數(shù)據(jù)庫中刪除減少的虛擬服務(wù)器與該虛擬服務(wù)器原來管理的分塊的哈希值之間的對應(yīng)關(guān)系,無需為該虛擬服務(wù)器原來管理的分塊重新分配虛擬服務(wù)器,也無需增加該虛擬服務(wù)器原來管理的分塊與為該虛擬服務(wù)器原來管理的分塊重新分配的虛擬服務(wù)器的哈希值之間的對應(yīng)關(guān)系。第四方面,提供了一種內(nèi)容分發(fā)系統(tǒng),該內(nèi)容分發(fā)系統(tǒng)包括至少兩個(gè)虛擬服務(wù)器和至少兩個(gè)存儲服務(wù)器,上述至少兩個(gè)虛擬服務(wù)器中的任意一個(gè)虛擬服務(wù)器均管理上述至少兩個(gè)存儲服務(wù)器中的一個(gè)或多個(gè)存儲服務(wù)器,上述任意一個(gè)虛擬服務(wù)器作為第一虛擬服務(wù)器用于執(zhí)行上述內(nèi)容分發(fā)方法。本發(fā)明實(shí)施例提供了一種內(nèi)容分發(fā)系統(tǒng),由于將服務(wù)器集群的計(jì)算能力和存儲能力分開來,將計(jì)算能力利用云計(jì)算的虛擬化技術(shù)實(shí)現(xiàn),而存儲能力采用獨(dú)立的存儲服務(wù)器實(shí)現(xiàn),從而使存儲服務(wù)器可以直接將內(nèi)容發(fā)送給內(nèi)容請求方,而無需通過虛擬服務(wù)器,因此有效提高了內(nèi)容I/O吞吐性能。第五方面,提供了一種云平臺,應(yīng)用于內(nèi)容分發(fā)系統(tǒng),內(nèi)容分發(fā)系統(tǒng)包括至少兩個(gè)虛擬服務(wù)器和至少兩個(gè)存儲服務(wù)器,上述至少兩個(gè)虛擬服務(wù)器中的任意一個(gè)虛擬服務(wù)器均管理上述至少兩個(gè)存儲服務(wù)器中的一個(gè)或多個(gè)存儲服務(wù)器,上述一個(gè)或多個(gè)存儲服務(wù)器中的每一個(gè)存儲服務(wù)器均劃分為至少一個(gè)分塊,上述至少一個(gè)分塊中的每個(gè)分塊由一個(gè)虛擬服務(wù)器管理,該云平臺用于執(zhí)行上述第二方面或第二方面的各種可能的實(shí)現(xiàn)方式提供的虛擬服務(wù)器管理方法。本發(fā)明實(shí)施例提供了一種云平臺,該云平臺通過建立分布式數(shù)據(jù)庫,預(yù)先確定了分塊和虛擬服務(wù)器的對應(yīng)關(guān)系,每個(gè)分塊由一個(gè)虛擬服務(wù)器管理,可以使虛擬服務(wù)器拉通存儲自己管理的分塊,提高磁盤利用率。第六方面,提供了一種云平臺,應(yīng)用于內(nèi)容分發(fā)系統(tǒng),內(nèi)容分發(fā)系統(tǒng)包括至少兩個(gè)虛擬服務(wù)器和至少兩個(gè)存儲服務(wù)器,上述至少兩個(gè)虛擬服務(wù)器中的任意一個(gè)虛擬服務(wù)器均管理上述至少兩個(gè)存儲服務(wù)器中的一個(gè)或多個(gè)存儲服務(wù)器,上述一個(gè)或多個(gè)存儲服務(wù)器中的每一個(gè)存儲服務(wù)器均劃分為至少一 個(gè)分塊,上述至少一個(gè)分塊中的每個(gè)分塊由多個(gè)虛擬服務(wù)器管理,每個(gè)分塊具有多個(gè)哈希值,每個(gè)分塊的一個(gè)哈希值對應(yīng)一個(gè)虛擬服務(wù)器,該云平臺用于執(zhí)行上述第三方面或第三方面的各種可能的實(shí)現(xiàn)方式提供的虛擬服務(wù)器管理方法。本發(fā)明實(shí)施例提供了一種云平臺,該云平臺通過建立分布式數(shù)據(jù)庫,預(yù)先確定了分塊的哈希值和虛擬服務(wù)器的對應(yīng)關(guān)系,每個(gè)分塊由多個(gè)虛擬服務(wù)器管理的情況下,實(shí)現(xiàn)內(nèi)容分發(fā)的分布式處理。另一方面,本發(fā)明實(shí)施例提供了一種云平臺,該云平臺具有實(shí)現(xiàn)上述方法實(shí)際中云平臺行為的功能。所述功能可以通過硬件實(shí)現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。所述硬件或軟件包括一個(gè)或多個(gè)與上述功能相對應(yīng)的模塊。在一個(gè)可能的設(shè)計(jì)中,云平臺的結(jié)構(gòu)中包括處理器和發(fā)射器,所述處理器被配置為支持云平臺執(zhí)行上述方法中相應(yīng)的功能。所述發(fā)射器用于支持云平臺與存儲服務(wù)器之間的通信,向存儲服務(wù)器發(fā)送上述方法中所涉及的信息或者指令。所述云平臺還可以包括存儲器,所述存儲器用于與處理器耦合,其保存云平臺必要的程序指令和數(shù)據(jù)。又一方面,本發(fā)明實(shí)施例提供了一種存儲服務(wù)器,該存儲服務(wù)器具有實(shí)現(xiàn)上述方法設(shè)計(jì)中存儲服務(wù)器行為的功能。所述功能可以通過硬件實(shí)現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。所述硬件或軟件包括一個(gè)或多個(gè)與上述功能相對應(yīng)的模塊。所述模塊可以是軟件和/或硬件。在一個(gè)可能的設(shè)計(jì)中,存儲服務(wù)器的結(jié)構(gòu)中包括接收器和處理器,所述接收器被配置為支持存儲服務(wù)器接收上述云平臺重定向的請求消息等各種指令。所述處理器控制存儲服務(wù)器根據(jù)所述接收器接收的請求消息將存儲服務(wù)器的分塊中緩存的內(nèi)容發(fā)送給內(nèi)容請求方,或者,先回源獲取請求消息中攜帶的URL對應(yīng)的內(nèi)容,然后將獲取的內(nèi)容發(fā)送給內(nèi)容請求方。再一方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)存儲介質(zhì),用于儲存為上述 云平臺所用的計(jì)算機(jī)軟件指令,其包含用于執(zhí)行上述方面所設(shè)計(jì)的程序。再一方面,本發(fā)明實(shí)施例提供了一種計(jì)算機(jī)存儲介質(zhì),用于儲存為上述存儲服務(wù)器所用的計(jì)算機(jī)軟件指令,其包含用于執(zhí)行上述方面所設(shè)計(jì)的程序。相較于現(xiàn)有技術(shù),本發(fā)明提供的方案可以使基于云計(jì)算的內(nèi)容分發(fā)網(wǎng)絡(luò)的內(nèi)容I/O的性能得到大幅提升。附圖說明圖1為本發(fā)明實(shí)施例提供的CDN系統(tǒng)架構(gòu)示意圖;圖2為本發(fā)明實(shí)施例提供的內(nèi)容分發(fā)方法所基于的網(wǎng)絡(luò)架構(gòu)示意圖;圖3為本發(fā)明實(shí)施例提供的一種內(nèi)容分發(fā)方法信號流圖;圖4為本發(fā)明實(shí)施例提供的一種虛擬服務(wù)器的管理方法流程圖;圖5為本發(fā)明實(shí)施例提供的另一種虛擬服務(wù)器的管理方法流程圖;圖6為哈希值生成方法示意圖;圖7為URL對應(yīng)的邊緣服務(wù)器的確定方法示意圖;圖8為本發(fā)明提出的邊緣節(jié)點(diǎn)的服務(wù)器集群的架構(gòu)示意圖;圖9為存儲服務(wù)器的分塊示意圖;圖10為存儲分塊和虛擬服務(wù)器的一種對應(yīng)關(guān)系示意圖;圖11為本發(fā)明實(shí)施例提供的一種內(nèi)容分發(fā)方法流程圖;圖12為本發(fā)明實(shí)施例提供的另一種內(nèi)容分發(fā)方法流程圖;圖13為本發(fā)明實(shí)施例提供的另一種內(nèi)容分發(fā)方法流程圖;圖14為本發(fā)明實(shí)施例提供的另一種內(nèi)容分發(fā)方法流程圖;圖15為存儲分塊和虛擬服務(wù)器的另一種對應(yīng)關(guān)系示意圖;圖16為本發(fā)明實(shí)施例提供的另一種內(nèi)容分發(fā)方法流程圖;圖17為本發(fā)明實(shí)施例提供的虛擬服務(wù)器的管理方法流程圖。具體實(shí)施方式為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚地描述。圖1為本發(fā)明實(shí)施例提供的CDN系統(tǒng)架構(gòu)示意圖,參照圖1,該CDN系統(tǒng)包括中心節(jié)點(diǎn)101、中間節(jié)點(diǎn)102和邊緣節(jié)點(diǎn)103,其中,每個(gè)層級中的節(jié)點(diǎn)數(shù)目均可以為一個(gè)或多個(gè),圖中示出一個(gè)中心節(jié)點(diǎn),僅為示意,并不作為對本發(fā)明實(shí)施例中中心節(jié)點(diǎn)數(shù)目的限定,通常地,中心節(jié)點(diǎn)101緩存該CDN系統(tǒng)中的全部內(nèi)容,中間節(jié)點(diǎn)102緩存中心節(jié)點(diǎn)101的部分內(nèi)容,邊緣節(jié)點(diǎn)103緩存中間節(jié)點(diǎn)102的部分內(nèi)容。針對某一內(nèi)容的訪問請求通常先會被重定向到邊緣節(jié)點(diǎn)103,如果邊緣節(jié)點(diǎn)103緩存了該訪問請求所要訪問的內(nèi)容,則邊緣節(jié)點(diǎn)103會直接將該內(nèi)容發(fā)送給內(nèi)容請求方,如果邊緣節(jié)點(diǎn)103未緩存該訪問請求所要訪問的內(nèi)容,則邊緣節(jié)點(diǎn)103先要從其上一級節(jié)點(diǎn)獲取該內(nèi)容,然后將獲取的內(nèi)容發(fā)送給內(nèi)容請求方。其中,重定向是指是通過各種方法將各種網(wǎng)絡(luò)請求重新定個(gè)方向轉(zhuǎn)到其它位置(如:網(wǎng)頁重定向、域名的重定向、路由選擇的變化也是對數(shù)據(jù)報(bào)文經(jīng)由路徑的一種重定向)。本發(fā)明實(shí)施例中,將中間節(jié)點(diǎn)102稱為邊緣節(jié)點(diǎn)103的上一級節(jié)點(diǎn),將中心節(jié)點(diǎn)101稱為中間節(jié)點(diǎn)102的上一級節(jié)點(diǎn),如果中間節(jié)點(diǎn)102也未緩存該訪問請求所要訪問的內(nèi)容,則中間節(jié)點(diǎn)102先要從其上一級節(jié)點(diǎn)獲取該內(nèi)容,然后將獲取的內(nèi)容發(fā)送給邊緣節(jié)點(diǎn)103。為了克服現(xiàn)有技術(shù)中基于云計(jì)算的CDN系統(tǒng)I/O性能較低的問題,本發(fā)明實(shí)施例中,對每個(gè)CDN節(jié)點(diǎn)的組成進(jìn)行了改進(jìn),這里的CDN節(jié)點(diǎn)可以是中心節(jié)點(diǎn)、中間節(jié)點(diǎn),也可以是邊緣節(jié)點(diǎn),由于用戶的訪問請求通常先被重定向到邊緣節(jié)點(diǎn),因此本發(fā)明實(shí)施例中僅以CDN系統(tǒng)中的邊緣節(jié)點(diǎn)為例進(jìn)行說明,其他的CDN節(jié)點(diǎn)構(gòu)成和內(nèi)容分發(fā)方法與此類似,為節(jié)約篇幅,在此不進(jìn)行贅述。本發(fā)明實(shí)施例中,利用云計(jì)算技術(shù)創(chuàng)建的虛擬服務(wù)器和獨(dú)立的存儲服務(wù)器(storageserver)來實(shí)現(xiàn)CDN系統(tǒng)中的邊緣節(jié)點(diǎn)。將服務(wù)器的計(jì)算能力 和存儲能力分開來,將計(jì)算能力利用云計(jì)算的虛擬化技術(shù)實(shí)現(xiàn),而存儲能力采用獨(dú)立的存儲服務(wù)器實(shí)現(xiàn)。每一臺虛擬服務(wù)器可以訪問一臺或多臺存儲服務(wù)器。由于存儲服務(wù)器為物理服務(wù)器,內(nèi)容I/O無需通過虛擬服務(wù)器,因此極大地提高了CDN系統(tǒng)的I/O性能。圖2為本發(fā)明實(shí)施例提供的內(nèi)容分發(fā)方法所基于的網(wǎng)絡(luò)架構(gòu)示意圖,參照圖2,本發(fā)明涉及的網(wǎng)元包括:用戶設(shè)備(UserEquipment,UE)201、負(fù)載均衡與路由服務(wù)器(LoadBalancing&RouteServer)202、云平臺(CloudPlatform)203和存儲服務(wù)器204。其中,可以根據(jù)需要在云平臺203上創(chuàng)建多個(gè)虛擬機(jī)(VirtualMachine,VM)2031,每個(gè)VM2031作為一個(gè)虛擬服務(wù)器,虛擬服務(wù)器2031和存儲服務(wù)器204共同構(gòu)成CDN系統(tǒng)的集群服務(wù)器節(jié)點(diǎn)。圖2中的集群服務(wù)器節(jié)點(diǎn)是作為CDN系統(tǒng)的邊緣節(jié)點(diǎn)來使用,本領(lǐng)域技術(shù)人員可以了解同樣的集群服務(wù)器節(jié)點(diǎn)也可以作為中心節(jié)點(diǎn)或中間節(jié)點(diǎn)來使用,本發(fā)明實(shí)施例中僅以CDN系統(tǒng)中的邊緣節(jié)點(diǎn)為例進(jìn)行說明。本發(fā)明實(shí)施例提供了一種云平臺,該云平臺具有實(shí)現(xiàn)本發(fā)明實(shí)施例提供的內(nèi)容分發(fā)方法和虛擬服務(wù)器管理方法實(shí)際中云平臺行為的功能。所述功能可以通過硬件實(shí)現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。所述硬件或軟件包括一個(gè)或多個(gè)與上述功能相對應(yīng)的模塊。在一個(gè)可能的設(shè)計(jì)中,云平臺的結(jié)構(gòu)中包括處理器和發(fā)射器,所述處理器被配置為支持云平臺執(zhí)行上述方法中相應(yīng)的功能。所述發(fā)射器用于支持云平臺與存儲服務(wù)器之間的通信,向存儲服務(wù)器發(fā)送上述方法中所涉及的信息或者指令。所述云平臺還可以包括存儲器,所述存儲器用于與處理器耦合,其保存云平臺必要的程序指令和數(shù)據(jù)。所述云平臺還可以包括接收器,所述接收器用于接收UE發(fā)送的請求消息。本發(fā)明實(shí)施例提供了一種存儲服務(wù)器,該存儲服務(wù)器具有實(shí)現(xiàn)上述方法設(shè)計(jì)中存儲服務(wù)器行為的功能。所述功能可以通過硬件實(shí)現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。所述硬件或軟件包括一個(gè)或多個(gè)與上述功能相對應(yīng) 的模塊。所述模塊可以是軟件和/或硬件。在一個(gè)可能的設(shè)計(jì)中,存儲服務(wù)器的結(jié)構(gòu)中包括接收器和處理器,所述接收器被配置為支持存儲服務(wù)器接收上述云平臺重定向的請求消息等各種指令。所述處理器控制存儲服務(wù)器根據(jù)所述接收器接收的請求消息將存儲服務(wù)器的分塊中緩存的內(nèi)容發(fā)送給內(nèi)容請求方,或者,先回源獲取請求消息中攜帶的URL對應(yīng)的內(nèi)容,然后將獲取的內(nèi)容發(fā)送給內(nèi)容請求方。所述存儲服務(wù)器還可以包括發(fā)射器,所述發(fā)射器用于將內(nèi)容發(fā)送給內(nèi)容請求方?;趫D2所示的網(wǎng)絡(luò)架構(gòu),本發(fā)明實(shí)施例提供的內(nèi)容分發(fā)方法主要包括如下處理流程:1、用戶根據(jù)文件的URL,通過UE201向負(fù)載均衡與路由服務(wù)器202請求某文件內(nèi)容;2、負(fù)載均衡與路由服務(wù)器202根據(jù)路由調(diào)度算法將用戶重定向(Redirect)至云計(jì)算平臺下的某臺虛擬服務(wù)器A,其中,具體的路由調(diào)度算法可以基于不同的選擇策略,比如基于虛擬服務(wù)器的負(fù)載狀況、基于虛擬服務(wù)器的響應(yīng)時(shí)間等等;本發(fā)明實(shí)施例中,云計(jì)算平臺可以簡稱為云平臺。3、UE201向虛擬服務(wù)器A請求URL對應(yīng)的文件內(nèi)容;4、虛擬服務(wù)器A判斷應(yīng)該處理該URL的虛擬服務(wù)器B;如果虛擬服務(wù)器A和虛擬服務(wù)器B不是同一虛擬服務(wù)器,則將用戶請求重定向至虛擬服務(wù)器B,然后再由虛擬服務(wù)器B對該用戶請求進(jìn)行處理;如果虛擬服務(wù)器A和虛擬服務(wù)器B是同一虛擬服務(wù)器,則無需進(jìn)行重定向,直接由虛擬服務(wù)器B對該用戶請求進(jìn)行處理;虛擬服務(wù)器B判斷該URL是否在所保持的緩存隊(duì)列中;如果該URL在虛擬服務(wù)器B的緩存隊(duì)列中,則將用戶請求重定向至緩存隊(duì)列所記錄的該URL對應(yīng)的存儲服務(wù)器C,并通知存儲服務(wù)器C將該URL對應(yīng)的文件內(nèi)容分發(fā)給UE201;如果該URL不在虛擬服務(wù)器B的緩存隊(duì)列中,則根據(jù)一致性哈希算法確定該URL對應(yīng)的存儲服務(wù)器D,將用戶請求重定向至該URL對應(yīng)的存儲服務(wù) 器D,并通知存儲服務(wù)器D回源獲取該URL對應(yīng)的文件內(nèi)容,并分發(fā)給UE201;其中,存儲服務(wù)器C和存儲服務(wù)器D可能為同一存儲服務(wù)器,也可能為不同的存儲服務(wù)器。5、存儲服務(wù)器C或存儲服務(wù)器D將該URL所對應(yīng)的文件內(nèi)容分發(fā)給UE201。本發(fā)明實(shí)施例提供了一種內(nèi)容分發(fā)方法,由虛擬服務(wù)器接收UE發(fā)送的請求消息,根據(jù)請求消息中攜帶的用戶請求的文件內(nèi)容的URL,對該URL進(jìn)行處理,將請求消息重定向至該URL對應(yīng)的存儲服務(wù)器,由存儲服務(wù)器將緩存的該URL對應(yīng)的內(nèi)容發(fā)送給UE。由于將服務(wù)器集群的計(jì)算能力和存儲能力分開來,將計(jì)算能力利用云計(jì)算的虛擬化技術(shù)實(shí)現(xiàn),而存儲能力采用獨(dú)立的存儲服務(wù)器實(shí)現(xiàn),從而使存儲服務(wù)器可以直接將內(nèi)容發(fā)送給UE,而無需通過虛擬服務(wù)器,因此有效提高了內(nèi)容I/O吞吐性能。圖3為本發(fā)明實(shí)施例提供的內(nèi)容分發(fā)方法信號流圖,該方法涉及的主體主要包括CDN節(jié)點(diǎn)中的虛擬服務(wù)器和存儲服務(wù)器,該方法包括:步驟301,虛擬服務(wù)器A接收UE發(fā)送的請求消息,請求消息中攜帶用戶請求內(nèi)容的URL。本發(fā)明實(shí)施例中,負(fù)載均衡與路由服務(wù)器在接收到UE發(fā)送的請求消息后,根據(jù)預(yù)設(shè)的策略,將請求消息重定向至虛擬服務(wù)器A。步驟302,虛擬服務(wù)器A根據(jù)URL,確定處理該URL的虛擬服務(wù)器B。CDN節(jié)點(diǎn)包括多個(gè)虛擬服務(wù)器,每個(gè)虛擬服務(wù)器負(fù)責(zé)處理部分URL,接收到請求消息的虛擬服務(wù)器A不一定是負(fù)責(zé)處理該URL的虛擬服務(wù)器,因此虛擬服務(wù)器A在接收到請求消息后,還要根據(jù)請求消息中攜帶的URL,確定處理該URL的虛擬服務(wù)器B。本發(fā)明實(shí)施例中,在建立CDN系統(tǒng)時(shí),云平臺會建立一個(gè)分布式數(shù)據(jù)庫,在該分布式數(shù)據(jù)庫中保存著分塊與虛擬服務(wù)器的對應(yīng)關(guān)系,也就是說該對應(yīng)關(guān)系中的分塊由對應(yīng)的虛擬服務(wù)器進(jìn)行管理,可以根據(jù)隨機(jī)選取的方式,來 為每個(gè)分塊選取對應(yīng)的虛擬服務(wù)器,也可以根據(jù)一致性哈希算法,來為每個(gè)分塊確定對應(yīng)的虛擬服務(wù)器,將確定好的對應(yīng)關(guān)系存儲于分布式數(shù)據(jù)庫中,以便后續(xù)進(jìn)行查找,其中,以分塊的哈希值來標(biāo)識一個(gè)分塊,以虛擬服務(wù)器的哈希值來標(biāo)識一個(gè)虛擬服務(wù)器。為了確定處理URL的虛擬服務(wù)器,可以先計(jì)算URL的哈希值,然后從分布式數(shù)據(jù)庫中查找CDN節(jié)點(diǎn)中所有分塊的哈希值,根據(jù)一致性哈希算法確定URL對應(yīng)的分塊的哈希值,再根據(jù)分塊的哈希值從分布式數(shù)據(jù)庫中查找該分塊的哈希值對應(yīng)的虛擬服務(wù)器的哈希值,從而確定處理URL的虛擬服務(wù)器。其中,上述所有分塊的哈希值既包括所有分塊中每個(gè)分塊的哈希值,也包括每個(gè)分塊的每個(gè)哈希值。本發(fā)明實(shí)施例中,存儲服務(wù)器和虛擬服務(wù)器的數(shù)量可以不同,也就是說,存儲服務(wù)器和虛擬服務(wù)器不必一一對應(yīng),為了實(shí)現(xiàn)虛擬服務(wù)器和存儲服務(wù)器的一對多對應(yīng),可以將存儲服務(wù)器劃分為至少一個(gè)分塊,虛擬服務(wù)器對分塊的管理方式可以采取下面兩種管理方式:第一種管理方式,將存儲服務(wù)器分為至少一個(gè)分塊,每個(gè)分塊由一個(gè)虛擬服務(wù)器管理;此時(shí),分布式數(shù)據(jù)庫中存儲的分塊與虛擬服務(wù)器的對應(yīng)關(guān)系可以如表一所示:表一虛擬服務(wù)器ABCD分塊00102030由表一可見,當(dāng)確定URL對應(yīng)的分塊的哈希值為10時(shí),通過查詢分布式數(shù)據(jù)庫,可以知道處理該URL的虛擬服務(wù)器為虛擬服務(wù)器B。第二種管理方式,將存儲服務(wù)器分為至少一個(gè)分塊,每個(gè)分塊由多個(gè)虛擬服務(wù)器管理,其中,本發(fā)明實(shí)施例中提到的多個(gè)均指至少兩個(gè)。此時(shí),分布式數(shù)據(jù)庫中存儲的分塊與虛擬服務(wù)器的對應(yīng)關(guān)系可以如表二所示:表二虛擬服務(wù)器ABCD分塊0000012030由表二可見,當(dāng)確定URL對應(yīng)的分塊的哈希值為000時(shí),通過查詢分布式數(shù)據(jù)庫,可以知道處理該URL的虛擬服務(wù)器為虛擬服務(wù)器A。本發(fā)明實(shí)施例中,為了實(shí)現(xiàn)分塊與虛擬服務(wù)器的一對多的對應(yīng)關(guān)系,可以使每個(gè)分塊具有多個(gè)哈希值,每個(gè)分塊的一個(gè)哈希值對應(yīng)一個(gè)虛擬服務(wù)器,使一個(gè)分塊獲得多個(gè)哈希值的方式可以在分塊的標(biāo)識后面添加序號,例如,表二中的分塊000和分塊001對應(yīng)同一分塊00,也就是說,分塊00由兩個(gè)虛擬服務(wù)器管理,這兩個(gè)虛擬服務(wù)器分別為虛擬服務(wù)器A和虛擬服務(wù)器B。對應(yīng)于第一種管理方式和第二種管理方式,可以采取相同的方法確定處理URL的虛擬服務(wù)器B,具體地:虛擬服務(wù)器A根據(jù)URL,計(jì)算URL的哈希值;向分布式數(shù)據(jù)庫查詢分塊的哈希值,根據(jù)一致性哈希算法,確定URL對應(yīng)的分塊的哈希值;根據(jù)URL對應(yīng)的分塊的哈希值,向分布式數(shù)據(jù)庫查詢該分塊的哈希值對應(yīng)的虛擬服務(wù)器的哈希值;將查詢到的虛擬服務(wù)器確定為處理URL的虛擬服務(wù)器B。如果步驟302確定出的虛擬服務(wù)器B和虛擬服務(wù)器A不是同一虛擬服務(wù)器,則執(zhí)行步驟303;如果步驟302確定出的虛擬服務(wù)器B和虛擬服務(wù)器A是同一虛擬服務(wù)器,則執(zhí)行步驟304。步驟303,當(dāng)虛擬服務(wù)器A與虛擬服務(wù)器B不一致時(shí),虛擬服務(wù)器A將請求消息重定向至虛擬服務(wù)器B。步驟304,虛擬服務(wù)器B判斷自身管理的存儲服務(wù)器中是否緩存了URL對應(yīng)的內(nèi)容。若步驟304的判斷結(jié)果為虛擬服務(wù)器B判斷出自身管理的存儲服務(wù)器中緩存了URL對應(yīng)的內(nèi)容,則執(zhí)行步驟305;若步驟304的判斷結(jié)果為虛擬服務(wù)器B判斷出自身管理的存儲服務(wù)器中未緩存URL對應(yīng)的內(nèi)容,則執(zhí)行步驟307。步驟305,當(dāng)虛擬服務(wù)器B判斷出自身管理的存儲服務(wù)器中緩存了URL 對應(yīng)的內(nèi)容時(shí),將請求消息重定向至緩存隊(duì)列所記錄的URL對應(yīng)的存儲服務(wù)器,并向URL對應(yīng)的存儲服務(wù)器發(fā)送第一通知消息。步驟306,URL對應(yīng)的存儲服務(wù)器根據(jù)請求消息和第一通知消息,將緩存的URL對應(yīng)的內(nèi)容發(fā)送給UE。其中,第一通知消息用于指示存儲服務(wù)器,該存儲服務(wù)器中緩存有URL對應(yīng)的內(nèi)容,可選地,步驟305中也可以不向URL對應(yīng)的存儲服務(wù)器發(fā)送第一通知消息,相應(yīng)地,步驟306中URL對應(yīng)的存儲服務(wù)器根據(jù)請求消息判斷自身是否緩存了URL對應(yīng)的內(nèi)容,當(dāng)判斷出自身緩存了URL對應(yīng)的內(nèi)容時(shí),將緩存的URL對應(yīng)的內(nèi)容發(fā)送給UE。步驟307,當(dāng)虛擬服務(wù)器B判斷出自身管理的存儲服務(wù)器中未緩存URL對應(yīng)的內(nèi)容時(shí),將請求消息重定向至根據(jù)一致性哈希算法確定的URL對應(yīng)的存儲服務(wù)器,并向URL對應(yīng)的存儲服務(wù)器發(fā)送第二通知消息。步驟308,URL對應(yīng)的存儲服務(wù)器根據(jù)請求消息和第二通知消息,回源獲取URL對應(yīng)的內(nèi)容,將獲取的URL對應(yīng)的內(nèi)容發(fā)送給UE。其中,第二通知消息用于指示存儲服務(wù)器,該存儲服務(wù)器中未緩存有URL對應(yīng)的內(nèi)容,可選地,步驟307中也可以不向URL對應(yīng)的存儲服務(wù)器發(fā)送第二通知消息,相應(yīng)地,步驟308中URL對應(yīng)的存儲服務(wù)器根據(jù)請求消息判斷自身是否緩存了URL對應(yīng)的內(nèi)容,當(dāng)判斷出自身未緩存URL對應(yīng)的內(nèi)容時(shí),回源獲取URL對應(yīng)的內(nèi)容,將獲取的URL對應(yīng)的內(nèi)容發(fā)送給UE。上述回源獲取URL對應(yīng)的內(nèi)容,具體可以為:從中間節(jié)點(diǎn)獲取URL對應(yīng)的內(nèi)容或者從中心節(jié)點(diǎn)獲取URL對應(yīng)的內(nèi)容。由于虛擬服務(wù)器對分塊采用第一種管理方式和采用第二種管理方式時(shí),內(nèi)容分發(fā)方法的流程有所不同,下面針對兩種管理方式下的內(nèi)容分發(fā)方法分別進(jìn)行說明:內(nèi)容分發(fā)方法還可以包括內(nèi)容存儲的處理流程,針對第一種管理方式,在步驟307之后,該方法還可以包括:步驟3071,虛擬服務(wù)器B更新URL對應(yīng)的熱度信息。步驟3072,根據(jù)熱度信息,判斷是否需要緩存URL對應(yīng)的內(nèi)容。步驟3073,當(dāng)判斷出需要緩存URL對應(yīng)的內(nèi)容時(shí),判斷URL對應(yīng)的分塊的存儲容量是否已滿。這里URL對應(yīng)的分塊,指的是根據(jù)一致性哈希算法確定的URL對應(yīng)的分塊。若步驟3073的判斷結(jié)果為判斷出URL對應(yīng)的分塊的存儲容量未滿,則執(zhí)行步驟3074;若步驟3073的判斷結(jié)果為判斷出URL對應(yīng)的分塊的存儲容量已滿,則執(zhí)行步驟3075。步驟3074,當(dāng)判斷出URL對應(yīng)的分塊的存儲容量未滿時(shí),通知存儲服務(wù)器緩存URL對應(yīng)的內(nèi)容到URL對應(yīng)的分塊。本發(fā)明實(shí)施例中,以存儲服務(wù)器D代表URL對應(yīng)的分塊所在的存儲服務(wù)器。步驟3075,當(dāng)判斷出URL對應(yīng)的分塊的存儲容量已滿時(shí),在虛擬服務(wù)器B管理的多個(gè)分塊中,選擇一個(gè)存儲容量未滿的分塊;通知存儲服務(wù)器緩存URL對應(yīng)的內(nèi)容到選擇的分塊,并將URL、緩存URL的分塊的標(biāo)識和URL對應(yīng)的熱度信息添加到緩存隊(duì)列的記錄中。本發(fā)明實(shí)施例中,以存儲服務(wù)器C代表虛擬服務(wù)器B選擇的一個(gè)存儲容量未滿的分塊所在的存儲服務(wù)器。其中,存儲服務(wù)器C和存儲服務(wù)器D可能是同一存儲服務(wù)器,也可能是不同的存儲服務(wù)器。內(nèi)容分發(fā)方法還可以包括內(nèi)容刪除的處理流程,存儲服務(wù)器可以定時(shí)或由事件觸發(fā)向管理分塊的虛擬服務(wù)器上報(bào)分塊的存儲容量,針對第一種管理方式,當(dāng)虛擬服務(wù)器B確定管理的多個(gè)分塊的存儲容量均已滿時(shí),從緩存隊(duì)列中查詢熱度低于第一閾值的記錄;根據(jù)查詢到的記錄,通知該記錄中的分塊對應(yīng)的存儲服務(wù)器刪除該記錄中的URL對應(yīng)的內(nèi)容。本發(fā)明實(shí)施例還提供了一種虛擬服務(wù)器的管理方法,參照圖4所示的虛擬服務(wù)器的管理方法流程圖,本發(fā)明實(shí)施例中,邊緣節(jié)點(diǎn)包含的虛擬服務(wù)器的數(shù)量不是固定不變的,可以隨著CDN系統(tǒng)負(fù)荷的變化而增加或減少虛擬服務(wù)器,該方法可由云平臺來執(zhí)行,下面以第一種管理方式為例進(jìn)行說明,該方法包括:步驟401,云平臺根據(jù)CDN系統(tǒng)的負(fù)荷,判斷是否需要增加虛擬服務(wù)器或者減少虛擬服務(wù)器。當(dāng)判斷結(jié)果為需要增加虛擬服務(wù)器時(shí),執(zhí)行步驟402;當(dāng)判斷結(jié)果為需要減少虛擬服務(wù)器時(shí),執(zhí)行步驟406。步驟402,當(dāng)需要增加虛擬服務(wù)器時(shí),確定需要分配給新增虛擬服務(wù)器的分塊數(shù)目。步驟403,從所有分塊中選擇上述分塊數(shù)目個(gè)分塊。其中,可以采用隨機(jī)選擇的方式來選擇新增虛擬服務(wù)器對應(yīng)的分塊,也可以根據(jù)一致性哈希算法確定新增虛擬服務(wù)器對應(yīng)的分塊。步驟404,刪除選擇的分塊中的內(nèi)容。步驟405,將所選分塊分配給新增虛擬服務(wù)器,并更新分布式數(shù)據(jù)庫中保存的分塊與虛擬服務(wù)器的對應(yīng)關(guān)系。步驟406,當(dāng)需要減少虛擬服務(wù)器時(shí),通知存儲服務(wù)器刪除待減少的虛擬服務(wù)器對應(yīng)的分塊中的文件。步驟407,將待減少的虛擬服務(wù)器對應(yīng)的分塊分配給其他的虛擬服務(wù)器,更新分布式數(shù)據(jù)庫中保存的分塊與虛擬服務(wù)器的對應(yīng)關(guān)系。針對第二種管理方式,內(nèi)容分發(fā)方法包括的內(nèi)容存儲的處理流程,與第一種管理方式類似,在此不做贅述。針對第二種管理方式,內(nèi)容分發(fā)方法還可以包括內(nèi)容刪除的處理流程,由于采用第二種管理方式時(shí),一個(gè)分塊由多個(gè)虛擬服務(wù)器管理,因此要根據(jù)多個(gè)虛擬服務(wù)器的協(xié)商結(jié)果來確定刪除一個(gè)分塊中的哪些內(nèi)容,而不能由一 個(gè)虛擬服務(wù)器單獨(dú)來確定刪除一個(gè)分塊中的哪些內(nèi)容,具體地,該方法包括:當(dāng)URL對應(yīng)的分塊的存儲容量已滿時(shí),該分塊所屬的存儲服務(wù)器向管理該分塊的多個(gè)虛擬服務(wù)器上報(bào)該分塊已滿的通知信息,通知分塊對應(yīng)的虛擬服務(wù)器需要淘汰熱度較低的第一百分比的內(nèi)容;多個(gè)虛擬服務(wù)器中的每個(gè)虛擬服務(wù)器分別向該存儲服務(wù)器發(fā)送刪除通知,刪除通知中攜帶虛擬服務(wù)器管理的該分塊中熱度較低的第二百分比的內(nèi)容的URL,以及該部分內(nèi)容的熱度信息;存儲服務(wù)器根據(jù)每個(gè)刪除通知中攜帶的URL對應(yīng)的內(nèi)容的熱度信息,將熱度信息指示的熱度最低的刪除通知中攜帶的URL對應(yīng)的內(nèi)容刪除。其中,熱度信息具體可以為平均熱度、最大熱度或最小熱度,本發(fā)明實(shí)施例中,可以設(shè)定第二百分比小于第一百分比,從而可以通過虛擬服務(wù)器多次發(fā)送刪除通知,以便比較精確的刪除熱度較低的內(nèi)容。本發(fā)明實(shí)施例還提供了一種虛擬服務(wù)器的管理方法,參照圖5所示的虛擬服務(wù)器的管理方法流程圖,本發(fā)明實(shí)施例中,針對第二種管理方式與第一種管理方式略有不同,該方法包括:步驟501,云平臺根據(jù)CDN系統(tǒng)的負(fù)荷,判斷是否需要增加虛擬服務(wù)器或者減少虛擬服務(wù)器。當(dāng)判斷結(jié)果為需要增加虛擬服務(wù)器時(shí),執(zhí)行步驟502;當(dāng)判斷結(jié)果為需要減少虛擬服務(wù)器時(shí),執(zhí)行步驟506。步驟502,當(dāng)需要增加虛擬服務(wù)器時(shí),計(jì)算新增虛擬服務(wù)器的哈希值。步驟503,基于一致性哈希算法,為新增虛擬服務(wù)器分配對應(yīng)的分塊。步驟504,刪除分配的分塊中的屬于原對應(yīng)虛擬服務(wù)器緩存隊(duì)列的內(nèi)容。步驟505,更新分布式數(shù)據(jù)庫中保存的分塊與虛擬服務(wù)器的對應(yīng)關(guān)系。與第一種管理方式不同的是,步驟505中,更新上述對應(yīng)關(guān)系比較簡單,僅需增加一個(gè)分塊的哈希值與虛擬服務(wù)器的哈希值的對應(yīng)關(guān)系,由于分塊可以由多個(gè)虛擬服務(wù)器管理,因此無需刪除該分塊與其他虛擬服務(wù)器的對應(yīng)關(guān)系。步驟506,當(dāng)需要減少虛擬服務(wù)器時(shí),確定將減少的虛擬服務(wù)器對應(yīng)的分塊。步驟507,通知存儲服務(wù)器刪除將減少的虛擬服務(wù)器對應(yīng)的分塊中的屬于該虛擬服務(wù)器的緩存隊(duì)列的內(nèi)容。步驟508,更新分布式數(shù)據(jù)庫中保存的分塊與虛擬服務(wù)器的對應(yīng)關(guān)系。本發(fā)明實(shí)施例中涉及到URL的哈希值、分塊的哈希值和服務(wù)器的哈希值,下面以URL的哈希值為例進(jìn)行說明,CDN系統(tǒng)中的內(nèi)容標(biāo)識是內(nèi)容所對應(yīng)的URL,通常為了節(jié)省存儲空間,CDN系統(tǒng)中不使用URL的原始字符串,而是使用URL的哈希(Hash)串來代表URL,上述哈希串也可稱為哈希值,圖6為哈希值生成方法示意圖,參照圖6,通過將原始URL分段,對每段利用任意Hash算法得到一個(gè)固定長度的二進(jìn)制串,再合并而成。圖6中對于某URL所得到的Hash串是長度為64的二進(jìn)制串。本發(fā)明實(shí)施例中,采用對URL分布式處理的方式,由于內(nèi)容分發(fā)網(wǎng)絡(luò)中所處理的URL數(shù)目數(shù)以億級,所以當(dāng)服務(wù)器集群,如邊緣節(jié)點(diǎn)的服務(wù)器集群處理URL的時(shí)候,一般采用分布式的處理方法。具體來說,就是將整個(gè)URL的集合根據(jù)邊緣節(jié)點(diǎn)的服務(wù)器集群中服務(wù)器的數(shù)量,分為獨(dú)立的URL子集合,每個(gè)邊緣服務(wù)器只處理自己對應(yīng)的URL子集合。一個(gè)URL只會在唯一一臺邊緣服務(wù)器上進(jìn)行處理。這里的處理是指邊緣服務(wù)器對URL對應(yīng)的內(nèi)容進(jìn)行熱度計(jì)算,判斷是否緩存,緩存對應(yīng)的文件內(nèi)容,回源獲取URL對應(yīng)的文件內(nèi)容等操作。判斷一個(gè)URL對應(yīng)的邊緣服務(wù)器可以基于一致性哈希的技術(shù),具體地,可以先根據(jù)一致性哈希算法,確定URL對應(yīng)的分塊,然后在分布式數(shù)據(jù)庫中查找該分塊對應(yīng)的虛擬服務(wù)器,從而確定URL對應(yīng)的虛擬服務(wù)器;或者,如果分布式數(shù)據(jù)庫中存儲的分塊的哈希值與虛擬服務(wù)器的哈希值的對應(yīng)關(guān)系滿足一致性哈希算法,則可以直接根據(jù)一致性哈希算法,確定URL對應(yīng)的虛擬服務(wù)器。下面以上述第二種情況為例,對一致性哈希算法進(jìn)行簡要說明,圖7 為URL對應(yīng)的邊緣服務(wù)器的確定方法示意圖,參照圖7,具體的判斷方法是,基于某個(gè)哈希算法,如murmur算法,對URL和服務(wù)器的標(biāo)識(ID)做哈希,得到URL的哈希串和服務(wù)器的哈希串,這個(gè)哈希串通常為二進(jìn)制串。圖7所示的哈希串的長度是32位,所有可能的長度為32的哈希串組成了一個(gè)環(huán),環(huán)上面的每個(gè)點(diǎn)對應(yīng)某個(gè)哈希串,總共有2^32個(gè)Hash串。那么URL的哈希串和服務(wù)器的哈希串都會對應(yīng)在環(huán)上某個(gè)點(diǎn)。從URL的哈希串對應(yīng)的點(diǎn)出發(fā),順時(shí)針?biāo)龅降牡谝粋€(gè)服務(wù)器的哈希串對應(yīng)的點(diǎn),那么這個(gè)服務(wù)器就是處理此URL的服務(wù)器。通常情況下,由于服務(wù)器的數(shù)量遠(yuǎn)遠(yuǎn)小于URL的數(shù)目,為了負(fù)載均衡,對于一臺服務(wù)器,會生成多個(gè)哈希串,也就是說,一個(gè)服務(wù)器對應(yīng)于環(huán)上多個(gè)點(diǎn)。生成多個(gè)哈希串的方法可以在服務(wù)器的ID后添加序號來解決。本發(fā)明實(shí)施例提出了一種邊緣節(jié)點(diǎn)的服務(wù)器集群的架構(gòu),結(jié)合云計(jì)算技術(shù)和獨(dú)立的存儲服務(wù)器來實(shí)現(xiàn)內(nèi)容分發(fā)網(wǎng)絡(luò)中的邊緣節(jié)點(diǎn)的服務(wù)器集群,其中,存儲服務(wù)器采用獨(dú)立的物理服務(wù)器來實(shí)現(xiàn)。圖8為本發(fā)明提出的邊緣節(jié)點(diǎn)的服務(wù)器集群的架構(gòu)示意圖,參照圖8,該架構(gòu)的特點(diǎn)是將服務(wù)器集群的計(jì)算能力和存儲能力分開來,將計(jì)算能力利用云計(jì)算的虛擬化技術(shù)實(shí)現(xiàn),而存儲能力采用獨(dú)立的存儲服務(wù)器實(shí)現(xiàn)。每一臺虛擬服務(wù)器可以訪問一臺或多臺存儲服務(wù)器。本發(fā)明實(shí)施例中,虛擬服務(wù)器與存儲服務(wù)器的對應(yīng)關(guān)系比較靈活,虛擬服務(wù)器與存儲服務(wù)器可以是一對多的對應(yīng)關(guān)系,存儲服務(wù)器與虛擬服務(wù)器也可以是一對多的對應(yīng)關(guān)系,而不必完全是一一對應(yīng)的對應(yīng)關(guān)系。如果虛擬服務(wù)器和存儲服務(wù)器一一對應(yīng),則虛擬服務(wù)器的數(shù)量與存儲服務(wù)器的數(shù)量必須相等,導(dǎo)致當(dāng)需要彈性伸縮虛擬服務(wù)器的時(shí)候,就必須同時(shí)增加或減少存儲服務(wù)器的數(shù)量,影響虛擬服務(wù)器的動態(tài)彈性伸縮。所以,本發(fā)明實(shí)施例中,對于一個(gè)虛擬服務(wù)器對應(yīng)的存儲服務(wù)器的數(shù)目不做限定,對于一個(gè)存儲服務(wù)器對應(yīng)的虛擬服務(wù)器的數(shù)目也不做限定,即一臺存儲服務(wù)器可以對應(yīng)多臺虛擬服務(wù)器,一臺虛擬服務(wù)器可以對應(yīng)多臺存儲服務(wù)器。參照圖8,本發(fā)明實(shí)施例中,虛擬服務(wù)器與存儲服務(wù)器的對應(yīng)關(guān)系不必一一對應(yīng),具有以下好處:虛擬服務(wù)器的數(shù)量與存儲服務(wù)器的數(shù)量可以不等;方便實(shí)現(xiàn)容量不等的異構(gòu)的存儲服務(wù)器混合組網(wǎng);增加虛擬服務(wù)器時(shí)可以平均從多臺虛擬服務(wù)器獲得其對應(yīng)存儲空間;減少虛擬服務(wù)器時(shí)可以將對應(yīng)的存儲空間平均分配給多臺虛擬服務(wù)器管理;避免單臺虛擬服務(wù)器過熱導(dǎo)致某存儲服務(wù)器負(fù)載過重的情況。要實(shí)現(xiàn)存儲服務(wù)器與虛擬服務(wù)器的一對多對應(yīng),可以對存儲服務(wù)器的存儲能力進(jìn)行分塊。分塊的原則可以是根據(jù)不同存儲服務(wù)器的存儲能力,采用相似的分塊大小進(jìn)行分塊。圖9為存儲服務(wù)器的分塊示意圖,參照圖9,每個(gè)存儲服務(wù)器被劃分為3個(gè)分塊,例如,其中一個(gè)存儲服務(wù)器劃分的3個(gè)分塊分別用Partition1.1、Partition1.2和Partition1.3標(biāo)識,分塊的數(shù)目為至少一個(gè),圖中僅以分塊數(shù)目為3作為示例,并不用于對本發(fā)明的限定。本發(fā)明實(shí)施例中,當(dāng)采用第一種管理方式時(shí),每一個(gè)存儲分塊只能由一個(gè)虛擬服務(wù)器進(jìn)行訪問和管理,其優(yōu)點(diǎn)是虛擬服務(wù)器可以拉通存儲自己管理的分塊,提高磁盤利用率,缺點(diǎn)是當(dāng)伸縮虛擬服務(wù)器時(shí),維護(hù)存儲服務(wù)器的存儲與虛擬服務(wù)器的對應(yīng)關(guān)系稍復(fù)雜。對于每一存儲分塊,可以隨機(jī)選擇一個(gè)虛擬服務(wù)器作為其分配的虛擬服務(wù)器,或者,根據(jù)一致性哈希算法確定為其分配的虛擬服務(wù)器,存儲分塊與虛擬服務(wù)器的對應(yīng)關(guān)系存儲于內(nèi)容分發(fā)網(wǎng)絡(luò)的分布式數(shù)據(jù)庫中。圖10為存儲分塊和虛擬服務(wù)器的對應(yīng)關(guān)系示意圖,參照圖10,一個(gè)分塊只能由一個(gè)虛擬服務(wù)器管理,但是一個(gè)虛擬服務(wù)器可以管理多個(gè)存儲服務(wù)器的多個(gè)分塊,從而實(shí)現(xiàn)虛擬服務(wù)器和存儲服務(wù)器之間一對多的對應(yīng)關(guān)系。下面通過幾個(gè)具體的實(shí)施例,對本發(fā)明實(shí)施例提供的內(nèi)容分發(fā)方法進(jìn)行詳細(xì)說明。圖11為本發(fā)明實(shí)施例提供的內(nèi)容分發(fā)方法流程圖,該實(shí)施例闡述了在邊緣節(jié)點(diǎn)的服務(wù)器集群中,對存儲服務(wù)器的存儲空間進(jìn)行分塊,每一個(gè)分塊由 一臺虛擬服務(wù)器管理下,實(shí)現(xiàn)文件分發(fā)流程,該方法包括:步驟1101,用戶向路由服務(wù)器請求文件。其中,用戶可以通過UE向路由服務(wù)器發(fā)送請求消息,該請求消息中攜帶用戶想要獲取的文件內(nèi)容的URL。步驟1102,路由服務(wù)器向負(fù)載均衡服務(wù)器請求可接受用戶請求的虛擬服務(wù)器。本發(fā)明實(shí)施例中,路由服務(wù)器和負(fù)載均衡服務(wù)器可以集成在一個(gè)設(shè)備中,統(tǒng)稱為負(fù)載均衡與路由服務(wù)器,或者,也可以單獨(dú)設(shè)立路由服務(wù)器和負(fù)載均衡服務(wù)器。步驟1103,路由服務(wù)器重定向用戶請求到負(fù)載均衡服務(wù)器返回的虛擬服務(wù)器A。步驟1104,虛擬服務(wù)器A計(jì)算URL所對應(yīng)的Hash串。步驟1105,虛擬服務(wù)器A向分布式數(shù)據(jù)庫查詢分塊的Hash串。步驟1106,虛擬服務(wù)器A根據(jù)URL的Hash串和分塊的Hash串,根據(jù)一致性Hash判斷URL對應(yīng)的分塊。步驟1104至1106中的關(guān)鍵技術(shù)方案:虛擬服務(wù)器根據(jù)URL判斷應(yīng)該處理此URL的分塊,從而可以確定處理此URL的存儲服務(wù)器。虛擬服務(wù)器可以先根據(jù)URL,判斷應(yīng)該處理此URL的存儲分塊和存儲服務(wù)器,然后再判斷URL對應(yīng)的虛擬服務(wù)器。根據(jù)URL判斷URL對應(yīng)的分塊,是根據(jù)一致性Hash算法,具體的判斷方法是,基于某個(gè)Hash算法,如murmur算法,對URL和存儲分塊的ID做Hash,得到URL和服務(wù)器的Hash串。所有可能的Hash串組成了一個(gè)環(huán),環(huán)上面的每個(gè)點(diǎn)對應(yīng)某個(gè)Hash串。那么URL的Hash串,和存儲分塊的Hash串都會對應(yīng)在環(huán)上某個(gè)點(diǎn)。從URL的Hash串對應(yīng)的點(diǎn)出發(fā),順時(shí)針?biāo)龅降牡谝粋€(gè)存儲分塊Hash串對應(yīng)的點(diǎn),那么這個(gè)存儲分塊就是緩存時(shí)用來存儲此URL內(nèi)容的存儲分塊,存儲分塊所在的存儲服務(wù)器就是處理此URL的存儲服務(wù)器。通常情況下,由于存儲分塊的數(shù)量遠(yuǎn)遠(yuǎn)小于URL的數(shù)目,為了負(fù)載均衡,對于一個(gè)存儲分塊,會生成多個(gè)Hash串,對應(yīng)于環(huán)上多個(gè)點(diǎn)。生成多個(gè)Hash串的方法可以在存儲分塊的ID后添加序號來解決。步驟1107,虛擬服務(wù)器A根據(jù)分塊的Hash串向分布式數(shù)據(jù)庫查詢分塊所對應(yīng)的虛擬服務(wù)器B。步驟1107中的關(guān)鍵技術(shù)方案:虛擬服務(wù)器根據(jù)URL判斷應(yīng)該處理此URL的虛擬服務(wù)器。存儲分塊與虛擬服務(wù)器的對應(yīng)關(guān)系存儲于內(nèi)容分發(fā)網(wǎng)絡(luò)的分布式數(shù)據(jù)庫中,建立分布式數(shù)據(jù)庫時(shí),對于每一存儲分塊,可以隨機(jī)選擇(如uniformsampling)一個(gè)虛擬服務(wù)器作為其分配的虛擬服務(wù)器。得到URL對應(yīng)的存儲分塊和存儲服務(wù)器后,可以根據(jù)分布式數(shù)據(jù)庫中存儲的存儲分塊Hash值和虛擬機(jī)Hash值的對應(yīng)關(guān)系來得到URL對應(yīng)的虛擬服務(wù)器。步驟1108,如果虛擬服務(wù)器A和虛擬服務(wù)器B是同一虛擬服務(wù)器,則轉(zhuǎn)向步驟1110,否則轉(zhuǎn)向步驟1109。步驟1109,重定向用戶請求到虛擬服務(wù)器B。步驟1110,虛擬服務(wù)器B根據(jù)用戶請求的URL判斷用戶請求的文件是否已經(jīng)存在于緩存隊(duì)列中。步驟1111,如果用戶請求的文件在緩存隊(duì)列中,則重定向用戶請求到緩存隊(duì)列中記錄的該URL對應(yīng)的存儲服務(wù)器,并通知存儲服務(wù)器進(jìn)行文件分發(fā)。步驟1112,如果用戶請求的文件不在緩存隊(duì)列中,則重定向用戶請求到根據(jù)一致性哈希確定的該URL對應(yīng)的存儲服務(wù)器,并通知存儲服務(wù)器回源獲取用戶請求的文件內(nèi)容。步驟1113,存儲服務(wù)器返回用戶請求的內(nèi)容。圖12為本發(fā)明實(shí)施例提供的內(nèi)容分發(fā)方法流程圖,該實(shí)施例闡述了在邊緣節(jié)點(diǎn)的服務(wù)器集群中,對存儲服務(wù)器的存儲空間進(jìn)行分塊,每一個(gè)分塊由一臺虛擬服務(wù)器管理下,虛擬服務(wù)器如何管理存儲服務(wù)器存儲文件和刪除文 件,該方法包括:步驟1201,虛擬服務(wù)器收到用戶請求某URL的文件內(nèi)容。步驟1202,虛擬服務(wù)器更新用戶請求的URL對應(yīng)的文件的熱度信息。步驟1203,虛擬服務(wù)器根據(jù)熱度信息判斷是否需要緩存URL對應(yīng)的文件內(nèi)容,如果是,則轉(zhuǎn)向步驟1204,否則結(jié)束。步驟1204,虛擬服務(wù)器判斷URL對應(yīng)的分塊的存儲容量是否已滿,如是則轉(zhuǎn)向步驟1205,否則轉(zhuǎn)向步驟1206。本發(fā)明實(shí)施例中,可以由存儲服務(wù)器通知虛擬服務(wù)器分塊的容量占用情況。步驟1205,虛擬服務(wù)器在所管理的分塊中選擇其他任一容量未滿之分塊,用于存儲URL對應(yīng)的文件內(nèi)容。步驟1206,虛擬服務(wù)器在緩存隊(duì)列中URL所對應(yīng)的記錄中添加所存儲的分塊ID。步驟1207,虛擬服務(wù)器緩存用戶請求的URL對應(yīng)的文件內(nèi)容,通知分塊對應(yīng)的存儲服務(wù)器存儲文件內(nèi)容。步驟1204至1207對應(yīng)的關(guān)鍵技術(shù)方案:如何將緩存隊(duì)列的文件內(nèi)容存儲在存儲服務(wù)器上。本發(fā)明實(shí)施例中,一個(gè)分塊只能由一臺虛擬服務(wù)器管理,但一臺虛擬服務(wù)器可以管理多個(gè)分塊。如果虛擬服務(wù)器為一個(gè)管理的分塊創(chuàng)建一個(gè)緩存隊(duì)列,各個(gè)緩存隊(duì)列之間獨(dú)立管理,各個(gè)緩存隊(duì)列利用現(xiàn)有CDN緩存管理技術(shù)獨(dú)立管理,會導(dǎo)致硬盤利用率低,各分塊熱度不均勻,命中率低。為了避免這些缺點(diǎn),本發(fā)明實(shí)施例中采用統(tǒng)一管理的策略,虛擬服務(wù)器對所管理的多個(gè)分塊只創(chuàng)建唯一的緩存隊(duì)列。緩存隊(duì)列中的文件存儲在文件的URL對應(yīng)的分塊中。如果某文件的URL對應(yīng)的分塊的存儲容量已滿,而虛擬服務(wù)器所管理的其他分塊的容量未滿的時(shí)候,則將文件存儲在其他任一容量未滿的分塊中,同時(shí)在緩存隊(duì)列中文件對應(yīng)的記錄中標(biāo)記所存儲的分塊。 這樣當(dāng)某用戶請求該文件內(nèi)容時(shí),用戶請求被重定向到緩存記錄中所標(biāo)記的分塊對應(yīng)的存儲服務(wù)器。其中,分塊的存儲容量滿是指分塊所存儲的文件的總量已經(jīng)大于存儲容量的C%,即達(dá)到吃水線,通常C值為80至85,本發(fā)明不對C的取值進(jìn)行限定。步驟1208,虛擬服務(wù)器判斷自身所管理的所有分塊的容量是否均已滿,如是則轉(zhuǎn)向步驟1209,否則結(jié)束。其中,由存儲服務(wù)器通知虛擬服務(wù)器分塊的容量占用情況。步驟1209,虛擬服務(wù)器從緩存隊(duì)列中查詢熱度最低的一部分內(nèi)容。例如,查詢熱度最低的5%內(nèi)容。步驟1210,虛擬服務(wù)器通知分塊對應(yīng)的存儲服務(wù)器刪除所查詢到的對應(yīng)于此分塊的熱度最低的內(nèi)容。步驟1208至1210對應(yīng)的關(guān)鍵技術(shù)方案:當(dāng)虛擬服務(wù)器所管理的所有分塊均存儲滿時(shí),如何刪除對應(yīng)存儲服務(wù)器中的文件內(nèi)容。其中,存儲服務(wù)器會監(jiān)控本機(jī)所有分塊的容量占用情況,并定時(shí)或由事件促發(fā)通知分塊對應(yīng)的虛擬服務(wù)器容量占用情況,例如,分塊容量已滿時(shí),通知分塊對應(yīng)的虛擬服務(wù)器該分塊容量已滿。當(dāng)虛擬服務(wù)器管理的所有分塊的存儲容量都已滿時(shí),虛擬服務(wù)器會從緩存隊(duì)列中查詢熱度最低的一部分內(nèi)容,如熱度最低的5%內(nèi)容,并通知存儲服務(wù)器刪除這部分內(nèi)容。本發(fā)明實(shí)施例對于虛擬服務(wù)器如何計(jì)算用戶請求對應(yīng)的URL的熱度信息,以及具體的緩存隊(duì)列算法不做限定,例如常見的近期最少使用(LeastRecentUsage,LRU)算法,最不經(jīng)常使用(LeastFrequentUsage,LFU)算法等算法都可以使用。圖13為本發(fā)明實(shí)施例提供的內(nèi)容分發(fā)方法流程圖,該實(shí)施例闡述了在邊緣節(jié)點(diǎn)的服務(wù)器集群中,對存儲服務(wù)器的存儲空間進(jìn)行分塊,每一個(gè)分塊由一臺虛擬服務(wù)器管理下,當(dāng)虛擬服務(wù)器伸縮的時(shí)候如何維護(hù)存儲服務(wù)器的存 儲與虛擬服務(wù)器的對應(yīng)關(guān)系,該方法包括:步驟1301,云平臺根據(jù)負(fù)載情況判斷是否需要增加虛擬服務(wù)器或減少虛擬服務(wù)器。當(dāng)判斷出需要增加虛擬服務(wù)器時(shí),執(zhí)行步驟1302;當(dāng)判斷出需要減少虛擬服務(wù)器時(shí),執(zhí)行步驟1306。步驟1302,當(dāng)需要增加虛擬服務(wù)器時(shí),云平臺計(jì)算需要重新分配給新增虛擬服務(wù)器的分塊數(shù)目a。例如,可以采用虛擬服務(wù)器的管理分塊數(shù)的平均值作為a。步驟1303,云平臺從所有分塊中隨機(jī)選擇a個(gè)分塊。例如,可采用uniformsample的采樣方法。步驟1304,云平臺刪除所選擇的a個(gè)分塊中的文件。步驟1305,云平臺創(chuàng)建一個(gè)虛擬服務(wù)器,并將所選分塊分配給新增虛擬服務(wù)器,更新分布式數(shù)據(jù)庫中保存的分塊與虛擬服務(wù)器的對應(yīng)關(guān)系。其中,更新分布式數(shù)據(jù)庫中保存的分塊與虛擬服務(wù)器的對應(yīng)關(guān)系,具體為:刪除分布式數(shù)據(jù)庫中原有的所選分塊與虛擬服務(wù)器的對應(yīng)關(guān)系,增加所選分塊與新增虛擬服務(wù)器的對應(yīng)關(guān)系。步驟1306,當(dāng)需要減少虛擬服務(wù)器時(shí),云平臺通知存儲服務(wù)器刪除將減少的虛擬服務(wù)器對應(yīng)分塊中的文件。步驟1307,云平臺刪除上述將減少的虛擬服務(wù)器,并將該虛擬服務(wù)器對應(yīng)的分塊隨機(jī)分配給其他的虛擬服務(wù)器,更新分布式數(shù)據(jù)庫中保存的分塊與虛擬服務(wù)器的對應(yīng)關(guān)系。其中,更新分布式數(shù)據(jù)庫中保存的分塊與虛擬服務(wù)器的對應(yīng)關(guān)系,具體為:刪除分布式數(shù)據(jù)庫中分塊與減少的虛擬服務(wù)器的對應(yīng)關(guān)系,建立分塊與其他虛擬服務(wù)器的對應(yīng)關(guān)系。本發(fā)明實(shí)施例中,還可以采用將存儲服務(wù)器劃分為一個(gè)或多個(gè)分塊,每一個(gè)存儲分塊可以由多臺虛擬服務(wù)器進(jìn)行訪問和管理的方式,其優(yōu)點(diǎn)當(dāng)伸縮虛擬服務(wù)器時(shí),維護(hù)存儲服務(wù)器的存儲與虛擬服務(wù)器的對應(yīng)關(guān)系簡單,缺點(diǎn) 是虛擬服務(wù)器無法拉通存儲自己管理的分塊,磁盤利用率相對較低。對于每一存儲分塊,隨機(jī)選擇多個(gè)虛擬服務(wù)器作為其分配的虛擬服務(wù)器,存儲分塊與虛擬服務(wù)器的對應(yīng)關(guān)系存儲于內(nèi)容分發(fā)網(wǎng)絡(luò)的分布式數(shù)據(jù)庫中,本發(fā)明對于選擇的虛擬服務(wù)器的數(shù)量不做限定。本發(fā)明實(shí)施例中,每個(gè)存儲服務(wù)器的分塊數(shù)可以為1,即可以不對存儲服務(wù)器的存儲空間進(jìn)行劃分,即分塊并不是必須的,下面的實(shí)施例中就以分塊數(shù)量為1為例進(jìn)行闡述。圖14為本發(fā)明實(shí)施例提供的內(nèi)容分發(fā)方法流程圖,該實(shí)施例闡述了在邊緣節(jié)點(diǎn)的服務(wù)器集群中,對存儲服務(wù)器的存儲空間進(jìn)行分塊,每一個(gè)分塊可以由多個(gè)虛擬服務(wù)器同時(shí)管理,實(shí)現(xiàn)文件分發(fā)流程,該方法包括:步驟1401,用戶向路由服務(wù)器請求某文件。步驟1402,路由服務(wù)器向負(fù)載均衡服務(wù)器請求可接受用戶請求的虛擬服務(wù)器。步驟1403,路由服務(wù)器重定向用戶請求到負(fù)載均衡服務(wù)器返回的虛擬服務(wù)器A。步驟1404,虛擬服務(wù)器A計(jì)算URL所對應(yīng)的Hash串。步驟1405,虛擬服務(wù)器A向分布式數(shù)據(jù)庫查詢分塊的Hash串。步驟1406,虛擬服務(wù)器A根據(jù)URL的Hash串和分塊的Hash串,根據(jù)一致性Hash判斷URL對應(yīng)的分塊。步驟1401至1406對應(yīng)的關(guān)鍵技術(shù)方案:虛擬服務(wù)器根據(jù)URL判斷應(yīng)該處理此URL的分塊,從而確定處理此URL的存儲服務(wù)器。虛擬服務(wù)器先根據(jù)URL判斷應(yīng)該處理此URL的存儲分塊和對應(yīng)的存儲服務(wù)器,再判斷URL對應(yīng)的虛擬服務(wù)器。根據(jù)URL判斷應(yīng)該處理此URL的分塊的方法是根據(jù)前面介紹的一致性Hash方法。具體的判斷方法是,基于某個(gè)Hash算法,如murmur算法,對URL和存 儲分塊的ID做Hash,得到URL和服務(wù)器的Hash串。所有可能的Hash串組成了一個(gè)環(huán),環(huán)上面的每個(gè)點(diǎn)對應(yīng)某個(gè)Hash串。那么URL的Hash串和存儲分塊的Hash串都會對應(yīng)在環(huán)上某個(gè)點(diǎn)。從URL的Hash串對應(yīng)的點(diǎn)出發(fā),順時(shí)針?biāo)龅降牡谝粋€(gè)存儲分塊Hash串對應(yīng)的點(diǎn),那么這個(gè)存儲分塊就是緩存時(shí)用來存儲此URL內(nèi)容的存儲分塊,存儲分塊所在的存儲服務(wù)器就是處理此URL的存儲服務(wù)器。通常情況下,由于存儲分塊的數(shù)量遠(yuǎn)遠(yuǎn)小于URL的數(shù)目,為了負(fù)載均衡,對于一個(gè)存儲分塊,會生成多個(gè)Hash串,對于環(huán)上多個(gè)點(diǎn)。生成多個(gè)Hash串的方法可以在存儲分塊的ID后添加序號來解決。步驟1407,虛擬服務(wù)器A向分布式數(shù)據(jù)庫查詢虛擬服務(wù)器的Hash串。步驟1408,虛擬服務(wù)器A根據(jù)分塊的Hash串和虛擬服務(wù)器的Hash串,根據(jù)一致性Hash判斷URL對應(yīng)的虛擬服務(wù)器。步驟1408的前提條件是:云平臺建立分布式數(shù)據(jù)庫時(shí),根據(jù)一致性Hash確定分塊的Hash串和虛擬服務(wù)器的Hash串的對應(yīng)關(guān)系,并在分布式數(shù)據(jù)庫中存儲該對應(yīng)關(guān)系。本發(fā)明實(shí)施例中,判斷URL對應(yīng)的虛擬服務(wù)器,可以采用從分布式數(shù)據(jù)庫中查找的方式來代替步驟1508。步驟1407至1408對應(yīng)的關(guān)鍵技術(shù)方案:虛擬服務(wù)器根據(jù)URL判斷應(yīng)該處理此URL的虛擬服務(wù)器。本發(fā)明實(shí)施例中,在得到URL對應(yīng)的存儲分塊和存儲服務(wù)器后,仍然利用一致性Hash算法來得到存儲分塊和虛擬服務(wù)器的對應(yīng)關(guān)系,從而得到URL對應(yīng)的虛擬服務(wù)器。圖15為存儲分塊和虛擬服務(wù)器的對應(yīng)關(guān)系示意圖,參照圖15,每個(gè)分塊和每個(gè)虛擬服務(wù)器都有多個(gè)hash串與其對應(yīng),每一個(gè)分塊和每一個(gè)虛擬服務(wù)器在hash環(huán)上都有若干個(gè)點(diǎn)與其對應(yīng);而分塊和虛擬服務(wù)器的對應(yīng)關(guān)系是從分塊的點(diǎn)開始順時(shí)針找最近的虛擬服務(wù)器的點(diǎn),每個(gè)分塊對應(yīng)的多個(gè)點(diǎn)可能 找到不同的虛擬服務(wù)器與其對應(yīng),這就使得同一個(gè)分塊可以被多個(gè)虛擬服務(wù)器所管理。參照圖15,具體的判斷方法是,基于某個(gè)Hash算法,如murmur算法,對存儲分塊的ID和虛擬服務(wù)器的ID做Hash,得到存儲分塊和虛擬服務(wù)器的Hash串。所有可能的Hash串組成了一個(gè)環(huán),環(huán)上面的每個(gè)點(diǎn)對應(yīng)某個(gè)Hash串。那么存儲分塊的Hash串,和虛擬服務(wù)器的Hash串都會對應(yīng)在環(huán)上某個(gè)點(diǎn)。從存儲分塊的Hash串對應(yīng)的點(diǎn)出發(fā),順時(shí)針?biāo)龅降牡谝粋€(gè)虛擬服務(wù)器的Hash串對應(yīng)的點(diǎn),那么這個(gè)虛擬服務(wù)器就是處理此存儲分塊對應(yīng)的URL的虛擬服務(wù)器。通常情況下,由于存儲分塊的數(shù)量和虛擬服務(wù)器的數(shù)量都很小,為了負(fù)載均衡,對于一個(gè)存儲分塊,會生成多個(gè)Hash串,對于環(huán)上多個(gè)點(diǎn)。生成多個(gè)Hash串的方法可以在存儲分塊的ID后添加序號來解決。對于一個(gè)虛擬服務(wù)器,會生成多個(gè)Hash串,對于環(huán)上多個(gè)點(diǎn)。生成多個(gè)Hash串的方法可以在虛擬服務(wù)器的ID后添加序號來解決。得到存儲分塊和虛擬服務(wù)器的對應(yīng)關(guān)系后,存儲分塊與虛擬服務(wù)器的對應(yīng)關(guān)系存儲于內(nèi)容分發(fā)網(wǎng)絡(luò)的分布式數(shù)據(jù)庫中,一個(gè)分塊由一個(gè)虛擬服務(wù)器管理的時(shí)候,數(shù)據(jù)庫中存儲的是該分塊和虛擬服務(wù)器的一對一關(guān)系;而在這里數(shù)據(jù)庫中存儲的則是每一個(gè)分塊的每一個(gè)hash串與虛擬服務(wù)器的對應(yīng)關(guān)系,實(shí)際上每一個(gè)分塊對應(yīng)多個(gè)虛擬服務(wù)器。步驟1409,如果虛擬服務(wù)器A和虛擬服務(wù)器B是同一虛擬服務(wù)器,則轉(zhuǎn)向步驟1411,否則轉(zhuǎn)向步驟1410。步驟1410,重定向用戶請求到虛擬服務(wù)器B。步驟1411,虛擬服務(wù)器B根據(jù)用戶請求的URL判斷用戶請求的文件是否已經(jīng)存在于緩存隊(duì)列中。步驟1412,如果用戶請求的文件在緩存隊(duì)列中,則重定向用戶請求到對應(yīng)的存儲服務(wù)器,并通知存儲服務(wù)器進(jìn)行文件分發(fā)。步驟1413,如果用戶請求的文件不在緩存隊(duì)列中,則重定向用戶請求到對應(yīng)的存儲服務(wù)器,并通知存儲服務(wù)器回源獲取用戶請求的文件內(nèi)容。步驟1414,存儲服務(wù)器返回用戶請求的內(nèi)容。圖16為本發(fā)明實(shí)施例提供的內(nèi)容分發(fā)方法流程圖,該實(shí)施例闡述了在邊緣節(jié)點(diǎn)的服務(wù)器集群中,對存儲服務(wù)器的存儲空間進(jìn)行分塊,每一個(gè)分塊可以由多個(gè)虛擬服務(wù)器同時(shí)管理,虛擬服務(wù)器如何管理存儲服務(wù)器存儲和刪除文件,該方法包括:步驟1601,當(dāng)虛擬服務(wù)器收到用戶請求某URL的文件內(nèi)容,并確定用戶請求的文件不在緩存隊(duì)列中時(shí),更新用戶請求的URL對應(yīng)的文件的熱度信息。其中,具體可以在步驟1413之后執(zhí)行步驟1601。步驟1602,虛擬服務(wù)器根據(jù)熱度信息判斷是否需要緩存URL對應(yīng)的文件內(nèi)容,如果是,則轉(zhuǎn)向步驟1603,否則結(jié)束。步驟1603對應(yīng)的關(guān)鍵技術(shù)方案:如何將緩存隊(duì)列的文件內(nèi)容存儲在存儲服務(wù)器上。本發(fā)明實(shí)施例中,一個(gè)分塊可以由多臺虛擬服務(wù)器管理,而且一臺虛擬服務(wù)器可以管理多個(gè)分塊。為了避免熱度不均導(dǎo)致的命中率下降,虛擬服務(wù)器對所管理的多個(gè)分塊創(chuàng)建唯一的緩存隊(duì)列。緩存隊(duì)列中的文件存儲在文件的URL對應(yīng)的分塊中。步驟1603,虛擬服務(wù)器緩存用戶請求的URL對應(yīng)的文件內(nèi)容到所選擇的分塊。其中,上述所選擇的分塊為根據(jù)一致性哈希算法確定的URL對應(yīng)的分塊。存儲服務(wù)器會定時(shí)或由事件觸發(fā)向管理其分塊的所有虛擬服務(wù)器上報(bào)分塊的存儲容量。步驟1604,各虛擬服務(wù)器判斷所管理的分塊的容量是否已滿。若判斷結(jié)果為是,則執(zhí)行步驟1605,否則結(jié)束。步驟1605,各虛擬服務(wù)器通知存儲服務(wù)器需要刪除的內(nèi)容。其中,上述各虛擬服務(wù)器指的是管理該分塊的多個(gè)虛擬服務(wù)器。步驟1606,存儲服務(wù)器收到各虛擬服務(wù)器的刪除通知,從中刪除平均熱度最低的通知中的內(nèi)容。根據(jù)預(yù)設(shè)策略的不同,也可以刪除最大熱度最低的通知中的內(nèi)容,或者,還可以刪除最小熱度最低的通知中的內(nèi)容。步驟1607,如果分塊已經(jīng)釋放出足夠的空間,則結(jié)束,否則轉(zhuǎn)向步驟1605。步驟1604至1607對應(yīng)的關(guān)鍵技術(shù)方案:當(dāng)存儲服務(wù)器存儲滿的時(shí)候,如何刪除文件內(nèi)容。存儲服務(wù)器會監(jiān)控本機(jī)所有分塊的容量占用情況,并定時(shí)或由事件促發(fā)通知分塊對應(yīng)的虛擬服務(wù)器容量占用情況。該實(shí)施例中,由于一個(gè)分塊會同時(shí)由多個(gè)虛擬服務(wù)器進(jìn)行管理,所以如果某分塊的存儲容量已滿,需要刪除多個(gè)虛擬服務(wù)器各緩存隊(duì)列中熱度最低,且對應(yīng)于本分塊的內(nèi)容。具體方法如下:存儲服務(wù)器通知分塊對應(yīng)的虛擬服務(wù)器需要淘汰該分塊中熱度較低的a%內(nèi)容,例如5%最低熱度內(nèi)容;各虛擬服務(wù)器向存儲服務(wù)器發(fā)送其緩存隊(duì)列該分塊中熱度最低的b%的內(nèi)容,其中,b%的內(nèi)容大小需要遠(yuǎn)小于a%的內(nèi)容大小,例如,b%為a%的1/10,以及發(fā)送其平均熱度,或最大、最小熱度;存儲服務(wù)器收到各個(gè)虛擬服務(wù)器發(fā)送的熱度最低的內(nèi)容,將其中平均熱度或最大、最小熱度最低的虛擬服務(wù)器發(fā)送的內(nèi)容刪除,并繼續(xù)向此虛擬服務(wù)器發(fā)送新的淘汰通知;存儲服務(wù)器收到新的需要淘汰的內(nèi)容,比較其平均熱度或最大、最小熱度和上一輪未淘汰的內(nèi)容的虛擬服務(wù)器的平均熱度或最大、最小熱度,將其中平均熱度或最大、最小熱度最低的虛擬服務(wù)器發(fā)送的內(nèi)容刪除;重復(fù)前面的步驟,直到淘汰完成,即已經(jīng)淘汰了a%的內(nèi)容。圖17為本發(fā)明實(shí)施例提供的虛擬服務(wù)器的管理方法流程圖,該實(shí)施例闡述了在邊緣節(jié)點(diǎn)的服務(wù)器集群中,對存儲服務(wù)器的存儲分塊,每一個(gè)分塊可以由多個(gè)虛擬服務(wù)器同時(shí)管理,當(dāng)虛擬服務(wù)器伸縮的時(shí)候如何維護(hù)存儲服務(wù)器的存儲與虛擬服務(wù)器的對應(yīng)關(guān)系,該方法包括:步驟1701,云平臺根據(jù)負(fù)載情況判斷需要增加一臺虛擬服務(wù)器。內(nèi)容分發(fā)網(wǎng)絡(luò)中的執(zhí)行設(shè)備/模塊需要能監(jiān)控所有VM的負(fù)載狀況,并根據(jù)實(shí)現(xiàn)設(shè)置的業(yè)務(wù)邏輯判斷是否達(dá)到擴(kuò)容的閾值,一般由該節(jié)點(diǎn)云平臺的VM管理模塊監(jiān)控并執(zhí)行擴(kuò)容。步驟1702,云平臺計(jì)算新增虛擬服務(wù)器的Hash串。步驟1703,云平臺向分布式數(shù)據(jù)庫查詢分塊及虛擬服務(wù)器的Hash串,基于一致性Hash查詢新增虛擬服務(wù)器所對應(yīng)的b個(gè)分塊。步驟1704,云平臺刪除查詢返回的b個(gè)分塊中現(xiàn)有VM緩存隊(duì)列中不再歸屬于現(xiàn)有VM的文件。在步驟1704重新確認(rèn)分塊和VM對應(yīng)關(guān)系的時(shí)候,現(xiàn)有VM所對應(yīng)的分塊可能發(fā)生改變,這時(shí)候就需要在數(shù)據(jù)庫中調(diào)整分塊和VM的對應(yīng)關(guān)系,同時(shí)還要調(diào)整現(xiàn)有VM的緩存隊(duì)列,對每一個(gè)VM刪除不再歸他管理的文件。然后由存儲服務(wù)器將這些被現(xiàn)有VM從緩存隊(duì)列中刪除的文件從分塊中刪除,即刪除重新分配的分塊中的屬于原對應(yīng)虛擬服務(wù)器緩存隊(duì)列的內(nèi)容。步驟1705,將所選分塊分配給新增虛擬服務(wù)器,更新分布式數(shù)據(jù)庫中保存的分塊與虛擬服務(wù)器的對應(yīng)關(guān)系。步驟1706,云平臺根據(jù)負(fù)載情況判斷需要減少一臺虛擬服務(wù)器。步驟1707,云平臺通知存儲服務(wù)器刪除所選擇分塊中屬于被刪VM緩存隊(duì)列的內(nèi)容。步驟1708,更新分布式數(shù)據(jù)庫中保存的分塊與虛擬服務(wù)器的對應(yīng)關(guān)系。本發(fā)明實(shí)施例提供的虛擬服務(wù)器的管理方法,利用云平臺和獨(dú)立的存儲服務(wù)器(例如,流媒體服務(wù)器)實(shí)現(xiàn)內(nèi)容分發(fā)網(wǎng)絡(luò),在具有云計(jì)算平臺動態(tài)、靈活、彈性、虛擬、共享和高效的優(yōu)點(diǎn)的基礎(chǔ)上,保持了I/O性能不降低,以滿足媒體等大文件的內(nèi)容分發(fā)需要。本發(fā)明中的利用云計(jì)算的技術(shù)和獨(dú)立的存儲服務(wù)器實(shí)現(xiàn)內(nèi)容分發(fā)網(wǎng)絡(luò)中邊緣節(jié)點(diǎn)的服務(wù)器集群的方法,也可以用在內(nèi)容分發(fā)網(wǎng)絡(luò)中的中心節(jié)點(diǎn)的服 務(wù)器集群,以及中心節(jié)點(diǎn)和邊緣節(jié)點(diǎn)之間的中間節(jié)點(diǎn)的服務(wù)器集群上。專業(yè)人員應(yīng)該還可以進(jìn)一步意識到,結(jié)合本文中所公開的實(shí)施例描述的各示例的單元及算法步驟,能夠以電子硬件、計(jì)算機(jī)軟件或者二者的結(jié)合來實(shí)現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計(jì)約束條件。專業(yè)技術(shù)人員可以對每個(gè)特定的應(yīng)用來使用不同方法來實(shí)現(xiàn)所描述的功能,但是這種實(shí)現(xiàn)不應(yīng)認(rèn)為超出本發(fā)明的范圍。本領(lǐng)域普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法中的全部或部分步驟是可以通過程序來指令處理器完成,所述的程序可以存儲于計(jì)算機(jī)可讀存儲介質(zhì)中,所述存儲介質(zhì)是非短暫性(non-transitory)介質(zhì),例如隨機(jī)存取存儲器,只讀存儲器,快閃存儲器,硬盤,固態(tài)硬盤,磁帶(magnetictape),軟盤(floppydisk),光盤(opticaldisc)及其任意組合。以上所述,僅為本發(fā)明較佳的具體實(shí)施方式,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本
技術(shù)領(lǐng)域:
的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求的保護(hù)范圍為準(zhǔn)。當(dāng)前第1頁1 2 3