Π Π‘ΠΈΡΠΈΠΌΠΎΠ±ΠΈΠ» ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ Π±Π°Π·Ρ Π΄Π°Π½Π½ΡΡ MySQL Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° ΠΏΠΎΡΡΠΎΡΠ½Π½ΡΡ Π΄Π°Π½Π½ΡΡ . Π£ Π½Π°Ρ Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠΎΠ² Π±Π°Π· Π΄Π°Π½Π½ΡΡ ΠΏΠΎΠ΄ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ ΡΠ΅Π»ΠΈ.
ΠΠΎΡΡΠΎΡΠ½Π½Π°Ρ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΌΠ°ΡΡΠ΅ΡΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΏΠΎΠΊΠ°Π·Π°ΡΠ΅Π»Π΅ΠΌ ΡΠ°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΈ Π΅Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΡΠ°ΡΡΠ΅ΠΉ. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° Π² ΡΠ»ΡΡΠ°Π΅ ΠΎΡΠΊΠ°Π·Π° ΠΌΠ°ΡΡΠ΅ΡΠ° ΡΠΈΠ»ΡΠ½ΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π½Π° ΠΈΠ½ΡΠΈΠ΄Π΅Π½Ρ ΠΈ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ Ρ ΡΠ°ΡΡΠΌΠΎΡΡΡ ΡΡ
Π΅ΠΌΡ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½ΠΈΡ Π²ΡΡΠΎΠΊΠΎΠΉ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ (HA) ΠΊΠ»Π°ΡΡΠ΅ΡΠ° MySQL Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅
HA-ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ VIP
Π‘Π½Π°ΡΠ°Π»Π° ΠΊΡΠ°ΡΠΊΠΎ ΡΠ°ΡΡΠΊΠ°ΠΆΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ· ΡΠ΅Π±Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ .
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΡΡ ΡΡ Π΅ΠΌΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΠΎΠ΄Π½ΠΈΠΌ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ, Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌ Π½Π° Π·Π°ΠΏΠΈΡΡ, ΠΈ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ΅ΠΏΠ»ΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ»Π°ΡΡΠ΅Ρ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ β ΡΠ·Π΅Π», ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΎΠΉ, ΠΈ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ Π΄Π»Ρ Π΄ΡΡΠ³ΠΈΡ . ΠΠ»ΠΈΠ΅Π½ΡΡ ΠΎΠ±ΡΠ°ΡΠ°ΡΡΡΡ ΠΊ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΠΌ ΡΠ΅ΡΠ΅Π· HAProxy, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΠ°Π²Π½ΠΎΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΡΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ Π½Π°Π³ΡΡΠ·ΠΊΡ ΠΈ Π»Π΅Π³ΠΊΠΎ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°ΡΡΡΡ. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ HAProxy ΠΎΠ±ΡΡΠ»ΠΎΠ²Π»Π΅Π½ΠΎ ΠΈΡΡΠΎΡΠΈΡΠ΅ΡΠΊΠΈΠΌΠΈ ΠΏΡΠΈΡΠΈΠ½Π°ΠΌΠΈ, ΠΈ ΡΠ΅ΠΉΡΠ°Ρ ΠΌΡ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΌΠΈΠ³ΡΠ°ΡΠΈΠΈ Π½Π° ProxySQL.
Π Π΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΠΏΠΎΠ»ΡΡΠΈΠ½Ρ
ΡΠΎΠ½Π½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ GTID
. ΠΡΠΎ Π·Π½Π°ΡΠΈΡ, ΡΡΠΎ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ ΠΎΠ΄Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π·Π°ΠΏΠΈΡΠ°ΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΡ Π² ΠΆΡΡΠ½Π°Π», ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠ° Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠ·Π½Π°Π½Π° ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ. Π’Π°ΠΊΠΎΠΉ ΡΠ΅ΠΆΠΈΠΌ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΎΠΏΡΠΈΠΌΠ°Π»ΡΠ½ΡΠΉ Π±Π°Π»Π°Π½Ρ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΡΡΡΡ ΠΈ ΡΠΎΡ
ΡΠ°Π½Π½ΠΎΡΡΡΡ Π΄Π°Π½Π½ΡΡ
Π² ΡΠ»ΡΡΠ°Π΅ Π²ΡΡ
ΠΎΠ΄Π° ΠΈΠ· ΡΡΡΠΎΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠ·Π»Π°. Π ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π²ΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΠΎΡ ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΊ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Row Based Replication (RBR)
, Π½ΠΎ ΡΠ°ΡΡΡ ΡΠ·Π»ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ ΠΈΠΌΠ΅ΡΡ mixed binlog format
.
ΠΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, Π°Π½Π°Π»ΠΈΠ·ΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈ Π² ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΌΠΎΠΆΠ΅Ρ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. ΠΠ° ΡΠ°ΠΌΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΡ ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΅Ρ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π°ΠΌΠΈ: Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ VIP, DNS, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ ΡΠ»ΡΠΆΠ± ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² (service discovery) ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΎΠΏΠΈΡΠ½ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΎΠ².
ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΠΏΡΠΎΡΡΡΡ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΌΠ°ΡΡΠ΅ΡΠ° Π² ΡΠ»ΡΡΠ°Π΅ Π΅Π³ΠΎ ΠΎΡΠΊΠ°Π·Π° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ»Π°Π²Π°ΡΡΠΈΡ VIP-Π°Π΄ΡΠ΅ΡΠΎΠ².
Π§ΡΠΎ Π½ΡΠΆΠ½ΠΎ Π·Π½Π°ΡΡ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ΅ΡΠ΅Π½ΠΈΠΈ, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π΄Π²ΠΈΠ³Π°ΡΡΡΡ Π΄Π°Π»ΡΡΠ΅:
- VIP β ΡΡΠΎ IP-Π°Π΄ΡΠ΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π΅ ΠΏΡΠΈΠ²ΡΠ·Π°Π½ ΠΊ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠΈΠ·ΠΈΡΠ΅ΡΠΊΠΎΠΌΡ ΡΠ΅ΡΠ΅Π²ΠΎΠΌΡ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ. ΠΡΠΈ Π²ΡΡ ΠΎΠ΄Π΅ ΡΠ·Π»Π° ΠΈΠ· ΡΡΡΠΎΡ ΠΈΠ»ΠΈ ΠΏΡΠΈ ΠΏΠ»Π°Π½ΠΎΠ²ΡΡ ΡΠ°Π±ΠΎΡΠ°Ρ ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠΈΡΡ VIP Π½Π° Π΄ΡΡΠ³ΠΎΠΉ ΡΠ΅ΡΡΡΡ Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΡΠΌ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ ΠΏΡΠΎΡΡΠΎΡ.
- ΠΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΈ Π²ΡΠ΄Π°ΡΠ° Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ IP-Π°Π΄ΡΠ΅ΡΠ° β Π΄Π΅ΡΠ΅Π²ΡΠ΅ ΠΈ Π±ΡΡΡΡΡΠ΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ.
- ΠΠ»Ρ ΡΠ°Π±ΠΎΡΡ Ρ VIP ΡΡΠ΅Π±ΡΠ΅ΡΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ ΠΏΠΎ SSH, Π»ΠΈΠ±ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΡ
ΡΡΠΈΠ»ΠΈΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ,
keepalived
.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ Π½Π°ΡΠΈΠΌ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ ΠΈ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠΌ, ΠΊΠ°ΠΊ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΎΡΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ³ΠΎ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ.
ΠΡΠΎΠΏΠ°Π»Π° ΡΠ΅ΡΠ΅Π²Π°Ρ ΡΠ²ΡΠ·Π½ΠΎΡΡΡ Π΄ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ°, Π»ΠΈΠ±ΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π½Π° ΡΡΠΎΠ²Π½Π΅ Β«ΠΆΠ΅Π»Π΅Π·Π°Β», ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½
- ΠΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΠ΅Ρ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°, ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΡΠΎΠΎΠ±ΡΠ°Π΅Ρ ΠΎ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΠΈ ΠΌΠ°ΡΡΠ΅ΡΠ°. ΠΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΡΠ±ΠΎΡΠ° ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ, ΠΏΠΎΠ΄Ρ ΠΎΠ΄ΡΡΠ΅ΠΉ Π½Π° ΡΠΎΠ»Ρ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ°, ΠΈ Π½Π°ΡΠΈΠ½Π°Π΅Ρ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅.
- ΠΡΡΠ°Π΅ΠΌΡΡ ΡΠ½ΡΡΡ VIP ΡΠΎ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ° β Π±Π΅Π·ΡΡΠΏΠ΅ΡΠ½ΠΎ.
- Π Π΅ΠΏΠ»ΠΈΠΊΠ° ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π½Π° ΡΠΎΠ»Ρ ΠΌΠ°ΡΡΠ΅ΡΠ°. Π’ΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΡΡ.
- ΠΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ Π½ΠΎΠ²ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ VIP. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ½ΡΡΡ VIP Π½Π΅ ΡΠ΄Π°Π»ΠΎΡΡ, Π² ΡΠΎΠ½ΠΎΠ²ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΠΌ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ Π·Π°ΠΏΡΠΎΡΠ° gratuitous ARP. ΠΡΠΎΡ Π²ΠΈΠ΄ Π·Π°ΠΏΡΠΎΡΠ°/ΠΎΡΠ²Π΅ΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ Π½Π° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΡ
ΠΊΠΎΠΌΠΌΡΡΠ°ΡΠΎΡΠ°Ρ
ΡΠ°Π±Π»ΠΈΡΡ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ IP- ΠΈ MAC-Π°Π΄ΡΠ΅ΡΠΎΠ², ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡ ΠΎ ΠΏΠ΅ΡΠ΅Π΅Π·Π΄Π΅ Π½Π°ΡΠ΅Π³ΠΎ VIP. ΠΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ
split brain
ΠΏΡΠΈ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ°. - ΠΡΠ΅ Π½ΠΎΠ²ΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ ΡΡΠ°Π·Ρ ΠΆΠ΅ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΡΡΡΡ Π½Π° Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ. Π‘ΡΠ°ΡΡΠ΅ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΡ Π·Π°Π²Π΅ΡΡΠ°ΡΡΡΡ Π½Π΅ΡΠ΄Π°ΡΠ½ΠΎ, Π²ΡΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠ΅ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΡ ΠΊ ΠΠ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
Π‘Π΅ΡΠ²Π΅Ρ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ Π² Π½ΠΎΡΠΌΠ°Π»ΡΠ½ΠΎΠΌ ΡΠ΅ΠΆΠΈΠΌΠ΅, ΠΏΡΠΎΠΈΠ·ΠΎΡΠ΅Π» ΠΎΡΠΊΠ°Π· Π½Π° ΡΡΠΎΠ²Π½Π΅ Π‘Π£ΠΠ
ΠΠ»Π³ΠΎΡΠΈΡΠΌ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅ΠΌΡ ΡΠ»ΡΡΠ°Ρ: ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ. Π’Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½, ΠΌΡ ΡΡΠΏΠ΅ΡΠ½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π°Π΅ΠΌ VIP Π½Π° ΡΡΠ°ΡΠΎΠΌ ΠΌΠ°ΡΡΠ΅ΡΠ΅, ΠΏΠ΅ΡΠ΅Π½ΠΎΡΠΈΠΌ Π΅Π³ΠΎ Π½Π° Π½ΠΎΠ²ΡΠΉ ΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ARP-Π·Π°ΠΏΡΠΎΡΠΎΠ². ΠΠΎΠ·ΠΌΠΎΠΆΠ½ΡΠΉ Π²ΠΎΠ·Π²ΡΠ°Ρ ΡΡΠ°ΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ° Π½Π΅ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΠΎΠ²Π»ΠΈΡΡΡ Π½Π° ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΊΠ»Π°ΡΡΠ΅Ρ ΠΈ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ
ΠΡΠΊΠ°Π· ΡΠ΅ΠΏΠ»ΠΈΠΊ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅ΠΆΡΡΠΎΡΠ½ΡΡ ΠΌΠ°ΡΡΠ΅ΡΠΎΠ² Π½Π΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡ ΠΊ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠΌ ΠΈ ΡΡΠ΅Π±ΡΠ΅Ρ ΡΡΡΠ½ΠΎΠ³ΠΎ Π²ΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΡΡΠ²Π°.
ΠΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π²ΡΠ΅Π³Π΄Π° Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ, ΡΠΎ Π΅ΡΡΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ΅Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° VIP Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π½Π΅ Π½Π°Π·Π½Π°ΡΠ°Π΅ΡΡΡ. ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠΊΠ·Π΅ΠΌΠΏΠ»ΡΡ ΠΠ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π² ΡΠ΅ΠΆΠΈΠΌΠ΅ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΡΡΠ΅Π½ΠΈΡ, ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ°Π΅Ρ Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ Π½Π° Π·Π°ΠΏΠΈΡΡ ΠΈ ΠΏΡΠΎΠ±ΡΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ read only
Π½Π° ΡΡΠ°ΡΠΎΠΌ ΠΌΠ°ΡΡΠ΅ΡΠ΅. ΠΡΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½Ρ Π½Π° ΡΠΌΠ΅Π½ΡΡΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΠΈ split brain
.
Π ΠΏΡΠΎΡΠ΅ΡΡΠ΅ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΌΠΎΠ³ΡΡ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, ΠΎ ΠΊΠΎΡΠΎΡΡΡ
ΡΡΠΎΠΈΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ²Π΅Π΄ΠΎΠΌΠ»ΡΡΡ ΡΠ΅ΡΠ΅Π· UI ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡΠ° ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
ΡΡΠ΅Π΄ΡΡΠ² ΠΌΠΎΠ½ΠΈΡΠΎΡΠΈΠ½Π³Π°. ΠΡ ΡΠ°ΡΡΠΈΡΠΈΠ»ΠΈ REST API, Π΄ΠΎΠ±Π°Π²ΠΈΠ² ΡΠ°ΠΊΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ (
ΠΠ±ΡΠ°Ρ ΡΡ Π΅ΠΌΠ° HA-ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π½ΠΈΠΆΠ΅.
ΠΡΠ±ΠΎΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠ΅ΡΠ°
ΠΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΌΡΠ½ ΠΈ ΡΡΠ°ΡΠ°Π΅ΡΡΡ Π²ΡΠ±ΡΠ°ΡΡ
- ΠΎΡΡΡΠ°Π²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ ΠΎΡ ΠΌΠ°ΡΡΠ΅ΡΠ°;
- Π²Π΅ΡΡΠΈΡ MySQL ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΈ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ;
- ΡΠΈΠΏ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ (RBR, SBR ΠΈΠ»ΠΈ mixed);
- ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ»ΠΈ ΡΠ°Π·Π½ΡΡ Π΄Π°ΡΠ°-ΡΠ΅Π½ΡΡΠ°Ρ ;
- Π½Π°Π»ΠΈΡΠΈΠ΅
errant GTID
β ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ»ΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½Ρ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ΅ ΠΈ ΠΎΡΡΡΡΡΡΠ²ΡΡΡ Π½Π° ΠΌΠ°ΡΡΠ΅ΡΠ΅; - ΡΠ°ΠΊΠΆΠ΅ ΡΡΠΈΡΡΠ²Π°ΡΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΡΠΊΠΈΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π²ΡΠ±ΠΎΡΠ°.
ΠΠ΅ ΠΊΠ°ΠΆΠ΄Π°Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΈΠ΄Π΅Π°Π»ΡΠ½ΡΠΌ ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠΌ Π½Π° ΡΠΎΠ»Ρ ΠΌΠ°ΡΡΠ΅ΡΠ°. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΡΠ΅Π·Π΅ΡΠ²Π½ΠΎΠ³ΠΎ ΠΊΠΎΠΏΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ
, Π»ΠΈΠ±ΠΎ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΎΠ»Π΅Π΅ ΡΠ»Π°Π±ΡΡ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ Β«ΠΆΠ΅Π»Π΅Π·Π°Β». ΠΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡ
ΠΡΠ΅ΠΌΡ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ
Π ΡΠ»ΡΡΠ°Π΅ ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΠ° Π²Π°ΠΆΠ½ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ MySQL, Π²Π»ΠΈΡΡΡΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΠ΅ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡΠΎΠΌ:
β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄, Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΠΎΠΆΠΈΠ΄Π°Π΅Ρ ΠΏΠΎΡΡΡΠΏΠ»Π΅Π½ΠΈΡ Π½ΠΎΠ²ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ heartbeat-ΡΠΈΠ³Π½Π°Π»Π° ΠΎΡ ΠΌΠ°ΡΡΠ΅ΡΠ°, ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠ΅ ΠΏΡΠΈΠ·Π½Π°Π΅ΡΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Π½ΡΠΌ ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅. Π§Π΅ΠΌ ΠΌΠ΅Π½ΡΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅, ΡΠ΅ΠΌ Π±ΡΡΡΡΠ΅Π΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ° ΡΠΌΠΎΠΆΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΡΡ, ΡΡΠΎ ΡΠ²ΡΠ·Ρ Ρ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ Π½Π°ΡΡΡΠ΅Π½Π°. ΠΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅ΠΌ ΡΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠ°Π²Π½ΡΠΌ 5 ΡΠ΅ΠΊΡΠ½Π΄Π°ΠΌ.slave_net_timeout
β ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΡΠ΅ΠΊΡΠ½Π΄ ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠΏΡΡΠΊΠ°ΠΌΠΈ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ. Π ΡΠ»ΡΡΠ°Π΅ ΡΠ΅ΡΠ΅Π²ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π½ΠΈΠ·ΠΊΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π±ΡΡΡΡΠΎ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠΈΡΡΡΡ ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ Π·Π°ΠΏΡΡΠΊ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΊΠ»Π°ΡΡΠ΅ΡΠ°. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ β 1 ΡΠ΅ΠΊΡΠ½Π΄Π°.MASTER_CONNECT_RETRY
MASTER_RETRY_COUNT
β ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎΠ΅ ΠΊΠΎΠ»ΠΈΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠΏΡΡΠΎΠΊ ΠΏΠ΅ΡΠ΅ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.MASTER_HEARTBEAT_PERIOD
β ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» Π² ΡΠ΅ΠΊΡΠ½Π΄Π°Ρ , ΠΏΠΎΡΠ»Π΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠ°ΡΡΠ΅Ρ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ heartbeat-ΡΠΈΠ³Π½Π°Π». ΠΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ΡΠ°Π²Π΅Π½ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡslave_net_timeout
.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡΠ°:
DelayMasterPromotionIfSQLThreadNotUpToDate
β Π΅ΡΠ»ΠΈ ΡΠ°Π²Π΅Π½true
, ΡΠΎ ΡΠΎΠ»Ρ ΠΌΠ°ΡΡΠ΅ΡΠ° Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π° Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ΅-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠ΅ Π΄ΠΎ ΡΠ΅Ρ ΠΏΠΎΡ, ΠΏΠΎΠΊΠ° SQL-ΠΏΠΎΡΠΎΠΊ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Π½Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ Π²ΡΠ΅ Π½Π΅ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½Π½ΡΠ΅ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ ΠΈΠ· Relay Log. ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΡΡΡ ΠΎΠΏΡΠΈΡ, ΡΡΠΎΠ±Ρ Π½Π΅ ΡΠ΅ΡΡΡΡ ΡΡΠ°Π½Π·Π°ΠΊΡΠΈΠΈ Π² ΡΡΠ»ΠΎΠ²ΠΈΡΡ ΠΎΡΡΡΠ°Π²Π°Π½ΠΈΡ Π²ΡΠ΅Ρ ΡΠ΅ΠΏΠ»ΠΈΠΊ-ΠΊΠ°Π½Π΄ΠΈΠ΄Π°ΡΠΎΠ².InstancePollSeconds
β ΡΠ°ΡΡΠΎΡΠ° ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ.RecoveryPollSeconds
β ΡΠ°ΡΡΠΎΡΠ° Π°Π½Π°Π»ΠΈΠ·Π° ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ. Π ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π·Π°ΠΏΡΡΠΊΠ°Π΅ΡΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠΈ. ΠΡΠΎΠΊΠΎΠ½ΡΡΠ°Π½ΡΠ° , ΡΠ°Π²Π½Π°Ρ 1 ΡΠ΅ΠΊΡΠ½Π΄Π΅.
ΠΠ°ΠΆΠ΄ΡΠΉ ΡΠ·Π΅Π» ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΎΠΏΡΠ°ΡΠΈΠ²Π°Π΅ΡΡΡ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡΠΎΠΌ ΠΎΠ΄ΠΈΠ½ ΡΠ°Π· Π² InstancePollSeconds
ΡΠ΅ΠΊΡΠ½Π΄. ΠΡΠΈ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΠ΅ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎ
Π’Π΅ΡΡΠΎΠ²ΡΠΉ ΡΡΠ΅Π½Π΄
Π’Π΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ HA-ΡΡ
Π΅ΠΌΡ ΠΌΡ Π½Π°ΡΠ°Π»ΠΈ Ρ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎΠ³ΠΎ
ΠΠΎ Π²ΡΠ΅ΠΌΡ ΡΡΠ΅Π½ΠΈΠΉ ΠΌΡ Π²ΡΠ±ΠΈΡΠ°Π΅ΠΌ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ΅ΡΠΎΠ΄ΠΎΠ² ΡΠΌΡΠ»ΡΡΠΈΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ: ΠΌΠ³Π½ΠΎΠ²Π΅Π½Π½ΠΎ ΠΎΡΡΡΡΠ΅Π»ΠΈΡΡ ΠΌΠ°ΡΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ kill -9
, ΠΌΡΠ³ΠΊΠΎ Π·Π°Π²Π΅ΡΡΠΈΡΡ ΠΏΡΠΎΡΠ΅ΡΡ ΠΈ ΠΎΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΠ²Π΅Ρ (docker-compose stop
), ΠΈΠΌΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΡΠ΅ΡΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ iptables -j REJECT
ΠΈΠ»ΠΈ iptables -j DROP
. ΠΡ ΠΎΠΆΠΈΠ΄Π°Π΅ΠΌ ΡΠ°ΠΊΠΈΠ΅ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ:
- ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡ ΠΎΠ±Π½Π°ΡΡΠΆΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Ρ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ ΠΈ ΠΎΠ±Π½ΠΎΠ²ΠΈΡ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ ΡΠ΅ΠΌ Π·Π° 10 ΡΠ΅ΠΊΡΠ½Π΄;
- Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡΡ ΠΏΡΠΎΡΠ΅Π΄ΡΡΠ° Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ: ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ ΡΠ΅ΡΠ΅Π²Π°Ρ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ, ΡΠΎΠ»Ρ ΠΌΠ°ΡΡΠ΅ΡΠ° ΠΏΠ΅ΡΠ΅ΠΉΠ΄ΡΡ ΠΊ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ΅, ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΡ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠΈΡΡΡ;
- Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ ΡΡΠ°Π½Π΅Ρ Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π΄Π»Ρ Π·Π°ΠΏΠΈΡΠΈ, ΠΆΠΈΠ²ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΡΠ΅ΡΡΠ½Ρ Π² ΠΏΡΠΎΡΠ΅ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΡΡΡΠΎΠ΅Π½ΠΈΡ;
- Π΄Π°Π½Π½ΡΠ΅ Π½Π°ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΡΠ²Π°ΡΡΡΡ Π² Π½ΠΎΠ²ΡΠΉ ΠΌΠ°ΡΡΠ΅Ρ ΠΈ ΡΠ΅ΠΏΠ»ΠΈΡΠΈΡΠΎΠ²Π°ΡΡΡΡ;
- ΠΎΠ±ΡΠ΅Π΅ Π²ΡΠ΅ΠΌΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΡΡΠ°Π²ΠΈΡ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ 30 ΡΠ΅ΠΊΡΠ½Π΄.
ΠΠ°ΠΊ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π²Π΅ΡΡΠΈ ΡΠ΅Π±Ρ ΠΏΠΎ-ΡΠ°Π·Π½ΠΎΠΌΡ Π² ΡΠ΅ΡΡΠΎΠ²ΠΎΠΌ ΠΈ production-ΠΎΠΊΡΡΠΆΠ΅Π½ΠΈΡΡ ΠΈΠ·-Π·Π° ΡΠ°Π·Π½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ Β«ΠΆΠ΅Π»Π΅Π·Π°Β» ΠΈ ΡΠ΅ΡΠΈ, ΡΠ°Π·Π»ΠΈΡΠΈΠΉ Π² ΡΠΈΠ½ΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΠΈ ΡΠ΅Π°Π»ΡΠ½ΠΎΠΉ Π½Π°Π³ΡΡΠ·ΠΊΠ΅ ΠΈ Ρ.Π΄. ΠΠΎΡΡΠΎΠΌΡ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΈ ΠΌΡ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΠΌ ΡΡΠ΅Π½ΠΈΡ Π² ΡΠ΅Π°Π»ΡΠ½ΡΡ ΡΡΠ»ΠΎΠ²ΠΈΡΡ , ΠΏΡΠΎΠ²Π΅ΡΡΡ, ΠΊΠ°ΠΊ Π²Π΅Π΄Π΅Ρ ΡΠ΅Π±Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΏΡΠΈ ΠΏΠΎΡΠ΅ΡΠ΅ ΡΠ΅ΡΠ΅Π²ΠΎΠΉ ΡΠ²ΡΠ·Π½ΠΎΡΡΠΈ ΠΈΠ»ΠΈ Π΄Π΅Π³ΡΠ°Π΄Π°ΡΠΈΠΈ Π΅Π΅ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ°ΡΡΠ΅ΠΉ. Π Π±ΡΠ΄ΡΡΠ΅ΠΌ Ρ ΠΎΡΠΈΠΌ ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΠΏΠΎΠ»Π½ΠΎΡΡΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠ½ΡΡ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π΄Π»Ρ ΠΎΠ±Π΅ΠΈΡ ΡΡΠ΅Π΄ ΠΈ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ Π΅Π΅ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅.
ΠΡΠ²ΠΎΠ΄Ρ
Π Π°Π±ΠΎΡΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΡ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ ΡΠ·Π»Π° ΡΠΈΡΡΠ΅ΠΌΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π΄Π°Π½Π½ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π·Π°Π΄Π°Ρ ΠΊΠΎΠΌΠ°Π½Π΄Ρ SRE ΠΈ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ. ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠΊΠ΅ΡΡΡΠ°ΡΠΎΡΠ° ΠΈ HA-ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ VIP ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΡ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ²:
- Π½Π°Π΄Π΅ΠΆΠ½ΠΎΠ΅ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ Ρ ΡΠΎΠΏΠΎΠ»ΠΎΠ³ΠΈΠ΅ΠΉ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° ΠΠ;
- Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΈ Π±ΡΡΡΡΠΎΠ΅ ΡΠ΅Π°Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ Π½Π° ΠΈΠ½ΡΠΈΠ΄Π΅Π½ΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ ΠΌΠ°ΡΡΠ΅ΡΠΎΠΌ, ΡΡΠΎ ΡΠ½ΠΈΠΆΠ°Π΅Ρ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ:
- ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ HA-ΡΡ Π΅ΠΌΡ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ Π¦ΠΠΠΎΠ² ΠΏΠΎΡΡΠ΅Π±ΡΠ΅Ρ Π½Π°Π»ΠΈΡΠΈΡ Π΅Π΄ΠΈΠ½ΠΎΠΉ L2-ΡΠ΅ΡΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ;
- ΠΏΡΠ΅ΠΆΠ΄Π΅ ΡΠ΅ΠΌ Π½Π°Π·Π½Π°ΡΠΈΡΡ VIP Π½Π° Π½ΠΎΠ²ΠΎΠΌ ΠΌΠ°ΡΡΠ΅ΡΠ΅, Π½Π°ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡΡ Π΅Π³ΠΎ Π½Π° ΡΡΠ°ΡΠΎΠΌ. ΠΡΠΎΡΠ΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΡΠΌ, ΡΡΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π²ΡΠ΅ΠΌΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ;
- ΠΎΡΠ²ΠΎΠ±ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ VIP ΡΡΠ΅Π±ΡΠ΅Ρ SSH-Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΠ²Π΅ΡΡ, Π»ΠΈΠ±ΠΎ Π»ΡΠ±ΠΎΠ³ΠΎ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΡΠΏΠΎΡΠΎΠ±Π° Π²ΡΠ·ΠΎΠ²Π° ΡΠ΄Π°Π»Π΅Π½Π½ΡΡ
ΠΏΡΠΎΡΠ΅Π΄ΡΡ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ΅ΡΠ²Π΅Ρ ΠΈΠ»ΠΈ ΠΠ ΠΈΡΠΏΡΡΡΠ²Π°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π²ΡΠ·Π²Π°Π²ΡΠΈΠ΅ ΠΏΡΠΎΡΠ΅ΡΡ Π²ΠΎΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ, ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π±ΡΡΡ ΡΠ²Π΅ΡΠ΅Π½Ρ, ΡΡΠΎ ΡΠ½ΡΡΠΈΠ΅ VIP Π·Π°Π²Π΅ΡΡΠΈΡΡΡ ΡΠ΄Π°ΡΠ½ΠΎ. Π ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡ Π΄Π²ΡΡ
ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Ρ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠΌ Π²ΠΈΡΡΡΠ°Π»ΡΠ½ΡΠΌ IP-Π°Π΄ΡΠ΅ΡΠΎΠΌ ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅
split brain
.
Π§ΡΠΎΠ±Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ split brain
, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅ΡΠΎΠ΄
Π― ΡΠ°ΡΡΠΊΠ°Π·Π°Π» ΠΎ Π½Π°ΡΠ΅ΠΌ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π΅ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΎΡΠΊΠ°Π·ΠΎΡΡΡΠΎΠΉΡΠΈΠ²ΠΎΠ³ΠΎ ΠΊΠ»Π°ΡΡΠ΅ΡΠ° MySQL. ΠΠ½ ΠΏΡΠΎΡΡ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΠΏΡΠΈΠ΅ΠΌΠ»Π΅ΠΌΡΠΉ ΡΡΠΎΠ²Π΅Π½Ρ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ Π² ΡΠ΅ΠΊΡΡΠΈΡ
ΡΡΠ»ΠΎΠ²ΠΈΡΡ
. ΠΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ Π²ΡΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΡ Π² ΡΠ΅Π»ΠΎΠΌ ΠΈ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ ΡΡΠΎΡ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄, Π½Π΅ΡΠΎΠΌΠ½Π΅Π½Π½ΠΎ, Π±ΡΠ΄Π΅Ρ ΡΠ²ΠΎΠ»ΡΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°ΡΡ.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: habr.com