过程同之前的过程,环境也相同,sentinel的console如下:
[root@soa1 sentinel-env]# redis-server sentinel.conf --sentinel
[9490] 27 Nov 17:41:18.079 * Max number of open files set to 10032
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 2.8.1 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in sentinel mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 26379
| `-._ `._ / _.-' | PID: 9490
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
----启动正常,识别配置正常
[9490] 27 Nov 17:41:18.081 # Sentinel runid is e51929d0bb850b499a6581810861c35bf66dd040
[9490] 27 Nov 17:41:18.083 * +slave slave 192.168.0.12:6379 192.168.0.12 6379 @ mymaster 192.168.0.11 6379
[9490] 27 Nov 17:41:18.083 * +slave slave 192.168.0.11:6380 192.168.0.11 6380 @ mymaster 192.168.0.11 6379
----关闭11 master:6379,选举12:6379为master,11:6380转为12的slave,11:6379也为12slave,但是状态为sdown,功能OK;
[9490] 27 Nov 17:42:15.645 # +sdown master mymaster 192.168.0.11 6379
[9490] 27 Nov 17:42:15.645 # +odown master mymaster 192.168.0.11 6379 #quorum 1/1
[9490] 27 Nov 17:42:15.645 # +new-epoch 1
[9490] 27 Nov 17:42:15.645 # +try-failover master mymaster 192.168.0.11 6379
[9490] 27 Nov 17:42:15.645 # +vote-for-leader e51929d0bb850b499a6581810861c35bf66dd040 1
[9490] 27 Nov 17:42:15.646 # +elected-leader master mymaster 192.168.0.11 6379
[9490] 27 Nov 17:42:15.646 # +failover-state-select-slave master mymaster 192.168.0.11 6379
[9490] 27 Nov 17:42:15.747 # +selected-slave slave 192.168.0.12:6379 192.168.0.12 6379 @ mymaster 192.168.0.11 6379
[9490] 27 Nov 17:42:15.747 * +failover-state-send-slaveof-noone slave 192.168.0.12:6379 192.168.0.12 6379 @ mymaster 192.168.0.11 6379
[9490] 27 Nov 17:42:15.848 * +failover-state-wait-promotion slave 192.168.0.12:6379 192.168.0.12 6379 @ mymaster 192.168.0.11 6379
[9490] 27 Nov 17:42:16.653 # +promoted-slave slave 192.168.0.12:6379 192.168.0.12 6379 @ mymaster 192.168.0.11 6379
[9490] 27 Nov 17:42:16.653 # +failover-state-reconf-slaves master mymaster 192.168.0.11 6379
[9490] 27 Nov 17:42:16.752 * +slave-reconf-sent slave 192.168.0.11:6380 192.168.0.11 6380 @ mymaster 192.168.0.11 6379
[9490] 27 Nov 17:42:17.656 * +slave-reconf-inprog slave 192.168.0.11:6380 192.168.0.11 6380 @ mymaster 192.168.0.11 6379
[9490] 27 Nov 17:42:18.659 * +slave-reconf-done slave 192.168.0.11:6380 192.168.0.11 6380 @ mymaster 192.168.0.11 6379
[9490] 27 Nov 17:42:18.759 # +failover-end master mymaster 192.168.0.11 6379
[9490] 27 Nov 17:42:18.759 # +switch-master mymaster 192.168.0.11 6379 192.168.0.12 6379
[9490] 27 Nov 17:42:18.759 * +slave slave 192.168.0.11:6380 192.168.0.11 6380 @ mymaster 192.168.0.12 6379
[9490] 27 Nov 17:42:18.761 * +slave slave 192.168.0.11:6379 192.168.0.11 6379 @ mymaster 192.168.0.12 6379
[9490] 27 Nov 17:42:48.784 # +sdown slave 192.168.0.11:6379 192.168.0.11 6379 @ mymaster 192.168.0.12 6379
-----关闭11:6380salve,正常,11:6380下线;12无slave,sentinel登记两个slave,都是为下线;
[9490] 27 Nov 17:47:35.105 # +sdown slave 192.168.0.11:6380 192.168.0.11 6380 @ mymaster 192.168.0.12 6379
[9490] 27 Nov 17:48:27.676 # -sdown slave 192.168.0.11:6379 192.168.0.11 6379 @ mymaster 192.168.0.12 6379
------启动11:6379,正常,成为12:6379的slave,sentinel正常;
[9490] 27 Nov 17:48:37.512 * +convert-to-slave slave 192.168.0.11:6379 192.168.0.11 6379 @ mymaster 192.168.0.12 6379
[9490] 27 Nov 17:49:51.706 * +reboot slave 192.168.0.11:6380 192.168.0.11 6380 @ mymaster 192.168.0.12 6379
[9490] 27 Nov 17:49:51.905 # -sdown slave 192.168.0.11:6380 192.168.0.11 6380 @ mymaster 192.168.0.12 6379
-----启动11:6380,正常,成为slave
[9490] 27 Nov 17:50:01.720 * +convert-to-slave slave 192.168.0.11:6380 192.168.0.11 6380 @ mymaster 192.168.0.12 6379
-----关闭11:6379slave,正常;
[9490] 27 Nov 17:51:38.842 # +sdown slave 192.168.0.11:6379 192.168.0.11 6379 @ mymaster 192.168.0.12 6379
-----关闭11:6380,正常,slave为down
[9490] 27 Nov 17:52:37.318 # +sdown slave 192.168.0.11:6380 192.168.0.11 6380 @ mymaster 192.168.0.12 6379
-----启动11:6379,正常,成为slave(2.6版本这里成为master,孤立节点)
[9490] 27 Nov 17:52:51.792 * +reboot slave 192.168.0.11:6379 192.168.0.11 6379 @ mymaster 192.168.0.12 6379
[9490] 27 Nov 17:52:51.992 # -sdown slave 192.168.0.11:6379 192.168.0.11 6379 @ mymaster 192.168.0.12 6379
----启动11:6380,正常,成为slave
[9490] 27 Nov 17:54:43.309 * +reboot slave 192.168.0.11:6380 192.168.0.11 6380 @ mymaster 192.168.0.12 6379
[9490] 27 Nov 17:54:43.310 * +convert-to-slave slave 192.168.0.11:6380 192.168.0.11 6380 @ mymaster 192.168.0.12 6379
[9490] 27 Nov 17:54:43.510 # -sdown slave 192.168.0.11:6380 192.168.0.11 6380 @ mymaster 192.168.0.12 6379
结论:
2.8.1实现master-slave切换功能;
切换后,master启动后为slave,slave还是slave
多次切换没有问题,具体还需要深入分析验证;
至少2.8.1是可用了!!