最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

[QEMU]NVMe 仿真

2022-07-20 17:55 作者:-小白之家-  | 我要投稿

QEMU 通過 和 設(shè)備提供 NVMe 仿真。nvmenvme-nsnvme-subsys

有關(guān)以下方面的具體信息,請參閱以下部分

  • 添加 NVMe 設(shè)備、其他命名空間和?NVM 子系統(tǒng)。

  • 配置可選功能,如控制器內(nèi)存緩沖區(qū)、簡單復(fù)制、分區(qū)命名空間、元數(shù)據(jù)和端到端數(shù)據(jù)保護,

添加 NVMe 設(shè)備

控制器仿真

QEMU 仿真 NVMe 控制器實現(xiàn)了 NVM Express 規(guī)范的 1.4 版。所有強制性功能都有一些例外和限制:

  • 當(dāng)設(shè)備重新通電時,SMART/運行狀況日志頁面中的記帳號將重置。

  • 不支持中斷合并,默認(rèn)情況下處于禁用狀態(tài)。

在 QEMU PCI 總線上連接 NVMe 控制器的最簡單方法是添加以下參數(shù):

-drive file=nvm.img,if=none,id=nvm-device nvme,serial=deadbeef,drive=nvm

該設(shè)備有許多可選的常規(guī)參數(shù)。這里提到了一些,但請參閱列出所有可能的參數(shù)。nvme-device?nvme,help

  • max_ioqpairs=UINT32(默認(rèn)值:64)

  • 設(shè)置允許的最大 I/O 隊列對數(shù)。這將替換已棄用的參數(shù)。num_queues

  • msix_qsize=UINT16(默認(rèn)值:65)

  • 設(shè)備應(yīng)支持的 MSI-X 矢量的數(shù)量。

  • mdts=UINT8(默認(rèn)值:7)

  • 設(shè)置設(shè)備的最大數(shù)據(jù)傳輸大小。

  • use-intel-id(默認(rèn)值:off)

  • 從 QEMU 5.2 開始,該設(shè)備使用 QEMU 分配的“紅帽”PCI 設(shè)備和供應(yīng)商 ID。將其設(shè)置為 可恢復(fù)到以前使用的未分配的英特爾 ID。on

其他命名空間

在上面概述的最簡單的調(diào)用中,設(shè)備僅支持具有命名空間標(biāo)識符的單個命名空間。若要支持多個命名空間和其他功能,必須使用該設(shè)備。1nvme-ns

-device nvme,id=nvme-ctrl-0,serial=deadbeef-drive file=nvm-1.img,if=none,id=nvm-1-device nvme-ns,drive=nvm-1-drive file=nvm-2.img,if=none,id=nvm-2-device nvme-ns,drive=nvm-2

設(shè)備定義的命名空間將附加到設(shè)備創(chuàng)建的最新定義的命名空間。從 開始自動分配命名空間標(biāo)識符。nvme-nsnvme-busnvme1

有許多參數(shù)可用:

  • nsid(默認(rèn)值:0)

  • 顯式設(shè)置命名空間標(biāo)識符。

  • uuid(默認(rèn)值:自動生成)

  • 設(shè)置命名空間的 UUID。這將在命名空間標(biāo)識描述符列表中報告為“命名空間 UUID”描述符。

  • eui64

  • 設(shè)置命名空間的 EUI-64。這將在命名空間標(biāo)識描述符列表中報告為“IEEE 擴展唯一標(biāo)識符”描述符。由于機器類型為 6.1,因此如果未提供參數(shù),則使用非零默認(rèn)值。對于較早的計算機類型,該字段默認(rèn)為 0。

  • bus

  • 如果定義了更多設(shè)備,則可以使用此參數(shù)將命名空間附加到特定設(shè)備(由控制器設(shè)備上的參數(shù)標(biāo)識)。nvmenvmeid

NVM 子系統(tǒng)

如果控制器設(shè)備 () 鏈接到 NVM 子系統(tǒng)設(shè)備 (),則其他功能將變?yōu)榭捎谩?code class="docutils literal notranslate">nvmenvme-subsys

NVM 子系統(tǒng)仿真允許共享命名空間和多路徑 I/O 等功能。

-device nvme-subsys,id=nvme-subsys-0,nqn=subsys0-device nvme,serial=deadbeef,subsys=nvme-subsys-0-device nvme,serial=deadbeef,subsys=nvme-subsys-0

這將創(chuàng)建一個具有兩個控制器的 NVM 子系統(tǒng)。將控制器鏈接到設(shè)備允許其他參數(shù):nvme-subsysnvme-ns

  • shared(默認(rèn)值:自 6.2 起)on

  • 指定命名空間將附加到子系統(tǒng)中的所有控制器。如果設(shè)置為 ,命名空間將保持為私有命名空間,并且一次只能附加到單個控制器。共享命名空間始終自動附加到所有控制器(當(dāng)控制器熱插拔時也是如此)。off

  • detached(默認(rèn)值:off)

  • 如果設(shè)置為 ,命名空間將在子系統(tǒng)中可用,但最初不會附加到任何控制器。將此設(shè)置為 的共享命名空間永遠(yuǎn)不會自動附加到控制器。onon

因此,添加

-drive file=nvm-1.img,if=none,id=nvm-1-device nvme-ns,drive=nvm-1,nsid=1-drive file=nvm-2.img,if=none,id=nvm-2-device nvme-ns,drive=nvm-2,nsid=3,shared=off,detached=on

將導(dǎo)致 NSID 1 將是最初附加到兩個控制器的共享命名空間。NSID 3 將是一個專用命名空間,因為一次只能附加到單個控制器。此外,它最初不會連接到任何控制器(由于 ),也不會連接到熱插拔的控制器。shared=offdetached=on

可選功能

控制器內(nèi)存緩沖區(qū)

nvme與控制器內(nèi)存緩沖區(qū)支持相關(guān)的設(shè)備參數(shù):

  • cmb_size_mb=UINT32(默認(rèn)值:0)

  • 這將在 BAR 2 中以偏移量零處添加給定大小的控制器內(nèi)存緩沖區(qū)。

  • legacy-cmb(默認(rèn)值:off)

  • 默認(rèn)情況下,設(shè)備使用“v1.4 方案”來支持控制器內(nèi)存緩沖區(qū)(即,CMB 最初被禁用,必須由主機顯式啟用)。將此設(shè)置為以充當(dāng) v1.3 設(shè)備 wrt。CMB。on

簡單復(fù)制

該設(shè)備包括對 TP 4065(“簡單復(fù)制命令”)的支持??梢允褂迷S多附加設(shè)備參數(shù)來控制 Copy 命令限制:nvme-ns

  • mssrl=UINT16(默認(rèn)值:128)

  • 設(shè)置最大單源范圍長度 ()。這是每個源范圍中可以指定的最大邏輯塊數(shù)。MSSRL

  • mcl=UINT32(默認(rèn)值:128)

  • 設(shè)置最大復(fù)制長度 ()。這是可以在 Copy 命令中指定的最大邏輯塊數(shù)(所有源范圍的總數(shù))。MCL

  • msrc=UINT8(默認(rèn)值:127)

  • 設(shè)置最大源范圍計數(shù) ()。這是“復(fù)制”命令中可以使用的最大源范圍數(shù)。這是一個基于 0 的值。MSRC

分區(qū)命名空間

命名空間可以按照 TP 4053 的定義進行“分區(qū)”(“分區(qū)命名空間”)。在設(shè)備上設(shè)置以將其配置為分區(qū)命名空間。zoned=onnvme-ns

可以使用其他參數(shù)配置命名空間

  • zoned.zone_size=SIZE(默認(rèn)值:128MiB)

  • 定義區(qū)域大小 ()。ZSZE

  • zoned.zone_capacity=SIZE(默認(rèn)值:0)

  • 定義區(qū)域容量 ()。如果保留為默認(rèn)值 (),則區(qū)域容量將等于區(qū)域大小。ZCAP0

  • zoned.descr_ext_size=UINT32(默認(rèn)值:0)

  • 設(shè)置區(qū)域描述符擴展大小 ()。必須是 64 字節(jié)的倍數(shù)。ZDES

  • zoned.cross_read=BOOL(默認(rèn)值:off)

  • 設(shè)置為 允許讀取跨越區(qū)域邊界。on

  • zoned.max_active=UINT32(默認(rèn)值:0)

  • 設(shè)置活動資源的最大數(shù)量 ()。默認(rèn)值 () 允許所有區(qū)域都處于活動狀態(tài)。MAR0

  • zoned.max_open=UINT32(默認(rèn)值:0)

  • 設(shè)置打開資源的最大數(shù)量 ()。默認(rèn)值 () 允許打開所有區(qū)域。如果指定了,則此值必須小于或等于該值。MOR0zoned.max_active

  • zoned.zasl=UINT8(默認(rèn)值:0)

  • 設(shè)置“區(qū)域追加”命令的最大數(shù)據(jù)傳輸大小。與 類似,該值被指定為 2 的冪 (2^n),并以最小內(nèi)存頁大小 (CAP.MPSMIN)。默認(rèn)值 () 具有此屬性繼承該值。mdts0mdts

元數(shù)據(jù)

虛擬命名空間設(shè)備支持 LBA 元數(shù)據(jù),其形式為單獨的元數(shù)據(jù)(基于)和擴展的 LBA。MPTR

  • ms=UINT16(默認(rèn)值:0)

  • 定義每個 LBA 的元數(shù)據(jù)字節(jié)數(shù)。

  • mset=UINT8(默認(rèn)值:0)

  • 設(shè)置為 以啟用擴展的 LBA。1

端到端數(shù)據(jù)保護

虛擬命名空間設(shè)備支持基于 DIF 和 DIX 的保護信息(取決于 )。mset

  • pi=UINT8(默認(rèn)值:0)

  • 啟用指定類型(類型 、或 )的保護信息。123

  • pil=UINT8(默認(rèn)值:0)

  • 控制元數(shù)據(jù)中保護信息的位置。設(shè)置為 以將保護信息作為元數(shù)據(jù)的前八個字節(jié)進行傳輸。否則,保護信息將作為最后八個字節(jié)進行傳輸。1

虛擬化增強功能和 SR-IOV(實驗性支持)

該設(shè)備支持單根 I/O 虛擬化和共享以及虛擬化增強功能??刂破鞅仨氭溄拥?NVM 子系統(tǒng)設(shè)備 () 才能與 SR-IOV 一起使用。nvmenvme-subsys

存在許多參數(shù)(請注意,它們可能會發(fā)生變化):

  • sriov_max_vfs(默認(rèn)值:0)

  • 指示控制器支持的最大 PCIe 虛擬功能數(shù)。指定非零值可使 NVMe 設(shè)備同時報告 SR-IOV 和 ARI(備用路由 ID 解釋)功能。虛擬功能控制器不會報告 SR-IOV。

  • sriov_vq_flexible

  • 指示可分配給所有輔助控制器的靈活隊列資源的總數(shù)。隱式將主控制器的專用資源數(shù)設(shè)置為 。(max_ioqpairs?-?sriov_vq_flexible)

  • sriov_vi_flexible

  • 指示可分配給所有輔助控制器的靈活中斷資源的總數(shù)。隱式將主控制器的專用資源數(shù)設(shè)置為 。(msix_qsize?-?sriov_vi_flexible)

  • sriov_max_vi_per_vf(默認(rèn)值:0)

  • 指示可分配給輔助控制器的虛擬中斷資源的最大數(shù)量。默認(rèn)值解析為0(sriov_vi_flexible?/?sriov_max_vfs)

  • sriov_max_vq_per_vf(默認(rèn)值:0)

  • 指示可分配給輔助控制器的最大虛擬隊列資源數(shù)。默認(rèn)值解析為0(sriov_vq_flexible?/?sriov_max_vfs)

最簡單的調(diào)用使能夠設(shè)置一個 VF 控制器并分配管理隊列、IO 隊列和 MSI-X 中斷。

-device nvme-subsys,id=subsys0-device nvme,serial=deadbeef,subsys=subsys0,sriov_max_vfs=1, sriov_vq_flexible=2,sriov_vi_flexible=1

配置功能正常的 NVMe 輔助控制器所需的最少步驟包括:

  • 從主控制器中取消綁定靈活資源

nvme virt-mgmt /dev/nvme0 -c 0 -r 1 -a 1 -n 0 nvme virt-mgmt /dev/nvme0 -c 0 -r 0 -a 1 -n 0* perform a Function Level Reset on the primary controller to actually ?release the resources echo 1 > /sys/bus/pci/devices/0000:01:00.0/reset* enable VF echo 1 > /sys/bus/pci/devices/0000:01:00.0/sriov_numvfs* assign the flexible resources to the VF and set it ONLINE nvme virt-mgmt /dev/nvme0 -c 1 -r 1 -a 8 -n 1 nvme virt-mgmt /dev/nvme0 -c 1 -r 0 -a 8 -n 2 nvme virt-mgmt /dev/nvme0 -c 1 -r 0 -a 9 -n 0* bind the NVMe driver to the VFecho 0000:01:00.1 > /sys/bus/pci/drivers/nvme/bind


[QEMU]NVMe 仿真的評論 (共 條)

分享到微博請遵守國家法律
启东市| 颍上县| 得荣县| 黎城县| 德钦县| 亳州市| 永福县| 涞水县| 黑龙江省| 西吉县| 潢川县| 永善县| 绥阳县| 江永县| 沙坪坝区| 平利县| 鸡泽县| 红安县| 钟祥市| 乌恰县| 克什克腾旗| 开化县| 肃宁县| 家居| 武山县| 杭锦旗| 收藏| 丹东市| 石棉县| 柯坪县| 黑河市| 平和县| 宝清县| 荃湾区| 霍林郭勒市| 文登市| 普洱| 甘泉县| 阿拉尔市| 泾川县| 四平市|