Orchestrator เปเบฅเบฐ VIP เป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚ HA เบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบก MySQL

เบ—เบตเปˆ Citymobil เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™ MySQL เป€เบ›เบฑเบ™เบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡. เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบเบธเปˆเบกเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เปเบฅเบฐเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบ•เปˆเบฒเบ‡เป†.

เบเบฒเบ™เบกเบตเบขเบนเปˆเบ„เบปเบ‡เบ—เบตเปˆเบ‚เบญเบ‡เปเบกเปˆเบšเบปเบ”เปเบกเปˆเบ™เบ•เบปเบงเบŠเบตเป‰เบงเบฑเบ”เบ—เบตเปˆเบชเปเบฒเบ„เบฑเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบฅเบฐเบžเบฒเบเบชเปˆเบงเบ™เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เบ‚เบญเบ‡เบกเบฑเบ™. เบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบนเบเบธเปˆเบกเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบญเบ‡เปเบกเปˆเบšเบปเบ”เบซเบผเบธเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเป€เบงเบฅเบฒเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เป€เบซเบ”เบเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบขเบธเบ”เบฅเบฐเบšเบปเบš. เปƒเบ™เบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เบ‚เป‰เบญเบเบˆเบฐเป€เบšเบดเปˆเบ‡เบเบฒเบ™เบญเบญเบเปเบšเบšเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡ (HA) เบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบก MySQL เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ MySQL Orchestrator เปเบฅเบฐเบ—เบตเปˆเบขเบนเปˆ IP virtual (VIP).

Orchestrator เปเบฅเบฐ VIP เป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚ HA เบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบก MySQL

เบเบฒเบ™เปเบเป‰เป„เบ‚ HA เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ VIP

เบเปˆเบญเบ™เบญเบทเปˆเบ™, เบ‚เป‰เบญเบเบˆเบฐเบšเบญเบเป€เบˆเบปเป‰เบฒเบชเบฑเป‰เบ™เป†เบงเปˆเบฒเบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบกเปˆเบ™เบซเบเบฑเบ‡.

เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบšเบ„เบฅเบฒเบชเบชเบดเบเบเบฑเบšเปเบกเปˆเบšเบปเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เบ‚เบฝเบ™เป„เบ”เป‰เบญเบฑเบ™เบ”เบฝเบง เปเบฅเบฐเปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เปเบšเบšเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบซเบผเบฒเบเบญเบฑเบ™. เบเบธเปˆเบกเบชเบฒเบกเบฒเบ”เบšเบฑเบ™เบˆเบธเปเบกเปˆเบšเบปเบ”เบฅเบฐเบ”เบฑเบšเบ›เบฒเบ™เบเบฒเบ‡ - เป‚เบซเบ™เบ”เบ—เบตเปˆเป€เบ›เบฑเบ™เบ—เบฑเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เปเบฅเบฐเปเบกเปˆเปเบšเบšเบชเปเบฒเบฅเบฑเบšเบ„เบปเบ™เบญเบทเปˆเบ™. เบฅเบนเบเบ„เป‰เบฒเป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบšเบœเปˆเบฒเบ™ HAProxy, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบกเบตเบเบฒเบ™เปเบˆเบเบขเบฒเบเบเบฒเบ™เป‚เบซเบผเบ” เปเบฅเบฐเบ‚เบฐเบซเบเบฒเบเบ‚เบฐเปœเบฒเบ”เป„เบ”เป‰เบ‡เปˆเบฒเบ. เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰ HAProxy เปเบกเปˆเบ™เป€เบ™เบทเปˆเบญเบ‡เบกเบฒเบˆเบฒเบเป€เบซเบ”เบœเบปเบ™เบ—เบฒเบ‡เบ›เบฐเบซเบงเบฑเบ”เบชเบฒเบ”, เปเบฅเบฐเบžเบงเบเป€เบฎเบปเบฒเบขเบนเปˆเปƒเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบ„เบทเปˆเบญเบ™เบเป‰เบฒเบเป„เบ›เบซเบฒ ProxySQL.

Replication เปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบขเบนเปˆเปƒเบ™เบฎเบนเบšเปเบšเบšเป€เบ„เบดเปˆเบ‡ synchronous เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ GTID. เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบซเบ™เบถเปˆเบ‡ replica เบ•เป‰เบญเบ‡เบšเบฑเบ™เบ—เบถเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบเปˆเบญเบ™เบ—เบตเปˆเบกเบฑเบ™เบˆเบฐเบ–เบทเบงเปˆเบฒเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”. เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบ™เบตเป‰เบชเบฐเบซเบ™เบญเบ‡เบ„เบงเบฒเบกเบชเบปเบกเบ”เบธเบ™เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบ‚เปเป‰เบšเบปเบเบœเปˆเบญเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš. เป‚เบ”เบเบžเบทเป‰เบ™เบ–เบฒเบ™เปเบฅเป‰เบงเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™เป„เบ”เป‰เบ–เบทเบเป‚เบญเบ™เบˆเบฒเบเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเป„เบ›เบซเบฒ replicas เป‚เบ”เบเปƒเบŠเป‰ Row Based Replication (RBR), เปเบ•เปˆเบšเบฒเบ‡ nodes เบญเบฒเบ”เบˆเบฐเบกเบต mixed binlog format.

orchestrator เป€เบ›เบฑเบ™เป„เบฅเบเบฐเบ›เบฑเบšเบ›เบธเบ‡เบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡ topology เบเบธเปˆเบก, เบงเบดเป€เบ„เบฒเบฐเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบš, เปเบฅเบฐเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบšเบฑเบ™เบซเบฒเป€เบเบตเบ”เบ‚เบถเป‰เบ™, เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป€เบ›เบตเบ”เบ•เบปเบงเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒเบกเบตเบ„เบงเบฒเบกเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ•เปเปˆเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ‚เบญเบ‡เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡, เป€เบžเบฒเบฐเบงเปˆเบฒเบกเบฑเบ™เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบงเบดเบ—เบตเบ•เปˆเบฒเบ‡เป†: เบญเบตเบ‡เปƒเบชเปˆ VIP, DNS, เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบซเบผเบทเบเบปเบ™เป„เบเบ—เบตเปˆเบ‚เบฝเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡.

เบงเบดเบ—เบตเบ‡เปˆเบฒเบเป†เบญเบฑเบ™เปœเบถเปˆเบ‡เบ—เบตเปˆเบˆเบฐเบŸเบทเป‰เบ™เบŸเบนเปเบกเปˆเปเบšเบš เบ–เป‰เบฒเบกเบฑเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบงเปเบกเปˆเบ™เบเบฒเบ™เปƒเบŠเป‰เบ—เบตเปˆเบขเบนเปˆ VIP เปเบšเบšเบฅเบญเบเบ•เบปเบง.

เบชเบดเปˆเบ‡เบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบฎเบนเป‰เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบ™เบตเป‰เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบเป‰เบฒเบงเป„เบ›เบ‚เป‰เบฒเบ‡เบซเบ™เป‰เบฒ:

  • VIP เป€เบ›เบฑเบ™เบ—เบตเปˆเบขเบนเปˆ IP เบ—เบตเปˆเบšเปเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเบชเบฐเป€เบžเบฒเบฐ. เบ–เป‰เบฒ node เบฅเบปเป‰เบกเป€เบซเบฅเบงเบซเบผเบทเปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบšเปเบฒเบฅเบธเบ‡เบฎเบฑเบเบชเบฒเบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบ›เปˆเบฝเบ™ VIP เป„เบ›เบซเบฒเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบญเบทเปˆเบ™เบ”เป‰เบงเบเบเบฒเบ™เบขเบธเบ”เป€เบงเบฅเบฒเบซเบ™เป‰เบญเบเบ—เบตเปˆเบชเบธเบ”.
  • เบเบฒเบ™เบ›เบปเบ”เบ›เปˆเบญเบเปเบฅเบฐเบญเบญเบเบ—เบตเปˆเบขเบนเปˆ IP virtual เปเบกเปˆเบ™เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบฅเบฒเบ„เบฒเบ–เบทเบเปเบฅเบฐเป„เบง.
  • เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš VIP, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบœเปˆเบฒเบ™ SSH, เบซเบผเบทเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ”เบžเบดเป€เบชเบ”, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, keepalived.

เบ‚เปเปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบเบฑเบšเบ•เบปเบงเบŠเปˆเบงเบเบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปเบฅเบฐเบˆเบดเบ™เบ•เบฐเบ™เบฒเบเบฒเบ™เบงเปˆเบฒเบเบปเบ™เป„เบเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบ„เบงเบ™เป€เบฎเบฑเบ”เบงเบฝเบเปเบ™เบงเปƒเบ”.

เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เป€เบ„เบทเบญโ€‹เบ‚เปˆเบฒเบโ€‹เบเบฑเบšโ€‹เบ•เบปเป‰เบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เป„เบ”เป‰โ€‹เบซเบฒเบโ€‹เป„เบ›โ€‹, เบซเบผเบทโ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹เป„เบ”เป‰โ€‹เป€เบเบตเบ”โ€‹เบ‚เบถเป‰เบ™โ€‹เปƒเบ™โ€‹เบฅเบฐโ€‹เบ”เบฑเบšโ€‹เบฎเบฒเบ”โ€‹เปเบงโ€‹, เปเบฅเบฐโ€‹เป€เบŠเบตเบšโ€‹เป€เบงเบตโ€‹เบšเปเปˆโ€‹เบชเบฒโ€‹เบกเบฒเบ”โ€‹เปƒเบŠเป‰โ€‹เป„เบ”เป‰

  1. Orchestrator เบ›เบฑเบšเบ›เบธเบ‡ topology เบ‚เบญเบ‡เบเบธเปˆเบก, เปเบ•เปˆเบฅเบฐ replica เบฅเบฒเบเบ‡เบฒเบ™เบงเปˆเบฒเปเบกเปˆเปเบšเบšเบšเปเปˆเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰. orchestrator เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบ replica เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบžเบฒเบฅเบฐเบšเบปเบ”เบšเบฒเบ”เบ‚เบญเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบง.
  2. เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบฅเบฑเบ‡เบžเบฐเบเบฒเบเบฒเบกเป€เบญเบปเบฒ VIP เบญเบญเบเบˆเบฒเบเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเป€เบเบปเปˆเบฒ - เป‚เบ”เบเบšเปเปˆเบกเบตเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”.
  3. เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบ›เปˆเบฝเบ™เป„เบ›เบชเบนเปˆเบšเบปเบ”เบšเบฒเบ”เบ‚เบญเบ‡เปเบกเปˆเบšเบปเบ”. topology เบเปเบฒเบฅเบฑเบ‡เบ–เบทเบเบชเป‰เบฒเบ‡เปƒเบซเบกเปˆ.
  4. เป€เบžเบตเปˆเบกเบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบเปƒเบซเบกเปˆเบเบฑเบš VIP. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบกเบฑเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เป€เบญเบปเบฒ VIP เบญเบญเบเป„เบ”เป‰, เบžเบงเบเป€เบฎเบปเบฒเป€เบฅเบตเปˆเบกเบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เปเป€เบ›เบฑเบ™เป„เบฅเบเบฐเป†เปƒเบ™เบžเบทเป‰เบ™เบซเบผเบฑเบ‡ ARP เบŸเบฃเบต. เบ›เบฐเป€เบžเบ”เบ‚เบญเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป / เบ„เปเบฒเบ•เบญเบšเบ™เบตเป‰เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเบ›เบธเบ‡เบ•เบฒเบ•เบฐเบฅเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบ—เบตเปˆเบขเบนเปˆ IP เปเบฅเบฐ MAC เปƒเบ™เบชเบฐเบงเบดเบ”เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เปเบˆเป‰เบ‡เปƒเบซเป‰เบ—เปˆเบฒเบ™เบฎเบนเป‰เบงเปˆเบฒ VIP เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเป‰เบฒเบ. เบ™เบตเป‰เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰ split brain โ€‹เป€เบกเบทเปˆเบญโ€‹เบเบฑเบšโ€‹เบ„เบทเบ™โ€‹เบ™เบฒเบโ€‹เป€เบเบปเปˆเบฒ.
  5. เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบซเบกเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฐเบ–เบทเบเป‚เบญเบ™เป„เบ›เบซเบฒเปเบกเปˆเปเบšเบšเปƒเบซเบกเปˆเบ—เบฑเบ™เบ—เบต. เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบเบปเปˆเบฒเบฅเบปเป‰เบกเป€เบซเบฅเบงเปเบฅเบฐเบเบฒเบ™เป‚เบ—เบŠเป‰เปเบฒเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบกเปˆเบ™เป€เบฎเบฑเบ”เบขเบนเปˆเปƒเบ™เบฅเบฐเบ”เบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ.

เป€เบŠเบตเบšเป€เบงเบตเบเบณเบฅเบฑเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป‚เปเบ”เบ›เบปเบเบเบฐเบ•เบด, เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเป€เบเบตเบ”เบ‚เบถเป‰เบ™เปƒเบ™เบฅเบฐเบ”เบฑเบš DBMS

เบชเบนเบ”เบเบฒเบ™เบ„เบดเบ”เป„เบฅเปˆเปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ: เบเบฒเบ™เบ›เบฑเบšเบ›เบธเบ‡ topology เปเบฅเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบน. เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰, เบžเบงเบเป€เบฎเบปเบฒเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”เบ›เปˆเบญเบ VIP เปƒเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเป€เบเบปเปˆเบฒ, เป‚เบญเบ™เบกเบฑเบ™เป„เบ›เบซเบฒเปƒเบซเบกเปˆ, เปเบฅเบฐเบชเบปเปˆเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบ‚เป ARP เบซเบผเบฒเบ. เบเบฒเบ™เบเบฑเบšเบ„เบทเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเป€เบเบปเปˆเบฒเบšเปเปˆเบ„เบงเบ™เบชเบปเปˆเบ‡เบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบธเปˆเบกเบ—เบตเปˆเบชเป‰เบฒเบ‡เบ‚เบถเป‰เบ™เปƒเบซเบกเปˆเปเบฅเบฐเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™.

เบ›เบฑเบ™เบซเบฒเบญเบทเปˆเบ™เป†

เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบญเบ‡ replicas เบซเบผเบทเปเบกเปˆเบšเบปเบ”เบฅเบฐเบ”เบฑเบšเบเบฒเบ‡ เบšเปเปˆเป„เบ”เป‰เบ™เปเบฒเบžเบฒ เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบฅเบฐเบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เปเบŠเบเปเบŠเบ‡เบ„เบนเปˆเบกเบท.

เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเป€เบ„เบทเบญเบ‚เปˆเบฒเบ virtual เบชเบฐเป€เบซเบกเบตเบ–เบทเบเป€เบžเบตเปˆเบกเบŠเบปเปˆเบงเบ„เบฒเบง, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบซเบกเปˆ, VIP เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบกเบญเบšเบซเบกเบฒเบเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เปเบ•เปˆเบฅเบฐเบ•เบปเบงเบขเปˆเบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เปƒเบ™เป‚เบซเบกเบ”เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ•เบฒเบกเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบœเบนเป‰ orchestrator เบˆเบฐเบ›เปˆเบฝเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป€เบžเบทเปˆเบญเบ‚เบฝเบ™เปเบฅเบฐเบžเบฐเบเบฒเบเบฒเบกเบ•เบดเบ”เบ•เบฑเป‰เบ‡. read only เบเปˆเบฝเบงเบเบฑเบšเบ™เบฒเบเป€เบเบปเปˆเบฒ. เบเบฒเบ™โ€‹เบเบฐเบ—เบณโ€‹เป€เบซเบผเบปเปˆเบฒโ€‹เบ™เบตเป‰โ€‹เปเบกเปˆเบ™โ€‹เปเบ™โ€‹เปƒเบชเปˆโ€‹เบซเบผเบธเบ”เบœเปˆเบญเบ™โ€‹เบ„เบงเบฒเบกโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰ split brain.

เบšเบฑเบ™เบซเบฒเบญเบฒเบ”เบˆเบฐเป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบŸเบน, เป€เบŠเบดเปˆเบ‡เบ„เบงเบ™เปเบˆเป‰เบ‡เปƒเบซเป‰เบฎเบนเป‰เป‚เบ”เบเบœเปˆเบฒเบ™ orchestrator UI เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เบกเบทเบ•เบดเบ”เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ‚เบฐเบซเบเบฒเบ REST API เป‚เบ”เบเบเบฒเบ™เป€เบžเบตเปˆเบกเบ„เบธเบ™เบชเบปเบกเบšเบฑเบ”เบ™เบตเป‰ (PR เบ›เบฐเบˆเบธเบšเบฑเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบš).

เปเบœเบ™เบงเบฒเบ”เบ—เบปเปˆเบงเป„เบ›เบ‚เบญเบ‡เบเบฒเบ™เปเบเป‰เป„เบ‚ HA เป„เบ”เป‰เบ–เบทเบเบ™เปเบฒเบชเบฐเป€เบซเบ™เบตเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

Orchestrator เปเบฅเบฐ VIP เป€เบ›เบฑเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚ HA เบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบก MySQL

เบเบฒเบ™เป€เบฅเบทเบญเบเปเบกเปˆเบšเบปเบ”เปƒเบซเบกเปˆ

orchestrator เปเบกเปˆเบ™ smart เบžเบฝเบ‡โ€‹เบžเปโ€‹เปเบฅเบฐโ€‹เบžเบฐโ€‹เบเบฒโ€‹เบเบฒเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป€เบฅเบทเบญเบโ€‹เป€เบญเบปเบฒ replica เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบ—เบตเปˆเบชเบธเบ” เป€เบ›เบฑเบ™เปเบกเปˆเบšเบปเบ”เปƒเปเปˆเบ•เบฒเบกเป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เบ”เบฑเปˆเบ‡เบ™เบตเป‰:

  • replica เป„เบ”เป‰ lags เบ—เบฒเบ‡เบซเบฅเบฑเบ‡เบ‚เบญเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš;
  • เบชเบฐเบšเบฑเบš MySQL เบ‚เบญเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปเบฅเบฐ replica;
  • เบ›เบฐเป€เบžเบ” replication (RBR, SBR เบซเบผเบทเบ›เบฐเบชเบปเบก);
  • เบชเบฐเบ–เบฒเบ™เบ—เบตเปˆเบขเบนเปˆเปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™เบซเบผเบทเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™;
  • เบกเบตเบ„เบงเบฒเบกเบžเป‰เบญเบก errant GTID - เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบขเบนเปˆเปƒเบ™ replica เปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบขเบนเปˆเปƒเบ™เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš;
  • เบเบปเบ”เบฅเบฐเบšเบฝเบšเบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบเบ—เบตเปˆเบเปเบฒเบซเบ™เบปเบ”เป€เบญเบ‡เบเบฑเบ‡เบ–เบทเบเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ.

เบšเปเปˆเปเบกเปˆเบ™เบ—เบธเบเป†เบ•เบปเบงเบŠเบตเป‰เบšเบญเบเปเบกเปˆเบ™เบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเปเบกเปˆเบšเบปเบ”. เบ•เบปเบงเบขเปˆเบฒเบ‡, เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เป€เบžเบทเปˆเบญเบชเปเบฒเบฎเบญเบ‡เบ‚เปเป‰เบกเบนเบ™เบ‚เปเป‰เบกเบนเบ™, เบซเบผเบทเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบกเบตเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบฎเบฒเบ”เปเบงเบ—เบตเปˆเบญเปˆเบญเบ™เปเบญเบเบงเปˆเบฒ. เบ™เบฑเบเบ”เบปเบ™เบ•เบต เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ เบเบปเบ”เบฅเบฐเบšเบฝเบšเบ„เบนเปˆเบกเบทเบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฑเบšเปเบ•เปˆเบ‡เบ„เบงเบฒเบกเบกเบฑเบเบ‚เบญเบ‡เบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบเบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบˆเบฒเบเบกเบฑเบเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเบšเปเปˆเบชเบปเบ™เปƒเบˆ.

เบเบฒเบ™เบ•เบญเบšเบชเบฐ เปœเบญเบ‡ เปเบฅเบฐเป€เบงเบฅเบฒเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบง

เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เป€เบซเบ”เบเบฒเบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบชเปเบฒเบ„เบฑเบ™เบ—เบตเปˆเบˆเบฐเบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบขเบธเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบš, เบชเบฐเบ™เบฑเป‰เบ™เปƒเบซเป‰เบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™ MySQL เบ—เบตเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เบชเป‰เบฒเบ‡เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡ topology เบ‚เบญเบ‡เบเบธเปˆเบกเป‚เบ”เบ orchestrator:

  • slave_net_timeout โ€” เบˆเปเบฒโ€‹เบ™เบงเบ™โ€‹เบงเบดโ€‹เบ™เบฒโ€‹เบ—เบตโ€‹เปƒเบ™โ€‹เป„เบฅโ€‹เบเบฐโ€‹เบ—เบตเปˆ replica เป„เบ”เป‰โ€‹เบฅเปโ€‹เบ–เป‰เบฒโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เปƒเบซเบกเปˆโ€‹เบซเบผเบทโ€‹เบชเบฑเบ™โ€‹เบเบฒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบ•เบฑเป‰เบ™โ€‹เบ‚เบญเบ‡โ€‹เบซเบปเบงโ€‹เปƒเบˆโ€‹เบกเบฒโ€‹เบˆเบฒเบโ€‹เปเบกเปˆโ€‹เบšเบปเบ”โ€‹เบเปˆเบญเบ™โ€‹เบ—เบตเปˆโ€‹เบเบฒเบ™โ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบˆเบฐโ€‹เบ–เบทเบโ€‹เบฎเบฑเบšโ€‹เบฎเบนเป‰โ€‹เบงเปˆเบฒโ€‹เบชเบนเบ™โ€‹เป€เบชเบโ€‹เปเบฅเบฐโ€‹เป€เบŠเบทเปˆเบญเบกโ€‹เบ•เปเปˆโ€‹เบ„เบทเบ™โ€‹เปƒเบซเบกเปˆโ€‹. เบกเบนเบ™เบ„เปˆเบฒเบ•เปˆเปเบฒ, เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เป„เบงเบ‚เบถเป‰เบ™เบชเบฒเบกเบฒเบ”เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒเบเบฒเบ™เบชเบทเปˆเบชเบฒเบ™เบเบฑเบšเปเบกเปˆเบšเบปเบ”เบ–เบทเบเบ—เปเบฒเบฅเบฒเบ. เบžเบงเบเป€เบฎเบปเบฒเบเปเบฒเบ™เบปเบ”เบ„เปˆเบฒเบ™เบตเป‰เป€เบ›เบฑเบ™ 5 เบงเบดเบ™เบฒเบ—เบต.
  • MASTER_CONNECT_RETRY โ€” เบˆเปเบฒเบ™เบงเบ™เบงเบดเบ™เบฒเบ—เบตเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ„เบทเบ™เปƒเปเปˆ. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบšเบฑเบ™เบซเบฒเป€เบ„เบทเบญเบ‚เปˆเบฒเบ, เบกเบนเบ™เบ„เปˆเบฒเบ•เปเปˆเบฒเบชเปเบฒเบฅเบฑเบšเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ™เบตเป‰เบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ„เบทเบ™เปƒเบซเบกเปˆเป„เบงเปเบฅเบฐเบ›เป‰เบญเบ‡เบเบฑเบ™เบšเปเปˆเปƒเบซเป‰เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบ‚เบญเบ‡เบเบธเปˆเบกเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ„เปˆเบฒเบ—เบตเปˆเปเบ™เบฐเบ™เบณเปเบกเปˆเบ™ 1 เบงเบดเบ™เบฒเบ—เบต.
  • MASTER_RETRY_COUNT - เบˆเปเบฒเบ™เบงเบ™เบชเบนเบ‡เบชเบธเบ”เบ‚เบญเบ‡เบ„เบงเบฒเบกเบžเบฐเบเบฒเบเบฒเบกเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบซเบกเปˆ.
  • MASTER_HEARTBEAT_PERIOD โ€” เป„เบฅโ€‹เบเบฐโ€‹เบซเปˆเบฒเบ‡โ€‹เปƒเบ™โ€‹เบงเบดโ€‹เบ™เบฒโ€‹เบ—เบตโ€‹เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เปเบกเปˆโ€‹เบšเบปเบ”โ€‹เบชเบปเปˆเบ‡โ€‹เบชเบฑเบ™โ€‹เบเบฒเบ™โ€‹เบเบฒเบ™โ€‹เป€เบ•เบฑเป‰เบ™โ€‹เบ‚เบญเบ‡โ€‹เบซเบปเบงโ€‹เปƒเบˆโ€‹. เบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป€เบ›เบฑเบ™เป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบกเบนเบ™เบ„เปˆเบฒ slave_net_timeout.

เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™ Orchestrator:

  • DelayMasterPromotionIfSQLThreadNotUpToDate - เบ–เป‰เบฒโ€‹เป€เบ—เบปเปˆเบฒโ€‹เบ—เบฝเบกโ€‹เบเบฑเบ™โ€‹ true, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบšเบปเบ”เบšเบฒเบ”เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบˆเบฐเบšเปเปˆเบ–เบทเบเบ™เปเบฒเป„เบ›เปƒเบŠเป‰เบเบฑเบšเบ•เบปเบงเปเบšเบšเบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบˆเบปเบ™เบเปˆเบงเบฒเบซเบปเบงเบ‚เปเป‰ SQL เบ‚เบญเบ‡ replica เป„เบ”เป‰เบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบ™เปเบฒเปƒเบŠเป‰เบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบ Relay Log. เบžเบงเบเป€เบฎเบปเบฒเปƒเบŠเป‰เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ™เบตเป‰เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบชเบนเบ™เป€เบชเบเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเป€เบกเบทเปˆเบญเบœเบนเป‰เบชเบฐเบซเบกเบฑเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ•เบปเบเบขเบนเปˆเบซเบฅเบฑเบ‡.
  • InstancePollSeconds โ€” เบ„เบงเบฒเบกโ€‹เบ–เบตเปˆโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบเปเปˆโ€‹เบชเป‰เบฒเบ‡โ€‹เปเบฅเบฐโ€‹เบเบฒเบ™โ€‹เบ›เบฑเบšโ€‹เบ›เบธเบ‡ topologyโ€‹.
  • RecoveryPollSeconds - เบ„เบงเบฒเบกโ€‹เบ–เบตเปˆโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบงเบดโ€‹เป€เบ„เบฒเบฐ topologyโ€‹. เบ–เป‰เบฒเบžเบปเบšเบšเบฑเบ™เบซเบฒ, เบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบง topology เปเบกเปˆเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™. เบ™เบตเป‰ เบ„เบปเบ‡เบ—เบตเปˆ, เป€เบ—เบปเปˆเบฒเบเบฑเบš 1 เบงเบดเบ™เบฒเบ—เบต.

เปเบ•เปˆเบฅเบฐ node เบ‚เบญเบ‡เบเบธเปˆเบกเบ–เบทเบเบชเบณเบซเบผเบงเบ”เป‚เบ”เบเบ™เบฑเบเบ›เบฐเบžเบฑเบ™เบ—เบธเบเบ„เบฑเป‰เบ‡ InstancePollSeconds เบงเบดเบ™เบฒเบ—เบต เป€เบกเบทเปˆเบญเบเบงเบ”เบžเบปเบšเบšเบฑเบ™เบซเบฒ, เบชเบฐเบ–เบฒเบ™เบฐเบ‚เบญเบ‡เบเบธเปˆเบกเบ–เบทเบเบšเบฑเบ‡เบ„เบฑเบš เบญเบฑเบšเป€เบ”เบ”, เปเบฅเบฐเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบชเบธเบ”เบ—เป‰เบฒเบเปเบกเปˆเบ™เป€เบฎเบฑเบ”เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบง. เป‚เบ”เบเบเบฒเบ™เบ—เบปเบ”เบฅเบญเบ‡เบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เปเบฅเบฐเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™ orchestrator เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เบซเบผเบธเบ”เบœเปˆเบญเบ™เป€เบงเบฅเบฒเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เปเบฅเบฐเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเป€เบ›เบฑเบ™ 30 เบงเบดเบ™เบฒเบ—เบต.

เบขเบทเบ™เบ—เบปเบ”เบชเบญเบš

เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เป€เบฅเบตเปˆเบกเบ—เบปเบ”เบชเบญเบšเป‚เบ„เบ‡เบเบฒเบ™ HA เบเบฑเบšเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™ เบšเปˆเบญเบ™เบ™เบฑเปˆเบ‡เบ—เบปเบ”เบชเบญเบš เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เปเปˆเป„เบ›เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปเบฅเบฐเบเบฒเบ™เบœเบฐเบฅเบดเบ”. เบˆเบธเบ”เบขเบทเบ™เปƒเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปเบกเปˆเบ™เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบชเปˆเบงเบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ Docker เปเบฅเบฐเบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ—เบปเบ”เบฅเบญเบ‡เบเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ‚เบญเบ‡ orchestrator เปเบฅเบฐเป€เบ„เบทเบญเบ‚เปˆเบฒเบ, เบ‚เบฐเบซเบ™เบฒเบ”เบเบธเปˆเบกเบˆเบฒเบ 2-3 เป€เบŠเบตเบŸเป€เบงเบตเป„เบ›เบซเบฒเบซเบผเบฒเบเบญเบฒเบเปเบเบฑเบช, เปเบฅเบฐเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบญเบญเบเบเปเบฒเบฅเบฑเบ‡เบเบฒเบเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบ›เบญเบ”เป„เบž.

เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบญเบญเบโ€‹เบเปเบฒโ€‹เบฅเบฑเบ‡โ€‹เบเบฒเบโ€‹, เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป€เบฅเบทเบญเบโ€‹เป€เบญเบปเบฒโ€‹เบซเบ™เบถเปˆเบ‡โ€‹เปƒเบ™โ€‹เบงเบดโ€‹เบ—เบตโ€‹เบเบฒเบ™โ€‹เบˆเปเบฒโ€‹เบฅเบญเบ‡โ€‹เบšเบฑเบ™โ€‹เบซเบฒโ€‹: เบ—เบฑเบ™โ€‹เบ—เบตโ€‹เบ—เบฑเบ™โ€‹เปƒเบ”โ€‹เบเบดเบ‡โ€‹เปเบกเปˆโ€‹เบšเบปเบ”โ€‹เป‚เบ”เบโ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰โ€‹ kill -9, เบ„เปˆเบญเบเป†เบขเบธเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบฅเบฐเบขเบธเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ (docker-compose stop), simulate เบšเบฑเบ™เบซเบฒเป€เบ„เบทเบญเบ‚เปˆเบฒเบเป‚เบ”เบเปƒเบŠเป‰ iptables -j REJECT เบซเบผเบท iptables -j DROP. เบžเบงเบเป€เบฎเบปเบฒเบ„เบฒเบ”เบซเบงเบฑเบ‡เบงเปˆเบฒเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • orchestrator เบˆเบฐเบเบงเบ”เบžเบปเบšเบšเบฑเบ™เบซเบฒเบเบฑเบšเปเบกเปˆเบšเบปเบ”เปเบฅเบฐเบ›เบฑเบšเบ›เบธเบ‡ topology เปƒเบ™เป€เบงเบฅเบฒเบšเปเปˆเป€เบเบตเบ™ 10 เบงเบดเบ™เบฒเบ—เบต;
  • เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”: เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบˆเบฐเบ›เปˆเบฝเบ™เปเบ›เบ‡, เบšเบปเบ”เบšเบฒเบ”เบ‚เบญเบ‡เปเบกเปˆเบšเบปเบ”เบˆเบฐเบœเปˆเบฒเบ™เป„เบ› replica, topology เบˆเบฐเบ–เบทเบเบชเป‰เบฒเบ‡เปƒเบซเบกเปˆ;
  • เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆเบˆเบฐเบเบฒเบเป€เบ›เบฑเบ™เบ‚เบฝเบ™เป„เบ”เป‰, replicas เบ”เปเบฒเบฅเบปเบ‡เบŠเบตเบงเบดเบ”เบˆเบฐเบšเปเปˆเบชเบนเบ™เป€เบชเบเป„เบ›เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เปƒเบซเบกเปˆ;
  • เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เบˆเบฐโ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบ–เบทเบโ€‹เบฅเบฒเบโ€‹เบฅเบฑเบโ€‹เบญเบฑเบโ€‹เบชเบญเบ™โ€‹เปƒเบซเบกเปˆโ€‹เปเบฅเบฐ replicatedโ€‹;
  • เป€เบงเบฅเบฒเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบงเบ—เบฑเบ‡เปเบปเบ”เบˆเบฐเบšเปเปˆเป€เบเบตเบ™ 30 เบงเบดเบ™เบฒเบ—เบต.

เบ•เบฒเบกเบ—เบตเปˆเบ—เปˆเบฒเบ™เบฎเบนเป‰, เบฅเบฐเบšเบปเบšเบญเบฒเบ”เบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบปเบงเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปเบฅเบฐเบเบฒเบ™เบœเบฐเบฅเบดเบ”เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบฎเบฒเบ”เปเบงเปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เปƒเบ™เบเบฒเบ™เบชเบฑเบ‡เป€เบ„เบฒเบฐเปเบฅเบฐเบเบฒเบ™เป‚เบซเบผเบ”เบ—เบตเปˆเปเบ—เป‰เบˆเบดเบ‡, เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบญเบญเบเบเปเบฒเบฅเบฑเบ‡เบเบฒเบเป€เบ›เบฑเบ™เป„เบฅเบเบฐเป†เปƒเบ™เบชเบฐเบžเบฒเบšเบ•เบปเบงเบˆเบดเบ‡, เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ–เบทเบเบชเบนเบ™เป€เบชเบเบซเบผเบทเบžเบฒเบเบชเปˆเบงเบ™เบชเปˆเบงเบ™เบšเบธเบเบ„เบปเบ™เบ‚เบญเบ‡เบกเบฑเบ™เบ–เบทเบเบŠเบธเบ”เป‚เบŠเบก. เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡เบ—เบตเปˆเบ„เบทเบเบฑเบ™เปเบปเบ”เบ—เบฑเบ‡เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบก เปเบฅเบฐเป€เบฎเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”.

เบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบš

เบชเบธเบ‚เบฐเบžเบฒเบšเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเบเบฒเบ™เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเบ•เบปเป‰เบ™เบ•เปเปเบกเปˆเบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เบงเบฝเบเบ‡เบฒเบ™เบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡ SRE เปเบฅเบฐเบ—เบตเบกเบ‡เบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™. เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡ orchestrator เปเบฅเบฐเบเบฒเบ™เปเบเป‰เป„เบ‚ HA เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ VIP เป„เบ”เป‰เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบžเบงเบเป€เบฎเบปเบฒเบšเบฑเบ™เบฅเบธเบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  • เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡เบšเบฑเบ™เบซเบฒเบเบฑเบš topology เบ‚เบญเบ‡เบเบธเปˆเบกเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™;
  • เบเบฒเบ™เบ•เบญเบšเบชเบฐ เปœเบญเบ‡ เบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เปเบฅเบฐเป„เบงเบ•เปเปˆเป€เบซเบ”เบเบฒเบ™เบ—เบตเปˆเบเปˆเบฝเบงเบ‚เป‰เบญเบ‡เบเบฑเบšเปเบกเปˆเบšเบปเบ”, เบซเบผเบธเบ”เบœเปˆเบญเบ™เบเบฒเบ™เบขเบธเบ”เบฅเบฐเบšเบปเบš.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบเบฒเบ™เปเบเป‰เป„เบ‚เบกเบตเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เปเบฅเบฐเบ‚เปเป‰เป€เบชเบเบ‚เบญเบ‡เบกเบฑเบ™:

  • เบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเป‚เบ„เบ‡เบเบฒเบ™ HA เป„เบ›เบซเบฒเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบผเบฒเบเปเบซเปˆเบ‡เบˆเบฐเบ•เป‰เบญเบ‡เบกเบตเป€เบ„เบทเบญเบ‚เปˆเบฒเบ L2 เบ”เบฝเบงเบฅเบฐเบซเบงเปˆเบฒเบ‡เบžเบงเบเบกเบฑเบ™;
  • เบเปˆเบญเบ™เบ—เบตเปˆเบˆเบฐเบกเบญเบšเบซเบกเบฒเบ VIP เปƒเบ™เปเบกเปˆเบšเบปเบ”เปƒเบซเบกเปˆ, เบžเบงเบเป€เบฎเบปเบฒเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ›เปˆเบญเบเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบญเบฑเบ™เป€เบเบปเปˆเบฒ. เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เปเบกเปˆเบ™เบ•เบฒเบกเบฅเปเบฒเบ”เบฑเบš, เป€เบŠเบดเปˆเบ‡เป€เบžเบตเปˆเบกเป€เบงเบฅเบฒเบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบง;
  • เบเบฒเบ™เบ›เปˆเบญเบ VIP เบฎเบฝเบเบฎเป‰เบญเบ‡เปƒเบซเป‰เบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡ SSH เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ, เบซเบผเบทเบงเบดเบ—เบตเบเบฒเบ™เบญเบทเปˆเบ™เป†เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เบซเบฒเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ—เบฒเบ‡เป„เบ. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเบผเบทเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบเปเบฒเบฅเบฑเบ‡เบ›เบฐเบชเบปเบšเบšเบฑเบ™เบซเบฒเบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบŸเบทเป‰เบ™เบ•เบปเบง, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเบชเบฒเบกเบฒเบ”เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเบเบฒเบ™เป‚เบเบเบเป‰เบฒเบ VIP เบˆเบฐเบชเปเบฒเป€เบฅเบฑเบ”เบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”. เปเบฅเบฐเบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ™เปเบฒเป„เบ›เบชเบนเปˆเบฎเบนเบšเบฅเบฑเบเบชเบฐเบ™เบฐเบ‚เบญเบ‡เบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเบกเบตเบ—เบตเปˆเบขเบนเปˆ IP virtual เบ”เบฝเบงเบเบฑเบ™เปเบฅเบฐเบกเบตเบšเบฑเบ™เบซเบฒ split brain.

เป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™ split brain, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ STONITH (โ€œShoot the other node in the Headโ€), เป€เบŠเบดเปˆเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เป‚เบ”เบ”เบ”เปˆเบฝเบง เบซเบผเบทเบ›เบดเบ”เบเบฒเบ™เปƒเบŠเป‰เบ‡เบฒเบ™ node เบšเบฑเบ™เบซเบฒ. เบกเบตเบงเบดเบ—เบตเบญเบทเปˆเบ™เป€เบžเบทเปˆเบญเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบกเบตเบเบธเปˆเบกเบ—เบตเปˆเบกเบตเบ„เบงเบฒเบกเบžเป‰เบญเบกเบชเบนเบ‡: เบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡ VIP เปเบฅเบฐ DNS, เบเบฒเบ™เบ„เบปเป‰เบ™เบžเบปเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เปเบฅเบฐเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ•เบปเบงเปเบ—เบ™, เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบš synchronous เปเบฅเบฐเบงเบดเบ—เบตเบเบฒเบ™เบญเบทเปˆเบ™เป†เบ—เบตเปˆเบกเบตเบ‚เปเป‰เป€เบชเบเปเบฅเบฐเบ‚เปเป‰เบ”เบตเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡.

เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบเบฒเบ™เบชเป‰เบฒเบ‡เบเบธเปˆเบก MySQL failover. เบกเบฑเบ™เบ‡เปˆเบฒเบเบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เปเบฅเบฐเบชเบฐเบซเบ™เบญเบ‡เบฅเบฐเบ”เบฑเบšเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเบžเบฒเบเปƒเบ•เป‰เป€เบ‡เบทเปˆเบญเบ™เป„เบ‚เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™. เปƒเบ™เบ‚เบฐเบ™เบฐเบ—เบตเปˆเบฅเบฐเบšเบปเบšเบ—เบฑเบ‡เบซเบกเบปเบ”เป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›เปเบฅเบฐเบžเบทเป‰เบ™เบ–เบฒเบ™เป‚เบ„เบ‡เบฅเปˆเบฒเบ‡เป‚เบ”เบเบชเบฐเป€เบžเบฒเบฐเปเบกเปˆเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ, เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เบˆเบฐเบžเบฑเบ”เบ—เบฐเบ™เบฒเบขเปˆเบฒเบ‡เบšเปเปˆเบ•เป‰เบญเบ‡เบชเบปเบ‡เปƒเบช.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™