首先交代下背景:由于想比较openstack下各种热迁移方法的性能,我开放了将要迁移的实例的8000端口,然后执行一个脚步程序,从远端不断请求访问这个实例,与此同时进行热迁移,记录迁移时间及效率。然而,在开放端口后,远端并不能访问该实例。
此时,将宿主节点的防火墙重新关闭:
systemctl start iptables.service
systemctl stop iptables.service
远端可以访问实例了,虚拟机也不断给予相应:
为了避免迁移到目的节点也出现该问题,我也重新关闭了迁移目的节点的iptables服务。然后在dashboard上操作进行热迁移。在迁移进行时,实例不能响应请求了。直到迁移完成,实例也没有能够响应远端的请求。此时,查看目的节点的iptables状态发现其依旧是关闭的状态,尝试将目的节点的防火墙重新关闭(利用上文提到的两条命令),结果远端可以继续访问实例了。
查看iptables-save:
发现物理节点对于实例开放的端口并不包括8000。判断很可能是安全组设置的问题。
在dashboard中新创建一个安全组,添加规则