国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

P2P技術(shù)提升桌面虛擬化中鏡像下載速度研究

2018-05-15 08:31程良胡丹婷
軟件導(dǎo)刊 2018年4期

程良 胡丹婷

摘 要:在大規(guī)模桌面虛擬化集群部署過程中,虛擬機(jī)鏡像創(chuàng)建時,大量鏡像數(shù)據(jù)在鏡像服務(wù)器和計算節(jié)點(diǎn)服務(wù)器之間傳輸,下載速度直接影響著虛擬桌面的創(chuàng)建和更新速度。為了提高虛擬機(jī)鏡像模板部署和系統(tǒng)的整體性能,從網(wǎng)絡(luò)傳輸角度,提出一種基于BitTorrent的P2P技術(shù)提升鏡像下載速度的方法。該方法在計算節(jié)點(diǎn)數(shù)量較多的情況下,能大幅提高鏡像下載速度,從而保證鏡像模板的快速分發(fā),提升用戶對桌面虛擬化系統(tǒng)的使用體驗(yàn)。

關(guān)鍵詞:P2P;BitTorrent;桌面虛擬化;鏡像下載

DOI:10.11907/rjdk.172620

中圖分類號:TP319

文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2018)004-0151-04

Abstract:In the process of mass desktop virtualization cluster deployment, when the image of virtual machines is being created, massive image data are transmitted between image storage servers and computing node servers, whose download speed directly influences the speed of creating and of updating the virtual desktop. In terms of network transmission, the paper proposes the technique of P2P based on BitTorrent to accelerate image download and to improve the deployment of virtual machine image templates and the performance of the whole system. The approach is able to considerably accelerate the image download when there are a comparatively large number of computing nodes, so as to ensure the rapid distribution of image templates and to refine the user experience in the desktop virtualization system.

Key Words:P2P; BitTorrent; desktop virtualization; image download

0 引言

隨著我國教育信息化改革的不斷深入,教學(xué)方式也在不斷創(chuàng)新,很多高校的機(jī)房基礎(chǔ)設(shè)施建設(shè)都采用了桌面虛擬化技術(shù)[1](VDI技術(shù)),以期為教學(xué)提供高效靈活的實(shí)驗(yàn)環(huán)境。研究表明,桌面虛擬化技術(shù)的應(yīng)用,能顯著提高系統(tǒng)的資源利用率,并大幅降低能源消耗[2],因此被越來越多的高校作為機(jī)房系統(tǒng)建設(shè)目標(biāo)。目前在桌面虛擬化系統(tǒng)中,虛擬機(jī)鏡像的創(chuàng)建流程和方法如下:所有鏡像都存放在鏡像服務(wù)器上,由鏡像服務(wù)進(jìn)行管理,計算節(jié)點(diǎn)需要從鏡像創(chuàng)建第一個虛擬機(jī)時,通過HTTP從鏡像服務(wù)器下載鏡像。在計算節(jié)點(diǎn)較少時,這種HTTP下載方式基本能滿足鏡像的下載需求,不會影響下載效率,但在計算節(jié)點(diǎn)數(shù)量相對較多的情況下,并發(fā)從鏡像服務(wù)器下載鏡像,所有節(jié)點(diǎn)同時向服務(wù)器提出請求,鏡像服務(wù)器必將成為一個瓶頸,從而降低鏡像下載速度,以及桌面創(chuàng)建、更新速度,影響系統(tǒng)的整體性能和用戶使用體驗(yàn)。

假定鏡像服務(wù)器的網(wǎng)絡(luò)帶寬為N,計算節(jié)點(diǎn)數(shù)量為M,需同時下載的鏡像大小為P,計算出在理想情況下需要花費(fèi)的時間T為:T=P/(N/M)。

根據(jù)公式,結(jié)合實(shí)際使用環(huán)境得出以下數(shù)據(jù),如表1所示。

從表1數(shù)據(jù)可以看出:①當(dāng)集群規(guī)模較大時,下載數(shù)據(jù)耗時非常長;②將鏡像服務(wù)器網(wǎng)絡(luò)帶寬擴(kuò)充到萬兆,能有效減少下載耗時,但隨著集群規(guī)模增加,仍會存在明顯瓶頸。

針對上述問題,文獻(xiàn)[3]從鏡像管理的角度提出鏡像按需分發(fā)框架,根據(jù)虛擬機(jī)啟動和運(yùn)行過程中只對有限數(shù)據(jù)塊訪問的特性,僅傳輸虛擬機(jī)啟動和運(yùn)行所需的數(shù)據(jù)塊,避免了存儲節(jié)點(diǎn)和網(wǎng)絡(luò)瓶頸問題,并采用差異化的數(shù)據(jù)塊劃分方法,提高了鏡像分發(fā)速度;文獻(xiàn)[4]從虛擬機(jī)鏡像存儲系統(tǒng)方面,設(shè)計了一種系統(tǒng)層的虛擬機(jī)鏡像數(shù)據(jù)協(xié)作式緩存機(jī)制,通過充分利用各節(jié)點(diǎn)緩存的服務(wù)能力,使其暫存的虛擬機(jī)鏡像數(shù)據(jù)能夠?yàn)槠渌?jié)點(diǎn)提供讀取服務(wù)。協(xié)作式緩存實(shí)現(xiàn)了物理節(jié)點(diǎn)間類P2P模式的數(shù)據(jù)傳輸,可有效減少虛擬機(jī)讀取數(shù)據(jù)的傳輸開銷,提升虛擬機(jī)存儲系統(tǒng)性能;文獻(xiàn)[5]設(shè)計了一種桌面虛擬化鏡像分布式存儲系統(tǒng),通過把頻繁訪問的只讀根鏡像數(shù)據(jù)塊緩存在本地,采用輕量級元數(shù)據(jù)服務(wù)器架構(gòu),結(jié)合中心化設(shè)計和去中心化設(shè)計的優(yōu)點(diǎn),進(jìn)一步提升了虛擬機(jī)鏡像的讀寫性能;文獻(xiàn)[6]發(fā)明了一種將虛擬機(jī)鏡像文件中的系統(tǒng)文件按預(yù)定規(guī)則劃分成邏輯塊的方法,通過判斷邏輯塊對應(yīng)的數(shù)據(jù),去除鏡像文件中的冗余數(shù)據(jù),進(jìn)而有效降低桌面云系統(tǒng)虛擬機(jī)鏡像在數(shù)據(jù)存儲時的存儲量。

綜上所述,目前在桌面虛擬化場景中,現(xiàn)有大部分方法都是通過改進(jìn)虛擬機(jī)鏡像文件存儲及降低鏡像文件體積,以提升鏡像文件的傳輸性能。然而,本文提出一種更為簡單、直接、易于實(shí)施的方法,該方法從網(wǎng)絡(luò)傳輸?shù)慕嵌?,在桌面虛擬化中基于P2P技術(shù)[7]提升鏡像下載速度,使計算節(jié)點(diǎn)采用P2P方式進(jìn)行鏡像下載。在多個計算節(jié)點(diǎn)同時下載同一鏡像的過程中,不同計算節(jié)點(diǎn)會直接連接并交換數(shù)據(jù),使鏡像服務(wù)器不會成為瓶頸。在大規(guī)模部署桌面云的環(huán)境中,系統(tǒng)效能提升尤為明顯。

1 BitTorrent技術(shù)原理

BitTorrent[8]是一個基于P2P(Peer to Peer)的文件分發(fā)協(xié)議,其用途是多用戶的文件上傳和下載,僅占用文件發(fā)布者極少的帶寬資源,具有很高的效率[9]?;贐itTorrent協(xié)議的下載方式被稱為BitTorrent下載,簡稱“BT下載”。傳統(tǒng)的HTTP、FTP下載方式需要在網(wǎng)絡(luò)中存在一個文件服務(wù)器,所有文件下載客戶端均需連接到該服務(wù)器進(jìn)行下載,從而增加了文件服務(wù)器及其所載網(wǎng)絡(luò)的負(fù)荷,降低網(wǎng)絡(luò)使用效率,甚至造成網(wǎng)絡(luò)癱瘓[10]。BT協(xié)議與其不同,特點(diǎn)是下載的人越多,下載速度越快,原因在于每個下載者可將已下載的數(shù)據(jù)提供給其他下載者下載,充分利用了用戶的上載帶寬。同時,通過一定策略保證上傳速度越快,下載速度也越快。

普通的HTTP/FTP下載使用TCP/IP協(xié)議,BitTorrent協(xié)議是架構(gòu)于TCP/IP協(xié)議之上的一個P2P文件傳輸協(xié)議,處于TCP/IP結(jié)構(gòu)的應(yīng)用層。BitTorrent協(xié)議本身也包含了很多具體的內(nèi)容協(xié)議和擴(kuò)展協(xié)議,并在不斷擴(kuò)充中。

根據(jù)BitTorrent協(xié)議,文件發(fā)布者根據(jù)要發(fā)布的文件生成一個.torrent文件,即種子文件,簡稱為“種子”。.torrent文件本質(zhì)上是文本文件,包含Tracker信息和文件信息兩部分[11]。Tracker信息主要是BT下載中需要用到的Tracker服務(wù)器地址和針對Tracker服務(wù)器的設(shè)置;文件信息是根據(jù)對目標(biāo)文件的計算生成的,計算結(jié)果根據(jù)BitTorrent協(xié)議內(nèi)的B編碼規(guī)則進(jìn)行編碼。其主要原理是把提供下載的文件虛擬分成大小相等的塊,大小一般為2k的n次方(實(shí)際硬盤上不會生成每個塊文件),并把每個塊的索引信息和Hash校驗(yàn)碼寫入種子文件(.torrent)中。所以,種子文件(.torrent)是被下載文件的“索引”[12]。

在VDI場景中,往往需要從某個鏡像批量創(chuàng)建多個虛擬機(jī),而且要求虛擬機(jī)分布到多個計算節(jié)點(diǎn)上,以滿足并發(fā)快速啟動的需求,這意味著需要完成鏡像文件從鏡像服務(wù)器快速分發(fā)到多個計算節(jié)點(diǎn)上。由于每個節(jié)點(diǎn)都能提供上傳服務(wù),所以系統(tǒng)總體服務(wù)能力會隨著下載節(jié)點(diǎn)個數(shù)的增加而增加,使系統(tǒng)具有良好的可擴(kuò)展性[13],這與BT和P2P解決的問題是一致的。

2 系統(tǒng)架構(gòu)與工作流程

2.1 系統(tǒng)框架

在桌面虛擬化(VDI技術(shù))場景中實(shí)現(xiàn)P2P下載,系統(tǒng)架構(gòu)主要包括以下3個組件:鏡像服務(wù)、計算節(jié)點(diǎn)服務(wù)、BT-Tracker服務(wù),如圖1所示。

鏡像服務(wù):完成鏡像文件的保存、做種等功能。

BT-Tracker:維護(hù)每個種子文件連接的節(jié)點(diǎn)信息,在本文提出的方案中,節(jié)點(diǎn)包含鏡像服務(wù)和計算節(jié)點(diǎn)服務(wù)。

計算節(jié)點(diǎn)服務(wù):創(chuàng)建虛擬機(jī)前,通過P2P技術(shù)從鏡像服務(wù)器下載鏡像。

鏡像服務(wù)和計算節(jié)點(diǎn)服務(wù)通過BT-Tracker連接進(jìn)行信息交換后,直接連接進(jìn)行數(shù)據(jù)交換。

以一個需要從鏡像服務(wù)分發(fā)鏡像文件到2個計算節(jié)點(diǎn)的場景,描述鏡像文件下發(fā)的整體過程如下:①鏡像服務(wù)對鏡像文件做種,并對BT-Tracker報告擁有鏡像完整文件;②計算節(jié)點(diǎn)1、2對BT-Tracker報告,并取回鏡像服務(wù)擁有完整文件的信息;③計算節(jié)點(diǎn)1、2直接連接鏡像服務(wù),下載鏡像文件;④計算節(jié)點(diǎn)1、2在下載過程中,計算節(jié)點(diǎn)報告BT-Tracker服務(wù)擁有鏡像文件的部分內(nèi)容;⑤計算節(jié)點(diǎn)1同時連接鏡像服務(wù)與計算節(jié)點(diǎn)2進(jìn)行數(shù)據(jù)交換;⑥計算節(jié)點(diǎn)2同時連接鏡像服務(wù)與計算節(jié)點(diǎn)1進(jìn)行數(shù)據(jù)交換。

2.2 BT-Tracker模塊內(nèi)部工作流程

BT-Tracker服務(wù)為鏡像服務(wù)與計算節(jié)點(diǎn)溝通的紐帶,鏡像服務(wù)和計算節(jié)點(diǎn)作為P2P下載中的客戶端。在系統(tǒng)剛開始運(yùn)行時并不知曉對方存在,所有客戶端需向BT-tracker報告自己的狀態(tài),并獲取其它客戶端信息。當(dāng)其它客戶端有需要下載的數(shù)據(jù)時,會直接發(fā)起與該客戶端的連接,并完成下載操作。

BT-Tracker在收到客戶端報告時,如果該客戶端報告的狀態(tài)為非stopped,則會保存該報告信息,并將其返回給客戶端,否則會將該信息移除。工作流程如圖2所示。

其中生成種子文件的核心偽代碼如下:

(1)構(gòu)建libtorrent文件存儲對象:

fs <- lt.file_storage()

(2)將做種的文件加入到文件存儲對象中:

lt.add_files fs, image_file

(3)創(chuàng)建libtorrent種子文件對象:

t <- lt.create_torrent fs, trunk_size

(4)對鏡像文件分塊計算HASH值,并設(shè)置到種子文件對象中:

FOR 每個分塊設(shè)置每塊HASH

(5)生成種子文件。通過HASH信息生成種子文件。

2.3 鏡像下載工作流程

客戶端在進(jìn)行鏡像下載時,會先判斷客戶端所在節(jié)點(diǎn)與鏡像服務(wù)是否在同一節(jié)點(diǎn),如果是則直接使用文件拷貝,如果不是,則判斷是否啟用了P2P機(jī)制。如果未啟用,則使用HTTP方式進(jìn)行下載,如已啟用P2P,則判斷種子文件是否存在。如種子不存在,則使用HTTP方式進(jìn)行下載,否則使用P2P下載。詳細(xì)流程如圖3所示。

下載鏡像文件的核心偽代碼如下:

(1)構(gòu)建OEBitTorrent對象:

bt <- OEBitTorrent()

(2)加入種子文件到OEBitTorrent對象,自動開始下載:

torrent_handle <- bt.add_torrent torrent_file_path, save_path, new_file_name, new_tracker_urls

(3)等待下載完成:

WHILE下載未完成

SLEEP 10

(4)從OEBitTorrent中移除種子文件:

bt.remove_torrent(torrent_handle)

3 實(shí)驗(yàn)結(jié)果與分析

3.1 實(shí)驗(yàn)環(huán)境設(shè)置

實(shí)驗(yàn)共使用5臺硬件配置相同的服務(wù)器,包含1個2.0GHz Xeon E5-2640 CPU,32GB內(nèi)存,存儲設(shè)備為1塊2 TB SATA硬盤。工作過程完全相同,只是服務(wù)器數(shù)量不同。鏡像存儲節(jié)點(diǎn)和計算節(jié)點(diǎn)通過千兆交換機(jī)連接。其中1個節(jié)點(diǎn)運(yùn)行鏡像服務(wù)和BT-Tracker服務(wù),剩余節(jié)點(diǎn)運(yùn)行計算節(jié)點(diǎn)服務(wù)。

3.2 實(shí)驗(yàn)結(jié)果與分析

本文所設(shè)置的實(shí)驗(yàn)過程描述如下:①分別準(zhǔn)備20G和40G的磁盤鏡像文件;②使用鏡像服務(wù)分別對2個鏡像文件做種,生成種子文件;③種子文件存放在共享文件系統(tǒng)NFS中,使4個計算節(jié)點(diǎn)都能正常訪問;④3/4個運(yùn)行計算節(jié)點(diǎn)的服務(wù)器同時進(jìn)行文件下載,分別針對使用HTTP方式和P2P方式下載進(jìn)行計時,下載完成后記錄下載平均時間。在本次實(shí)驗(yàn)中,每次都在同樣環(huán)境中進(jìn)行3次下載,取平均值。實(shí)驗(yàn)結(jié)果如表2所示。

由表2可知,使用HTTP下載時,因鏡像服務(wù)器所在節(jié)點(diǎn)網(wǎng)絡(luò)帶寬存在瓶頸,所有節(jié)點(diǎn)總下載速度為100.2MB/S左右。節(jié)點(diǎn)越多,同樣大小的鏡像文件下載時間越長。使用P2P下載,當(dāng)節(jié)點(diǎn)數(shù)為3時,所有節(jié)點(diǎn)總下載速度為180.1MB/S左右;節(jié)點(diǎn)數(shù)為4時,所有節(jié)點(diǎn)的總下載速度為276.3MB/S左右。隨著節(jié)點(diǎn)數(shù)增多,下載速度隨之提升,同樣鏡像大小的文件下載時間會縮短。

綜上所述,在計算節(jié)點(diǎn)數(shù)為3個以上時,P2P技術(shù)能有效提升鏡像下載速度,并且節(jié)點(diǎn)數(shù)越多,速度提升表現(xiàn)越明顯。這意味著虛擬桌面數(shù)量規(guī)模越大、計算節(jié)點(diǎn)越多,采用P2P技術(shù)越能提升鏡像下載速度。

4 結(jié)語

在桌面虛擬化(VDI技術(shù))系統(tǒng)中,虛擬機(jī)鏡像分發(fā)采用P2P方式,在使多個計算節(jié)點(diǎn)同時下載同一鏡像過程中,不同計算節(jié)點(diǎn)可直接連接并交換數(shù)據(jù),從而使鏡像服務(wù)器不會成為瓶頸,提升了鏡像下載速度及桌面創(chuàng)建速度,同時提升了系統(tǒng)整體性能和用戶使用體驗(yàn)。實(shí)驗(yàn)結(jié)果也證實(shí)了P2P技術(shù)對于多個計算節(jié)點(diǎn)同時下載鏡像文件時的速度提升較為明顯。

參考文獻(xiàn):

[1] 盛雯雯,李家峰.基于桌面虛擬化的多媒體機(jī)房設(shè)計——桌面虛擬化引導(dǎo)機(jī)房建設(shè)革命[J].硅谷,2011(18):49,14.

[2] DEBOOSERE L, VANKEIRSBILCK B, SIMONES P, et al. Efficient resource management for virtual desktop cloud computing[J]. The Journal of Supercomputing,2012,62(2):741-767.

[3] 劉圣卓,姜進(jìn)磊,楊廣文.一種用于虛擬集群的鏡像按需分發(fā)框架[J].計算機(jī)工程與應(yīng)用,2016(2):1-6.

[4] 李紫陽.云環(huán)境下虛擬機(jī)鏡像數(shù)據(jù)的協(xié)作式緩存研究[D].長沙:國防科技大學(xué),2012.

[5] 姜躍.面向桌面虛擬化的分布式鏡像存儲研究[D].武漢:華中科技大學(xué),2012.

[6] 江云飛,裘杰,徐紅仙.虛擬機(jī)鏡像文件處理方法、裝置及系統(tǒng)[P].中國:CN103942292A,2014.

[7] 周文莉,吳曉非.P2P技術(shù)綜述[J].計算機(jī)工程與設(shè)計,2006(1):76-79.

[8] BitTorrent.org. Bittorrent[EB/OL].http://www.bittorrent.org.2015.

[9] 孔彬,徐良賢.BitTorrent原理分析及改進(jìn)[J].計算機(jī)工程,2004,30(A1):257-259.

[10] 王玨,周莉.BitTorrent模型原理分析[J].華東交通大學(xué)學(xué)報,2009(1):82.

[11] 黃江勇.基于非結(jié)構(gòu)化P2P網(wǎng)絡(luò)的可擴(kuò)展性研究[D].長沙:湖南大學(xué),2012.

[12] 柳斌,李芝棠.基于訪問控制列表的BitTorrent流量控制策略[J].計算機(jī)應(yīng)用與軟件,2006(5):19-34.

[13] YANG X Y, GUSTAVO D V. Service capacity of peer to peer networks[C]. Proceedings of the 23rd Conference of the IEEE Computer and Communications Societies,2004:2242-2252.

(責(zé)任編輯:黃 ?。?/p>