Redisの哨兵とクラスタリングの仕組みについて説明し、それぞれの設定方法を紹介します。さらに、負荷分散システムであるLVSのDRモデルの動作原理と実践例も解説します。
Redis哨兵の仕組みと設定
Redis哨兵はRedisサーバーの監視と自動フェイルオーバーを行う機能です。主にマスターとスレーブ間の故障切り替えを管理します。
哨兵の設定手順
- マスターやスレーブノードの設定:
# マスターノード設定
[root@master ~]# vim /etc/redis.conf
69 bind 0.0.0.0
294 masterauth "securepass"
509 requirepass "securepass"
# スレーブノード設定
[root@slave1 ~]# vim /etc/redis.conf
287 replicaof 192.168.1.100 6379
- 哨兵の設定:
[root@master ~]# vim /etc/redis-sentinel.conf
18 bind 0.0.0.0
22 port 26379
85 sentinel monitor mymaster 192.168.1.100 6379 2
105 sentinel auth-pass mymaster securepass
- サービスの起動:
[root@master ~]# systemctl enable --now redis
[root@master ~]# systemctl enable --now redis-sentinel
Redisクラスタリングの設定
Redisクラスタは複数のマスターノードを使用してデータを分散し、各マスターノードに対してスレーブノードを配置することで冗長性を確保します。
クラスタリングの設定手順
- クラスターノードの設定:
[root@node1 ~]# vim /etc/redis.conf
bind 0.0.0.0
masterauth securepass
requirepass securepass
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-require-full-coverage no
- クラスターの作成:
[root@node1 ~]# redis-cli -a securepass --cluster create 192.168.1.100:6379 192.168.1.101:6379 192.168.1.102:6379 192.168.1.103:6379 192.168.1.104:6379 192.168.1.105:6379 --cluster-replicas 1
LVSのDRモデルの設定
LVSのDRモデルは仮想IPアドレスを使用してリクエストを負荷分散します。このモデルでは、リアルサーバーが仮想IPアドレスを持つように設定します。
DRモデルの設定手順
- リアルサーバーの設定:
[root@rs1 ~]# echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
[root@rs1 ~]# echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
[root@rs1 ~]# ifconfig lo:1 192.168.1.200/32
- LVSノードの設定:
[root@lvs ~]# ipvsadm -A -t 192.168.1.200:80 -s rr
[root@lvs ~]# ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.101:80 -g
[root@lvs ~]# ipvsadm -a -t 192.168.1.200:80 -r 192.168.1.102:80 -g
- テスト:
[root@client ~]# curl 192.168.1.200