System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 成人无码区免费A∨直播,最新亚洲人成无码网www电影,精品乱码一区内射人妻无码
  • 
    <ul id="o6k0g"></ul>
    <ul id="o6k0g"></ul>
    當前位置: 首頁 > 專利查詢>武漢大學專利>正文

    一種基于NVMe磁盤的虛擬機磁盤分區和加速訪問方法技術

    技術編號:44496209 閱讀:6 留言:0更新日期:2025-03-04 18:03
    本發明專利技術公開了一種基于NVMe磁盤的虛擬機磁盤分區和加速訪問方法,包括以下步驟:步驟一.對虛擬機磁盤進行分區,指定虛擬機磁盤分區格式和虛擬機磁盤元數據格式,指定分區在GPT分區表上的布局;在宿主機的GPT分區表的首末2個GPT?Record中記錄前N?1個分區格式為DVMFS,最后一個分區格式為VMFR,VMFR中包含指向DVMFS的指針;步驟二:在Hypervisor中進行NVMe磁盤透傳。本發明專利技術提出虛擬機數據分區格式DVMFS和元數據管理分區格式VMFR,兩種格式有效地解決了直通不能多租戶使用同一塊磁盤、文件方式管理虛擬機磁盤無法充分發揮NVMe磁盤性能的問題。

    【技術實現步驟摘要】

    本專利技術涉及一種虛擬機磁盤分區和加速方法,屬于nvme固態硬盤。


    技術介紹

    1、nvme固態硬盤的普遍使用使云服務器的性能得到了顯著的提升,但云服務器的使用方式一般為虛擬化,使用虛擬化層將虛擬機的磁盤映射為宿主機上的一個文件,由于文件的讀寫需要經過宿主機的系統調用,因此這種方式不能充分發揮nvme固態硬盤的性能優勢。同時,由于u.2等形態的nvme磁盤的大量使用,nvme磁盤的容量越來越大,虛擬機獨占一整個nvme磁盤設備的狀況變得不再現實。

    2、針對上述性能問題,現有技術的做法是使用虛擬機virtio驅動,在虛擬機中創建一個虛擬磁盤設備,將對虛擬磁盤的寫入指令透傳到宿主機的nvme磁盤中。但是這樣的方式無法使得多虛擬機復用同一nvme磁盤,為解決這一問題,采用文件進行管理的方式,例如esxi使用vmdk格式作為存儲虛擬機磁盤,qemu使用qcow2存儲虛擬機磁盤,針對虛擬機磁盤實際占用的空間做出了一定優化,但性能依舊具有一定的妥協。


    技術實現思路

    1、本專利技術所要解決的技術問題是:對于nvme磁盤與虛擬磁盤,如何提高多租戶之間磁盤的隔離性和安全性。

    2、為解決上述技術問題,本專利技術提供一種基于nvme磁盤的虛擬機磁盤分區和加速訪問方法,包括以下步驟:

    3、步驟一.對虛擬機磁盤進行分區,指定虛擬機磁盤分區格式和虛擬機磁盤元數據格式,指定分區在gpt分區表上的布局;在宿主機的gpt分區表的首末2個gpt?record中記錄前n-1個分區格式為dvmfs,最后一個分區格式為vmfr,vmfr中包含指向dvmfs的指針;

    4、步驟二:在hypervisor中進行nvme磁盤透傳。

    5、前述的一種基于nvme磁盤的虛擬機磁盤分區和加速訪問方法,在步驟一中,dvmfs是虛擬機虛擬磁盤存儲的區域,包括以下字段:

    6、1)fs?header:用于識別文件系統的頭部;

    7、2)metadata:保存當前分區的信息;

    8、3)?next?file?system?ptr和prev?file?system?ptr用于指示當前分區上一個連續空間和下一個連續空間的lba地址以快速尋址。

    9、前述的一種基于nvme磁盤的虛擬機磁盤分區和加速訪問方法,在步驟一中,在hypervisor中,利用算法1調整虛擬機的磁盤容量,包括擴展和縮小磁盤的操作,包括以下步驟:

    10、1)利用adjustvmdisk(vmdisk,?dst_size,?force?=?false)函數進行調用操作,輸入參數包括虛擬磁盤對象vmdisk、目標大小dst_size以及一個強制參數force;

    11、2)如果dst_size小于或等于0,拋出參數錯誤異常paramerrorexception;

    12、3)如果目標大小dst_size小于當前磁盤大小,并且force為true,則調用shrinkvmdisk(vmdisk,?dst_size)?函數進行縮小操作;

    13、4)如果force為false、且目標大小小于當前磁盤大小時,拋出數據丟失異常datalossexception;

    14、5)如果目標大小dst_size大于當前磁盤大小,則調用expandvmdisk(vmdisk,dst_size)?函數進行擴展操作。

    15、前述的一種基于nvme磁盤的虛擬機磁盤分區和加速訪問方法,在步驟3)中,縮小磁盤過程shrinkvmdisk(vmdisk,?dst_size)包括:

    16、31)計算出需要縮小的大小nr_size,即當前大小減去目標大小;

    17、32)當nr_size大于0時,執行以下步驟:

    18、遞歸訪問分區的nextptr所指向的分區,直到尋找到虛擬磁盤的最后一個主機分區;

    19、檢查虛擬磁盤的最后一個主機分區的大小是否大于或等于nr_size;

    20、如果是,調用cutdvmfs函數進行切割,同時將nr_size置為0;cutdvmfs函數將目標分區的大小設置為【原始大小-nr_size】,并修改dvmfs的metadata部分,將nextptr修改為null,更新vmfr部分該分區大小的字段,最后利用該dvmfs分區的實際占用lba位置來更新vmfr中的占用空間位表;

    21、如果不是,將nr_size減去該分區的大小,并刪除該分區,將該分區的vmfr分區元數據刪除,并將上一個dvmfs分區的nextptr設置為null,最后更新vmfr上的占用空間位表。

    22、前述的一種基于nvme磁盤的虛擬機磁盤分區和加速訪問方法,在步驟5)中,擴展磁盤過程expandvmdisk(vmdisk,?dest_size)包括:

    23、51)計算出需要擴展的大小nr_size,即目標大小減去當前大小;

    24、52)檢查主機的可用空間,如果不足,拋出空間不足異常noenoughspaceexception,操作結束;

    25、53)當nr_size大于0時,執行以下步驟:

    26、查找虛擬磁盤的最后一個主機分區;

    27、獲取虛擬磁盤的最后一個主機分區外部的可用空間,方法是從vmfr的占用空間位表中查找未被使用的空間;

    28、如果可用空間大于或等于nr_size,則擴展該分區并將nr_size置為0,同時更新vmfr中占用空間位表;

    29、如果可用空間不足,則遞歸查找空閑空間塊并按需添加新分區,更新nr_size為nr_size-當前空閑空間大小,同時更新vmfr中占用空間位表。

    30、前述的一種基于nvme磁盤的虛擬機磁盤分區和加速訪問方法,在步驟一中,使用vmfr中對每個dvmfs的consistency位以判斷是否為正確寫入,若consistency位被置為1,則說明分區的元數據被修改且未正確寫入,根據consistency位的情況,選擇接受dvmfs的修改或是接受vmfr的修改,方法為:

    31、條件1:檢查現有校驗和是否與當前分區fs?header重新計算的校驗和相同;

    32、條件2:vmfr中consistency位是否為0;

    33、若條件1、2均不滿足,則接受vmfr的元數據;若條件1滿足條件2不滿足,則接受dvmfs的元數據;若條件1不滿足條件2滿足,則接受vmfr的元數據;若條件1滿足條件2滿足,則沒有數據不一致行為。

    34、前述的一種基于nvme磁盤的虛擬機磁盤分區和加速訪問方法,在步驟二中,包括:

    35、21)在hypervisor和vfio-pci之間增加了一個中間層dnvme?driver,中間層利用iommu進行設備地址的隔離,根據虛擬機綁定的虛擬磁盤所屬的首個dvmfs的物理地址lba獲取每個虛擬機磁盤的lba映射塊,并將每個虛擬機磁盤的本文檔來自技高網...

    【技術保護點】

    1.一種基于NVMe磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,包括以下步驟:

    2.根據權利要求1所述的一種基于NVMe磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,在步驟一中,DVMFS是虛擬機虛擬磁盤存儲的區域,包括以下字段:

    3.根據權利要求1所述的一種基于NVMe磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,在步驟一中,在Hypervisor中,利用算法1調整虛擬機的磁盤容量,包括擴展和縮小磁盤的操作,包括以下步驟:

    4.根據權利要求3所述的一種基于NVMe磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,在步驟3)中,縮小磁盤過程SHRINKVMDISK(vmdisk,?dst_size)包括:

    5.根據權利要求3所述的一種基于NVMe磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,在步驟5)中,擴展磁盤過程EXPANDVMDISK(vmdisk,?dest_size)包括:

    6.根據權利要求1所述的一種基于NVMe磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,在步驟一中,使用VMFR中對每個DVMFS的Consistency位以判斷是否為正確寫入,若Consistency位被置為1,則說明分區的元數據被修改且未正確寫入,根據Consistency位的情況,選擇接受DVMFS的修改或是接受VMFR的修改,方法為:

    7.根據權利要求1所述的一種基于NVMe磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,在步驟二中,包括:

    8.根據權利要求7所述的一種基于NVMe磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,在步驟22)中,設置LBA地址轉換表機制,并將LBA地址轉換表保存在內存中以便快速查找,若IOMMU中找不到LBA地址映射信息,則從LBA地址轉換表中獲取當前的映射信息,所述LBA地址轉換表在宿主機物理NVMe磁盤初始化時使用各DVMFS的數據分區首末地址構建。

    9.根據權利要求7所述的一種基于NVMe磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,虛擬qpair和物理qpair的映射最小單位是隊列,虛擬NVMe磁盤的隊列通過一一對應的方式映射到物理NVMe磁盤的隊列,根據虛擬機初始化順序將起始虛擬隊列的qpair0映射到物理NVMe磁盤上不同的qpair,再按照順序映射接下來的隊列。

    10.根據權利要求7所述的一種基于NVMe磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,LBA映射列表和IOMMU映射進行聯動,步驟為:

    ...

    【技術特征摘要】

    1.一種基于nvme磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,包括以下步驟:

    2.根據權利要求1所述的一種基于nvme磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,在步驟一中,dvmfs是虛擬機虛擬磁盤存儲的區域,包括以下字段:

    3.根據權利要求1所述的一種基于nvme磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,在步驟一中,在hypervisor中,利用算法1調整虛擬機的磁盤容量,包括擴展和縮小磁盤的操作,包括以下步驟:

    4.根據權利要求3所述的一種基于nvme磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,在步驟3)中,縮小磁盤過程shrinkvmdisk(vmdisk,?dst_size)包括:

    5.根據權利要求3所述的一種基于nvme磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,在步驟5)中,擴展磁盤過程expandvmdisk(vmdisk,?dest_size)包括:

    6.根據權利要求1所述的一種基于nvme磁盤的虛擬機磁盤分區和加速訪問方法,其特征在于,在步驟一中,使用vmfr中對每個dvmfs的consistency位以判斷是否為正確寫入,若consistency位被置為1,則說明分區的元數...

    【專利技術屬性】
    技術研發人員:程大釗何璞昳梁黃黃胡創龔奕利
    申請(專利權)人:武漢大學
    類型:發明
    國別省市:

    網友詢問留言 已有0條評論
    • 還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。

    1
    主站蜘蛛池模板: 18禁无遮拦无码国产在线播放| 免费无码一区二区| 精品无码人妻久久久久久| 久久久精品无码专区不卡 | 亚洲AV无码一区二区三区电影 | 久久久久亚洲Av片无码v| 亚洲AV永久无码精品放毛片 | 精品少妇人妻av无码专区| 中文字幕无码视频专区| 国产精品无码一区二区三区在| 久久久久久亚洲AV无码专区| 亚洲精品无码鲁网中文电影| yy111111少妇影院里无码| 中文AV人妻AV无码中文视频| 久久久久亚洲精品无码网址 | 亚洲av无码不卡私人影院| 亚洲爆乳大丰满无码专区| 一本色道久久HEZYO无码| 国产日韩精品中文字无码| 久久亚洲中文无码咪咪爱| 无码h黄肉3d动漫在线观看| 无码日韩AV一区二区三区| 蜜桃AV无码免费看永久| 精品久久久久久无码不卡| 一本一道av中文字幕无码| 精品人妻系列无码人妻免费视频 | 久久国产亚洲精品无码| 免费无码又爽又刺激一高潮| 亚洲av永久中文无码精品综合| 亚洲AV无码国产精品色午友在线| 亚洲午夜福利精品无码| 成人毛片无码一区二区| 熟妇人妻无码中文字幕老熟妇| 久久AV无码精品人妻糸列| 精品人妻无码区二区三区| 久久精品无码一区二区无码 | 中文字幕人成无码人妻综合社区| 亚洲国产精品无码成人片久久| 人禽无码视频在线观看| 亚洲av无码不卡| 无码内射中文字幕岛国片|