跳转到: 导航, 搜索

Nova/EucalyptusMigrationSpec

  • Launchpad 条目:NovaSpec:bexar-eucalyptus-migration
  • 创建: 2010-11-17
  • 贡献者: SorenHansen

总结

提供从 Eucalyptus 迁移到 Nova 的路径

发布说明

我们添加了一个工具,可以从现有的 Eucalyptus 安装导入用户、镜像、卷等,从而简化迁移过程。

原理

我想应该存在一些 Eucalyptus 安装。他们可能已经花费大量时间设置用户,上传了大量的镜像等等。消除迁移过程中的这个障碍似乎是一件非常有意义的事情。

用户故事

Dave 现在运行 Eucalyptus,但想测试 Nova,看看它的表现如何。他试用了一下 Nova,觉得它很棒,想切换。他启动了 nova-import-from-eucalyptus,将其指向他的 Eucalyptus 安装,然后开始迁移所有设置。完成后,他停止 Eucalyptus,启动 Nova,用户们没有察觉到任何区别。

设计

需要迁移的数据是

  • 用户
  • 镜像
  • 镜像元数据
  • 弹性 IP
  • 安全组
  • 密钥对
  • 固定 IP
  • 实例(仅当我们尝试实时迁移时)

其中大部分(除了用户,我们认为)可以使用 Eucalyptus 的管理员权限通过 EC2 API 提取。我们需要将它们直接放入数据库(因为通过 API 写入会为所有内容分配新的 ID)。

项目概念是 Nova 特有的,因此迁移过程应该为每个用户添加一个项目。

镜像可能尚未由 Eucalyptus 组装(这仅在首次请求时发生)。据信,当使用纯 HTTP GET 请求获取时,会发生这种情况。

我们还需要支持 Eucalyptus 支持的网络模式

  • SYSTEM
  • MANAGED
  • MANAGED-NOVLAN
  • STATIC

请参阅文档:http://open.eucalyptus.com/wiki/EucalyptusNetworkConfiguration_v2.0

实现

SYSTEM 网络模式

非常简单的网络模式,虚拟机直接连接到桥接(通常连接到与主机主接口相同的局域网)。分配 IP 地址不是 Nova 的工作,而是局域网上的现有 DHCP 服务器或其他机制的工作。

为了支持这一点,我们需要一个新的 NetworkManager:NoOpManager。

  • 它不会执行任何网络配置,除了可能进行一些健全性检查(确保给定的桥接存在并且实际上是一个桥接)。
  • allocate_fixed_ip 将返回某种 NULL 值(0.0.0.0 或 `::` 或类似值),并且没有副作用。
  • allocate_floating_ip 将引发异常(NotSupportedException 或类似异常)。这应该冒泡到 API。
  • 几乎所有其他操作都应该是无操作。

virt 驱动程序需要扩展以理解这种模式。例如,对于 libvirt 驱动程序,这意味着它必须意识到我们实际上不知道客户机的 IP 地址,并且不要尝试设置 nwfilter 内容。

MANAGED 网络模式

功能齐全的网络模式。应该与 VlanManager 提供的功能相同,我相信。

MANAGED-NOVLAN 网络模式

略有截肢的功能齐全的网络模式(如果您出于某种原因无法使用 VLAN 的话)。它不使用 VLAN 来将虚拟机与彼此和“真实局域网”分隔开,因此局域网上的 DHCP 服务器会造成混乱(因为它会与 Eucalyptus 提供的 DHCP 服务器冲突)。尚不确定如何将其映射到 Nova。

STATIC 网络模式

如果我理解正确,应该与 FlatManager(或 FlatDHCP?)提供的功能相同。