添加 vHost 执行器

https://blueprints.launchpad.net/cinder/+spec/vhost-support

vHost 驱动程序是在 Linux 3.6 内核中添加的。Linux-IO Target vHost 织物模块基于 Linux virtio 机制实现 I/O 处理。它为 KVM 客户机提供近乎裸机的本地存储性能。目前支持 Linux 客户机虚拟机。

问题描述

vHost 驱动程序不是一个独立的 virtio 设备,因为它依赖于用户空间来处理控制平面,而数据平面在内核中完成。这意味着数据平面不会通过模拟,这可能会降低 I/O 性能。目前 Cinder 没有提供利用 Linux vHost 驱动程序的选项。

用例

提议的变更

添加一个额外的 brick 执行器,该执行器知道如何与 vHost 协同工作。该执行器将实现一个首次通过的创建、删除、列出 vHost 端点的方法,通过 LIO 实现。

创建端点需要在创建 vHost 目标的机器上提供一个块设备。vHost 执行器会将块设备路径传递给 rtstools,rtstools 将使用该块设备创建一个带有 LUN 的 vHost 端点。

备选方案

n/a

数据模型影响

n/a

REST API 影响

n/a

安全影响

n/a

通知影响

n/a

其他最终用户影响

n/a

性能影响

Cinder 本身作为控制平面,不会体验到任何不同的性能。数据平面应该体验到更大的性能提升 [1]。

其他部署者影响

n/a

开发人员影响

n/a

实现

负责人

主要负责人

thingee

工作项

  • 将 vHost 执行器添加到 brick

依赖项

n/a

测试

将提供适当的单元测试,以确保目标创建、删除、列出功能正常工作。

文档影响

n/a

参考资料

[1] - http://linux-iscsi.org/wiki/VHost#Linux_performance