跳转到: 导航, 搜索

ISCSISupportXenAPI

  • Launchpad 条目: NovaSpec:bexar-iscsi-support-xenapi
  • 创建时间: 2010年11月16日
  • 贡献者: Armando Migliaccio

总结

此特性将使托管在 XenServer (和 XCP) 上的虚拟机能够识别 iSCSI 存储,并能够将类似 EBS 的卷附加/分离到这些虚拟机。此规范涵盖 Nova 对 XenServer 和 XCP 通过 XenAPI 的支持。请注意,这并不意味着对其他基于 Xen 的平台(例如随 RHEL 5 或 SUSE 提供的平台)的支持。

术语表

  • XenServer: Citrix 的商业、受支持产品
  • Xen Cloud Platform (XCP): XenServer 的开源版本(以及工具堆栈的开发项目)。以下关于 XenServer 的所有内容同样适用于 XCP
  • XenAPI: XenServer 和 XCP 暴露的管理 API
  • xapi: XenServer 和 Xen Cloud Platform 上的主要守护进程;暴露 XenAPI 的守护进程

发布说明

此规范将通过 XenAPI 为托管在 XenServer 上的虚拟机提供 iSCSI 后端存储。

原理

目前,像 euca-attach-volume/euca-detach-volume 这样的命令对托管在 XenServer 上的虚拟机没有效果。可以在 AoE/iSCSI 存储上创建/销毁卷,但 Nova 中可用的 XenAPI 抽象层缺乏支持。此规范计划修复此问题。

用户故事

用户在 XenServer 上运行 Nova。他/她希望在终止虚拟机后数据能够持久保存。他/她可以使用 euca-create-volume/euca-attach-volume/euca-detach-volume 命令集来实现这一点。

前提条件

此蓝图提供的更改将仅适用于 nova-volume 的 iSCSI 驱动程序

设计

基本上,Ewan 为 euca-run-instances/euca-terminate-instances 所做的工作需要完成,以启用与卷相关的 API 命令。

实现

需要更新几个文件(主要在 virt 目录中),并且更改应遵循与 Ewan 已经为其他 VM 相关命令所做的类似模式。在实施过程中,可能需要引入一些重构来提高 xenapi 支持的可读性和可维护性。

UI 变更

没有更改,除了 euca-attach-volume 和 euca-detach-volume 现在在底层虚拟机是 XS/XCP 时能够正确响应

代码变更

已向 XenAPIConnection 引入了两种主要方法:attach_volume 和 detach_volume。添加了更多实用函数来处理 XenAPI 特性和改进处理 VBD、VDI、SR 等时的可重用性。

迁移

目前不计划数据迁移。需要向 iscsitarget 表添加几个字段(例如 iscsi 目标主机 IP 和 iscsi iqn),并修改 iscsi 驱动程序以设置它们。这是因为 iscsi 驱动程序不够通用,无法处理其他虚拟机管理程序的需求。在 XenAPI 的情况下,iscsi 发起者是运行在与计算节点不同的主机上的 XenServer/XCP(很可能)。即使进行这些更改,也不应该需要任何数据迁移

测试/演示计划

已经引入了单元测试以及 XenAPI 的模拟框架。已经添加了基本的测试,并且必须实现更多测试

未解决的问题

如上所述,可以完成以下工作

  • 扩展 iscsi 表并更改 iscsi 驱动程序
  • 更多单元测试
  • 编写新的 iscsi 驱动程序以使用 XenAPI/SM (Storage Manager) 和更高级的 iSCSI 系统(如文件服务器等)处理存储。

BoF 议程和讨论

[待定] 使用此部分在 BoF 期间记录笔记;如果将其保留在批准的规范中,则用于总结讨论的内容并记录被拒绝的选项。