準備:selinux off
systemctl disable firewalld
systemctl stop firewalld
systemctl disable firewalld
systemctl stop firewalld
又は、firewallについては、6379ポートを解放させること
1)wgetをインストールする。
1)wgetをインストールする。
# yum -y install wget
2)EPEL と REMI を導入する。
$ sudo yum -y install epel-release
$ wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
$ sudo rpm -Uvh remi-release-7*.rpm
3)redisのインストール
# yum --enablerepo=remi,remi-test,epel install redis
■□Redis1の設定■□
1)以下を編集する
vi /etc/reidis.conf
---------/etc/reidis.conf --------------------
bind 192.168.1.201 #自分のIPを記載すること
bind 0.0.0.0
-----------------------------------------------
-----------------------------------------------
2)サービスの登録と起動を行う
# systemctl enable redis
# systemctl start redis
■□Redis2の設定■□
1)以下を編集する
vi /etc/redis.conf
---------/etc/redis.conf --------------
bind 0.0.0.0
bind 192.168.1.202 #自分のIPを記載すること
slaveof 192.168.1.201 6379 #masterのIPを記載すること
---------------------------------------
<メモ>
slaveof 192.168.11.201 6379は、
masterのredisと連携(レプリケーション)する箇所なので
入力のミスがないようにする。
2)サービスの登録と起動を行う
# systemctl enable redis
# systemctl start redis
■□Redis sentinelの設定■□
(対象:redis1/2)
1)redis-sentinel.confの編集を行う
# vi /etc/redis-sentinel.conf
-----------------------------------------------------------------
①以下のprotected-mode noのコメントアウト “#”を外す。
protected-mode no
②以下を無効化にする。
#sentinel monitor mymaster 127.0.0.1 6379 2
③以下の設定を追加する
※間違えて、相手側のIPを入力しないこと!
sentinel monitor mymaster 192.168.1.201 6379 2 #自分のIPを入力する
④以下をページの末端に記載する。
sentinel down-after-milliseconds mymaster 3000
sentinel failover-timeout mymaster 6000
-------------------------------------------------------------------
③sentinel monitor "グループ名" 、"IP" 、"ポート番号"、 "sentinelの数"
④は、Master/Slaveのダウン検知後に移行するまでの時間とフェイルオーバー処理の
タイムアウトを示す。
2)サービスの起動を行う
# systemctl enable redis-sentinel
# systemctl start redis-sentinel
■□フェイルオーバーの設定■□
1)Redis1で実行を行い、Redis2を昇格させる。
redis-cli -p 26379 sentinel failover mymaster
2)Redis2で以下を実行して、Redis1を昇格させる。
systemctl stop redis
3) Redis1で以下のコマンドを投入する。
redis-cli -h 192.168.1.201
4)infoと入力する。
192.168.1.201:6379> info
5)Redis1がmasterに昇格できていることと、Redis2がsalveとして
リンクされていることを確認
リンクされていることを確認
# Replication
role:master
connected_slaves:1
slave0:ip=192.168.1.202,port=6379,state=online,offset=17201501,lag=0
6)slave(Redis2)で以下を実施
systemctl start redis
7)master(Redis2)で以下のコマンドを投入する。
redis-cli -h 192.168.1.202
8)infoと入力する。
192.168.1.202:6379> info
9)以下の表示になっていること。
# Replication
role:slave
master_link_status:up
<メモ>
masterからslaveに切り替えるまで、10秒程度かかるので、注意すること
■□keepalivedの導入■□
1)keepalivedのインストールを行う
# yum -y install keepalived
2)/etc/keepalived/keepalived.confの編集を行う
# vi /etc/keepalived/keepalived.conf
-----------/etc/keepalived/keepalived.conf----------------
! Configuration File for keepalived
vrrp_instance VI_1 {
state BACKUP
interface team0
virtual_router_id 11
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass dps123
}
virtual_ipaddress {
192.168.1.200
}
}
virtual_server 127.0.0.1 16379 {
delay_loop 5
lb_algo rr
real_server 127.0.0.1 6379 {
MISC_CHECK {
misc_path "/etc/keepalived/redis-check.sh"
misc_timeout 10
}
}
}
----------------------------------------------------------------------
①interface team0は、ネットワークインターフェースのポート名
②192.168.1.200は、keepalivedのVIP
記載するネットワークデバイス番号“team0”は、物理サーバーによって異なるので
ip aと入力して、IPアドレスの横に表示されているネットワークデバイスを
ip aと入力して、IPアドレスの横に表示されているネットワークデバイスを
把握しておくこと
3)以下にて、keepalivedのヘルスチェックファイルを作成する。
# vi /etc/keepalived/redis-check.sh
------- /etc/keepalived/redis-check.sh ------------------------------------------------------
#!/bin/sh
# redis-check.sh
slave_check=`redis-cli -h 192.168.1.202 info | grep role:slave | grep -v grep | wc -l`
ps_check=`ps -ef | grep redis-server | grep -v grep | wc -l`
ping_check=`ping -c 1 192.168.1.201 | grep Unreachable | grep -v grep | wc -l`
if [ "${slave_check}" = 1 ] || [ "${ps_check}" = 0 ]; then
systemctl restart keepalived
elif [ "${ping_check}" = 1 ]; then
ip addr add 192.168.1.200/32 dev team0
fi
sleep 1
---------------------------------------------------------------------------------------------------------------
①”slave_check=”記載するIPは、自分のIPを記載する
②”ping_check=”記載するIPは、相手のIPを記載する
※“ip addr add”に追加するIPはkeepalived用の仮想IPです。
※記載するネットワークデバイス番号“team0”は、物理サーバーによって異なるので
ip aと入力して、IPアドレスの横に表示されているネットワークデバイスを
ip aと入力して、IPアドレスの横に表示されているネットワークデバイスを
把握しておくこと
4)/etc/keepalived/redis-check.shの権限の変更を行う
# chmod 777 redis-check.sh
権限の変更を行わないと、keepaliveのヘルスチェックが実行不可になるので注意
5)keepalivedのサービスを起動を行う
# systemctl enable keepalived
# systemctl start keepalived
0 件のコメント:
コメントを投稿