在 Oracle OpenStack for Oracle Solaris 中,VM 实例是内核或非全局区域,是 Oracle Solaris 的可伸缩高密度虚拟环境。对区域实时迁移的支持已扩展到 Nova VM 实例。
可以通过使用 Horizon 服务的系统信息显示板或 nova 命令启动实时迁移。调度程序从参与节点中选择迁移的目标主机。为确保安全性,迁移机制将自动选择相应的加密算法以执行迁移。但是,通过 /etc/nova/nova.conf 文件中的参数可以选择要使用的首选加密。
有关区域实时迁移的更多信息,请参见 Operating Systems Documentation(操作系统文档)中您 Oracle Solaris 版本相应库中的关于迁移内核区域的《创建和使用 Oracle Solaris 内核区域》。另请参见 zoneadm(8) 和 solaris-kz(7) 手册页。
若要成功完成节点迁移,必须确保将每个计算节点的 SSH 密钥添加到每个节点的授权密钥文件中。因此,节点共享完全相同的授权密钥文件,如下图中所示:
通过完成以下步骤来准备 VM 实例迁移:
# su - nova -c "ssh-keygen -N '' -f /var/user/nova/.ssh/id_rsa -t rsa"
将来自不同节点的所有密钥文件放到其中一个节点中的公共位置。
将所有密钥组合成 authorized_keys 文件。
例如:
# cat nova(1)/id_rsa.pub nova(n)/id_rsa.pub >> /var/user/nova/.ssh/authorized_keys
其中 nova(1) 至 nova(n) 表示参与节点的 SSH 密钥。
将 authorized_keys 文件分发到所有其他参与节点的 /var/user/nova/.ssh 目录。
(可选)在每个计算节点的 /etc/nova/nova.conf 文件中的 live_migration_cipher 参数上指定要在迁移过程中使用的口令。
但是,如果希望进程自动选择合适的口令,请保持该参数的未设置状态。
要将正在运行的服务器实时迁移到其他计算机,请在设置全局 shell 变量后使用以下语法:
# nova live-migration server [host]
其中,server 可以是服务器的名称或 ID,可选 host 是目标服务器的名称。
如果当前实例的节点失败,或者如果 Nova 服务本身已被禁用一段时间,则可以移动或清除该实例并在其他节点上重新生成它。这样便可以恢复节点。
要将所有 VM 实例从一个主机实时迁移到另一个主机,请在设置全局 shell 变量后使用以下语法。
# nova host-evacuate-live [--target-host target] server