前言
记一次做了迁移新机实验后,原来的服务报错,其中redis集群出现了cluster_state:fail。
案例
描述:
此次迁移是把该服务器创建了自定义的镜像,新创建实例,网络要在同一组里,导入该镜像后重启实例,重启服务。创建镜像后,基本上数据都是完整的,只需要把需要更改地址的服务更改一下地址即可。实验做完之后,把这个按量付费的实例释放掉。释放掉之后,原先那些更改过IP 的服务就都报错了,报错了。我没有动过原机上的任何文件。这里就出现了一个现象,明明实验机的IP都释放掉了,原先的服务接二连三的挂掉。
解决:
其实很好解决的,那些改过IP服务,有些是重启服务就解决问题的,剩下的就是T在变更IP之后,做了记录,更改了自身的配置文件,就比如redis集群,redis集群里面有一个nodes.conf文件。下面是T的官方介绍。
# Every cluster node has a cluster configuration file. This file is not
每个群集节点都有一个群集配置文件。这个文件不是
# intended to be edited by hand. It is created and updated by Redis nodes.
每个群集节点都有一个群集配置文件。这个文件不是
# Every Redis Cluster node requires a different cluster configuration file.
每个Redis群集节点需要不同的群集配置文件。
# Make sure that instances running in the same system do not have
每个Redis群集节点需要不同的群集配置文件。
# overlapping cluster configuration file names.
重叠的群集配置文件名。
cluster-config-file nodes-xxxx.conf
就是这个文件的里面因为地址的更改,还保留了之前变更的IP地址,导致整个集群都fail掉了,把这个IP改回来,问题也就解决了。
重点:
遇事不要慌,都不是事。
最后
迁移新机的技术基本上已经趋近于成熟了,毕竟现在云上的服务器对待续费的客户很不友好。好多客户都在以这种方式去省钱。
1、创建自定义实例
2、同一网络VPC
3、重置密码,重启服务
4、更改服务IP,重启服务
…