專利名稱:一種分布式系統(tǒng)中升級(jí)文件分發(fā)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電通信技術(shù)領(lǐng)域,尤其涉及一種分布式系統(tǒng)中文件分發(fā)方法。
背景技術(shù):
隨著互聯(lián)網(wǎng)應(yīng)用的快速發(fā)展和用戶規(guī)模的不斷膨脹,需要大量服務(wù)器群共同協(xié)作實(shí)現(xiàn)共同協(xié)作提供網(wǎng)絡(luò)服務(wù)。分布式系統(tǒng)則是規(guī)模網(wǎng)絡(luò)服務(wù)的基礎(chǔ)架構(gòu)。隨著用戶需求的不斷變化,分布式系統(tǒng)上的文件更新速度越來越頻繁。一個(gè)有代表性的文件升級(jí)如圖I所示,全網(wǎng)各主機(jī)服務(wù)器向管理服務(wù)器輪詢下載相應(yīng)的新版本升級(jí)文件并升級(jí)。然而一套分布式系統(tǒng)包括幾百甚至上萬臺(tái)服務(wù)器,升級(jí)文件的下載流量高度集中在管理服務(wù)器上,造成全網(wǎng)流量的不均衡分布,因此管理服務(wù)器通常是整個(gè)系統(tǒng)文件升級(jí)的瓶頸。基于P2P的分布式模式也是常見的文件分發(fā)方法,P2P技術(shù)認(rèn)為所有互聯(lián)的設(shè)備互為對(duì)等體。由于用戶與服務(wù)器之間的連接是雙向的,用戶彼此之間也是可以互相訪問的,所以,當(dāng)多個(gè)用戶同時(shí)下載同一個(gè)文件時(shí),他們可以互相上傳已經(jīng)下載的文件的一部分。這樣重新分配向用戶上傳的開銷之后,將大大減輕服務(wù)器的壓力,從而可以克服集中模式的缺點(diǎn),BitTorrent實(shí)現(xiàn)了這種分布式文件分發(fā)模式?;赑2P技術(shù)的分布式文件分發(fā)模式有著優(yōu)良的伸縮性,但是如何保證效率和可靠性是其面臨的技術(shù)難題。P2P分發(fā)模式在文件上傳到服務(wù)器前將文件分塊,互聯(lián)設(shè)備下載文件塊,并與網(wǎng)絡(luò)中的其他設(shè)備分享下載的文件塊,因此互聯(lián)設(shè)備需要有效找出哪些互聯(lián)設(shè)備已有文件的哪些部分以及它們應(yīng)該被送到哪里。同時(shí)互聯(lián)設(shè)備的連接是隨機(jī)的,經(jīng)常只有幾分鐘,沒有服務(wù)質(zhì)量的保證。網(wǎng)絡(luò)中的設(shè)備隨時(shí)有可能下線,需要重新尋找資源下載,并有可能某些文件塊處于極少數(shù)互聯(lián)設(shè)備中,擁有這些文件塊的互聯(lián)設(shè)備不再提供上傳,就可能被永久丟失。而在電信級(jí)的分布式文件系統(tǒng)中,服務(wù)質(zhì)量和傳輸?shù)目煽啃允欠浅V匾?,因此如何將升?jí)文件可靠快速可控地更新部署到全部系統(tǒng)設(shè)備,將是網(wǎng)絡(luò)管理系統(tǒng)的巨大挑戰(zhàn)。
發(fā)明內(nèi)容
本發(fā)明提出一種分布式系統(tǒng)中文件分發(fā)方法,用以支持大規(guī)模網(wǎng)絡(luò)升級(jí),克服現(xiàn)有技術(shù)方案中心下載服務(wù)器的處理能力瓶頸以及P2P模式可靠性差的問題。本發(fā)明的核心思想是管理服務(wù)器為每個(gè)升級(jí)文件維護(hù)一個(gè)地址池,記錄升級(jí)文件所有可用的下載地址及其相關(guān)信息。管理服務(wù)器本身也可以提供升級(jí)文件的下載服務(wù),每當(dāng)一個(gè)主機(jī)成功下載升級(jí)文件后,管理服務(wù)器將把升級(jí)文件在該主機(jī)上的下載地址添加進(jìn)下載地址池,其他主機(jī)可以從地址池中的地址下載升級(jí)文件。隨著更多的主機(jī)成功升級(jí),地址池的可用地址也將增多,升級(jí)文件整個(gè)網(wǎng)絡(luò)的分發(fā)速度也將呈幾何級(jí)別的上升。管理服務(wù)器負(fù)責(zé)全網(wǎng)所有主機(jī)的升級(jí)管理,它可以根據(jù)預(yù)先定義的分發(fā)策略和升級(jí)調(diào)度算法,控制每臺(tái)主機(jī)從地址池中選擇一個(gè)地址下載指定升級(jí)文件,并對(duì)該主機(jī)上的應(yīng)用程序進(jìn)行安裝升級(jí)。當(dāng)主機(jī)下載完升級(jí)文件后,可以為其他主機(jī)提供升級(jí)文件的下載服務(wù)。對(duì)于一個(gè)未升級(jí)主機(jī),如何從地址池中選擇一個(gè)地址來下載升級(jí)文件,將由升級(jí)調(diào)度算法決定。所述升級(jí)調(diào)度算法包括就近原則,管理服務(wù)器可以選擇一個(gè)地理位置或者網(wǎng)絡(luò)位置距離未升級(jí)主機(jī)最近的URL地址;負(fù)載均衡原則,管理服務(wù)器可以選擇當(dāng)前負(fù)載最少的URL地址來下載服務(wù),盡量保證地址池中下載服務(wù)器的負(fù)載均衡。權(quán)重原則,在負(fù)載均衡的基礎(chǔ)上,區(qū)別考慮提供下載服務(wù)主機(jī)的服務(wù)能力,權(quán)重高的主機(jī),其負(fù)載可以適當(dāng)加大。權(quán)重低的主機(jī),其負(fù)載可以適當(dāng)減少。權(quán)重可以人工指定,也可以根據(jù)主機(jī)軟硬件資源計(jì)算。本發(fā)明公開了一種分布式系統(tǒng)中升級(jí)文件分發(fā)方法,應(yīng)用于包括管理服務(wù)器與至 少一個(gè)主機(jī)的分布式系統(tǒng)進(jìn)行升級(jí)文件分發(fā),所述升級(jí)文件分發(fā)方法包括步驟步驟I、管理服務(wù)器定義升級(jí)文件分發(fā)策略和升級(jí)調(diào)度算法,加載待升級(jí)文件,初始化升級(jí)文件的下載地址池;步驟2、管理服務(wù)器根據(jù)分發(fā)策略,選擇主機(jī)進(jìn)行升級(jí),根據(jù)升級(jí)調(diào)度算法從地址池中選擇升級(jí)文件下載地址,指定該地址作為所述主機(jī)的升級(jí)文件下載地址;步驟3、主機(jī)收到管理服務(wù)器指令后,從指定的地址下載升級(jí)文件;步驟4、主機(jī)下載升級(jí)文件成功后,報(bào)告管理服務(wù)器結(jié)果和所述主機(jī)上的升級(jí)文件訪問地址,管理服務(wù)器將所述訪問地址加入地址池;步驟5、管理服務(wù)器根據(jù)分發(fā)策略選擇其他未升級(jí)主機(jī)進(jìn)行升級(jí),直至所有主機(jī)完成升級(jí)文件下載升級(jí)。進(jìn)一步地,所述的步驟3還包括步驟主機(jī)從指定的地址下載升級(jí)文件后,對(duì)下載升級(jí)文件做合法性校驗(yàn)。其中,每個(gè)主機(jī)上均部署一個(gè)代理,所述代理可以接收管理服務(wù)器指令并與其它主機(jī)上的代理通訊。其中,所述的升級(jí)文件分發(fā)策略包括主機(jī)升級(jí)時(shí)間,升級(jí)文件類型、版本、大小和校驗(yàn)方式。其中,所述的升級(jí)調(diào)度算法采用就近原則,管理服務(wù)器選擇一個(gè)地理位置或者網(wǎng)絡(luò)位置距離未升級(jí)主機(jī)最近的地址,指定該地址作為所述主機(jī)的升級(jí)文件下載地址;所述的升級(jí)調(diào)度算法也可以采用負(fù)載均衡原則,管理服務(wù)器選擇當(dāng)前負(fù)載最少的地址,指定該地址作為所述主機(jī)的升級(jí)文件下載地址;所述的升級(jí)調(diào)度算法還可以采用負(fù)載均衡與權(quán)重相結(jié)合的原則,管理服務(wù)器選擇當(dāng)前負(fù)載較少的地址,同時(shí)根據(jù)提供下載服務(wù)主機(jī)的服務(wù)能力,權(quán)重高的主機(jī),其負(fù)載可以適當(dāng)加大,權(quán)重低的主機(jī),其負(fù)載可以適當(dāng)減少,指定優(yōu)選的地址作為所述主機(jī)的升級(jí)文件下載地址。進(jìn)一步地,當(dāng)所述管理服務(wù)器上存在多個(gè)需要升級(jí)的文件時(shí),管理服務(wù)器為每個(gè)升級(jí)文件定義升級(jí)文件分發(fā)策略和升級(jí)調(diào)度算法,并為每一個(gè)升級(jí)文件維護(hù)一個(gè)下載地址池。本方法適用于任何分布式系統(tǒng),包括各種云系統(tǒng)。通過本發(fā)明分布式系統(tǒng)文件分發(fā)方法,具有如下技術(shù)效果I、根據(jù)定義的分發(fā)策略,系統(tǒng)中各主機(jī)按照分發(fā)策略在指定時(shí)間下載,可以實(shí)現(xiàn)文件的自動(dòng)升級(jí)安裝;2、通過設(shè)定下載地址池,并采用升級(jí)調(diào)度算法,可以避免因?yàn)橹行南螺d服務(wù)器的瓶頸,而造成全網(wǎng)下載的擁塞和單點(diǎn)故障,可以統(tǒng)籌控制并充分利用全網(wǎng)各服務(wù)器的資源能力,快速并可控地更新部署全網(wǎng)服務(wù)節(jié)點(diǎn);3、采用下載后進(jìn)行文件校驗(yàn)的方法,可以保證文件傳輸?shù)目煽啃r?yàn),保證文件的
可靠性。
圖I為現(xiàn)有技術(shù)文件發(fā)布結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例文件發(fā)布結(jié)構(gòu)示意圖;圖3為本發(fā)明分布式系統(tǒng)文件分發(fā)方法流程示意圖。
具體實(shí)施例方式下面結(jié)合附圖和實(shí)施例對(duì)本發(fā)明技術(shù)方案做進(jìn)一步詳細(xì)說明,以下實(shí)施例不構(gòu)成對(duì)本發(fā)明的限定。假設(shè)分布式式系統(tǒng)由一系列主機(jī)組成,主機(jī)可以是物理服務(wù)器,也可以是虛擬機(jī),主機(jī)上可以運(yùn)行一個(gè)或者多個(gè)應(yīng)用程序(Application)。系統(tǒng)中部署一個(gè)管理服務(wù)器,負(fù)責(zé)管理全網(wǎng)所有的主機(jī)以及主機(jī)上的應(yīng)用程序。每個(gè)主機(jī)上均部署一個(gè)特殊應(yīng)用程序,稱之為代理(Agent)。代理可以接收管理服務(wù)器指令并與其它主機(jī)上的代理通訊。管理服務(wù)器負(fù)責(zé)全網(wǎng)所有主機(jī)的升級(jí)管理,它可以根據(jù)預(yù)先定義的分發(fā)策略和升級(jí)調(diào)度算法,控制每臺(tái)主機(jī)從地址池中選擇一個(gè)地址下載指定升級(jí)文件,并對(duì)該主機(jī)上的應(yīng)用程序進(jìn)行安裝升級(jí)。主機(jī)需要將本地已下載升級(jí)文件訪問URL告知管理服務(wù)器,管理服務(wù)器可以讓其他主機(jī)訪問該URL下載升級(jí)文件。這樣,每臺(tái)主機(jī)既可以從其他主機(jī)下載升級(jí)文件,可以充當(dāng)管理服務(wù)器,為其他主機(jī)提供下載服務(wù)器。以下通過如圖2所示的實(shí)例來詳細(xì)闡述本發(fā)明的分布式系統(tǒng)文件分發(fā)方法,所述分布式系統(tǒng)包括管理服務(wù)器和主機(jī)1,主機(jī)2,主機(jī)3三臺(tái)主機(jī),其中指定升級(jí)調(diào)度算法是選擇負(fù)載最小的地址提供下載服務(wù),并發(fā)任務(wù)數(shù)為1,所述的地址是URL地址。其升級(jí)流程如圖3所示,包括步驟步驟301、管理服務(wù)器定義升級(jí)文件分發(fā)策略和升級(jí)調(diào)度算法,加載待升級(jí)文件,初始化升級(jí)文件的下載地址池。管理服務(wù)器負(fù)責(zé)全網(wǎng)所有主機(jī)的升級(jí)管理,它可以根據(jù)預(yù)先定義的分發(fā)策略,控制每臺(tái)主機(jī)在指定時(shí)間從指定URL地址下載指定升級(jí)文件,并對(duì)該主機(jī)上的應(yīng)用程序進(jìn)行安裝升級(jí)。分發(fā)策略包括但不限于主機(jī)升級(jí)時(shí)間,升級(jí)文件類型、版本、大小和校驗(yàn)方法。升級(jí)調(diào)度算法包括就近原則,管理服務(wù)器可以選擇一個(gè)地理位置或者網(wǎng)絡(luò)位置距離未升級(jí)主機(jī)最近的URL地址;負(fù)載均衡原則,管理服務(wù)器可以選擇當(dāng)前負(fù)載最少的URL地址來下載服務(wù),盡量保證地址池中下載服務(wù)器的負(fù)載均衡。權(quán)重原則,在負(fù)載均衡的基礎(chǔ)上,區(qū)別考慮提供下載服務(wù)主機(jī)的服務(wù)能力,權(quán)重高的主機(jī),其負(fù)載可以適當(dāng)加大。權(quán)重低的主機(jī),其負(fù)載可以適當(dāng)減少。權(quán)重可以人工指定,也可以根據(jù)主機(jī)軟硬件資源計(jì)算。。初始化升級(jí)文件的下載地址池,該池中只有升級(jí)管理系統(tǒng)地址。
本實(shí)施例采用負(fù)載均衡原則,校驗(yàn)方法采用MD5校驗(yàn)。初始話的地址池僅包括管理服務(wù)器本身提供的URL地址。步驟302、管理服務(wù)器根據(jù)分發(fā)策略,首先選擇主機(jī)I升級(jí),因?yàn)榇藭r(shí)地址池中只有管理服務(wù)器一個(gè)地址,因此主機(jī)將從管理服務(wù)器下載升級(jí)文件。步驟303、主機(jī)I的代理收到指令后,向管理服務(wù)器下載升級(jí)文件。步驟304、主機(jī)I的代理下載成功后,對(duì)下載的升級(jí)文件進(jìn)行MD5校驗(yàn),并報(bào)告管理服務(wù)器結(jié)果和主機(jī)I上的升級(jí)文件訪問URL地址。步驟305、管理服務(wù)器更新下載地址池,根據(jù)分發(fā)策略選擇主機(jī)2進(jìn)行升級(jí),此時(shí)地址池中有兩個(gè)地址管理服務(wù)器和主機(jī)I。根據(jù)負(fù)載均衡原則,因?yàn)楣芾矸?wù)器的負(fù)載為1,而主機(jī)I的負(fù)載為0,因此管理服務(wù)器決定主機(jī)2的下載URL地址指向主機(jī)I。步驟306、主機(jī)2的代理收到指令后,向主機(jī)I下載升級(jí)文件。步驟307、主機(jī)2的代理下載成功后,對(duì)下載的升級(jí)文件進(jìn)行MD5校驗(yàn),并報(bào)告管理服務(wù)器結(jié)果和主機(jī)2上的升級(jí)文件訪問URL地址。步驟308、管理服務(wù)器更新下載地址池,根據(jù)分發(fā)策略選擇主機(jī)3進(jìn)行升級(jí),此時(shí)地址池中有三個(gè)地址管理服務(wù)器、主機(jī)I和主機(jī)2。因?yàn)橹鳈C(jī)2的負(fù)載最小,因此管理服務(wù)器決定主機(jī)3的下載URL地址指向主機(jī)2。步驟309、主機(jī)3的代理收到指令后,向主機(jī)2下載升級(jí)文件。步驟310、主機(jī)3的代理下載成功后,對(duì)下載的升級(jí)文件進(jìn)行MD5校驗(yàn),并報(bào)告管理服務(wù)器結(jié)果和主機(jī)3上的升級(jí)文件訪問URL地址。至此完成這個(gè)網(wǎng)絡(luò)的文件升級(jí)。其中主機(jī)可以采用FTP/SFTP/HTTP/HTTPS或者其它傳輸協(xié)議提供本地升級(jí)文件的下載服務(wù),并保證傳輸安全。以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案而非對(duì)其進(jìn)行限制,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,熟悉本領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明所附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.ー種分布式系統(tǒng)中升級(jí)文件分發(fā)方法,應(yīng)用于包括管理服務(wù)器與至少ー個(gè)主機(jī)的分布式系統(tǒng)進(jìn)行升級(jí)文件分發(fā),其特征在于,所述升級(jí)文件分發(fā)方法包括步驟 步驟I、管理服務(wù)器定義升級(jí)文件分發(fā)策略和升級(jí)調(diào)度算法,加載待升級(jí)文件,初始化升級(jí)文件的下載地址池; 步驟2、管理服務(wù)器根據(jù)分發(fā)策略,選擇主機(jī)進(jìn)行升級(jí),根據(jù)升級(jí)調(diào)度算法從地址池中選擇升級(jí)文件下載地址,指定該地址作為所述主機(jī)的升級(jí)文件下載地址; 步驟3、所述主機(jī)收到管理服務(wù)器指令后,從指定的地址下載升級(jí)文件; 步驟4、所述主機(jī)下載升級(jí)文件成功后,報(bào)告管理服務(wù)器結(jié)果和所述主機(jī)上的升級(jí)文件訪問地址,管理服務(wù)器將所述訪問地址加入地址池; 步驟5、管理服務(wù)器根據(jù)分發(fā)策略選擇其他未升級(jí)主機(jī)進(jìn)行升級(jí),直至所有主機(jī)完成升級(jí)文件下載升級(jí)。
2.根據(jù)權(quán)利要求I所述的分布式系統(tǒng)中升級(jí)文件分發(fā)方法,其特征在于,所述的步驟3還包括步驟所述主機(jī)從指定的地址下載升級(jí)文件后,對(duì)下載升級(jí)文件做合法性校驗(yàn)。
3.根據(jù)權(quán)利要求I所述的分布式系統(tǒng)中升級(jí)文件分發(fā)方法,其特征在于,每個(gè)主機(jī)上均部署ー個(gè)代理,所述代理可以接收管理服務(wù)器指令并與其它主機(jī)上的代理通訊。
4.根據(jù)權(quán)利要求1-3任一項(xiàng)權(quán)利要求所述的分布式系統(tǒng)中升級(jí)文件分發(fā)方法,其特征在于,所述的分發(fā)策略包括主機(jī)升級(jí)時(shí)間,升級(jí)文件類型、版本、大小和校驗(yàn)方式。
5.根據(jù)權(quán)利要求1-3任一項(xiàng)權(quán)利要求所述的分布式系統(tǒng)中升級(jí)文件分發(fā)方法,其特征在于,所述的升級(jí)調(diào)度算法采用就近原則,管理服務(wù)器選擇ー個(gè)地理位置或者網(wǎng)絡(luò)位置距離未升級(jí)主機(jī)最近的地址,指定該地址作為所述主機(jī)的升級(jí)文件下載地址。
6.根據(jù)權(quán)利要求1-3任一項(xiàng)權(quán)利要求所述的分布式系統(tǒng)中升級(jí)文件分發(fā)方法,其特征在于,所述的升級(jí)調(diào)度算法采用負(fù)載均衡原則,管理服務(wù)器選擇當(dāng)前負(fù)載最少的地址,指定該地址作為所述主機(jī)的升級(jí)文件下載地址。
7.根據(jù)權(quán)利要求1-3任一項(xiàng)權(quán)利要求所述的分布式系統(tǒng)中升級(jí)文件分發(fā)方法,其特征在于,所述的升級(jí)調(diào)度算法采用負(fù)載均衡與權(quán)重相結(jié)合的原則,管理服務(wù)器選擇當(dāng)前負(fù)載較少的地址,同時(shí)根據(jù)提供下載服務(wù)主機(jī)的服務(wù)能力,權(quán)重高的主機(jī),其負(fù)載可以適當(dāng)加大,權(quán)重低的主機(jī),其負(fù)載可以適當(dāng)減少,指定優(yōu)選的地址作為所述主機(jī)的升級(jí)文件下載地址。
8.根據(jù)權(quán)利要求I所述的分布式系統(tǒng)中升級(jí)文件分發(fā)方法,其特征在干,當(dāng)所述管理服務(wù)器上存在多個(gè)需要升級(jí)的文件時(shí),管理服務(wù)器為每個(gè)升級(jí)文件定義分發(fā)策略和升級(jí)調(diào)度算法,并為每一個(gè)升級(jí)文件維護(hù)ー個(gè)下載地址池。
全文摘要
本發(fā)明公開了一種分布式系統(tǒng)中文件分發(fā)方法,應(yīng)用于包括管理服務(wù)器與至少一個(gè)主機(jī)的分布式系統(tǒng)進(jìn)行文件分發(fā),管理服務(wù)器負(fù)責(zé)全網(wǎng)所有主機(jī)的升級(jí)管理,它可以根據(jù)預(yù)先定義的分發(fā)策略和升級(jí)調(diào)度算法,控制每臺(tái)主機(jī)從地址池中選擇一個(gè)地址下載指定升級(jí)文件,并對(duì)該主機(jī)上的應(yīng)用程序進(jìn)行安裝升級(jí)。主機(jī)將本地已下載升級(jí)文件訪問地址告知管理服務(wù)器,管理服務(wù)器可以讓其他主機(jī)訪問該地址下載升級(jí)文件。每臺(tái)主機(jī)既可以從其他主機(jī)下載升級(jí)文件,又可以充當(dāng)下載服務(wù)器,為其他主機(jī)提供文件下載服務(wù)。本發(fā)明可以應(yīng)用于包括云系統(tǒng)在內(nèi)的任何分布式系統(tǒng),可以有效避免管理服務(wù)器的瓶頸,并充分利用全網(wǎng)各服務(wù)器的資源能力,快速并可控地進(jìn)行文件分發(fā)。
文檔編號(hào)H04L29/08GK102761599SQ201210144810
公開日2012年10月31日 申請(qǐng)日期2012年5月10日 優(yōu)先權(quán)日2012年5月10日
發(fā)明者肖翔 申請(qǐng)人:Ut斯達(dá)康通訊有限公司