System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內(nèi)的位置。 參數(shù)名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現(xiàn)步驟摘要】
本專利技術涉及虛擬機存儲,具體提供一種在邏輯卷管理模塊中實現(xiàn)qcow格式的方法。
技術介紹
1、在傳統(tǒng)的方案中,virtio的存儲后端是在host?os的用戶層實現(xiàn)的。這種情況下,當用戶態(tài)的qemu進程需要與內(nèi)核態(tài)的存儲設備進行交互時,需要頻繁地進行用戶態(tài)和內(nèi)核態(tài)之間的切換。這種切換不僅增加了額外的工作量,還可能導致io性能下降。而vhost的方案將virtio的存儲后端移動到host?os的內(nèi)核層(kernel)實現(xiàn)。這樣,當qemu進程需要與存儲設備進行交互時,可以直接通過內(nèi)核態(tài)的vhost模塊進行通信,避免了頻繁的用戶態(tài)和內(nèi)核態(tài)切換。這種改進減少了系統(tǒng)調(diào)用的次數(shù)和上下文切換的工作量,從而提高了io性能。總體來說,vhost的方案在提升virtio存儲后端的性能方面是顯著的,特別是在高負載和高并發(fā)的場景下更為明顯。
2、但是,因為vhost方案的實現(xiàn)在kernel層,而qcow2格式的虛擬磁盤文件是在文件系統(tǒng)層,解析和分裝qcow2文件是在qemu的代碼中,qemu本身是個用戶態(tài)程序,只在后端存儲時實現(xiàn)了虛擬磁盤文件的qcow2格式支持,也就是qcow2格式的虛擬磁盤文件實現(xiàn)在qemu內(nèi)部,即用戶層。qcow2格式采用寫時復制(copy-on-write)機制,在數(shù)據(jù)還未存儲的時候不用給它分配磁盤空間,只在有數(shù)據(jù)寫入的時候才給它分配磁盤空間,這樣還未被寫入數(shù)據(jù)的區(qū)域就暫時不會實際占用到磁盤空間,還未使用的磁盤空間可以釋放出來給其他需要的進程使用,避免磁盤空間吃緊的情況。當vhost方案把virtio的存儲后端實現(xiàn)
3、圖1是本專利技術
技術介紹
中用戶態(tài)后端存儲與內(nèi)核態(tài)后端存儲的使用場景示意圖,如圖1所示,在用戶態(tài)后端存儲方案(virtio-scsi)中,客戶機中的io請求要經(jīng)過6層(客戶機os->用戶態(tài)后端存儲模塊->qcow2格式虛擬磁盤文件->xfs文件系統(tǒng)模塊->邏輯卷->塊設備驅(qū)動模塊),而在內(nèi)核態(tài)后端存儲方案(vhost-scsi)中,客戶機中的io請求只需要經(jīng)過4層(客戶機os->內(nèi)核態(tài)后端存儲模塊->邏輯卷->塊設備驅(qū)動模塊)。很明顯內(nèi)核態(tài)存儲方案在io請求過程中經(jīng)過的軟件堆棧少一些,經(jīng)過實測研究發(fā)現(xiàn)在每次io請求數(shù)據(jù)量小于4k的情況下,單次io請求過程中軟件堆棧耗時已經(jīng)和硬件數(shù)據(jù)落盤的耗時差不多了,各占50%,在這種情況下如果io請求經(jīng)過軟件堆棧層少,?io請求的耗時就會少,速度就會更快。
4、這樣看來,內(nèi)核態(tài)后端存儲(vhost-scsi)是提高io速度的一把利器,但是在內(nèi)核層后端存儲由于缺少qcow2格式中copy-on-write的機制支持,無法在vhost的方案中,繼續(xù)享受qcow2格式帶來的好處。
技術實現(xiàn)思路
1、為了克服上述缺陷,提出了本專利技術,解決現(xiàn)有技術中在虛擬機存儲上無法兼具vhost技術和qcow2格式兩種方案優(yōu)點的問題。
2、本專利技術提供一種在邏輯卷管理模塊中實現(xiàn)qcow格式的方法,在vhost技術方案中,對邏輯卷管理模塊執(zhí)行以下步驟:
3、把加入邏輯卷組的物理卷根據(jù)預設大小分配為多個存儲塊,組成存儲塊倉庫;
4、根據(jù)新創(chuàng)建虛擬機所需存儲大小,向邏輯卷組申請邏輯卷,邏輯卷組從存儲塊倉庫獲取相應存儲大小的若干存儲塊,初始化為qcow2格式實現(xiàn)的邏輯卷,返回給用戶;
5、當需要向邏輯卷寫數(shù)據(jù)時,向存儲塊倉庫申請新的存儲塊,并更新對應的qcow2格式信息,開始向新的存儲塊寫數(shù)據(jù);
6、當需要從邏輯卷讀數(shù)據(jù)時,根據(jù)qcow2格式信息找到存儲被讀數(shù)據(jù)的存儲塊,開始從存儲塊讀數(shù)據(jù)出來。
7、進一步,所述預設大小為65536字節(jié)。
8、進一步,當存儲塊倉庫內(nèi)的存儲塊數(shù)量低于預設值時,獲取其他物理卷,?根據(jù)預設大小分配為多個存儲塊加入存儲塊倉庫。
9、進一步,當物理卷退出或更換時,存儲塊倉庫把分配在所述物理卷上的存儲塊挑選出來,將所述存儲塊上的內(nèi)容拷貝到其他空閑的存儲塊上,并做好關聯(lián)。
10、本專利技術的工作原理和有益效果:
11、在實施本專利技術的技術方案中,把物理卷分成很多個存儲塊,在lvm中作為存儲塊倉庫集中管理起來。當需要對邏輯卷寫新數(shù)據(jù)的時候,qcow2格式的邏輯卷向邏輯卷組申請新的存儲塊來存放數(shù)據(jù),這樣邏輯卷在初始新建申請大小的時候可以只在邏輯上劃分相應大小的存儲空間,不需要分配真實的存儲塊,最終實際給邏輯卷分配的存儲塊的數(shù)量,是根據(jù)它寫入的數(shù)據(jù)所需要占據(jù)的空間來分配的。在vhost技術方案中,對邏輯卷管理模塊lvm進行上述改進,在保證內(nèi)核態(tài)實現(xiàn)virtio設備后端存儲的同時,還兼?zhèn)鋛cow2格式存儲空間用時才分配分配的優(yōu)點。
本文檔來自技高網(wǎng)...【技術保護點】
1.一種在邏輯卷管理模塊中實現(xiàn)qcow格式的方法,其特征在于,在vhost技術方案中,對邏輯卷管理模塊執(zhí)行以下步驟:
2.根據(jù)權利要求1所述的一種在邏輯卷管理模塊中實現(xiàn)qcow格式的方法,其特征在于,所述預設大小為65536字節(jié)。
3.根據(jù)權利要求1所述的一種在邏輯卷管理模塊中實現(xiàn)qcow格式的方法,其特征在于,當存儲塊倉庫內(nèi)的存儲塊數(shù)量低于預設值時,獲取其他物理卷,根據(jù)預設大小分配為多個存儲塊加入存儲塊倉庫。
4.根據(jù)權利要求1所述的一種在邏輯卷管理模塊中實現(xiàn)qcow格式的方法,其特征在于,當物理卷退出或更換時,存儲塊倉庫把分配在所述物理卷上的存儲塊挑選出來,將所述存儲塊上的內(nèi)容拷貝到其他空閑的存儲塊上,并做好關聯(lián)。
【技術特征摘要】
1.一種在邏輯卷管理模塊中實現(xiàn)qcow格式的方法,其特征在于,在vhost技術方案中,對邏輯卷管理模塊執(zhí)行以下步驟:
2.根據(jù)權利要求1所述的一種在邏輯卷管理模塊中實現(xiàn)qcow格式的方法,其特征在于,所述預設大小為65536字節(jié)。
3.根據(jù)權利要求1所述的一種在邏輯卷管理模塊中實現(xiàn)qcow格式的方法,其特征...
【專利技術屬性】
技術研發(fā)人員:王宇鋒,雷翔,謝明,張鐸,
申請(專利權)人:麒麟軟件有限公司,
類型:發(fā)明
國別省市:
還沒有人留言評論。發(fā)表了對其他瀏覽者有用的留言會獲得科技券。