Valkey : Sentinel の設定2025/12/05 |
|
Valkey Sentinel による Valkey クラスターの監視設定です。 例として、プライマリーノード 1 台と レプリカノード 2 台で構成した環境へ Sentinel サーバーを 1 台追加して、プライマリーノードの障害発生時に、マスターロールがレプリカノードに自動フェイルオーバーするように設定します。
|
+-----------------------+ | +-----------------------+
| [ Valkey Sentinel ] |10.0.0.25 | 10.0.0.30| [ Valkey Primary ] |
| ctrl.srv.world +----------+----------+ dlp.srv.world |
| | | | |
+-----------------------+ | +-----------------------+
|
+-----------------------+ | +-----------------------+
| [ Valkey Replica#1 ] |10.0.0.51 | 10.0.0.52| [ Valkey Replica#2 ] |
| node01.srv.world +----------+----------+ node02.srv.world |
| | | |
+-----------------------+ +-----------------------+
|
| [1] |
こちらを参考に プライマリー/レプリカ 全ノードでレプリケーション構成を設定しておきます。 |
| [2] | Sentinel による監視設定は、障害発生時には Sentinel により各ノードの [valkey.conf] の書き換えが実行されてプライマリー/レプリカが切り替わるため、基本的には事前にプライマリー/レプリカ上での手動設定変更は必要ありませんが、 SELinux を有効にしている場合は、[valkey.conf] を変更するための許可ルールの追加が必要になります。以下の許可ルールの追加をプライマリー/レプリカ全ノードで実施します。 |
|
dlp:~ # chown valkey /etc/valkey/valkey.conf dlp:~ # semanage fcontext -a -t redis_conf_t /etc/valkey/valkey.conf dlp:~ # restorecon /etc/valkey/valkey.conf |
| [3] | Sentinel サーバーをセットアップします。 |
|
ctrl:~ #
zypper -n install valkey # コピー先のファイル名 ⇒ sentinel-(任意の名前).conf ctrl:~ # cp /etc/valkey/sentinel.conf.example /etc/valkey/sentinel-valkey.conf ctrl:~ # chmod 640 /etc/valkey/sentinel-valkey.conf ctrl:~ # chown valkey /etc/valkey/sentinel-valkey.conf ctrl:~ # vi /etc/valkey/sentinel-valkey.conf # 15行目 : 変更 (サービスとして起動) daemonize yes
# 93行目 : 変更 # [sentinel monitor (任意の名称) (プライマリーノードの IP) (プライマリーノードのポート) (Quorum)] # Quorum ⇒ 指定した数の Sentinel サーバーがプライマリーノードがダウンしたと判断した場合にフェイルオーバーする sentinel monitor mymaster 10.0.0.30 6379 1
# 113行目 : プライマリーノードの認証パスワードを追記
sentinel auth-pass mymaster password
# 134行目 : プライマリーノードがダウンしたと判断する時間 (デフォルトは 30秒) sentinel down-after-milliseconds mymaster 30000 # 206行目 : フェイルオーバー中に設定変更するレプリカの数 sentinel parallel-syncs mymaster 1 # サービス名 ⇒ valkey-sentinel@(conf ファイル名の [sentinel-] に続く部分) ctrl:~ # systemctl enable --now valkey-sentinel@valkey |
| [4] | 以上で設定完了です。Sentinel サーバーで状態の確認をします。 また、プライマリーノードの Valkey を手動で停止させる等して、正常にフェイルオーバーするか等々も確認しておくよいでしょう。 |
|
ctrl:~ # valkey-cli -p 26379 # [mymaster] のプライマリーノード確認 127.0.0.1:26379> sentinel get-master-addr-by-name mymaster 1) "10.0.0.30" 2) "6379" # [mymaster] のプライマリーノードの詳細 127.0.0.1:26379> sentinel master mymaster 1) "name" 2) "mymaster" 3) "ip" 4) "10.0.0.30" 5) "port" 6) "6379" 7) "runid" 8) "e9c0cd72171eca3dcc9c1b373141edb79023d847" 9) "flags" 10) "master" ..... ..... # [mymaster] のレプリカ確認 127.0.0.1:26379> sentinel slaves mymaster 1) 1) "name" 2) "10.0.0.51:6379" 3) "ip" 4) "10.0.0.51" 5) "port" 6) "6379" 7) "runid" 8) "9364bde9165da261dcdbf83f08c9816e0e808da8" 9) "flags" 10) "slave" 11) "link-pending-commands" 12) "0" 13) "link-refcount" 14) "1" 15) "last-ping-sent" ..... ..... 2) 1) "name" 2) "10.0.0.52:6379" 3) "ip" 4) "10.0.0.52" 5) "port" 6) "6379" 7) "runid" 8) "b1315ff83c7322bca89a9739b4f5e4f2c62f1420" 9) "flags" 10) "slave" 11) "link-pending-commands" 12) "0" 13) "link-refcount" 14) "1" 15) "last-ping-sent" ..... ..... |
| Sponsored Link |
|
|