【技术实现步骤摘要】
基于vhost协议的IO虚拟化数据处理的方法及应用
[0001]本专利技术是关于数据处理领域,特别是关于一种基于vhost协议的IO虚拟化数据处理的方法及应用。
技术介绍
[0002]随着云计算、互联网的飞速发展,企业及相关单位需要处理的数据量越来越大。在云环境下,传统的IO虚拟化技术长期存在着诸如频繁的系统调用和上下文切换、大量的数据拷贝、过大的协议栈开销、复杂的并发互斥等问题,由于访问路径长、延迟久、数据吞吐量低而饱受诟病,如无法满足云计算和大数据时代对IO性能的需求。面对以上困难,目前业界最知名的解决方案是:由Intel提出的使用SPDK(StoragePerformanceDevelopmentKit)存储性能开发套件,基于vhost
‑
user协议实现的IO虚拟化性能加速方案。
[0003]SPDK提供了一组工具和库,用于编写高性能、可扩展的用户模式下的存储应用程序。SPDK提供了vhost
‑
user协议中定义的virtio后端的具体实现,为GuestOS提供了vhos
【技术保护点】
【技术特征摘要】
1.一种基于vhost协议的IO虚拟化数据处理的方法,其特征在于,所述方法包括:在内核中增加vhost
‑
blk内核模块,调用vhost协议提供的初始化函数对所述vhost
‑
blk内核模块进行初始化,所述初始化包括对来自GuestOS通知函数的实现;收到GuestOS的通知后,vhost
‑
blk内核模块从与GuestOS共享的virtqueue发送队列中,获取由GuestOS写入的指令和数据地址;轮询与GuestOS共享的virtqueue发送队列是否有新的指令和数据到达,若有,则取出并调用VFS通用入口函数来处理数据;若超过时限没有数据到达,则通知GuestOS数据处理任务已完成并结束本次数据处理。2.如权利要求1所述的基于vhost协议的IO虚拟化数据处理的方法,其特征在于,所述调用vhost协议提供的初始化函数进行初始化,包括:vhost
‑
blk内核模块接收到用户空间通过ioctl发送的配置信息,完成vhost
‑
blk的初始化和配置。3.如权利要求1所述的基于vhost协议的IO虚拟化数据处理的方法,其特征在于,所述初始化包括对来自GuestOS通知函数的实现,包括:通过KVM收到GuestOS通知后执行GuestOS通知函数,通知函数从virtqueue获取GuestOS写入的指令和数据地址,取出并调用内核提供的虚拟文件系统VFS的通用入口函数处理数据,完成数据处理后,向KVM发送完成数据处理的通知。4.如权利要求3所述的基于vhost协议的IO虚拟化数据处理的方法,其特征在于,所述向KVM发送完成数据处理的通知,包括:KVM和vhost
‑
blk之间的进程通过调用eventfd机制和irqfd机制进行通信。5.如权利要求1所述的基于vhost协议的IO虚拟化数据处理的方法,其特征在于,所述方法还包括:在vhost
‑
blk内核模块初始化阶段,通过Qemu进行对...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。