做网站需要几个程序怀化住建部网站
news/
2025/10/8 5:40:45/
文章来源:
做网站需要几个程序,怀化住建部网站,一站式做网站设计,企业为什么建设网站作者简介闫亮 Intel高级软件工程师专注于开源存储SPDK的测试和优化简介CONTENTSSPDK virtio模块介绍SPDK virtio 用户模式使用示例SPDK virtio PCI模式使用示例总结第一章SPDK virtio模块介绍众所周知#xff0c;Virtio协议定义了两个块设备驱动#xff0c;virtio-blk和vi… 作者简介闫亮 Intel高级软件工程师专注于开源存储SPDK的测试和优化简介CONTENTSSPDK virtio模块介绍SPDK virtio 用户模式使用示例SPDK virtio PCI模式使用示例总结第一章SPDK virtio模块介绍众所周知Virtio协议定义了两个块设备驱动virtio-blk和virtio-scsi。SPDK Vhost target提供了VM中virtio-blk/scsi半虚拟化IO请求的加速器相比较原来的QEMU virtio-blk方案以及kernel vhost-scsi方案极大的提高了性能VM内置的内核半虚拟化驱动即可使用。现在SPDK在使用相同的vhost target基础上更进一步的提供了一个用户态的virtio bdev模块有两个传输层 * PCI在VM中使用该模块提供了在VM中使用用户态驱动访问后端块设备的能力用户需要卸载掉原内核的virtio-blk/scsi驱动绑定virtio控制器到uio模块 * Vhost-user模式提供进程间使用virtio-blk/scsi协议访问vhost target的块设备驱动可以直接集成到用户的独立进程中使用例如container。目前SPDK virtio驱动模块只实现了virtio 1.0 版本。下图是SPDK virtio整体介绍:第二章 SPDK virtio 用户模式使用示例SPDK virtio用户模式的使用场景可以参考下图:如上图所示SPDK vhost socket和使用virtio块设备的SPDK进程在同一台机器。参考步骤如下在host机器中使用如下命令配置和编译SPDK[root]./configure --with-vhost --with-virtio make启动vhost主进程:[root] ./app/vhost/vhost -i 0创建vhost controller,以下是vhost blk示例[root]./scripts/rpc.py bdev_malloc_create 128 512[root]./scripts/rpc.py vhost_create_blk_controller vhostblk0 Malloc0启动spdk bdevperf进程:[root] ./test/bdev/bdevperf/bdevperf-q 128 -o 4096 -w randread -t 300 -z -r /var/tmp/newspdk.sock -m 0x2 -gVhost-user需要连续的内存如果使用2MiB的hugepage时注意要加-g参数只创建一个hugetlbfs文件。因为是第二个进程所以要加-r参数创建新的rpc 监听地址。同时要采用和vhost进程不同的core。接着是创建virtio bdev:[root]./scripts/rpc.py -s /var/tmp/newspdk.sock bdev_virtio_attach_controller -t user -a /home/storage/spdk/vhostblk0 -d blk virtioblk0这样就创建了user模式的virtio块设备。我们还可以运行bdevperf测试一下virtio块设备的性能:[root]PYTHONPATH$PYTHONPATH:./scripts/ test/bdev/bdevperf/bdevperf.py -s/var/tmp/newspdk.sock -t 1000perform_tests经过五分钟bdevperf工具就会打印测试结果: Logical core: 1 virtioblk0 : 1500453.10 IO/s 5861.14 MB/s Total : 1500453.10 IO/s 5861.14 MB/s第三章SPDK virtio PCI模式使用示例PCI模式使用于虚拟机中。这种模式会避免QENU和虚拟机内核的中断和上下文切换开销能够显著提高IO性能。经过验证 标准的SPDK vhost 和kernel vhost scsi都可以通过SPDK virtio PCI模式加速。官方qemu仓库主分支代码实现的virtio-blk PCI设备也可以使用SPDK virtio PCI模块。使用场景参考下图:示例步骤如下在host机器中使用如下命令配置和编译SPDK[root]./configure --with-vhost make启动vhost主进程:[root] ./app/vhost/vhost创建vhost controller,以下是vhost blk示例[root]./scripts/rpc.py bdev_malloc_create 128 512[root]./scripts/rpc.py vhost_create_blk_controller vhostblk0 Malloc0运行如下命令启动QEMU[root]/home/storage/qemu/build/x86_64-softmmu/qemu-system-x86_64 -cpu host -smp 8 -m 10240 -object memory-backend-file,idmem,size10G,mem-path/dev/hugepages,shareon -numa node,memdevmem -drive file/home/storage/fedora.qcow2,ifnone,iddisk -device ide-hd,drivedisk,bootindex0 -net user,hostfwdtcp::10021-:22 -net nic -chardev socket,idchar0,path/home/storage/spdk/vhostblk0 -device vhost-user-blk-pci,chardevchar0,idblk0 -vnc 0.0.0.0:3 --enable-kvm运行ssh命令登录到虚拟机中[root]ssh -p 10021 rootlocalhost在虚拟机中克隆并配置spdk代码[root]git clone https://github.com/spdk/spdk[root]cd spdk git submodule update --init[root]./configure --with-virtio make配置SPDK运行环境[root]./scripts/setup.sh运行spdk target:[root]./app/spdk_tgt/spdk_tgt 创建virtio PCI模式块设备:[root]./scripts/rpc.py bdev_virtio_attach_controller -t pci -a 00:04.0 -d blk virtioblk000:04.0是SPDK vhost设备在VM中的PCI bus number, 可以根据实际情况变更。这样virtio块设备就创建成功了。我们就可以在虚拟机中使用这个virtio 块设备了。我们还可以运行SPDK测试工具bdevperf直接测试virtio 块设备。步骤如下。如果使用配置文件的方式的话 首先要创建bdev.conf文件内容如下:[VirtioPci]Enable Yes运行bdevperf命令 参考命令如下:[root] ./test/bdev/bdevperf/bdevperf -c bdev.conf -q 128 -o 4096 -w randread -t 300命令结果如下 Logical core: 0 VirtioBlk0 : 1438365.17 IO/s 5618.61 MB/s Total : 1438365.17 IO/s 5618.61 MB/s作为对比我们可以运行bdevperf测试内核驱动virtio设备。创建bdev.conf:[AIO]AIO /dev/vda AIO0运行bdevperf命令参考命令如下:[root]./test/bdev/bdevperf/bdevperf -c bdev.conf -q 128 -o 4096 -w randread -t 300命令结果如下 Logical core: 0 AIO0 : 254381.20 IO/s 993.68 MB/s Total : 254381.20 IO/s 993.68 MB/s第四章 总结下面的表格是三种运行方式的结果对比:Bdevperf运行方式SPDK virtio 用户模式SPDK virtio PCI模式VM 内核AIO性能随机读带宽1500453.10 IO/s 1438365.17 IO/s 254381.20 IO/s 上面章节运行bdevperf采用的SPDKcommit是1b6d1c80f96dab381db066c9c5f7852ea327eb75。初步性能实验数据仅供参考更多官方数据参考https://spdk.io/doc/相关性能测试报告。大家如果想深入了解SPDK virtio驱动可以联系SPDK 社区。 转载须知 DPDK与SPDK开源社区公众号文章转载声明推荐阅读 SPDK线程模型解析试试SPDK的trace在虚拟机上部署SPDK NVME测试案例
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931118.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!