本發(fā)明涉及虛擬機領(lǐng)域,特別涉及一種虛擬機的數(shù)據(jù)文件存儲方法、裝置及kvm虛擬機。
背景技術(shù):
隨著云計算的發(fā)展,現(xiàn)在越來越多的it應(yīng)用都部署在基于虛擬機的云平臺上,因此,虛擬機的性能往往決定著it應(yīng)用的性能表現(xiàn)。在處理器和內(nèi)存性能過剩的今天,計算能力已不是虛擬機的瓶頸,然而io設(shè)備作為低速設(shè)備,io瓶頸的問題已經(jīng)越來越嚴重。因此,如何提升虛擬機的io性能,進而提升虛擬機的性能,優(yōu)化云平臺性能,是當(dāng)今一個熱點問題。
現(xiàn)有技術(shù)中,往往通過更換服務(wù)器的硬件設(shè)備提升虛擬機的io性能,如使用更大的緩存的raid(redundantarrayofindependentdisk,獨立冗余磁盤陣列)卡或sas(serialattachedscsi,串行連接scsi)卡或者更強性能的raid卡或sas卡,提升io性能;使用ssd替換傳統(tǒng)的sata、sas硬盤或者組成混合硬盤系統(tǒng)。但是,更換服務(wù)器的硬件設(shè)備需要投入額外的成本用于購買硬件設(shè)備,使得成本增加;并且即使更換硬件設(shè)備后,數(shù)據(jù)資源依然為服務(wù)器系統(tǒng)自動調(diào)度,io提升只限于一定范圍內(nèi)。因此,如何在不更換的硬件設(shè)備的前提下,利用現(xiàn)有的服務(wù)器系統(tǒng)提升虛擬機的io性能,是現(xiàn)今急需解決的問題。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種虛擬機的數(shù)據(jù)文件存儲方法、裝置及kvm虛擬機,以利用內(nèi)存存儲虛擬機的數(shù)據(jù)文件,提升虛擬機的io性能,從而提升虛擬機整體的性能,提高用戶虛擬化環(huán)境應(yīng)用的體驗度。
為解決上述技術(shù)問題,本發(fā)明提供一種虛擬機的數(shù)據(jù)文件存儲方法,包括:
根據(jù)接收的內(nèi)存掛載點創(chuàng)建命令,在內(nèi)存中創(chuàng)建掛載點;
根據(jù)接收的存儲位置指令,將所述存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為所述掛載點。
可選的,所述根據(jù)接收的存儲位置指令,將所述存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為所述掛載點,還包括:
將所述存儲位置指令對應(yīng)的虛擬機已存儲在硬盤上的對應(yīng)的數(shù)據(jù)文件遷移至所述掛載點。
可選的,所述根據(jù)接收的內(nèi)存掛載點創(chuàng)建命令,在內(nèi)存中創(chuàng)建掛載點之后,還包括:
根據(jù)接收到的文件權(quán)限命令,對所述掛載點內(nèi)存儲的數(shù)據(jù)文件設(shè)置權(quán)限。
可選的,所述據(jù)接收的存儲位置指令,將所述存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為所述掛載點,包括:
根據(jù)從kvm管理界面接收的所述存儲位置指令,將所述存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為所述掛載點。
可選的,所述根據(jù)接收的內(nèi)存掛載點創(chuàng)建命令,在內(nèi)存中創(chuàng)建掛載點,包括:
根據(jù)接收的所述內(nèi)存掛載點創(chuàng)建命令,在多機ha的內(nèi)存中創(chuàng)建掛載點。
可選的,所述根據(jù)接收的存儲位置指令,將所述存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為所述掛載點之后,還包括:
判斷所述存儲位置指令對應(yīng)的虛擬機接收的數(shù)據(jù)文件是否存儲至所述掛載點;
若否,則發(fā)送提示命令。
此外,本發(fā)明還提供了一種虛擬機的數(shù)據(jù)文件存儲裝置,包括:
創(chuàng)建模塊,用于根據(jù)接收的內(nèi)存掛載點創(chuàng)建命令,在內(nèi)存中創(chuàng)建掛載點;
設(shè)置模塊,用于根據(jù)接收的存儲位置指令,將所述存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為所述掛載點。
可選的,所述設(shè)置模塊,還包括:
遷移單元,用于將所述存儲位置指令對應(yīng)的虛擬機已存儲在硬盤上的對應(yīng)的數(shù)據(jù)文件遷移至所述掛載點。
可選的,所述創(chuàng)建模塊,包括:
創(chuàng)建單元,用于根據(jù)接收的所述內(nèi)存掛載點創(chuàng)建命令,在多機ha的內(nèi)存中創(chuàng)建掛載點。
本發(fā)明還提供了一種kvm虛擬機,包括如上述任一項所述的虛擬機的數(shù)據(jù)文件存儲裝置。
本發(fā)明所提供的一種虛擬機的數(shù)據(jù)文件存儲方法,包括:根據(jù)接收的內(nèi)存掛載點創(chuàng)建命令,在內(nèi)存中創(chuàng)建掛載點;根據(jù)接收的存儲位置指令,將所述存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為所述掛載點;
可見,本發(fā)明通過根據(jù)接收的內(nèi)存掛載點創(chuàng)建命令,在內(nèi)存中創(chuàng)建掛載點,可以在內(nèi)存中創(chuàng)建用于存儲數(shù)據(jù)文件的存儲空間;通過將存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為掛載點,可以根據(jù)用戶需求將存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲至內(nèi)存的存儲空間,顯著提升了虛擬機的io性能,解決了io瓶頸問題,進而提升了虛擬機的整體性能,提高了用戶虛擬化環(huán)境應(yīng)用的體驗度。此外,本發(fā)明還提供了一種虛擬機的數(shù)據(jù)文件存儲裝置及kvm虛擬機,同樣具有上述有益效果。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例所提供的一種虛擬機的數(shù)據(jù)文件存儲方法的流程圖;
圖2為本發(fā)明實施例所提供的另一種虛擬機的數(shù)據(jù)文件存儲方法的流程圖;
圖3本發(fā)明實施例所提供的另一種虛擬機的數(shù)據(jù)文件存儲方法的kvm虛擬機的虛擬化數(shù)據(jù)拓撲圖;
圖4為現(xiàn)有技術(shù)中kvm虛擬機的虛擬化數(shù)據(jù)拓撲圖;
圖5為本發(fā)明實施例所提供的一種虛擬機的數(shù)據(jù)文件存儲裝置的結(jié)構(gòu)圖。
具體實施方式
為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
請參考圖1,圖1為本發(fā)明實施例所提供的一種虛擬機的數(shù)據(jù)文件存儲方法的流程圖。該方法可以包括:
步驟101:根據(jù)接收的內(nèi)存掛載點創(chuàng)建命令,在內(nèi)存中創(chuàng)建掛載點。
其中,內(nèi)存掛載點創(chuàng)建命令可以為用戶或設(shè)計人員在如kvm虛擬機、xen虛擬機或hype-v虛擬機的系統(tǒng)中設(shè)置的,用于在服務(wù)器的內(nèi)存中創(chuàng)建掛載點的命令。內(nèi)存掛載點創(chuàng)建命令可以包含創(chuàng)建的掛載點的存儲空間大小和掛載點的位置,對于內(nèi)存掛載點創(chuàng)建命令的具體內(nèi)容,可以由用戶或設(shè)計人員根據(jù)實用場景和用戶需求自行設(shè)置,本實施例對此不受任何限制。
可以理解的是,對于接收的內(nèi)存掛載點創(chuàng)建命令的方式,可以根據(jù)用戶或設(shè)計人員輸入該內(nèi)存掛載點創(chuàng)建命令的方式對應(yīng)設(shè)置,如若設(shè)計人員直接將該內(nèi)存掛載點創(chuàng)建命令寫入到kvm虛擬機系統(tǒng),則kvm虛擬機系統(tǒng)可以直接接收該內(nèi)存掛載點創(chuàng)建命令;若設(shè)計人員將該內(nèi)存掛載點創(chuàng)建命令通過wi-fi或其他無線或有線方式發(fā)送,則kvm虛擬機系統(tǒng)可以也可以通過wi-fi或其他無線或有線方式接收該內(nèi)存掛載點創(chuàng)建命令。本實施例對此不受任何限制。
需要說明的是,在內(nèi)存中創(chuàng)建掛載點也就是在服務(wù)器的內(nèi)存中創(chuàng)建用于存儲虛擬機數(shù)據(jù)文件的存儲空間。對于具體的創(chuàng)建方式,可以通過接收的內(nèi)存掛載點創(chuàng)建命令,直接創(chuàng)建對應(yīng)的掛載點;也可以通過其他方式,本實施例不做任何限制。
優(yōu)選的,在本步驟之后,還可以包括對存儲在上述掛載點的數(shù)據(jù)文件設(shè)置權(quán)限的步驟,以提高存儲的數(shù)據(jù)文件的安全性。
優(yōu)選的,因?qū)⑻摂M機的數(shù)據(jù)文件存儲在服務(wù)器的內(nèi)存上,因此當(dāng)服務(wù)器發(fā)生意外斷電的情況時,可能會使存儲在服務(wù)器的內(nèi)存上的數(shù)據(jù)文件發(fā)生數(shù)據(jù)丟失,因此可以部署多機ha方案,也就是在多機ha的內(nèi)存中創(chuàng)建掛載點,可以在擴大應(yīng)用規(guī)模的同時,顯著提升虛擬機的安全性,減少意外斷電造成的數(shù)據(jù)丟失的風(fēng)險。
步驟102:根據(jù)接收的存儲位置指令,將所述存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為所述掛載點。
其中,存儲位置指令可以為用戶或設(shè)計人員在如kvm虛擬機、xen虛擬機或hype-v虛擬機的系統(tǒng)的管理界面中設(shè)置的,用于管理虛擬機的數(shù)據(jù)文件存儲位置的指令。存儲位置指令可以包含如kvm系統(tǒng)中預(yù)設(shè)虛擬機的存儲位置,如用戶選擇全部虛擬機中一個或幾個使用需求大的虛擬機并設(shè)置該虛擬機的數(shù)據(jù)文件存儲位置為上述掛載點,對于存儲位置指令的具體內(nèi)容,可以由用戶或設(shè)計人員根據(jù)實用場景和用戶需求自行設(shè)置,本實施例對此不受任何限制。
可以理解的是,對于接收的存儲位置指令的方式,可以根據(jù)用戶或設(shè)計人員輸入該存儲位置指令的方式對應(yīng)設(shè)置,如若設(shè)計人員直接將在kvm管理界面設(shè)置該存儲位置指令,則kvm虛擬機系統(tǒng)可以直接接收該存儲位置指令;若設(shè)計人員將該存儲位置指令通過wi-fi或其他無線或有線方式發(fā)送,則kvm虛擬機系統(tǒng)可以也可以通過wi-fi或其他無線或有線方式接收該存儲位置指令。本實施例對此不受任何限制。
優(yōu)選的,本步驟還可以包括將存儲位置指令對應(yīng)的虛擬機已存儲在硬盤上的對應(yīng)的數(shù)據(jù)文件遷移至掛載點的步驟,也就是將改變存儲位置的虛擬機原本存儲在服務(wù)器硬盤的數(shù)據(jù)文件遷移至內(nèi)存的存儲空間,進一步提升虛擬機的io性能。
需要說明的是,本發(fā)明實施例所提供的方法主要是通過存儲位置指令將全部虛擬機中選擇的一個或多個虛擬機的存儲位置設(shè)置到內(nèi)存,以提升選擇的虛擬機的io性能;還可以通過存儲位置指令將全部數(shù)據(jù)文件中選擇的一種或多種類型的數(shù)據(jù)文件的存儲位置設(shè)置到內(nèi)存,也提升選擇的類型的數(shù)據(jù)文件的io性能。本實施例對此不受任何限制。
本實施例中,本發(fā)明實施例通過根據(jù)接收的內(nèi)存掛載點創(chuàng)建命令,在內(nèi)存中創(chuàng)建掛載點,可以在內(nèi)存中創(chuàng)建用于存儲數(shù)據(jù)文件的存儲空間;通過將存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為掛載點,可以根據(jù)用戶需求將存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲至內(nèi)存的存儲空間,顯著提升了虛擬機的io性能,解決了io瓶頸問題,進而提升了虛擬機的整體性能,提高了用戶虛擬化環(huán)境應(yīng)用的體驗度。
請參考圖2、圖3和圖4,圖2為本發(fā)明實施例所提供的另一種虛擬機的數(shù)據(jù)文件存儲方法的流程圖;圖3本發(fā)明實施例所提供的另一種虛擬機的數(shù)據(jù)文件存儲方法的kvm虛擬機的虛擬化數(shù)據(jù)拓撲圖,該方法可以包括:
步驟201:根據(jù)接收的內(nèi)存掛載點創(chuàng)建命令,在內(nèi)存中創(chuàng)建掛載點。
其中,內(nèi)存掛載點創(chuàng)建命令可以為設(shè)計人員或用戶在kvm系統(tǒng)中輸入的命令。如在kvm虛擬機的內(nèi)存中創(chuàng)建一個10g大小的存儲空間,掛載點可以為/mnt/vm1_data,則該內(nèi)存掛載點創(chuàng)建命令可以為如下命令行:
mount-ttmpfs-osize=10gtmpfs/mnt/vm1_data
可以理解的是,對于用戶或設(shè)計人員輸入的內(nèi)存掛載點創(chuàng)建命令中存儲空間的大小,可以根據(jù)虛擬機的實際數(shù)據(jù)量需求決定,且創(chuàng)建的存儲空間大小要高于實際需求空間大小,例如虛擬機實際需求空間為5g,則內(nèi)存掛載點創(chuàng)建命令中存儲空間的大小應(yīng)高于5g。本實施例對此不受任何限制。
步驟202:根據(jù)接收到的文件權(quán)限命令,對掛載點內(nèi)存儲的數(shù)據(jù)文件設(shè)置權(quán)限。
可以理解的是,只要可以對掛載點內(nèi)存儲的數(shù)據(jù)文件的權(quán)限進行設(shè)置,對于文件權(quán)限命令的具體內(nèi)容和接收該文件權(quán)限命令的方式,可以由設(shè)計人員或用戶根據(jù)實用場景自行設(shè)置,本實施例對此不受任何限制。
步驟203:根據(jù)從kvm管理界面接收的存儲位置指令,將存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為掛載點。
可以理解的是,用戶或設(shè)計人員可以在kvm管理界面中將一個或多個虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為掛載點,使得接下來設(shè)置的一個或多個虛擬機可以將接收的數(shù)據(jù)文件存儲至掛載點,并使用該掛載點的數(shù)據(jù)。如可以將kvm系統(tǒng)中全部虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為掛載點/mnt/vm1_data。
步驟204:將存儲位置指令對應(yīng)的虛擬機已存儲在硬盤上的對應(yīng)的數(shù)據(jù)文件遷移至掛載點。
其中,本步驟可以將上一步驟中用戶或設(shè)計人員設(shè)置存儲位置在內(nèi)存的一個或多個虛擬機原本存儲在硬盤的數(shù)據(jù)文件遷移至內(nèi)存的存儲空間。如可以將kvm系統(tǒng)中存儲位置在內(nèi)存的全部虛擬機原本存儲在硬盤的數(shù)據(jù)文件遷移至掛載點/mnt/vm1_data。
可以理解的是,本步驟中遷移的數(shù)據(jù)文件可以為設(shè)置存儲位置在內(nèi)存的全部虛擬機,也可以為設(shè)置存儲位置在內(nèi)存的全部虛擬機中的一個或多個。對于遷移的數(shù)據(jù)文件的虛擬機的數(shù)量,可以由用戶或設(shè)計人員在存儲位置指令中自行設(shè)置,本實施例對此不受任何限制。
優(yōu)選的,本步驟之后還可以包括:判斷存儲位置指令對應(yīng)的虛擬機接收的數(shù)據(jù)文件是否存儲至掛載點;若否,則發(fā)送提示命令。進一步對虛擬機的數(shù)據(jù)文件存儲位置是否改變成功進行判斷,提高本實施例所提供的方法的準(zhǔn)確性。對于存儲位置改變不成功的情況,可以向用戶發(fā)送提示命令,告知用戶,也可以根據(jù)已接收的內(nèi)存掛載點創(chuàng)建命令或存儲位置指令,重新設(shè)置掛載點或重新設(shè)置虛擬機的存儲位置。本實施例對此不受任何限制。
需要說明的是,通過圖3與如圖4的現(xiàn)有技術(shù)中kvm虛擬機的虛擬化數(shù)據(jù)拓撲相比較,可以看出本實施例所提供的方法通過改變kvm虛擬機中虛擬機(vm)的數(shù)據(jù)文件存放位置,將虛擬機的數(shù)據(jù)文件(date)存放于內(nèi)存中,因為內(nèi)存的速度遠遠高于硬盤,故可大幅提升虛擬機的io性能。
本實施例中,本發(fā)明實施例通過將存儲位置指令對應(yīng)的虛擬機已存儲在硬盤上的對應(yīng)的數(shù)據(jù)文件遷移至掛載點,可以進一步提升kvm虛擬機的io性能,解決了io瓶頸問題,進而提升了kvm虛擬機的整體性能,提高了用戶虛擬化環(huán)境應(yīng)用的體驗度。
請參考圖5,圖5為本發(fā)明實施例所提供的一種虛擬機的數(shù)據(jù)文件存儲裝置的結(jié)構(gòu)圖。該裝置可以包括:
創(chuàng)建模塊100,用于根據(jù)接收的內(nèi)存掛載點創(chuàng)建命令,在內(nèi)存中創(chuàng)建掛載點;
設(shè)置模塊200,用于根據(jù)接收的存儲位置指令,將所述存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為所述掛載點。
可選的,所述設(shè)置模塊200,還包括:
遷移單元,用于將所述存儲位置指令對應(yīng)的虛擬機已存儲在硬盤上的對應(yīng)的數(shù)據(jù)文件遷移至所述掛載點。
可選的,所述創(chuàng)建模塊100,包括:
創(chuàng)建單元,用于根據(jù)接收的所述內(nèi)存掛載點創(chuàng)建命令,在多機ha的內(nèi)存中創(chuàng)建掛載點。
可見,本發(fā)明實施例通過創(chuàng)建模塊100根據(jù)接收的內(nèi)存掛載點創(chuàng)建命令,在內(nèi)存中創(chuàng)建掛載點,可以在內(nèi)存中創(chuàng)建用于存儲數(shù)據(jù)文件的存儲空間;通過設(shè)置模塊200將存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲位置設(shè)置為掛載點,可以根據(jù)用戶需求將存儲位置指令對應(yīng)的虛擬機的數(shù)據(jù)文件存儲至內(nèi)存的存儲空間,顯著提升了虛擬機的io性能,解決了io瓶頸問題,進而提升了虛擬機的整體性能,提高了用戶虛擬化環(huán)境應(yīng)用的體驗度。
此外,本發(fā)明實施例還提供了一種kvm虛擬機,包括如上一實施例所述的虛擬機的數(shù)據(jù)文件存儲裝置。
說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(ram)、內(nèi)存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
以上對本發(fā)明所提供的虛擬機的數(shù)據(jù)文件存儲方法、裝置及kvm虛擬機進行了詳細介紹。本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。