CentOS7の下でRedisのセンチネルは、高可用性クラスタを実現使うyumをCentOS7下のRedisをインストール

  Redisのセンチネルは、(センチネル除き、Redisのクラスタが別のプログラムである)公式によって提供される高可用性ソリューションである、それは自動的にRedisのマスター/スレーブの動作状態を監視することができ、見つかったマスターがアクセスすることができない場合、それは1つにフェイルオーバーを開始しますスレーブ局はマスターに切り替えへのアクセス権を持っています。

(1).Sentinel(センチネル)効果

  マスター状態を検出し、異常マスターは、マスター・スレーブスイッチは、ここでマスターとスレーブになるようにすれば、以前のマスタースレーブとして。マスタ・スレーブスイッチ、マスターredis.conf、スレーブredis.confとsentinel.confコンテンツが変更された場合に、監視対象がsentinel.confであろうと、すなわち、マスターredis.confは、複数の行のslaveof構成となり交流。

(2).Sentinel(センチネル)作品

  RedisのSentinelは、(例えば、JavaのJedis)が接続Redisのサーバー時間でセンチネルにIPマスターを聞いてきますし、自動的に受信マスタースイッチのパブ/サブイベントの後に新しいマスターに再接続するクライアントをサポートしています。

(3)実験環境

youxi1 192.168.1.6マスター、Sentinel1

youxi2 192.168.1.7スレーブ、Sentinel2

youxi3 192.168.1.8スレーブ、Sentinel3

(4)実験

 1)すべてのサーバーの最初には、Redisのをインストールして設定し、カイからブートしています

  詳細を表示:YUM CentOS7下のRedisをインストール

 2)マスターサーバの設定ファイルを変更youxi1

/etc/redis.conf [ルート@のyouxi1〜]#のvimの
バインド0.0.0.0 //ライン69、リスンアドレスを設定します。すべてのアドレスを聞いていない0.0.0.0手段
プロテクトモードなし//ライン88は、外部ネットワークへのアクセスを許可する、セーフモードをオフにします

  ファイアウォールがオンになっている場合は、ポート番号を追加することを忘れないでください

[ルート@ youxi1〜]#ファイアウォール-CMD --permanent --zone =公共--add-ポート= 6379 / tcpの&&ファイアウォール-CMD --reload 
成功
成功

 3)変更スレーブ1 youxi2サーバーの設定ファイル

/etc/redis.conf [ルート@のyouxi2〜]#のvimの
バインド0.0.0.0 //ライン69、リスンアドレスを設定します。すべてのアドレスを聴く0.0.0.0表し
プロテクトモード、外部ネットワークへのアクセス許可なし//行ない88、セキュリティモードオフ、
マスターのIPアドレスとポート番号を設定192.168.1.6 6379 //ライン286 replicaofを、

  ファイアウォールがオンになっている場合は、ポート番号を追加することを忘れないでください

[ルート@ youxi1〜]#ファイアウォール-CMD --permanent --zone =公共--add-ポート= 6379 / tcpの&&ファイアウォール-CMD --reload 
成功
成功

 4)変更Slave2をyouxi3サーバーの設定ファイル

/etc/redis.conf [ルート@のyouxi3〜]#のvimの
バインド0.0.0.0 //ライン69、リスンアドレスを設定します。すべてのアドレスを聴く0.0.0.0表し
プロテクトモード、外部ネットワークへのアクセス許可なし//行ない88、セキュリティモードオフ、
マスターのIPアドレスとポート番号を設定192.168.1.6 6379 //ライン286 replicaofを、

  ファイアウォールがオンになっている場合は、ポート番号を追加することを忘れないでください

[ルート@ youxi3〜]#ファイアウォール-CMD --permanent --zone =公共--add-ポート= 6379 / tcpの&&ファイアウォール-CMD --reload 
成功
成功

 5)センチネル(センチネル)の設定

/etc/redis-sentinel.conf [ルート@ youxi1〜]#のvimの
外部ネットワークアクセスできるように、インストールモードを解除し、MODE-NO //ライン17を保護
2126379は、//ポート番号を確認し、ポートラインを
デーモン化はい//ライン26の代わりに、はい、バックグラウンドデーモンで実行されている
//ライン84センチネルモニタmymasterの192.168.1.6 6379 2、mymasterはクラスタ名で、192.168.1.6は、プライマリサーバのIPアドレスであり、2は、投票の値であり、2人の歩哨は接続できませんマスター、そしてマスターぶら下げ、スプリットブレインを使用しないようにするために、奇妙なことに
10000 //ダウンライン・アフターセンチネル113ミリ秒mymaster 
同期mymasterセンチネルを。1 //パラレル-121ライン
センチネルフェイルオーバー・タイムアウトmymaster 60000 //行146ミリ秒単位で、フェイルオーバーのタイムアウト

  説明:

    ダウン後のミリ秒:センチネルは、マスターは、「時間軸」PONG内に応答するか、エラーメッセージが返されない場合は、センチネルは主観的(一方的に)意志、マスターが生きているを確認するために、マスターハートビートPINGに送信されますマスタは、(またSDOWNとも称される、主観ダウン)使用不可能と考えられてきました。そして、このダウンした後、ミリ秒単位はミリ秒単位で「一定時間」を指定するために使用されます。

    並列同期:主な切り替えが、このオプションは、同時新しいマスタースレーブ同期の最大数、数が少ない、長いフェイルオーバーを完了するために必要な多くの時間を指定しますが、図の場合ときフェイルオーバーが発生します大規模な、それはレプリケーションが利用できない複数のスレーブためということを意味します。この値は、1つのスレーブ状態コマンド要求を処理できないことを確実にするために1に設定することができます。

  すべてのサーバーがそのように設定し、その後、Redisのを再起動のRedis-センチネルを開始し、ポストを設定されています。

[ルート@のyouxi1〜]#systemctl再起動のRedis && systemctlのRedis-センチネル開始
のRedis-センチネル有効[ルート@ youxi1〜]#のsystemctlを
/etc/systemd/system/multi-user.target.wants/redis-sentinelから作成されたシンボリックリンクを。 /usr/lib/systemd/system/redis-sentinel.serviceするサービス。

[ルート@のyouxi2〜]#systemctl再起動のRedis && systemctlのRedis-センチネル開始
のRedis-センチネル有効[ルート@ youxi2〜]#のsystemctlを
/etc/systemd/system/multi-user.target.wants/redis-sentinelから作成されたシンボリックリンクを。 /usr/lib/systemd/system/redis-sentinel.serviceするサービス。

[ルート@のyouxi3〜]#systemctl再起動のRedis && systemctlのRedis-センチネル開始
#のsystemctlはRedisの-センチネルを有効[〜ルートの@ youxi3を]
/usr/lib/systemd/system/redis-sentinel.serviceする/etc/systemd/system/multi-user.target.wants/redis-sentinel.serviceからシンボリックリンク作成。

  ファイアウォールがオンになっている場合は、ポート番号を追加することを忘れないでください

ファイアウォール-CMD --permanent --zone =公共--add-ポート= 26379 / tcpの&&ファイアウォール-CMD --reload

 状態6)マスターサーバーからの眺め

  プライマリサーバの状態youxi1

[ルート@ youxi1〜]#のRedis-CLI 
127.0.0.1:6379>レプリケーション情報
#レプリケーション
役割:マスターの役割//このサーバ
connected_slaves:2 //サーバからの接続数
slave0:IP = 192.168.1.7、ポート= 6379 、状態はオンライン、= 546オフセット= = 0 //遅れ、 サーバーからのステータス
スレーブ1:オフセット、IP = 192.168.1.8、= 6379ポート、状態=オンライン= 546、0 = LAG 
master_replid:d3839b055eb0705dda0b2782d587e0d0f4a3177cの
master_replid2:0000000000000000000000000000000000000000 
master_repl_offset:546 
second_repl_offset :-1 
repl_backlog_active :. 1 
repl_backlog_size:1048576 
repl_backlog_first_byte_offset :. 1 
repl_backlog_histlen:546

  サーバーからYouxi2状態

[youxi2ルート@〜]#のRedis-CLI 
127.0.0.1:6379>レプリケーション情報
#レプリケーション
役割:存在スレーブ//サーバの役割
MASTER_HOST:IPアドレス192.168.1.6 //マスターサーバー
MASTER_PORT://マスターサーバーのポート6379数
master_link_status:接続状態からアップ//マスタ
:. 1 master_last_io_seconds_ago 
0:master_sync_in_progress 
slave_repl_offset:658 
slave_priority:100 
slave_read_only :. 1 
connected_slaves:0 
master_replid:d3839b055eb0705dda0b2782d587e0d0f4a3177cの
master_replid2:0000000000000000000000000000000000000000 
master_repl_offset:658 
second_repl_offset:-1 
repl_backlog_active :. 1  
repl_backlog_size:1048576 
repl_backlog_first_byte_offset:71であることを
repl_backlog_histlen:588を

  サーバーからYouxi3状態

[youxi3ルート@〜]#のRedis-CLI 
127.0.0.1:6379>レプリケーション情報
#レプリケーション
役割:このスレーブ//サーバーの役割
MASTER_HOST:IPアドレス192.168.1.6 //マスターサーバー
MASTER_PORT:6379 //マスターサーバーポート数
master_link_status:接続状態から//マスターアップ
:. 7 master_last_io_seconds_ago 
0:master_sync_in_progress 
slave_repl_offset:686 
slave_priority:100 
slave_read_only :. 1 
connected_slaves:0 
master_replid:d3839b055eb0705dda0b2782d587e0d0f4a3177cの
master_replid2:0000000000000000000000000000000000000000 
master_repl_offset:686 
second_repl_offset:-1 
repl_backlog_active :. 1 
repl_backlog_size:1048576 
repl_backlog_first_byte_offset:281であることを
repl_backlog_histlen:406

  7)アナログマスタは、試験下にあります

  Redisのyouxi1をオフにします

[ルート@のyouxi1〜]#systemctlの停止Redisの

  youxi2のステータスを表示するには

#のRedisの-CLI [youxi2〜@ルート] 
127.0.0.1:6379>情報の複製
#レプリケーション
役割:奴隷
MASTER_HOST:192.168.1.8 //可以看到マスター服务器变成来192.168.1.8 
MASTER_PORT:6379 
master_link_status:アップ
master_last_io_seconds_ago:0 
master_sync_in_progress:0 
slave_repl_offset:86480 
slave_priority:100 
slave_read_only:1 
connected_slaves:0 
master_replid:24fe501f3d7f77e790bc82d9c80e6c920522137e 
master_replid2:b74fb4029bf6e6a4acb09748dfe63317192cc322 
master_repl_offset:86480 
second_repl_offset:49216 
repl_backlog_active:1 
repl_backlog_size:1048576 
repl_backlog_first_byte_offset:6589 
repl_backlog_histlen:79892

  Redisのオープンyouxi1で、この時点では、ステータスを表示します

[ルート@ youxi1〜]#は、Redisの開始systemctl 
[ルート@ youxi1〜]#のRedisの-CLI 
127.0.0.1:6379>情報の複製
#レプリケーション
役割を:スレーブが//角色变成来スレーブ
MASTER_HOST:192.168.1.8 
MASTER_PORT:6379 
master_link_status:アップ
master_last_io_seconds_ago:0 
master_sync_in_progress:0 
slave_repl_offset:110509 
slave_priority:100 
slave_read_only:1 
connected_slaves:0 
master_replid:24fe501f3d7f77e790bc82d9c80e6c920522137e 
master_replid2:0000000000000000000000000000000000000000 
master_repl_offset:110509 
second_repl_offset:-1 
repl_backlog_active:1 
repl_backlog_size:1048576 
repl_backlog_first_byte_offset:106486
repl_backlog_histlen:4024

 8)ステータスセンチネルをチェック

  ビュー26379 Sentinelは、リモートポート番号を必要とし、すなわちセンチネルではなく、Redisのは、例えば、今、今、サーバからメインサーバへのアクセスに使用youxi1 youxi3にアクセス

#のRedisの-CLI -h 192.168.1.8 -p 26379 [youxi1〜@ルート] 
192.168.1.8:26379>情報センチネル
#センチネル
sentinel_masters:1 
sentinel_tilt:0 
sentinel_running_scripts:0 
sentinel_scripts_queue_length:0 
sentinel_simulate_failure_flags:0 
master0:名= mymaster、ステータス= OK、アドレス= 192.168.1.8:6379、奴隷= 2、歩哨= 3

  注意:接続されているセンチネルを使用した後。

。(5)拡張:Redisの主観と客観オフラインオフライン

  主観オフライン:主観的にダウンは、オフラインセンチネルは、サーバーの現在のインスタンスがRedisのを作っ決定参照、SDOWNを言及しました。

  目的オフライン:客観ダウンは、ODOWNを呼び、それがセンチネルSDOWNがマスターサーバー上の判断を行う複数のインスタンスを参照し、SENTINELによって互いに相互作用することで、マスター・ダウン・バイ・addrのコマンド後に、オフライン派生マスターサーバー分析とオープンフェイルオーバー。

 

 

 

参考:https://segmentfault.com/a/1190000002680804

おすすめ

転載: www.cnblogs.com/diantong/p/11260483.html