我们目前正在使用 XEN + CentOS 运行我们的基础架构,并正在考虑迁移到 Ubuntu(作为主机和客户机)+ KVM。
我们的目标是在稍后阶段使用 openstack/cloudstack 创建私有云,但是由于预算紧张,我们无法投资于在现有云基础架构之外设置云基础架构所需的硬件。由于我们的物理服务器不到 10 台(但有相当多的虚拟机),我们的想法是将机器从当前设置逐台迁移到 KVM+Ubuntu,我的问题如下,一旦我们运行了完整的 kvm+Ubuntu 基础架构,我们是否能够“云化”它而不必重建所有机器(以某种方式将 kvm 客户机导入 openstack/cloudstack 上的实例)?或者我们真的需要先构建云吗?
为什么要从 CentOS 转到 Ubuntu?因为显然在主要版本升级时(例如从 Centos 5 到 6),需要从头开始重新安装机器,你可以想象每隔几年就必须这样做并不理想(特别是当我们将来会大幅扩展我们的基础设施时)。
Dom0 和 DomU 都将由 puppet 管理。感谢您提出的任何建议
答案1
OpenStack 没有任何内置支持来获取在 OpenStack 之外创建的运行实例并将其添加以便由 OpenStack 进行管理。
但是,您可以将正在运行的 KVM/Xen 实例导出为映像文件,然后将该映像文件导入 OpenStack。
答案2
virt-v2v
支持将虚拟机从 libvirt+Xen 导出到 libvirt+KVM。一旦您拥有这些虚拟机,请查看您选择的管理解决方案以了解如何导入虚拟机。如果没有 virt-v2v,您的虚拟机中将包含 Xen 相关位,而缺少 KVM 相关位,因此无论如何这都是有用的第一步
编辑:快速谷歌显示有大量文档:http://docs.openstack.org/trunk/openstack-compute/admin/content/creating-images-from-running-instances.html
答案3
我确实有偏见,但是当你转向 OpenStack + Ubuntu 时为什么不继续使用 Xen 呢?它应该可以让你不再需要转换图像。
在 OpenStack 中,您必须从旧主机导出映像,将这些映像文件导入 Glance(映像服务),然后在 OpenStack 环境中启动它们。
当你查看 CloudStack 时,也会发现非常相似的故事。
我所知道的所有云编排工具都最适合处理“绿地”情况。就导入当前在虚拟机管理程序上运行的映像而言,它不符合全面管理整个环境的模型:存储、网络和新安装的虚拟机管理程序。
答案4
以下是我的做法。使用少于 10 GB 的“磁盘”以原始格式创建 KVM+Ubuntu VM。
qemu-img create myserver.raw 8G
在其上安装 Ubuntu。
kvm -m 2G -cdrom ubuntu-12.04-server-amd64.iso -drive if=virtio,file=myserver.raw,boot=off -vnc :9
使用 VNC 连接到它并安装您想要的任何应用程序,但不在该磁盘上存储任何数据!如果您需要存储数据,请为其创建单独的卷。将您创建的每个 KVM VM 视为模板,您将使用该模板在迁移到 OpenStack 时创建实例。您可能希望将某些 VM/模板保持更通用,以便它们更灵活。您可能希望将某些 VM/模板非常具体,以便在启动它们的实例后,减少使它们有用的工作量。
当您准备好迁移到 OpenStack 时,请关闭虚拟机并将其添加到 OpenStack 镜像服务 (Glance),请参阅可启动映像。
glance add name="My Server" is_public=true container_format=ovf disk_format=raw < myserver.raw
如果您有任何数据想要迁移到 OpenStack:
- 使用包含所需数据的卷启动原始 KVM VM。
- 在 OpenStack 中创建至少相同大小的卷并将其附加到所需的实例。
- 将数据从 KVM VM 卷 scp 或 rsync 到附加到 OpenStack 中实例的卷。
我在这里提出的方法并不是一个无缝的过程,但我认为它是安全可靠的。