======================================= 基于rbd虚机热迁移 ======================================= 关于在线迁移之前我写过一篇文章介绍过( :doc:`./block_migration` ),这是使用块迁移的方式,就是说要把整个根磁盘都要通过libvirt的通道传输到目标节点上。ceph与OpenStack深度集成会有很多惊喜功能,我们之前探讨过很多。由于虚机的根磁盘在Rbd上,我们可以认为这是在共享存储上,那么这意味着我们可以用更快速的方式迁移虚机。 这个功能在Juno版本以后已经集成到了OpenStack中,但是在Icehouse中我们必须修改相关代码,集成一些Juno版的patch,这些在社区中都会很容易找到。 ConfigDrive的困扰 ==================== 在虚机的元数据注入时,很多时候我们都会选择ConfigDrive方式,这种方式更加快速,能够提升虚拟机的初次启动速度。但是它会在计算节点本地创建一个块文件来持久化ConfigDrive的数据,这就会给在线迁移带来困扰,因为libvirt并不会把ConfigDrive Device也迁移过去,如果存在本地卷,libvirt会报错。 所以我们需要在创建虚机之初,也将ConfigDrive部署到Rbd中,这样它也在共享存储上,就不会影响在线迁移。 对此如何实现,可以参考社区的解决方案 `Handle config drives being stored on rbd `_ ,但是没有被merge,请谨慎!