結論から言うと、2パターンあります。
- Read Replicaがprimaryに昇格し、旧primaryはread replicaとして同期
- 自身の持っているイメージからデータを復元(read Replicaが使えない場合)
1から説明しますと、Multi-AZのRead Replicaが存在する場合は素直に切り替わります。これはDNSで切り替わるため、Primary Endpointに紐付いたNodeが、新しいprimaryに切り替わリます。その際、降格したread replicaはデータが空の状態で同期を開始します。
問題は2です。primaryがread replicaに降格するのですが、そのタイミングでデータをローカルにバックアップします。正確に言うと、こんなかんじの流れです。
- 障害検知したタイミングで、データをローカルにバックアップ
- 再起動
- データが空の状態でredisが起動
- 新primaryに問題ない場合はread replicaとして起動し、primaryからデータ同期
- 新primaryに問題がある場合はprimaryとして起動し、1.からデータを復元
何が問題か?という話なのですが、1~5の間は『read,writeがロックされた状態』になります。つまり長時間redisにアクセス出来ない状態になります。
…大変っすね!
…大変っすね!
0 件のコメント:
コメントを投稿