在 ISCSIDriver 流程中支持 iSER 驱动¶
https://blueprints.launchpad.net/cinder/+spec/support-iscsi-driver
本 BP 的目的是避免 TGT 和 LIO 场景下类和参数的代码重复,并防止 iSER 驱动流程中的不稳定情况。
问题描述¶
目前 iSER 驱动仅通过 TGT 支持,没有 LIO 支持。
有一些 iSER 类继承自 iSCSI 驱动/目标类,但它们的大部分功能与 iSCSI 类相同。这种代码重复导致在向 iSCSI 驱动流程添加新功能或更改时,iSER 驱动代码变得不稳定。
用例¶
提议的变更¶
可以通过添加一个小修复来解决这两个问题,包括在 iSCSI Tgt/LIO 类中添加一个新的 enable_iser 参数。
在 TGT 和 LIO 场景下,要支持通过 iSER 的 RDMA,只需在卷创建阶段设置一个额外的参数即可。
将向 ISERTgtAdm 添加弃用警告,因为此更改将作为当前 iSER Tgt 代码的替代方案。
此规范的 Nova 部分在:https://review.openstack.org/#/c/130721/
备选方案¶
保持 ISERTgtAdm、LVMISERDriver、ISERDriver 和 iser_opts 不变,或者仅弃用其中一部分(但这将错失本次代码重构的目的)。
数据模型影响¶
无
REST API 影响¶
无
安全影响¶
无
通知影响¶
无
其他最终用户影响¶
无
性能影响¶
无
其他部署者影响¶
添加一个新的“enable_iser”参数,默认设置为“False”。此参数将在 TGT 或 LIO 卷创建中用于设置基于 RDMA 的门户。
此单个参数将弃用所有 iser_opts 参数,这些参数是 iSCSI 参数的重复。
开发人员影响¶
此更改将简化 iSER 驱动流程的维护,因为将不再使用额外的类或重复的参数。
实现¶
负责人¶
Aviram Bar-Haim <aviramb@mellanox.com>
工作项¶
修复 bug https://bugs.launchpad.net/cinder/+bug/1396265 并添加正确的驱动程序参数,以及 VOLUME_CONF 和 VOLUME_CONF_WITH_CHAP_AUTH 的可配置值。
添加一个新的“enable_iser”参数,默认设置为 false。
在 TGT 场景的 TgtAdm 中,将驱动程序参数设置为 VOLUME_CONFs 模板。
根据“enable_iser”值,在 rtslib 的网络门户对象上添加 _set_iser(1),用于 LIO 场景。
根据“enable_iser”值,将 ISCSIDriver 的“driver_volume_type”设置为“iscsi”或“iser”值。
依赖项¶
无
测试¶
要测试通过 iSER 的卷附加,需要支持 RDMA 的硬件。
将添加一个新的单元测试,该测试使用新的 enable_iser 参数在 iSCSI 卷驱动程序上进行测试。
文档影响¶
添加新的 enable_iser 参数后,将向以下位置添加更新的 iSER 配置指南:
参考资料¶
无