MySQL рдХреНрд▓рд╕реНрдЯрд░рд╕рд╛рдареА HA рд╕реЛрд▓реНрдпреВрд╢рди рдореНрд╣рдгреВрди рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдЖрдгрд┐ VIP

рд╕рд┐рдЯреАрдореЛрдмрд┐рд▓рдордзреНрдпреЗ рдЖрдореНрд╣реА рдЖрдордЪрд╛ рдореБрдЦреНрдп рдкрд░реНрд╕рд┐рд╕реНрдЯрдВрдЯ рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рдореНрд╣рдгреВрди MySQL рдбреЗрдЯрд╛рдмреЗрд╕ рд╡рд╛рдкрд░рддреЛ. рдЖрдордЪреНрдпрд╛рдХрдбреЗ рд╡рд┐рд╡рд┐рдз рд╕реЗрд╡рд╛ рдЖрдгрд┐ рдЙрджреНрджреЗрд╢рд╛рдВрд╕рд╛рдареА рдЕрдиреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╕реНрдЯрд░ рдЖрд╣реЗрдд.

рдорд╛рд╕реНрдЯрд░рдЪреА рд╕рддрдд рдЙрдкрд▓рдмреНрдзрддрд╛ рд╕рдВрдкреВрд░реНрдг рдкреНрд░рдгрд╛рд▓реА рдЖрдгрд┐ рддреНрдпрд╛рдЪреНрдпрд╛ рд╡реИрдпрдХреНрддрд┐рдХ рднрд╛рдЧрд╛рдВрдЪреНрдпрд╛ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рдирд╛рдЪреЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рд╕реВрдЪрдХ рдЖрд╣реЗ. рдорд╛рд╕реНрдЯрд░ рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рдШрдЯрдирд╛ рдкреНрд░рддрд┐рд╕рд╛рдж рд╡реЗрд│ рдЖрдгрд┐ рд╕рд┐рд╕реНрдЯрдо рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдореЛрдареНрдпрд╛ рдкреНрд░рдорд╛рдгрд╛рдд рдХрдореА рдХрд░рддреЗ. рдпрд╛ рд▓реЗрдЦрд╛рдд, рдореА рдпрд╛рд╡рд░ рдЖрдзрд╛рд░рд┐рдд MySQL рдХреНрд▓рд╕реНрдЯрд░рд╕рд╛рдареА рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ (HA) рдбрд┐рдЭрд╛рдЗрди рдкрд╛рд╣рдгрд╛рд░ рдЖрд╣реЗ. MySQL рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдЖрдгрд┐ рдЖрднрд╛рд╕реА IP рдкрддреНрддреЗ (VIP).

MySQL рдХреНрд▓рд╕реНрдЯрд░рд╕рд╛рдареА HA рд╕реЛрд▓реНрдпреВрд╢рди рдореНрд╣рдгреВрди рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдЖрдгрд┐ VIP

рд╡реНрд╣реАрдЖрдпрдкреАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдПрдЪрдП рд╕рдорд╛рдзрд╛рди

рдкреНрд░рдердо, рдЖрдордЪреА рдбреЗрдЯрд╛ рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд┐рд╕реНрдЯрдо рдХрд╛рдп рдЖрд╣реЗ рддреЗ рдореА рддреБрдореНрд╣рд╛рд▓рд╛ рдереЛрдбрдХреНрдпрд╛рдд рд╕рд╛рдВрдЧреЗрди.

рдЖрдореНрд╣реА рдПрдХ рд▓реЗрдЦрди-рдкреНрд░рд╡реЗрд╢рдпреЛрдЧреНрдп рдорд╛рд╕реНрдЯрд░ рдЖрдгрд┐ рдПрдХрд╛рдзрд┐рдХ-рд╡рд╛рдЪрдиреАрдп рдкреНрд░рддрд┐рдХреГрддреАрдВрд╕рд╣ рдХреНрд▓рд╛рд╕рд┐рдХ рдкреНрд░рддрд┐рдХреГрддреА рдпреЛрдЬрдирд╛ рд╡рд╛рдкрд░рддреЛ. рдХреНрд▓рд╕реНрдЯрд░рдордзреНрдпреЗ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдорд╛рд╕реНрдЯрд░ рдЕрд╕реВ рд╢рдХрддреЛ - рдПрдХ рдиреЛрдб рдЬреЛ рдЗрддрд░рд╛рдВрд╕рд╛рдареА рдкреНрд░рддрд┐рдХреГрддреА рдЖрдгрд┐ рдорд╛рд╕реНрдЯрд░ рджреЛрдиреНрд╣реА рдЖрд╣реЗ. рдХреНрд▓рд╛рдпрдВрдЯ HAProxy рджреНрд╡рд╛рд░реЗ рдкреНрд░рддрд┐рдХреГрддреАрдВрдордзреНрдпреЗ рдкреНрд░рд╡реЗрд╢ рдХрд░рддрд╛рдд, рдЬреЗ рд╕рдорд╛рди рд▓реЛрдб рд╡рд┐рддрд░рдг рдЖрдгрд┐ рд╕реБрд▓рдн рд╕реНрдХреЗрд▓рд┐рдВрдЧрд╕рд╛рдареА рдЕрдиреБрдорддреА рджреЗрддреЗ. HAProxy рдЪрд╛ рд╡рд╛рдкрд░ рдРрддрд┐рд╣рд╛рд╕рд┐рдХ рдХрд╛рд░рдгрд╛рдВрдореБрд│реЗ рдЖрд╣реЗ рдЖрдгрд┐ рдЖрдореНрд╣реА рд╕рдзреНрдпрд╛ ProxySQL рд╡рд░ рд╕реНрдерд▓рд╛рдВрддрд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдХреНрд░рд┐рдпреЗрдд рдЖрд╣реЛрдд.

рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдЕрд░реНрдз-рд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдореЛрдбрдордзреНрдпреЗ рдкреНрд░рддрд┐рдХреГрддреА рдХреЗрд▓реА рдЬрд╛рддреЗ GTID. рдпрд╛рдЪрд╛ рдЕрд░реНрде рдЕрд╕рд╛ рдХреА рдХрд┐рдорд╛рди рдПрдХрд╛ рдкреНрд░рддрд┐рдХреГрддреАрдиреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдпрд╢рд╕реНрд╡реА рдорд╛рдирд▓рд╛ рдЬрд╛рдгреНрдпрд╛рдкреВрд░реНрд╡реА рд▓реЙрдЧ рдЗрди рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рд╣рд╛ рдкреНрд░рддрд┐рдХреГрддреА рдореЛрдб рдорд╛рд╕реНрдЯрд░ рдиреЛрдб рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕ рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдЖрдгрд┐ рдбреЗрдЯрд╛ рд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ рджрд░рдореНрдпрд╛рди рдЗрд╖реНрдЯрддрдо рд╕рдВрддреБрд▓рди рдкреНрд░рджрд╛рди рдХрд░рддреЛ. рдореБрд│рд╛рдд рд╕рд░реНрд╡ рдмрджрд▓ рдорд╛рд╕реНрдЯрд░рдХрдбреВрди рдкреНрд░рддрд┐рдХреГрддреА рд╡рд╛рдкрд░реВрди рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд Row Based Replication (RBR), рдкрд░рдВрддреБ рдХрд╛рд╣реА рдиреЛрдбреНрд╕ рдЕрд╕реВ рд╢рдХрддрд╛рдд mixed binlog format.

рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рд╡реЗрд│реЛрд╡реЗрд│реА рдХреНрд▓рд╕реНрдЯрд░ рдЯреЛрдкреЛрд▓реЙрдЬреАрдЪреА рд╕реНрдерд┐рддреА рдЕрджреНрдпрддрдирд┐рдд рдХрд░рддреЛ, рдкреНрд░рд╛рдкреНрдд рдЭрд╛рд▓реЗрд▓реНрдпрд╛ рдорд╛рд╣рд┐рддреАрдЪреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рддреЛ рдЖрдгрд┐ рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡рд▓реНрдпрд╛рд╕, рддреЛ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрд░реВ рдХрд░реВ рд╢рдХрддреЛ. рд╡рд┐рдХрд╕рдХ рд╕реНрд╡рддрдГ рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕рд╛рдареА рдЬрдмрд╛рдмрджрд╛рд░ рдЖрд╣реЗ, рдХрд╛рд░рдг рддреА рд╡реЗрдЧрд╡реЗрдЧрд│реНрдпрд╛ рдкреНрд░рдХрд╛рд░реЗ рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рдК рд╢рдХрддреЗ: VIP, DNS рд╡рд░ рдЖрдзрд╛рд░рд┐рдд, рд╕реЗрд╡рд╛ рд╢реЛрдз рд╕реЗрд╡рд╛ рдХрд┐рдВрд╡рд╛ рд╕реНрд╡рдпрдВ-рд▓рд┐рдЦрд┐рдд рдпрдВрддреНрд░рдгрд╛ рд╡рд╛рдкрд░реВрди.

рдорд╛рд╕реНрдЯрд░ рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕ рдкреБрдирд░реНрд╕рдВрдЪрдпрд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдПрдХ рд╕реЛрдкрд╛ рдорд╛рд░реНрдЧ рдореНрд╣рдгрдЬреЗ рдлреНрд▓реЛрдЯрд┐рдВрдЧ VIP рдкрддреНрддреЗ рд╡рд╛рдкрд░рдгреЗ.

рдкреБрдвреЗ рдЬрд╛рдгреНрдпрд╛рдкреВрд░реНрд╡реА рддреБрдореНрд╣рд╛рд▓рд╛ рдпрд╛ рдЙрдкрд╛рдпрд╛рдмрджреНрджрд▓ рдХрд╛рдп рдорд╛рд╣рд┐рдд рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ:

  • VIP рдПрдХ IP рдкрддреНрддрд╛ рдЖрд╣реЗ рдЬреЛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднреМрддрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдирд╛рд╣реА. рдиреЛрдб рдЕрдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реНрдпрд╛рд╕ рдХрд┐рдВрд╡рд╛ рдирд┐рдпреЛрдЬрд┐рдд рджреЗрдЦрднрд╛рд▓ рджрд░рдореНрдпрд╛рди, рдЖрдореНрд╣реА рдХрдореАрддрдХрдореА рдбрд╛рдЙрдирдЯрд╛рдЗрдорд╕рд╣ VIP рд▓рд╛ рджреБрд╕рд░реНтАНрдпрд╛ рд╕рдВрд╕рд╛рдзрдирд╛рд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░реВ рд╢рдХрддреЛ.
  • рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ IP рдкрддреНрддрд╛ рдореБрдХреНрдд рдХрд░рдгреЗ рдЖрдгрд┐ рдЬрд╛рд░реА рдХрд░рдгреЗ рд╣реЗ рдПрдХ рд╕реНрд╡рд╕реНрдд рдЖрдгрд┐ рдЬрд▓рдж рдСрдкрд░реЗрд╢рди рдЖрд╣реЗ.
  • рд╡реНрд╣реАрдЖрдпрдкреА рд╕рд╣ рдХрд╛рд░реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рддреБрдореНрд╣рд╛рд▓рд╛ рдПрд╕рдПрд╕рдПрдЪ рджреНрд╡рд╛рд░реЗ рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдкреНрд░рд╡реЗрд╢ рдХрд░рдгреЗ рдХрд┐рдВрд╡рд╛ рд╡рд┐рд╢реЗрд╖ рдЙрдкрдпреБрдХреНрддрддрд╛ рд╡рд╛рдкрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, keepalived.

рдЪрд▓рд╛ рдЖрдордЪреНрдпрд╛ рд╡рд┐рдЭрд╛рд░реНрдбрд╕рд╣ рд╕рдВрднрд╛рд╡реНрдп рд╕рдорд╕реНрдпрд╛ рдкрд╛рд╣реВ рдЖрдгрд┐ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рдпрдВрддреНрд░рдгрд╛ рдХрд╢реА рдХрд╛рд░реНрдп рдХрд░рд╛рд╡реА рдпрд╛рдЪреА рдХрд▓реНрдкрдирд╛ рдХрд░реВрдпрд╛.

рдорд╛рд╕реНрдЯрд░рд╢реА рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрдЯрд┐рд╡реНрд╣рд┐рдЯреА рдЧрд╛рдпрдм рдЭрд╛рд▓реА рдЖрд╣реЗ рдХрд┐рдВрд╡рд╛ рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рд╕реНрддрд░рд╛рд╡рд░ рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡рд▓реА рдЖрд╣реЗ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░ рдЕрдиреБрдкрд▓рдмреНрдз рдЖрд╣реЗ

  1. рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдХреНрд▓рд╕реНрдЯрд░ рдЯреЛрдкреЛрд▓реЙрдЬреА рдЕрдкрдбреЗрдЯ рдХрд░рддреЛ, рдкреНрд░рддреНрдпреЗрдХ рдкреНрд░рддрд┐рдХреГрддреА рдорд╛рд╕реНрдЯрд░ рдЕрдиреБрдкрд▓рдмреНрдз рдЕрд╕рд▓реНрдпрд╛рдЪрд╛ рдЕрд╣рд╡рд╛рд▓ рджреЗрддреЛ. рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдирд╡реАрди рдорд╛рд╕реНрдЯрд░рдЪреНрдпрд╛ рднреВрдорд┐рдХреЗрд╕рд╛рдареА рдпреЛрдЧреНрдп рдкреНрд░рддрд┐рдХреГрддреА рдирд┐рд╡рдбрдгреНрдпрд╛рдЪреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрд░реВ рдХрд░рддреЛ рдЖрдгрд┐ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рд╕реБрд░реВ рдХрд░рддреЛ.
  2. рдЖрдореНрд╣реА рдЬреБрдиреНрдпрд╛ рдорд╛рд╕реНрдЯрд░рдкрд╛рд╕реВрди рд╡реНрд╣реАрдЖрдпрдкреА рдХрд╛рдврдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реАрдд рдЖрд╣реЛрдд - рдпрд╢ рди рдпреЗрддрд╛.
  3. рдкреНрд░рддрд┐рдХреГрддреА рдорд╛рд╕реНрдЯрд░рдЪреНрдпрд╛ рднреВрдорд┐рдХреЗрд╡рд░ рд╕реНрд╡рд┐рдЪ рдХрд░рддреЗ. рдЯреЛрдкреЛрд▓реЙрдЬреАрдЪреА рдкреБрдирд░реНрдмрд╛рдВрдзрдгреА рдХреЗрд▓реА рдЬрд╛рдд рдЖрд╣реЗ.
  4. VIP рд╕рд╣ рдирд╡реАрди рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдЬреЛрдбрдд рдЖрд╣реЗ. рд╡реНрд╣реАрдЖрдпрдкреА рдХрд╛рдврдгреЗ рд╢рдХреНрдп рдирд╕рд▓реНрдпрд╛рдореБрд│реЗ, рдЖрдореНрд╣реА рд╡реЗрд│реЛрд╡реЗрд│реА рдкрд╛рд░реНрд╢реНрд╡рднреВрдореАрдд рд╡рд┐рдирдВрддреА рдкрд╛рдард╡рдгреЗ рд╕реБрд░реВ рдХрд░рддреЛ рдирд┐:рд╢реБрд▓реНрдХ ARP. рдпрд╛ рдкреНрд░рдХрд╛рд░рдЪреА рд╡рд┐рдирдВрддреА/рдкреНрд░рддрд┐рд╕рд╛рдж рддреБрдореНрд╣рд╛рд▓рд╛ рдХрдиреЗрдХреНрдЯ рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╕реНрд╡рд┐рдЪреЗрд╕рд╡рд░ IP рдЖрдгрд┐ MAC рдЕреЕрдбреНрд░реЗрд╕ рдореЕрдкрд┐рдВрдЧ рдЯреЗрдмрд▓ рдЕрдкрдбреЗрдЯ рдХрд░рдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЛ, рдЬреНрдпрд╛рдореБрд│реЗ рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реВрдЪрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рдИрд▓ рдХреА рдЖрдордЪрд╛ VIP рд╣рд▓рд▓рд╛ рдЖрд╣реЗ. рдпрд╛рдореБрд│реЗ рд╢рдХреНрдпрддрд╛ рдХрдореА рд╣реЛрддреЗ split brain рдЬреБрдирд╛ рдорд╛рд╕реНрдЯрд░ рдкрд░рдд рдХрд░рддрд╛рдирд╛.
  5. рд╕рд░реНрд╡ рдирд╡реАрди рдХрдиреЗрдХреНрд╢рди рддрд╛рдмрдбрддреЛрдм рдирд╡реАрди рдорд╛рд╕реНрдЯрд░рдХрдбреЗ рдкреБрдирд░реНрдирд┐рд░реНрджреЗрд╢рд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд. рдЬреБрдиреЗ рдХрдиреЗрдХреНрд╢рди рдЕрдпрд╢рд╕реНрд╡реА рд╣реЛрддрд╛рдд рдЖрдгрд┐ рдбреЗрдЯрд╛рдмреЗрд╕рд▓рд╛ рд╡рд╛рд░рдВрд╡рд╛рд░ рдХреЙрд▓ рдЕреЕрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрддрд░рд╛рд╡рд░ рдХреЗрд▓реЗ рдЬрд╛рддрд╛рдд.

рд╕рд░реНрд╡реНрд╣рд░ рд╕рд╛рдорд╛рдиреНрдп рдореЛрдбрдордзреНрдпреЗ рдХрд╛рд░реНрдпрд░рдд рдЖрд╣реЗ, рдбреАрдмреАрдПрдордПрд╕ рд╕реНрддрд░рд╛рд╡рд░ рдмрд┐рдШрд╛рдб рдЭрд╛рд▓рд╛

рдЕрд▓реНрдЧреЛрд░рд┐рджрдо рдорд╛рдЧреАрд▓ рдХреЗрд╕ рдкреНрд░рдорд╛рдгреЗрдЪ рдЖрд╣реЗ: рдЯреЛрдкреЛрд▓реЙрдЬреА рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреЗ рдЖрдгрд┐ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрд░реВ рдХрд░рдгреЗ. рд╕рд░реНрд╡реНрд╣рд░ рдЙрдкрд▓рдмреНрдз рдЕрд╕рд▓реНрдпрд╛рдиреЗ, рдЖрдореНрд╣реА рдЬреБрдиреНрдпрд╛ рдорд╛рд╕реНрдЯрд░рд╡рд░ рд╡реНрд╣реАрдЖрдпрдкреА рдпрд╢рд╕реНрд╡реАрдкрдгреЗ рд╕реЛрдбрддреЛ, рддреЗ рдирд╡реАрдирдХрдбреЗ рд╣рд╕реНрддрд╛рдВрддрд░рд┐рдд рдХрд░рддреЛ рдЖрдгрд┐ рдЕрдиреЗрдХ ARP рд╡рд┐рдирдВрддреНрдпрд╛ рдкрд╛рдард╡рддреЛ. рдЬреБрдиреНрдпрд╛ рдорд╛рд╕реНрдЯрд░рдЪреНрдпрд╛ рд╕рдВрднрд╛рд╡реНрдп рд░рд┐рдЯрд░реНрдирдЪрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд┐рдд рдХреНрд▓рд╕реНрдЯрд░ рдЖрдгрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╛рдЪреНрдпрд╛ рдСрдкрд░реЗрд╢рдирд╡рд░ рдкрд░рд┐рдгрд╛рдо рд╣реЛрдК рдирдпреЗ.

рдЗрддрд░ рд╕рдорд╕реНрдпрд╛

рдкреНрд░рддрд┐рдХреГрддреА рдХрд┐рдВрд╡рд╛ рдЗрдВрдЯрд░рдореАрдбрд┐рдПрдЯ рдорд╛рд╕реНрдЯрд░реНрд╕рдЪреЗ рдЕрдкрдпрд╢ рдиреЗрддреГрддреНрд╡ рдХрд░рдд рдирд╛рд╣реА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рдореЕрдиреНрдпреБрдЕрд▓ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ.

рд╡реНрд╣рд░реНрдЪреНрдпреБрдЕрд▓ рдиреЗрдЯрд╡рд░реНрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рдиреЗрд╣рдореА рддрд╛рддреНрдкреБрд░рддрд╛ рдЬреЛрдбрд▓рд╛ рдЬрд╛рддреЛ, рдореНрд╣рдгрдЬреЗрдЪ рд╕рд░реНрд╡реНрд╣рд░ рд░реАрдмреВрдЯ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░, VIP рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдирд┐рдпреБрдХреНрдд рдХреЗрд▓рд╛ рдЬрд╛рдд рдирд╛рд╣реА. рдкреНрд░рддреНрдпреЗрдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдЙрджрд╛рд╣рд░рдг рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░ рдХреЗрд╡рд│-рд╡рд╛рдЪрдиреАрдп рдореЛрдбрдордзреНрдпреЗ рд╕реБрд░реВ рд╣реЛрддреЗ, рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рдирд╡реАрди рдорд╛рд╕реНрдЯрд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕рд╛рдареА рд╕реНрд╡рд┐рдЪ рдХрд░рддреЛ рдЖрдгрд┐ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЛ read only рдЬреБрдиреНрдпрд╛ рдорд╛рд╕реНрдЯрд░ рд╡рд░. рдпрд╛ рдХреНрд░рд┐рдпрд╛ рд╕рдВрднрд╛рд╡реНрдпрддрд╛ рдХрдореА рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЙрджреНрджреЗрд╢рд╛рдиреЗ рдЖрд╣реЗрдд split brain.

рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рдкреНрд░рдХреНрд░рд┐рдпреЗрджрд░рдореНрдпрд╛рди рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡реВ рд╢рдХрддрд╛рдд, рдЬреНрдпрд╛рд▓рд╛ рдорд╛рдирдХ рдирд┐рд░реАрдХреНрд╖рдг рд╕рд╛рдзрдирд╛рдВрд╡реНрдпрддрд┐рд░рд┐рдХреНрдд рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ UI рджреНрд╡рд╛рд░реЗ рджреЗрдЦреАрд▓ рд╕реВрдЪрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рд╡реЗ. рдЖрдореНрд╣реА рд╣реЗ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдЬреЛрдбреВрди REST API рдЪрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХреЗрд▓рд╛ рдЖрд╣реЗ (PR рд╕рдзреНрдпрд╛ рдкреБрдирд░рд╛рд╡рд▓реЛрдХрдирд╛рдзреАрди).

HA рд╕реЛрд▓реНрдпреВрд╢рдирдЪреЗ рд╕рд╛рдорд╛рдиреНрдп рдЖрдХреГрддреА рдЦрд╛рд▓реА рд╕рд╛рджрд░ рдХреЗрд▓реЗ рдЖрд╣реЗ.

MySQL рдХреНрд▓рд╕реНрдЯрд░рд╕рд╛рдареА HA рд╕реЛрд▓реНрдпреВрд╢рди рдореНрд╣рдгреВрди рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдЖрдгрд┐ VIP

рдирд╡реАрди рдорд╛рд╕реНрдЯрд░ рдирд┐рд╡рдбрдд рдЖрд╣реЗ

рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдкреБрд░реЗрд╕рд╛ рд╣реБрд╢рд╛рд░ рдЖрд╣реЗ рдЖрдгрд┐ рдирд┐рд╡рдбрдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рддреЛ рд╕рд░реНрд╡рд╛рдд рдпреЛрдЧреНрдп рдкреНрд░рддрд┐рдХреГрддреА рдЦрд╛рд▓реАрд▓ рдирд┐рдХрд╖рд╛рдВрдиреБрд╕рд╛рд░ рдирд╡реАрди рдорд╛рд╕реНрдЯрд░ рдореНрд╣рдгреВрди:

  • рдкреНрд░рддрд┐рдХреГрддреА рдорд╛рд╕реНрдЯрд░рдЪреНрдпрд╛ рдорд╛рдЧреЗ рдЖрд╣реЗ;
  • рдорд╛рд╕реНрдЯрд░ рдЖрдгрд┐ рдкреНрд░рддрд┐рдХреГрддреАрдЪреА MySQL рдЖрд╡реГрддреНрддреА;
  • рдкреНрд░рддрд┐рдХреГрддреА рдкреНрд░рдХрд╛рд░ (RBR, SBR рдХрд┐рдВрд╡рд╛ рдорд┐рд╢реНрд░рд┐рдд);
  • рд╕рдорд╛рди рдХрд┐рдВрд╡рд╛ рднрд┐рдиреНрди рдбреЗрдЯрд╛ рдХреЗрдВрджреНрд░рд╛рдВрдордзреНрдпреЗ рд╕реНрдерд╛рди;
  • рдЙрдкрд▓рдмреНрдзрддрд╛ errant GTID - рдкреНрд░рддрд┐рдХреГрддреАрд╡рд░ рдЕрдВрдорд▓рд╛рдд рдЖрдгрд▓реЗрд▓реЗ рдЖрдгрд┐ рдорд╛рд╕реНрдЯрд░рд╡рд░ рдирд╕рд▓реЗрд▓реЗ рд╡реНрдпрд╡рд╣рд╛рд░;
  • рд╕рд╛рдиреБрдХреВрд▓ рдирд┐рд╡рдб рдирд┐рдпрдо рджреЗрдЦреАрд▓ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрддрд▓реЗ рдЬрд╛рддрд╛рдд.

рдкреНрд░рддреНрдпреЗрдХ рдХреНрдпреВ рдорд╛рд╕реНрдЯрд░рд╕рд╛рдареА рдЖрджрд░реНрд╢ рдЙрдореЗрджрд╡рд╛рд░ рдирд╛рд╣реА. рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдбреЗрдЯрд╛рдЪрд╛ рдмреЕрдХрдЕрдк рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рддрд┐рдХреГрддреА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ рдХрд┐рдВрд╡рд╛ рд╕рд░реНрд╡реНрд╣рд░рдордзреНрдпреЗ рдХрдордХреБрд╡рдд рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЖрд╣реЗ. рд╡рд╛рджреНрдпрд╡реГрдВрдж рд╕рдорд░реНрдерди рдореЕрдиреНрдпреБрдЕрд▓ рдирд┐рдпрдо рдЬреНрдпрд╛рджреНрд╡рд╛рд░реЗ рддреБрдореНрд╣реА рддреБрдордЪреА рдЙрдореЗрджрд╡рд╛рд░ рдирд┐рд╡рдб рдкреНрд░рд╛рдзрд╛рдиреНрдпреЗ рд╕рд░реНрд╡рд╛рдд рдкрд╕рдВрддреАрдЪреНрдпрд╛ рддреЗ рджреБрд░реНрд▓рдХреНрд╖рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд╛рдиреБрдХреВрд▓рд┐рдд рдХрд░реВ рд╢рдХрддрд╛.

рдкреНрд░рддрд┐рд╕рд╛рдж рдЖрдгрд┐ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рд╡реЗрд│

рдПрдЦрд╛рджреА рдШрдЯрдирд╛ рдШрдбрд▓реНрдпрд╛рд╕, рд╕рд┐рд╕реНрдЯрдо рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХрдореА рдХрд░рдгреЗ рдорд╣рддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ, рдореНрд╣рдгреВрди рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рджреНрд╡рд╛рд░реЗ рдХреНрд▓рд╕реНрдЯрд░ рдЯреЛрдкреЛрд▓реЙрдЬреАрдЪреНрдпрд╛ рдирд┐рд░реНрдорд┐рддреАрд╡рд░ рдЖрдгрд┐ рдЕрдкрдбреЗрдЯ рдХрд░рдгреНрдпрд╛рд╡рд░ рдкрд░рд┐рдгрд╛рдо рдХрд░рдгрд╛рд░реЗ MySQL рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕ рд╡рд┐рдЪрд╛рд░рд╛рдд рдШреЗрдК рдпрд╛:

  • slave_net_timeout тАФ рдХрдиреЗрдХреНрд╢рди рд╣рд░рд╡рд▓реЗрд▓реНрдпрд╛ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рдХрдиреЗрдХреНрдЯ рдЭрд╛рд▓реНрдпрд╛рдЪреА рдУрд│рдЦ рд╣реЛрдгреНрдпрд╛рдкреВрд░реНрд╡реА рдкреНрд░рддрд┐рдХреГрддреА рдирд╡реАрди рдбреЗрдЯрд╛рдЪреА рдХрд┐рдВрд╡рд╛ рдорд╛рд╕реНрдЯрд░рдХрдбреВрди рд╣реГрджрдпрд╛рдЪрд╛ рдареЛрдХрд╛ рд╕рд┐рдЧреНрдирд▓ рдпреЗрдгреНрдпрд╛рд╕рд╛рдареА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЗ рддреНрдпрд╛ рд╕реЗрдХрдВрджрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛. рдореВрд▓реНрдп рдЬрд┐рддрдХреЗ рдХрдореА рдЕрд╕реЗрд▓ рддрд┐рддрдХреНрдпрд╛ рд╡реЗрдЧрд╛рдиреЗ рдкреНрд░рддрд┐рдХреГрддреА рд╣реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░реВ рд╢рдХрддреЗ рдХреА рдорд╛рд╕реНрдЯрд░рд╢реА рд╕рдВрд╡рд╛рдж рддреБрдЯрд▓реЗрд▓рд╛ рдЖрд╣реЗ. рдЖрдореНрд╣реА рд╣реЗ рдореВрд▓реНрдп 5 рд╕реЗрдХрдВрджрд╛рдВрд╡рд░ рд╕реЗрдЯ рдХреЗрд▓реЗ.
  • MASTER_CONNECT_RETRY тАФ рдкреБрдиреНрд╣рд╛ рдЬреЛрдбрдгреНрдпрд╛рдЪреНрдпрд╛ рдкреНрд░рдпрддреНрдирд╛рдВрдордзреАрд▓ рд╕реЗрдХрдВрджрд╛рдВрдЪреА рд╕рдВрдЦреНрдпрд╛. рдиреЗрдЯрд╡рд░реНрдХ рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡рд▓реНрдпрд╛рд╕, рдпрд╛ рдкреЕрд░рд╛рдореАрдЯрд░рд╕рд╛рдареА рдХрдореА рдореВрд▓реНрдп рдЬрд▓рдж рдкреБрдирд░реНрдХрдиреЗрдХреНрд╢рдирд▓рд╛ рдЕрдиреБрдорддреА рджреЗрдИрд▓ рдЖрдгрд┐ рдХреНрд▓рд╕реНрдЯрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реБрд░реВ рд╣реЛрдгреНрдпрд╛рдкрд╛рд╕реВрди рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░реЗрд▓. рд╢рд┐рдлрд╛рд░рд╕ рдХреЗрд▓реЗрд▓реЗ рдореВрд▓реНрдп 1 рд╕реЗрдХрдВрдж рдЖрд╣реЗ.
  • MASTER_RETRY_COUNT тАФ рдкреБрди: рдЬреЛрдбрдгреА рдкреНрд░рдпрддреНрдирд╛рдВрдЪреА рдХрдорд╛рд▓ рд╕рдВрдЦреНрдпрд╛.
  • MASTER_HEARTBEAT_PERIOD - рд╕реЗрдХрдВрджрд╛рдВрдордзреНрдпреЗ рдордзреНрдпрд╛рдВрддрд░ рдЬреНрдпрд╛рдирдВрддрд░ рдорд╛рд╕реНрдЯрд░ рд╣реГрджрдпрд╛рдЪрд╛ рдареЛрдХрд╛ рд╕рд┐рдЧреНрдирд▓ рдкрд╛рдард╡рддреЛ. рдЕрд░реНрдзреНрдпрд╛ рдореВрд▓реНрдпрд╛рдкрд░реНрдпрдВрдд рдбреАрдлреЙрд▓реНрдЯ slave_net_timeout.

рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдкрд░реНрдпрд╛рдп:

  • DelayMasterPromotionIfSQLThreadNotUpToDate - рд╕рдорд╛рди рдЕрд╕рд▓реНрдпрд╛рд╕ true, рдирдВрддрд░ рдкреНрд░рддрд┐рдХреГрддреАрдЪреНрдпрд╛ SQL рдереНрд░реЗрдбрдиреЗ рд░рд┐рд▓реЗ рд▓реЙрдЧрдордзреВрди рд▓рд╛рдЧреВ рди рдХреЗрд▓реЗрд▓реЗ рд╕рд░реНрд╡ рд╡реНрдпрд╡рд╣рд╛рд░ рдкреВрд░реНрдг рд╣реЛрдИрдкрд░реНрдпрдВрдд рдЙрдореЗрджрд╡рд╛рд░рд╛рдЪреНрдпрд╛ рдкреНрд░рддрд┐рдХреГрддреАрд╡рд░ рдореБрдЦреНрдп рднреВрдорд┐рдХрд╛ рд▓рд╛рдЧреВ рдХреЗрд▓реА рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реА. рдЬреЗрд╡реНрд╣рд╛ рд╕рд░реНрд╡ рдЙрдореЗрджрд╡рд╛рд░рд╛рдВрдЪреНрдпрд╛ рдкреНрд░рддрд┐рдХреГрддреА рдорд╛рдЧреЗ рдкрдбрддрд╛рдд рддреЗрд╡реНрд╣рд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЧрдорд╛рд╡реВ рдирдпреЗ рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рд╣рд╛ рдкрд░реНрдпрд╛рдп рд╡рд╛рдкрд░рддреЛ.
  • InstancePollSeconds - рдЯреЛрдкреЛрд▓реЙрдЬреА рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреА рдЖрдгрд┐ рдЕрджреНрдпрддрдирд┐рдд рдХрд░рдгреНрдпрд╛рдЪреА рд╡рд╛рд░рдВрд╡рд╛рд░рддрд╛.
  • RecoveryPollSeconds - рдЯреЛрдкреЛрд▓реЙрдЬреА рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рдЪреА рд╡рд╛рд░рдВрд╡рд╛рд░рддрд╛. рд╕рдорд╕реНрдпрд╛ рдЖрдврд│рд▓реНрдпрд╛рд╕, рдЯреЛрдкреЛрд▓реЙрдЬреА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рд╕реБрд░реВ рдХреЗрд▓реА рдЬрд╛рддреЗ. рдпрд╛ рд╕реНрдерд┐рд░, 1 рд╕реЗрдХрдВрджрд╛рдЪреНрдпрд╛ рд╕рдорд╛рди.

рдкреНрд░рддреНрдпреЗрдХ рдХреНрд▓рд╕реНрдЯрд░ рдиреЛрдб рдкреНрд░рддреНрдпреЗрдХ рдПрдХрджрд╛ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░рджреНрд╡рд╛рд░реЗ рдкреЛрд▓ рдХреЗрд▓рд╛ рдЬрд╛рддреЛ InstancePollSeconds рд╕реЗрдХрдВрдж рдЬреЗрд╡реНрд╣рд╛ рдПрдЦрд╛рджреА рд╕рдорд╕реНрдпрд╛ рдЖрдврд│рддреЗ, рддреЗрд╡реНрд╣рд╛ рдХреНрд▓рд╕реНрдЯрд░ рд╕реНрдерд┐рддреА рд╕рдХреНрддреА рдХреЗрд▓реА рдЬрд╛рддреЗ рдЕрджреНрдпрддрдирд┐рдд, рдЖрдгрд┐ рдирдВрддрд░ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЕрдВрддрд┐рдо рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛ рдЬрд╛рддреЛ. рд╡рд┐рд╡рд┐рдз рдбреЗрдЯрд╛рдмреЗрд╕ рдЖрдгрд┐ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдкреЕрд░рд╛рдореАрдЯрд░реНрд╕рд╕рд╣ рдкреНрд░рдпреЛрдЧ рдХрд░реВрди, рдЖрдореНрд╣реА рдкреНрд░рддрд┐рд╕рд╛рдж рдЖрдгрд┐ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рд╡реЗрд│ 30 рд╕реЗрдХрдВрджрд╛рдВрдкрд░реНрдпрдВрдд рдХрдореА рдХрд░реВ рд╢рдХрд▓реЛ.

рдЪрд╛рдЪрдгреА рд╕реНрдЯрдБрдб

рдЖрдореНрд╣реА рд╕реНрдерд╛рдирд┐рдХ рд╡рд┐рдХрд╛рд╕рд╛рд╕рд╣ HA рдпреЛрдЬрдиреЗрдЪреА рдЪрд╛рдЪрдгреА рд╕реБрд░реВ рдХреЗрд▓реА рдЪрд╛рдЪрдгреА рдЦрдВрдбрдкреАрда рдЖрдгрд┐ рдЪрд╛рдЪрдгреА рдЖрдгрд┐ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рдкреБрдвреАрд▓ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА. рд╕реНрдерд╛рдирд┐рдХ рд╕реНрдЯрдБрдб рдбреЙрдХрд░рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдкреВрд░реНрдгрдкрдгреЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЖрд╣реЗ рдЖрдгрд┐ рддреБрдореНрд╣рд╛рд▓рд╛ рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХрдЪреНрдпрд╛ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирд╕рд╣ рдкреНрд░рдпреЛрдЧ рдХрд░рдгреНрдпрд╛рд╕, рдХреНрд▓рд╕реНрдЯрд░рд▓рд╛ 2-3 рд╕рд░реНрд╡реНрд╣рд░рд╡рд░реВрди рдЕрдиреЗрдХ рдбрдЭрдирдкрд░реНрдпрдВрдд рд╕реНрдХреЗрд▓ рдХрд░рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рд╕реБрд░рдХреНрд╖рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд╡реНрдпрд╛рдпрд╛рдо рдХрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЗ.

рд╡реНрдпрд╛рдпрд╛рдорд╛рджрд░рдореНрдпрд╛рди, рдЖрдореНрд╣реА рд╕рдорд╕реНрдпрд╛ рдЕрдиреБрдХрд░рдг рдкрджреНрдзрддреАрдВрдкреИрдХреА рдПрдХ рдирд┐рд╡рдбрддреЛ: рддреНрд╡рд░рд┐рдд рд╡рд╛рдкрд░реВрди рдорд╛рд╕реНрдЯрд░ рд╢реВрдЯ рдХрд░рд╛ kill -9, рд╣рд│реВрд╡рд╛рд░рдкрдгреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдорд╛рдкреНрдд рдХрд░рд╛ рдЖрдгрд┐ рд╕рд░реНрд╡реНрд╣рд░ рдерд╛рдВрдмрд╡рд╛ (docker-compose stop), рд╡рд╛рдкрд░реВрди рдиреЗрдЯрд╡рд░реНрдХ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рдЕрдиреБрдХрд░рдг рдХрд░рд╛ iptables -j REJECT рдХрд┐рдВрд╡рд╛ iptables -j DROP. рдЖрдореНрд╣реА рдЦрд╛рд▓реАрд▓ рдкрд░рд┐рдгрд╛рдорд╛рдВрдЪреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░рддреЛ:

  • рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдорд╛рд╕реНрдЯрд░рдЪреНрдпрд╛ рд╕рдорд╕реНрдпрд╛ рд╢реЛрдзреЗрд▓ рдЖрдгрд┐ 10 рд╕реЗрдХрдВрджрд╛рдВрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рд╡реЗрд│реЗрдд рдЯреЛрдкреЛрд▓реЙрдЬреА рдЕрдкрдбреЗрдЯ рдХрд░реЗрд▓;
  • рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рддрдкрдгреЗ рд╕реБрд░реВ рд╣реЛрдИрд▓: рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдмрджрд▓реЗрд▓, рдорд╛рд╕реНрдЯрд░рдЪреА рднреВрдорд┐рдХрд╛ рдкреНрд░рддрд┐рдХреГрддреАрдХрдбреЗ рдЬрд╛рдИрд▓, рдЯреЛрдкреЛрд▓реЙрдЬреА рдкреБрдиреНрд╣рд╛ рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рдИрд▓;
  • рдирд╡реАрди рдорд╛рд╕реНрдЯрд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рдпреЛрдЧреНрдп рд╣реЛрдИрд▓, рдкреБрдирд░реНрдмрд╛рдВрдзрдгреА рдкреНрд░рдХреНрд░рд┐рдпреЗрджрд░рдореНрдпрд╛рди рдереЗрдЯ рдкреНрд░рддрд┐рдХреГрддреА рдЧрдорд╛рд╡рд▓реНрдпрд╛ рдЬрд╛рдгрд╛рд░ рдирд╛рд╣реАрдд;
  • рдбреЗрдЯрд╛ рдирд╡реАрди рдорд╛рд╕реНрдЯрд░рд╡рд░ рд▓рд┐рд╣рд┐рдгреНрдпрд╛рд╕ рдЖрдгрд┐ рдкреНрд░рддрд┐рдХреГрддреА рддрдпрд╛рд░ рдХрд░рдгреЗ рд╕реБрд░реВ рд╣реЛрдИрд▓;
  • рдПрдХреВрдг рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рд╡реЗрд│ 30 рд╕реЗрдХрдВрджрд╛рдВрдкреЗрдХреНрд╖рд╛ рдЬрд╛рд╕реНрдд рдирд╕реЗрд▓.

рддреБрдореНрд╣рд╛рд▓рд╛ рдорд╛рд╣рд┐рддреА рдЖрд╣реЗрдЪ, рднрд┐рдиреНрди рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рдЖрдгрд┐ рдиреЗрдЯрд╡рд░реНрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди, рд╕рд┐рдВрдереЗрдЯрд┐рдХ рдЖрдгрд┐ рд░рд┐рдЕрд▓ рд▓реЛрдбрдордзреАрд▓ рдлрд░рдХ рдЗрддреНрдпрд╛рджреАрдВрдореБрд│реЗ рд╕рд┐рд╕реНрдЯрдо рдЪрд╛рдЪрдгреА рдЖрдгрд┐ рдЙрддреНрдкрд╛рджрди рд╡рд╛рддрд╛рд╡рд░рдгрд╛рдд рд╡реЗрдЧрд│реНрдпрд╛ рдкрджреНрдзрддреАрдиреЗ рд╡рд╛рдЧреВ рд╢рдХрддреЗ. рдореНрд╣рдгреВрди, рдЖрдореНрд╣реА рд╡реЗрд│реЛрд╡реЗрд│реА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рд╡реНрдпрд╛рдпрд╛рдо рдХрд░рддреЛ, рдЬреЗрд╡реНрд╣рд╛ рдиреЗрдЯрд╡рд░реНрдХ рдХрдиреЗрдХреНрдЯрд┐рд╡реНрд╣рд┐рдЯреА рдЧрдорд╛рд╡рд▓реА рдЬрд╛рддреЗ рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдЪреЗ рд╡реИрдпрдХреНрддрд┐рдХ рднрд╛рдЧ рдЦрд░рд╛рдм рд╣реЛрддрд╛рдд рддреЗрд╡реНрд╣рд╛ рд╕рд┐рд╕реНрдЯрдо рдХрд╕реЗ рд╡рд╛рдЧрддреЗ рддреЗ рддрдкрд╛рд╕рддреЛ. рднрд╡рд┐рд╖реНрдпрд╛рдд, рдЖрдореНрд╣рд╛рд▓рд╛ рджреЛрдиреНрд╣реА рд╡рд╛рддрд╛рд╡рд░рдгрд╛рд╕рд╛рдареА рдкреВрд░реНрдгрдкрдгреЗ рдПрдХрд╕рд╛рд░рдЦреА рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рддрдпрд╛рд░ рдХрд░рд╛рдпрдЪреА рдЖрд╣реЗ рдЖрдгрд┐ рддреНрдпрд╛рдЪреА рдЪрд╛рдЪрдгреА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдХрд░рд╛рдпрдЪреА рдЖрд╣реЗ.

рдирд┐рд╖реНрдХрд░реНрд╖

рдореБрдЦреНрдп рд╕реНрдЯреЛрд░реЗрдЬ рд╕рд┐рд╕реНрдЯрдо рдиреЛрдбрдЪреЗ рдЖрд░реЛрдЧреНрдп рд╣реЗ SRE рдЖрдгрд┐ рдСрдкрд░реЗрд╢рдиреНрд╕ рдЯреАрдордЪреНрдпрд╛ рдореБрдЦреНрдп рдХрд╛рд░реНрдпрд╛рдВрдкреИрдХреА рдПрдХ рдЖрд╣реЗ. рд╡реНрд╣реАрдЖрдпрдкреАрд╡рд░ рдЖрдзрд╛рд░рд┐рдд рдСрд░реНрдХреЗрд╕реНрдЯреНрд░реЗрдЯрд░ рдЖрдгрд┐ рдПрдЪрдП рд╕реЛрд▓реНрдпреВрд╢рдирдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдореБрд│реЗ рдЖрдореНрд╣рд╛рд▓рд╛ рдЦрд╛рд▓реАрд▓ рдкрд░рд┐рдгрд╛рдо рд╕рд╛рдзреНрдп рдХрд░рддрд╛ рдЖрд▓реЗ:

  • рдбреЗрдЯрд╛рдмреЗрд╕ рдХреНрд▓рд╕реНрдЯрд░рдЪреНрдпрд╛ рдЯреЛрдкреЛрд▓реЙрдЬреАрд╕рд╣ рд╕рдорд╕реНрдпрд╛рдВрдЪреЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╢реЛрдз;
  • рдорд╛рд╕реНрдЯрд░-рд╕рдВрдмрдВрдзрд┐рдд рдШрдЯрдирд╛рдВрдирд╛ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рдЖрдгрд┐ рдЬрд▓рдж рдкреНрд░рддрд┐рд╕рд╛рдж, рд╕рд┐рд╕реНрдЯрдо рдбрд╛рдЙрдирдЯрд╛рдЗрдо рдХрдореА рдХрд░рдгреЗ.

рддрдерд╛рдкрд┐, рд╕реЛрд▓реНрдпреВрд╢рдирдЪреНрдпрд╛ рдорд░реНрдпрд╛рджрд╛ рдЖрдгрд┐ рддреЛрдЯреЗ рдЖрд╣реЗрдд:

  • HA рдпреЛрдЬрдирд╛ рдЕрдиреЗрдХ рдбреЗрдЯрд╛ рд╕реЗрдВрдЯрд░реНрд╕рд╡рд░ рд╕реНрдХреЗрд▓рд┐рдВрдЧ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдВрдЪреНрдпрд╛ рджрд░рдореНрдпрд╛рди рдПрдХрд▓ L2 рдиреЗрдЯрд╡рд░реНрдХ рдЖрд╡рд╢реНрдпрдХ рдЕрд╕реЗрд▓;
  • рдирд╡реАрди рдорд╛рд╕реНрдЯрд░рд╡рд░ рд╡реНрд╣реАрдЖрдпрдкреА рдирд┐рдпреБрдХреНрдд рдХрд░рдгреНрдпрд╛рдкреВрд░реНрд╡реА, рдЖрдореНрд╣рд╛рд▓рд╛ рддреЗ рдЬреБрдиреНрдпрд╛ рдорд╛рд╕реНрдЯрд░рд╡рд░ рд╕реЛрдбрдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЕрдиреБрдХреНрд░рдорд┐рдХ рдЖрд╣реЗ, рдЬреА рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рд╡реЗрд│ рд╡рд╛рдврд╡рддреЗ;
  • рд╡реНрд╣реАрдЖрдпрдкреА рд░рд┐рд▓реАрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡реНрд╣рд░рд╡рд░ рдПрд╕рдПрд╕рдПрдЪ рдкреНрд░рд╡реЗрд╢ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ, рдХрд┐рдВрд╡рд╛ рджреВрд░рд╕реНрде рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЙрд▓ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЗрддрд░ рдХреЛрдгрддреНрдпрд╛рд╣реА рдкрджреНрдзрддреАрдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдЖрд╣реЗ. рд╕рд░реНрд╡реНрд╣рд░ рдХрд┐рдВрд╡рд╛ рдбреЗрдЯрд╛рдмреЗрд╕рдордзреНрдпреЗ рд╕рдорд╕реНрдпрд╛ рдпреЗрдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ рдкреБрдирд░реНрдкреНрд░рд╛рдкреНрддреА рдкреНрд░рдХреНрд░рд┐рдпреЗрд╕ рдХрд╛рд░рдгреАрднреВрдд рдард░рдд рдЕрд╕рд▓реНрдпрд╛рдиреЗ, VIP рдХрд╛рдврдгреЗ рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рдкреВрд░реНрдг рд╣реЛрдИрд▓ рдпрд╛рдЪреА рдЖрдореНрд╣реА рдЦрд╛рддреНрд░реА рдмрд╛рд│рдЧреВ рд╢рдХрдд рдирд╛рд╣реА. рдЖрдгрд┐ рдпрд╛рдореБрд│реЗ рд╕рдорд╛рди рдЖрднрд╛рд╕реА рдЖрдпрдкреА рдкрддреНрддреНрдпрд╛рд╕рд╣ рджреЛрди рд╕рд░реНрд╡реНрд╣рд░ рджрд┐рд╕реВ рд╢рдХрддрд╛рдд рдЖрдгрд┐ рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡реВ рд╢рдХрддрд╛рдд split brain.

рдЯрд╛рд│рдгреНрдпрд╛рд╕рд╛рдареА split brain, рдЖрдкрдг рдкрджреНрдзрдд рд╡рд╛рдкрд░реВ рд╢рдХрддрд╛ рд╕реНрдЯреЛрдирд┐рде (тАЬрд╢реВрдЯ рдж рдЕрджрд░ рдиреЛрдб рдЗрди рдж рд╣реЗрдбтАЭ), рдЬреЗ рдкреНрд░реЙрдмреНрд▓реЗрдо рдиреЛрдб рдкреВрд░реНрдгрдкрдгреЗ рд╡реЗрдЧрд│реЗ рдХрд┐рдВрд╡рд╛ рдЕрдХреНрд╖рдо рдХрд░рддреЗ. рдХреНрд▓рд╕реНрдЯрд░ рдЙрдЪреНрдЪ рдЙрдкрд▓рдмреНрдзрддрд╛ рд▓рд╛рдЧреВ рдХрд░рдгреНрдпрд╛рдЪреЗ рдЗрддрд░ рдорд╛рд░реНрдЧ рдЖрд╣реЗрдд: VIP рдЖрдгрд┐ DNS рдЪреЗ рд╕рдВрдпреЛрдЬрди, рд╕реЗрд╡рд╛ рд╢реЛрдз рдЖрдгрд┐ рдкреНрд░реЙрдХреНрд╕реА рд╕реЗрд╡рд╛, рд╕рдордХрд╛рд▓рд┐рдХ рдкреНрд░рддрд┐рдХреГрддреА рдЖрдгрд┐ рдЗрддрд░ рдкрджреНрдзрддреА рдЬреНрдпрд╛рдВрдЪреЗ рд╕реНрд╡рддрдГрдЪреЗ рддреЛрдЯреЗ рдЖрдгрд┐ рдлрд╛рдпрджреЗ рдЖрд╣реЗрдд.

рдореА MySQL рдлреЗрд▓рдУрд╡реНрд╣рд░ рдХреНрд▓рд╕реНрдЯрд░ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рдЪреНрдпрд╛ рдЖрдордЪреНрдпрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдирд╛рдмрджреНрджрд▓ рдмреЛрд▓рд▓реЛ. рд╣реЗ рдЕрдВрдорд▓рд╛рдд рдЖрдгрдгреЗ рд╕реЛрдкреЗ рдЖрд╣реЗ рдЖрдгрд┐ рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдкрд░рд┐рд╕реНрдерд┐рддреАрдд рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣рддреЗрдЪреА рд╕реНрд╡реАрдХрд╛рд░реНрдп рдкрд╛рддрд│реА рдкреНрд░рджрд╛рди рдХрд░рддреЗ. рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ рд╕рдВрдкреВрд░реНрдг рдкреНрд░рдгрд╛рд▓реА рдЖрдгрд┐ рд╡рд┐рд╢реЗрд╖рддрдГ рдкрд╛рдпрд╛рднреВрдд рд╕реБрд╡рд┐рдзрд╛ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдд рдЕрд╕рддрд╛рдирд╛, рд╣рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрди рдирд┐рдГрд╕рдВрд╢рдпрдкрдгреЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдИрд▓.

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛