Redis 5 : Redis Sentinel の設定2019/11/29 |
Redis Sentinel による Redis クラスターの監視設定です。
例として、マスターノード 1台と レプリカノード 2台で構成した環境へ Sentinel サーバーを 1台追加して、
マスターノードの障害発生時に、マスターロールがレプリカノードに自動フェイルオーバーするように設定します。
| +----------------------+ | +----------------------+ | [ Redis Sentinel ] |10.0.0.30 | 10.0.0.31| [ Redis Master ] | | dlp.srv.world +----------+----------+ www.srv.world | | | | | | +----------------------+ | +----------------------+ | +----------------------+ | +----------------------+ | [ Redis Replica#1 ] |10.0.0.51 | 10.0.0.52| [ Redis Replica#2 ] | | node01.srv.world +----------+----------+ node02.srv.world | | | | | +----------------------+ +----------------------+ |
[1] |
こちらを参考に マスター/レプリカ 全ノードでレプリケーション構成を設定しておきます。
注意点として Sentinel により自動フェイルオーバーした際は、レプリカがマスターに、マスターがレプリカに切り替わるため、 接続/認証パスワードの設定は全ノードで合わせておく必要があります。 |
[2] | Sentinel による監視設定は、障害発生時には Sentinel により各ノードの [redis.conf] の書き換えが実行されてマスター/レプリカが切り替わるため、基本的には事前にマスター/レプリカ上での手動設定変更は必要ありませんが、 SELinux を有効にしている場合は、[redis.conf] を変更するための許可ルールの追加が必要になります。以下の許可ルールの追加をマスター/レプリカ全ノードで実施します。 |
[root@www ~]# semanage fcontext -a -t redis_conf_t /etc/redis.conf [root@www ~]# restorecon /etc/redis.conf |
[3] | Sentinel サーバーをセットアップします。 |
[root@dlp ~]#
dnf module -y install redis:5
[root@dlp ~]#
vi /etc/redis-sentinel.conf # 26行目:変更 (サービスとして起動) daemonize yes
# 84行目:変更 # [sentinel monitor (任意の名称) (マスターノードのIP) (マスターノードのポート) (Quorum)] # Quorum ⇒ 指定した数の Sentinel サーバーがマスターノードがダウンしたと判断した場合にフェイルオーバーする sentinel monitor mymaster 10.0.0.31 6379 1
# 104行目:マスターノードの認証パスワードを追記
sentinel auth-pass mymaster password
# 113行目:マスターノードがダウンしたと判断する時間(デフォルトは30秒)
sentinel down-after-milliseconds mymaster 30000
# 121行目:フェイルオーバー中に設定変更するレプリカの数 sentinel parallel-syncs mymaster 1 systemctl enable --now redis-sentinel |
[4] | 以上で設定完了です。Sentinel サーバーで状態の確認をします。 また、マスターノードの Redis を手動で停止させる等して、正常にフェイルオーバーするか等々も確認しておくよいでしょう。 |
[root@dlp ~]# redis-cli -p 26379 # [mymaster] のマスターノード確認 127.0.0.1:26379> sentinel get-master-addr-by-name mymaster 1) "10.0.0.31" 2) "6379" # [mymaster] のマスターノードの詳細 127.0.0.1:26379> sentinel master mymaster 1) "name" 2) "mymaster" 3) "ip" 4) "10.0.0.31" 5) "port" 6) "6379" 7) "runid" 8) "a45ecbf4af4d744dff207147105827e9f1527135" 9) "flags" 10) "master" ..... ..... # [mymaster] のレプリカ確認 127.0.0.1:26379> sentinel slaves mymaster 1) 1) "name" 2) "10.0.0.52:6379" 3) "ip" 4) "10.0.0.52" 5) "port" 6) "6379" 7) "runid" 8) "2404e2d1bd2b5cdc7ef43c5efeabe4c38037534c" 9) "flags" 10) "slave" ..... ..... 2) 1) "name" 2) "10.0.0.51:6379" 3) "ip" 4) "10.0.0.51" 5) "port" 6) "6379" 7) "runid" 8) "fff20e3e0322e57831be21d88cd777652f7b6a48" 9) "flags" 10) "slave" ..... ..... |
Sponsored Link |
|