• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于鏡像分割技術(shù)的虛擬機(jī)啟動(dòng)方法研究

      2013-11-30 02:05:03帆,曹源,閭
      關(guān)鍵詞:鏡像原型啟動(dòng)

      易 帆,曹 源,閭 琳

      基于鏡像分割技術(shù)的虛擬機(jī)啟動(dòng)方法研究

      易 帆1*,曹 源2,閭 琳3

      針對虛擬機(jī)在網(wǎng)絡(luò)應(yīng)用中部署開銷高、存儲規(guī)模大的問題,通過分析引導(dǎo)系統(tǒng)文件,將傳統(tǒng)的虛擬機(jī)鏡像分割為系統(tǒng)鏡像和用戶自定義鏡像;虛擬化系統(tǒng)在啟動(dòng)的時(shí)候,同時(shí)讀取2個(gè)鏡像文件,隨后采用unionfs進(jìn)行鏡像的融合,最終向用戶提供完整的虛擬機(jī)操作系統(tǒng)。使用IOZONE軟件對原型鏡像虛擬機(jī)進(jìn)行性能測試,結(jié)果證明:該方法可以顯著減少虛擬機(jī)鏡像的傳輸時(shí)間和系統(tǒng)的存儲規(guī)模。

      虛擬機(jī);融合鏡像;虛擬機(jī)啟動(dòng);鏡像分割

      虛擬機(jī)技術(shù)和虛擬計(jì)算環(huán)境是計(jì)算機(jī)科學(xué)近年來最矚目的成就之一。目前虛擬機(jī)的存儲與傳輸載體為虛擬機(jī)鏡像,通過虛擬機(jī)鏡像將一定格式的文件作為虛擬機(jī)的磁盤存儲設(shè)備[1]。但一個(gè)完整的虛擬機(jī)鏡像文件會(huì)占用大量的磁盤空間,因此傳統(tǒng)的部署虛擬機(jī)的方法會(huì)導(dǎo)致網(wǎng)絡(luò)開銷增大。

      對于虛擬機(jī)鏡像分割技術(shù)中虛擬機(jī)啟動(dòng)方法的研究在虛擬化領(lǐng)域尚處于新興階段,相關(guān)的研究成果較少。文獻(xiàn)[3]用文件壓縮機(jī)制對虛擬機(jī)鏡像模板文件的體積進(jìn)行優(yōu)化。在傳輸前對虛擬機(jī)鏡像模板文件進(jìn)行壓縮,傳輸?shù)剿拗鳈C(jī)后,再解壓縮,以減少網(wǎng)絡(luò)傳輸量。文獻(xiàn)[4]重新設(shè)計(jì)了虛擬機(jī)監(jiān)控器(VMM)的底層COW虛擬機(jī)塊設(shè)備,從而將大尺寸的虛擬機(jī)鏡像進(jìn)行細(xì)粒度的分割,并進(jìn)行按需部署,達(dá)到低開銷、高效率的效果。但文獻(xiàn)[4]主要針對虛擬機(jī)在網(wǎng)絡(luò)節(jié)點(diǎn)上的部署,沒有實(shí)現(xiàn)鏡像的完全分割存儲,因此無法減少系統(tǒng)鏡像的冗余。

      本文通過對虛擬機(jī)鏡像進(jìn)行分割存儲、在啟動(dòng)時(shí)進(jìn)行鏡像融合,從而達(dá)到減少存儲、提高傳輸?shù)哪康?。對虛擬機(jī)鏡像的分割存儲是把傳統(tǒng)的虛擬機(jī)鏡像文件分為靜態(tài)的系統(tǒng)鏡像和動(dòng)態(tài)的用戶自定義鏡像。系統(tǒng)鏡像是一個(gè)不包含用戶個(gè)人信息的系統(tǒng),為只讀屬性,規(guī)模占整個(gè)鏡像系統(tǒng)的70%~80%;用戶自定義鏡像是系統(tǒng)的可寫部分,用于記錄用戶使用系統(tǒng)的操作及用戶增加的數(shù)據(jù)等[2]。

      本文首先分析通用Linux系統(tǒng)的引導(dǎo)過程,討論分割鏡像的可行性;然后對一個(gè)建立在CentOS 5.5操作系統(tǒng)上的原型虛擬機(jī)鏡像進(jìn)行分割,并實(shí)現(xiàn)了原型多鏡像虛擬機(jī)的啟動(dòng);最后測試原型多鏡像虛擬機(jī)的性能表現(xiàn)。

      1 多鏡像虛擬機(jī)原型分析與實(shí)現(xiàn)

      1.1 Initrd中init文件分析

      在每個(gè)Linux系統(tǒng)的/boot/目錄下,都存在一個(gè)或幾個(gè)initrd-xxx.img文件,這些文件為系統(tǒng)的啟動(dòng)鏡像文件,也稱為IMG鏡像。下面簡要分析作為initrd核心的init的腳本代碼,以此來說明init的結(jié)構(gòu)和功能。

      1 #!/bin/nash

      2

      3 mount -t proc /proc /proc

      ……

      7 mount -t sysfs /sys /sys

      8 echo Creating /dev

      ……

      11 mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts

      12 mkdir /dev/shm

      13 mkdir /dev/mapper

      14 echo Creating initial device nodes

      15 mknod /dev/null c 1 3

      ……

      42 echo Creating block device nodes.

      43 mkblkdevs

      44 echo "Loading ehci-hcd.ko module"

      45 insmod /lib/ehci-hcd.ko

      ……

      83 echo Waiting for driver initialization.

      84 stabilized --hash --interval 1000 /proc/scsi/scsi

      85 mkblkdevs

      第1部分:第1行,聲明使用nash腳本解釋器;

      第2部分:第3~7行,掛載系統(tǒng)必須的文件系統(tǒng)并供內(nèi)核使用,如/sys、/proc。這2個(gè)目錄在initrd中已經(jīng)存在;

      第3部分: 第8~13行,建立設(shè)備文件所需的文件系統(tǒng);

      第4部分: 第14~43行,創(chuàng)建系統(tǒng)啟動(dòng)時(shí)所需的各種設(shè)備文件;

      第5部分: 第44~85行,加載必須的模塊文件。

      1.2 多鏡像虛擬機(jī)原型實(shí)現(xiàn)

      本文使用unionfs融合系統(tǒng)鏡像和用戶自定義鏡像,使這2個(gè)鏡像在系統(tǒng)運(yùn)行時(shí)能協(xié)同工作[5]。

      上述分析中,將init分為6個(gè)部分。在采用了鏡像分割技術(shù)的原型系統(tǒng)的實(shí)現(xiàn)中,可以在第5部分加載unionfs文件系統(tǒng)模塊的腳本;然后在第6部分掛載系統(tǒng)鏡像以及用戶自定義鏡像;接著采用unionfs融合系統(tǒng)鏡像和用戶自定義鏡像,完成根目錄的掛載;最后由switchroot完成根目錄的切換。

      根據(jù)上述的分析,重點(diǎn)需要關(guān)注init腳本的第6部分。

      86 echo Scanning and configuring dmraid supported devices

      87 echo Scanning logical volumes

      88 lvm vgscan --ignorelockingfailure

      89 echo Activating logical volumes

      90 lvm vgchange -ay --ignorelockingfailure VolGroup00

      91 resume /dev/VolGroup00/LogVol01

      92 echo Creating root device.

      93 mkrootdev -t ext3 -o defaults,ro /dev/VolGroup00/LogVol00

      94 echo Mounting root filesystem.

      95 mount /sysroot

      96 echo Setting up other filesystems.

      97 setuproot

      98 echo Switching to new root and running init.

      99 switchroot

      Ⅰ 這一部分增加了對有關(guān)邏輯卷設(shè)備的支持。因?yàn)橛行㎜inux系統(tǒng)采用了邏輯卷設(shè)備作為存儲設(shè)備(比如CentOS);

      Ⅱ 創(chuàng)建根設(shè)備。經(jīng)過驗(yàn)證,這一部分與下面一個(gè)部分協(xié)同工作;創(chuàng)建根設(shè)備文件,將它以只讀屬性、ext3格式掛載到/sysroot目錄;/dev/VolGroup00/LogVol00 /sysroot;其中/dev/VolGroup00/LogVol00就是根文件系統(tǒng)所在的邏輯卷設(shè)備;

      Ⅲ 這里直接掛載/sysroot;因?yàn)橄到y(tǒng)在內(nèi)核啟動(dòng)的第1階段的末期,會(huì)將根文件系統(tǒng)所在的設(shè)備掛載到/sysroot,而后,switchroot會(huì)將/sysroot轉(zhuǎn)換為真正的根目錄;

      Ⅳ Setuproot將當(dāng)前根目錄下的/proc、/sys、/dev等目錄的內(nèi)容遷移到/sysroot目錄下,為下一步的根目錄轉(zhuǎn)換作準(zhǔn)備。這3個(gè)目錄存在于initrd中,在initrd被加載到內(nèi)存空間之后,掛載了相應(yīng)的文件系統(tǒng),生成了新的內(nèi)容;

      Ⅴ Switchroot負(fù)責(zé)進(jìn)行最終的根目錄轉(zhuǎn)換,在完成后清空initrd在內(nèi)存中的內(nèi)容,并將控制權(quán)交給init進(jìn)程,進(jìn)入內(nèi)核啟動(dòng)的第2階段

      在模型系統(tǒng)設(shè)計(jì)實(shí)現(xiàn)時(shí),可以在第Ⅱ部分的地方插入掛載系統(tǒng)鏡像和用戶自定義鏡像的指令,并替換掉原先創(chuàng)建根設(shè)備的這部分腳本,然后使用unionfs融合這2個(gè)目錄。在此使用一些技術(shù)方法來進(jìn)行掛載操作。

      1)以只讀方式掛載真正的根文件系統(tǒng)所在的設(shè)備,即系統(tǒng)鏡像。在創(chuàng)建完掛載點(diǎn)之后,使用mount命令進(jìn)行掛載:

      Mkdir /ro

      Mount -t ext3 -o defaults,ro /dev/VolGroup00/LogVol00 /ro

      其中/ro是掛載點(diǎn),說明這是一個(gè)只讀的目錄;

      圖1 融合目錄時(shí)initrd啟動(dòng)的流程圖

      2)以可讀寫的方式掛載用戶自定義鏡像。為了使腳本更具有可讀性,可以創(chuàng)建新的掛載點(diǎn)。這種掛載方法為:

      Mkdir /rw

      Mount-t ext3-o defaults,rw /dev/sdb1 /rw

      其中/dev/sdb1是用戶自定義鏡像對應(yīng)的設(shè)備名,/rw說明該目錄是可讀寫屬性的。

      3)采用unionfs對2個(gè)目錄進(jìn)行融合。根據(jù)unionfs對于分支優(yōu)先級的約定,最高優(yōu)先級的分支(掛載時(shí)位于最左端)應(yīng)該具有可讀寫的屬性;因此,融合鏡像的命令為:

      Mount-t unionfs-o dirs=/rw=rw:/ro=ro /sysroot

      到此處為止,關(guān)于采用unionfs融合多鏡像的操作已經(jīng)完成,下面將由init進(jìn)程控制Linux的內(nèi)核啟動(dòng);內(nèi)核的啟動(dòng)將進(jìn)入第2階段。特別需要說明的是,此時(shí)系統(tǒng)已經(jīng)處在了設(shè)計(jì)預(yù)期中所要求的環(huán)境中,即系統(tǒng)鏡像為只讀,提供系統(tǒng)必要的文件和配置信息,而新增加的文件和數(shù)據(jù)將寫入到用戶自定義鏡像中。

      經(jīng)過修改后,系統(tǒng)內(nèi)核啟動(dòng)的一般流程如圖1所示。

      2 多鏡像虛擬機(jī)性能測試

      本文在安裝了Linux CentOS 5.5操作系統(tǒng)的虛擬機(jī)上搭建了一個(gè)采用多鏡像啟動(dòng)的虛擬機(jī)原型系統(tǒng)。

      2.1 測試環(huán)境

      讀寫性能測試使用IOZONE軟件,其他的一些硬件及軟件環(huán)境如表1所示。

      表1 實(shí)驗(yàn)環(huán)境配置

      2.2 多鏡像虛擬機(jī)的讀寫性能測試

      本文不僅對采用了多鏡像啟動(dòng)技術(shù)的原型多鏡像虛擬機(jī)系統(tǒng)的讀寫性能進(jìn)行測試,同時(shí)還與另外2個(gè)測試對象(一個(gè)是常用的使用一個(gè)鏡像文件的普通單鏡像虛擬機(jī);另一個(gè)是普通的多鏡像虛擬機(jī),即與普通單鏡像虛擬機(jī)相比,掛載了額外的鏡像的虛擬機(jī)系統(tǒng))的測試結(jié)果進(jìn)行比較,觀察原型虛擬機(jī)系統(tǒng)讀寫性能的變化情況。

      本文對3個(gè)測試對象分別采用命令:Iozone-s 512M-i 0-i 1-i 2-r 4-f {file-path}/iozone。

      測試對象的IO讀寫性能,對命令的各參數(shù)解釋如下:

      -s 512M:表示所測試的文件大小為512 MB。模擬實(shí)驗(yàn)中所使用的用戶自定義鏡像的大小為1 GB,因?yàn)槿绻褂玫奈募^大,會(huì)導(dǎo)致測試出錯(cuò)。另外,鑒于在使用IOZONE進(jìn)行測試時(shí)的文件大小應(yīng)為系統(tǒng)內(nèi)存大小的2倍,所以設(shè)置3個(gè)測試對象的內(nèi)存大小都為256 MB;

      -i 0:進(jìn)行寫/重寫(write/rewrite)模式的測試;

      -i 1:進(jìn)行讀/重讀(read/re-read)模式的測試;

      -i 2:進(jìn)行隨機(jī)讀/寫(random-read/write)模式的測試;

      -r 4:設(shè)置一次讀/寫的文件塊大小為4 kB;

      -f {file-path}/iozone:設(shè)置測試文件的路徑和名稱。對于3個(gè)測試對象來說,將測試文件的名稱定為iozone;測試文件的路徑是很重要的參數(shù),對于原型多鏡像虛擬機(jī)系統(tǒng)而言,測試文件必將寫入到用戶自定義鏡像之中。對于普通的單鏡像模式的虛擬機(jī)而言,測試文件必將寫入到系統(tǒng)鏡像之中。對于普通的多鏡像模式的虛擬機(jī),其系統(tǒng)鏡像和額外掛載的鏡像都是可以寫文件的,在此處控制系統(tǒng)寫文件的目的磁盤為額外掛載的鏡像。

      對于每個(gè)鏡像模式的虛擬機(jī),運(yùn)行上述的命令,進(jìn)行5組IOZONE測試;從所得的結(jié)果中,選出每個(gè)測試模式對應(yīng)的最優(yōu)值、最差值及平均值。測試結(jié)果如表2所示。

      表2 IO性能測試結(jié)果 kb/s

      通過IO性能測試的平均值比較發(fā)現(xiàn):基于鏡像分割技術(shù)的原型多鏡像虛擬機(jī)在測試中的表現(xiàn)普遍優(yōu)于普通的多鏡像虛擬機(jī)(在讀模式上例外);與普通單鏡像的虛擬機(jī)的性能接近。在其表現(xiàn)稍差的性能方面,其性能差距也不是非常明顯,比如在寫模式上比普通單鏡像虛擬機(jī)差7.7%,在讀模式上比普通單鏡像虛擬機(jī)差5.1%等等。

      對于寫模式和讀模式的測試結(jié)果,根據(jù)IOZONE的定義,這2個(gè)操作是首次進(jìn)行相應(yīng)操作時(shí)的IO性能的測試結(jié)果。在這2個(gè)模式下,unionfs在底層系統(tǒng)會(huì)進(jìn)行文件的寫時(shí)復(fù)制和重定位等操作,這必然會(huì)在某種程度上使IO性能降低。這就是原型多鏡像虛擬機(jī)在讀寫模式測試中性能下降的原因。

      對于重寫模式和重讀模式,因?yàn)榇藭r(shí)系統(tǒng)中已經(jīng)包含了相應(yīng)操作的文件的部分?jǐn)?shù)據(jù),比如文件的元數(shù)據(jù)和緩存中的一些命中的頁,根據(jù)測試結(jié)果原型多鏡像虛擬機(jī)的性能稍優(yōu)。

      對于隨機(jī)讀模式和隨機(jī)寫模式,與讀/重讀模式和寫/重新模式的測試結(jié)果相比,3種鏡像模式的虛擬機(jī)的性能下降很快。這說明在隨機(jī)模式中,其對于數(shù)據(jù)的定位成為系統(tǒng)的瓶頸。該瓶頸使得unionfs的底層轉(zhuǎn)換對系統(tǒng)IO的性能消耗不明顯,測試結(jié)果顯示原型多鏡像虛擬機(jī)的性能較優(yōu)。

      通過本次測試,可以證明原型多鏡像虛擬機(jī)在整體性能上與普通的多鏡像虛擬機(jī)和普通的單鏡像虛擬機(jī)相比,占有一定優(yōu)勢。

      2.3 網(wǎng)絡(luò)環(huán)境下的多鏡像虛擬機(jī)測試

      本文在網(wǎng)絡(luò)環(huán)境中測試多鏡像虛擬機(jī),所使用的普通單鏡像虛擬機(jī)的鏡像大小為10 GB,多鏡像虛擬機(jī)的系統(tǒng)鏡像大小為8 GB,用戶自定義鏡像的大小為1 GB。

      在網(wǎng)絡(luò)中使用虛擬機(jī),使用時(shí)要從服務(wù)器端下載虛擬機(jī)鏡像,使用完后要將虛擬機(jī)鏡像保存到服務(wù)器端,從而將數(shù)據(jù)存儲到服務(wù)器端。使用多鏡像虛擬機(jī),只有在第一次使用時(shí)要將系統(tǒng)鏡像和用戶自定義鏡像下載到客戶端機(jī)器上;以后每次回傳和下載鏡像時(shí)只需要關(guān)注用戶自定義鏡像。

      因此,首次使用時(shí),普通單鏡像虛擬機(jī)和多鏡像虛擬機(jī)的網(wǎng)絡(luò)消耗相同;再次使用虛擬機(jī)時(shí),多鏡像虛擬機(jī)的網(wǎng)絡(luò)開銷將是普通單鏡像虛擬機(jī)的1/8,明顯地減少了虛擬機(jī)鏡像在網(wǎng)絡(luò)中的傳輸延時(shí)。

      3 結(jié)語

      在虛擬化技術(shù)的應(yīng)用方面,本文結(jié)合unionfs文件系統(tǒng),提出了基于鏡像分割原理啟動(dòng)的虛擬機(jī)系統(tǒng),并經(jīng)測試證明該虛擬機(jī)與傳統(tǒng)的虛擬機(jī)相比,有效地提高了性能。

      在網(wǎng)絡(luò)環(huán)境中使用多鏡像虛擬機(jī)提供服務(wù),還具有以下優(yōu)勢:1)與普通的虛擬機(jī)相比可以減少系統(tǒng)鏡像的傳輸,明顯節(jié)省了網(wǎng)絡(luò)傳輸時(shí)延;2)用戶可以根據(jù)自己的需求選擇自定義鏡像的格式和大小,帶來了應(yīng)用的靈活性;3)使系統(tǒng)鏡像和用戶自定義鏡像分離,可以做到即使用戶不愿意將自己的個(gè)人數(shù)據(jù)保存到云端,依然可以使用云計(jì)算技術(shù)所帶來的部分優(yōu)勢。

      在非網(wǎng)絡(luò)環(huán)境下,虛擬機(jī)的多鏡像啟動(dòng)技術(shù)依然具有可用價(jià)值。簡單地說,用戶可以通過部署系統(tǒng)鏡像,攜帶自定義鏡像的方法,來達(dá)到異地使用同一系統(tǒng)的目的。

      由于本文基于通用Linux引導(dǎo)進(jìn)程,而不是某一種特定的虛擬機(jī)監(jiān)控器軟件,因此本文的方法可以在多種虛擬機(jī)監(jiān)控器軟件上面使用,創(chuàng)建多鏡像虛擬機(jī),具有良好的平臺無關(guān)性和可移植性。

      [1] LU X C, WANG H M, WANG J.Internet-Based virtual computing environment (iVCE): concepts and architecture[J].Science in China(Series E), 2006,36(10):1081 1099

      [2] ROUSSELLE P, TYMANN P, HARIR S, et al.The virtual computing environment[C]// High Performance Distributed Computing. 1994 Proceedings of the 3rd IEEE International Symposium,1994.

      [3] 王海斌.動(dòng)態(tài)虛擬集群部署與管理[D]. 長春:吉林大學(xué),2011.

      [4] 陳彬.分布環(huán)境下虛擬機(jī)按需部署關(guān)鍵技術(shù)研究[D].長沙:國防科學(xué)技術(shù)大學(xué),2010.

      [5] Unionfs.A stackatle unification file system[EB/OL].[2012-12-29].http://www.fsl.cs.sunysb.edu/project-unifs.html.

      StudyofVirtualMachineStartupMethodBasedonImageSplittingMethod

      YIFan1*,CAOYuan2,LVLin3

      (1. IBM Solution amp; Services(Shenzhen)Co.,Ltd. Chengdu Branch, Chengdu 610041, China;2. School of Computer Science and Engineering, Wuhan University, Wuhan 430072, China;3. Department of Electrical and Electronic Engineering, Chengdu Technological College, Chengdu 610031, China)

      Aiming at the large virtual machine image problem, this paper proposes a process that splits a traditional image into a system image and a user-defined image by analyzing the booting system files. When a virtual system startup, it reads files from both images, then merges them by unionfs, finally provides a complete virtual operating system. The performance experiments using IOZONE show that the image method eliminates the system image redundancy, and greatly reduces the image storage.

      virtual machine; image-merging; virtual machine startup;image splitting

      2013-09-05

      易帆(1976- ),男(漢族),四川成都人,工程師,碩士,研究方向:分布式計(jì)算、云計(jì)算,通信作者郵箱:ysohuf@sohu.com。

      曹源(1986- ),男(漢族),甘肅慶陽人,工程師,碩士,研究方向:云計(jì)算、計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)。

      (1.國際商業(yè)機(jī)器科技(深圳)有限公司成都分公司,成都 610041;2.武漢大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,武漢 430072;3.成都工業(yè)學(xué)院 電氣與電子工程系,成都 610031)

      TP393

      A

      2095-5383(2013)04-0044-04

      猜你喜歡
      鏡像原型啟動(dòng)
      包裹的一切
      鏡像
      《哈姆雷特》的《圣經(jīng)》敘事原型考證
      鏡像
      小康(2018年23期)2018-08-23 06:18:52
      霧霾來襲 限產(chǎn)再次啟動(dòng)
      安發(fā)生物啟動(dòng)2017
      論《西藏隱秘歲月》的原型復(fù)現(xiàn)
      原型理論分析“門”
      人間(2015年20期)2016-01-04 12:47:08
      鏡像
      小康(2015年4期)2015-03-31 14:57:40
      鏡像
      小康(2015年6期)2015-03-26 14:44:27
      屯门区| 桃园市| 唐山市| 延吉市| 昌平区| 铜山县| 安阳市| 绥阳县| 玛沁县| 邹城市| 麻栗坡县| 隆昌县| 迁西县| 拉孜县| 花莲市| 桂东县| 舞钢市| 达拉特旗| 成安县| 嘉鱼县| 斗六市| 定远县| 全椒县| 四平市| 甘孜县| 大化| 株洲市| 张家口市| 都江堰市| 资兴市| 文成县| 奉贤区| 天祝| 洪泽县| 华容县| 咸阳市| 怀远县| 米脂县| 罗山县| 开鲁县| 茶陵县|