เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ PostgreSQL เปเบฅเบฐ Pacemaker

เบเบฒเบ™เบ™เปเบฒเบชเบฐเป€เบซเบ™เบต

เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบฎเบฑเบšเบซเบ™เป‰เบฒเบ—เบตเปˆเบ‚เบญเบ‡เบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒ cluster failover เบชเปเบฒเบฅเบฑเบš PostgreSQL, เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบขเบนเปˆเปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบˆเปเบฒเบ™เบงเบ™เบซเบ™เบถเปˆเบ‡เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ”เป‰เบงเบเป€เบชเบฑเป‰เบ™เป„เบ optical เบžเบฒเบเปƒเบ™เป€เบกเบทเบญเบ‡เบซเบ™เบถเปˆเบ‡, เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ—เบปเบ™เบเบฑเบšเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบง (เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, เบเบฒเบ™เบ›เบดเบ”) เบ‚เบญเบ‡เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบ™เบถเปˆเบ‡. เปƒเบ™เบ–เบฒเบ™เบฐเป€เบ›เบฑเบ™เบŠเบญเบšเปเบงเบ—เบตเปˆเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบฅเบทเบญเบ เบกเป‰เบฒเบ™เปเบฒเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบขเปˆเบฒเบ‡เป€เบ›เบฑเบ™เบ—เบฒเบ‡เบเบฒเบ™เบˆเบฒเบ RedHat เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡ clusters เบฅเบปเป‰เบกเป€เบซเบฅเบง. เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ”เบตเป€เบžเบฒเบฐเบงเปˆเบฒ RedHat เบชเบฐเบซเบ™เบญเบ‡เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เบชเปเบฒเบฅเบฑเบšเบกเบฑเบ™, เปเบฅเบฐเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบเบฒเบ™เปเบเป‰เป„เบ‚เบ™เบตเป‰เปเบกเปˆเบ™เบ—เบปเปˆเบงเป„เบ› (modular). เบ”เป‰เบงเบเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบกเบฑเบ™, เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบ‚เบญเบ‡ PostgreSQL, เปเบ•เปˆเบเบฑเบ‡เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบญเบทเปˆเบ™เป†, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เป‚เบกเบ”เบนเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบซเบผเบทเบชเป‰เบฒเบ‡เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐ.

เบเบฒเบ™โ€‹เบ•เบฑเบ”เบชเบดเบ™โ€‹เปƒเบˆโ€‹เบ™เบตเป‰โ€‹เป„เบ”เป‰โ€‹เบชเป‰เบฒเบ‡โ€‹เบ„เบณโ€‹เบ–เบฒเบกโ€‹เบ—เบตเปˆโ€‹เบชเบปเบกโ€‹เป€เบซเบ”โ€‹เบชเบปเบกโ€‹เบœเบปเบ™โ€‹เบ„เบท: เบเบธเปˆเบกโ€‹เบ„เบงเบฒเบกโ€‹เบฅเบปเป‰เบกโ€‹เป€เบซเบผเบงโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เปเบ™เบงโ€‹เปƒเบ”? เป€เบžเบทเปˆเบญเบชเบทเบšเบชเบงเบ™เบ™เบตเป‰, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบเบฒเบ™เบ—เบปเบ”เบชเบญเบš bench เบ—เบตเปˆเบˆเปเบฒเบฅเบญเบ‡เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเบ•เปˆเบฒเบ‡เป†เปƒเบ™ nodes cluster, เบฅเปเบ–เป‰เบฒเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบŸเบทเป‰เบ™เบŸเบน, เบŸเบทเป‰เบ™เบŸเบน node เบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบง, เปเบฅเบฐเบชเบทเบšเบ•เปเปˆเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปƒเบ™ loop. เป‚เบ„เบ‡โ€‹เบเบฒเบ™โ€‹เบ™เบตเป‰โ€‹เปƒเบ™โ€‹เป€เบšเบทเป‰เบญเบ‡โ€‹เบ•เบปเป‰เบ™โ€‹เป€เบญเบตเป‰เบ™โ€‹เบงเปˆเบฒ hapgsqlโ€‹, เปเบ•เปˆโ€‹เบงเปˆเบฒโ€‹เปƒเบ™โ€‹เป„เบฅโ€‹เบเบฐโ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบ—เบตเปˆโ€‹เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เป„เบ”เป‰โ€‹เป€เบšเบทเปˆเบญโ€‹เบเบฑเบšโ€‹เบŠเบทเปˆโ€‹, เบ—เบตเปˆโ€‹เบกเบตโ€‹เบžเบฝเบ‡โ€‹เปเบ•เปˆโ€‹เบชเบฐโ€‹เบซเบ™เบธเบโ€‹เบชเบฐโ€‹เบ™เบฐโ€‹เบซเบ™เบถเปˆเบ‡โ€‹. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเป„เบ”เป‰เป€เบฅเบตเปˆเบกเป‚เบ—เบซเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ” (เปเบฅเบฐ float IP เบŠเบตเป‰เป„เบ›เบซเบฒเบžเบงเบเป€เบ‚เบปเบฒ) เบเบธเป‰เบ‡ (เบ•เบปเบงเบฅเบฐเบ„เบญเบ™เบˆเบฒเบเป€เบเบกเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ—เบตเปˆเบญเบฐเป„เบงเบเบฐเบงเบฐเบ—เบตเปˆเบชเบณเบ„เบฑเบ™เบ—เบฑเบ‡เปเบปเบ”เบ–เบทเบเบŠเปเป‰เบฒเบเบฑเบ™), เปเบฅเบฐ nodes, clusters เปเบฅเบฐ project เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เปเบกเปˆเบ™. tuchanka (เบ”เบฒเบงเป€เบ„เบฒเบฐเบ—เบตเปˆ krogans เบญเบฒเป„เบชเบขเบนเปˆ).

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

เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ PostgreSQL เปเบฅเบฐ Pacemaker

เบเบธเปˆเบกเบ–เบทเบเบ™เบณเปƒเบŠเป‰เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบชเบฐเป€เปเบทเบญเบ™ VirtualBox. เบˆเปเบฒเบ™เบงเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual เบ—เบฑเบ‡เบซเบกเบปเบ” 12 เป€เบ„เบทเปˆเบญเบ‡ (เบˆเปเบฒเบ™เบงเบ™เบ—เบฑเบ‡เบซเบกเบปเบ” 36GiB) เบˆเบฐเบ–เบทเบเบ™เปเบฒเป„เบ›เปƒเบŠเป‰, เป€เบŠเบดเปˆเบ‡เบ›เบฐเบเบญเบšเป€เบ›เบฑเบ™ 4 เบเบธเปˆเบกเบ—เบตเปˆเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ” (เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™). เบชเบญเบ‡เบเบธเปˆเบกเบ—เปเบฒเบญเบดเบ”เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ PostgreSQL, เป€เบŠเบดเปˆเบ‡เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบปเปˆเบงเป„เบ›. เบžเบฐเบเบฒเบ™ c เบญเบธเบ›เบฐเบเบญเบ™เบเบธเปˆเบก (เป‚เบฎเบ”เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual เบฅเบฒเบ„เบฒเบ–เบทเบเปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเบชเบฒเบก), เป€เบŠเบดเปˆเบ‡เปเบเป‰เป„เบ‚เบ„เบงเบฒเบกเบšเปเปˆเปเบ™เปˆเบ™เบญเบ™ 50% / 50%, เปƒเบซเป‰เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบเบฑเบšเบซเบ™เบถเปˆเบ‡เปƒเบ™เบžเบฒเบเบชเปˆเบงเบ™. เบเบธเปˆเบกเบ—เบตเบชเบฒเบกเปƒเบ™เบชเบฒเบกเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™: เบซเบ™เบถเปˆเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš, เบชเบญเบ‡เบชเปเบฒเบฅเบญเบ‡, เบšเปเปˆเบกเบต เบญเบธเบ›เบฐเบเบญเบ™เบเบธเปˆเบก. เบเบธเปˆเบกเบ—เบตเปˆเบชเบตเปˆเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบชเบตเปˆเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ PostgreSQL, เบชเบญเบ‡เบ•เปเปˆเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™: เบซเบ™เบถเปˆเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš, replicas เบชเปˆเบงเบ™เบ—เบตเปˆเป€เบซเบผเบทเบญ, เปเบฅเบฐเบเบฑเบ‡เปƒเบŠเป‰. เบžเบฐเบเบฒเบ™ c เบญเบธเบ›เบฐเบเบญเบ™เบเบธเปˆเบก. เบชเบตเปˆเบชเบฒเบกเบฒเบ”เบ—เบปเบ™เบเบฑเบšเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบญเบ‡เบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเบผเบทเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบ™เบถเปˆเบ‡. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฑเบšเบ‚เบฐเบซเบ™เบฒเบ”เป€เบ›เบฑเบ™เบˆเปเบฒเบ™เบงเบ™เบ‚เบฐเบซเบ™เบฒเบ”เปƒเบซเบเปˆเบ‚เบญเบ‡ replicas เบ–เป‰เบฒเบˆเปเบฒเป€เบ›เบฑเบ™.

เบšเปเบฅเบดเบเบฒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡ ntpd เบเบฑเบ‡ configured เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ„เบงเบฒเบกเบœเบดเบ”, เปเบ•เปˆเบกเบฑเบ™เปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™เบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡ ntpd (เป‚เปเบ”เป€เบ”เบฑเบเบเบณเบžเป‰เบฒ). เป€เบŠเบตเบšเป€เบงเบตเบ—เบตเปˆเปเบšเปˆเบ‡เบ›เบฑเบ™ เบžเบฐเบเบฒเบ™ เป€เบฎเบฑเบ”เปœเป‰เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป€เบŠเบตเบšเป€เบงเบต NTP เบชเบนเบ™เบเบฒเบ‡, เปเบˆเบเบขเบฒเบเป€เบงเบฅเบฒเบ‚เบญเบ‡เบกเบฑเบ™เปƒเบซเป‰เบเบฑเบšเบ—เบธเบเบเบธเปˆเบก, เบ”เป‰เบงเบเป€เบซเบ”เบ™เบตเป‰เบเบฒเบ™เบŠเบดเป‰เบ‡เป€เบŠเบตเบšเป€เบงเบตเบ—เบฑเบ‡เปเบปเบ”เบเบฑเบšเบเบฑเบ™. เบ–เป‰เบฒ เบžเบฐเบเบฒเบ™ เบฅเบปเป‰เบกเป€เบซเบฅเบงเบซเบผเบทเบ–เบทเบเป‚เบ”เบ”เบ”เปˆเบฝเบง, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบซเบ™เบถเปˆเบ‡เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบเบธเปˆเบก (เบžเบฒเบเปƒเบ™เบเบธเปˆเบก) เบˆเบฐเป€เบฅเบตเปˆเบกเปเบˆเบเบขเบฒเบเป€เบงเบฅเบฒเบ‚เบญเบ‡เบกเบฑเบ™. เบเบฒเบ™เป€เบเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบŠเปˆเบงเบ เบ•เบปเบงเปเบ—เบ™ HTTP เบเบปเบเบ‚เบถเป‰เบ™เบกเบฒ เบžเบฐเบเบฒเบ™, เบ”เป‰เบงเบเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡เบกเบฑเบ™, เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ virtual เบญเบทเปˆเบ™เป†เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบšเปˆเบญเบ™เป€เบเบฑเบšเบกเป‰เบฝเบ™ Yum. เปƒเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เบˆเบดเบ‡, เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบŠเบฑเปˆเบ™: เป€เบงเบฅเบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เปเบฅเบฐเบ•เบปเบงเปเบ—เบ™เบชเปˆเบงเบ™เปƒเบซเบเปˆเบกเบฑเบเบˆเบฐเบ–เบทเบเป‚เบฎเบ”เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเบญเบธเบ—เบดเบ”เบ•เบปเบ™, เปเบ•เปˆเปƒเบ™เบšเบนเบ”เบžเบงเบเป€เบ‚เบปเบฒเบ–เบทเบเบˆเบฑเบ”เบขเบนเปˆเปƒเบ™. เบžเบฐเบเบฒเบ™ เบžเบฝเบ‡เปเบ•เปˆเป€เบžเบทเปˆเบญเบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡ virtual เปเบฅเบฐเบžเบทเป‰เบ™เบ—เบตเปˆ.

เบชเบฐเบšเบฑเบš

v0. เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš CentOS 7 เปเบฅเบฐ PostgreSQL 11 เปƒเบ™ VirtualBox 6.1.

เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบเบธเปˆเบก

เบเบธเปˆเบกเบ—เบฑเบ‡เปเบปเบ”เบ–เบทเบเบญเบญเบเปเบšเบšเปƒเบซเป‰เบ•เบฑเป‰เบ‡เบขเบนเปˆเปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบผเบฒเบเปเบซเปˆเบ‡, เบฎเบงเบกเป€เบ‚เบปเป‰เบฒเบเบฑเบ™เป€เบ›เบฑเบ™เป€เบ„เบทเบญเบ‚เปˆเบฒเบเบฎเบฒเบšเบžเบฝเบ‡เบ”เบฝเบง เปเบฅเบฐเบ•เป‰เบญเบ‡เบ—เบปเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบง เบซเบผเบทเบเบฒเบ™เปเบเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบง. เบ™เบฑเป‰เบ™เบ„เบทเป€เบซเบ”เบœเบปเบ™ เปเบกเปˆเบ™เบšเปเปˆเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰ เปƒเบŠเป‰เป€เบžเบทเปˆเบญเบ›เป‰เบญเบ‡เบเบฑเบ™ เบชเบฐเปเบญเบ‡เปเบ•เบ เป€เบ•เบฑเบเป‚เบ™เป‚เบฅเบŠเบต Pacemaker เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป€เบญเบตเป‰เบ™เบงเปˆเบฒ STONITH (Shoot the other node in the head) เบซเบผเบท เบซเบ™เบฒเบกเบซเบกเบฒเบเบˆเบฑเบš. เป‚เบ”เบเป€เบ™เบทเป‰เบญเปเบ—เป‰เปเบฅเป‰เบงเบ‚เบญเบ‡เบกเบฑเบ™: เบ–เป‰เบฒ nodes เปƒเบ™ cluster เป€เบฅเบตเปˆเบกเบชเบปเบ‡เปƒเบชเบงเปˆเบฒเบกเบตเบšเบฒเบ‡เบขเปˆเบฒเบ‡เบœเบดเบ”เบžเบฒเบ”เบเบฑเบšเบšเบฒเบ‡ node, เบกเบฑเบ™เบšเปเปˆเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบซเบผเบทเบกเบตเบžเบถเบ”เบ•เบดเบเปเบฒเบ—เบตเปˆเบšเปเปˆเบ–เบทเบเบ•เป‰เบญเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบžเบงเบเป€เบ‚เบปเบฒเบšเบฑเบ‡เบ„เบฑเบšเบกเบฑเบ™เบ›เบดเบ”เบกเบฑเบ™เบœเปˆเบฒเบ™เบญเบธเบ›เบฐเบเบญเบ™ "เบžเบฒเบเบ™เบญเบ", เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™เบšเบฑเบ”เบ„เบงเบšเบ„เบธเบก IPMI เบซเบผเบท UPS. . เปเบ•เปˆเบ™เบตเป‰เบˆเบฐเป€เบฎเบฑเบ”เบงเบฝเบเบžเบฝเบ‡เปเบ•เปˆเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆ, เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเบ”เบฝเบง, เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ IPMI เบซเบผเบท UPS เบเบฑเบ‡เบชเบทเบšเบ•เปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ. เปƒเบ™เบ—เบตเปˆเบ™เบตเป‰เบžเบงเบเป€เบฎเบปเบฒเบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเบ›เป‰เบญเบ‡เบเบฑเบ™เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบญเบ‡เป„เบžเบžเบดเบšเบฑเบ”เบซเบผเบฒเบ, เป€เบกเบทเปˆเบญเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เบฅเบปเป‰เบกเป€เบซเบฅเบง (เบ•เบปเบงเบขเปˆเบฒเบ‡, เบชเบนเบ™เป€เบชเบเบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™). เปเบฅเบฐเบ”เป‰เบงเบเบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡ เบชเบฐเป‚เบ•เบ™เบดเบ—-เบญเบธเบ›เบฐเบเบญเบ™ (IPMI, UPS, เปเบฅเบฐเบญเบทเปˆเบ™เป†) เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ.

เปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เบฅเบฐเบšเบปเบšเปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ‚เบญเบ‡เบเบธเปˆเบก. เบ—เบธเบเป† nodes เบกเบตเบชเบฝเบ‡, เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบœเบนเป‰เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เบซเบผเบฒเบเบเปˆเบงเบฒเป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡ nodes เบ—เบฑเบ‡เบซเบกเบปเบ”เบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเป„เบ”เป‰. เบ›เบฐเบฅเบดเบกเบฒเบ™เบ‚เบญเบ‡ "เป€เบ„เบดเปˆเบ‡ + 1" เบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒ เบเบธเปˆเบก. เบ–เป‰เบฒเบšเปเปˆเป€เบ–เบดเบ‡ quorum, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™ node เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบงเปˆเบฒเบกเบฑเบ™เบขเบนเปˆเปƒเบ™เบเบฒเบ™เปเบเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบฅเบฐเบ•เป‰เบญเบ‡เบ›เบดเบ”เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ‚เบญเบ‡เบกเบฑเบ™, i.e. เบ™เบตเป‰เปเบกเปˆเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบกเบฑเบ™เป€เบ›เบฑเบ™ เบ›เป‰เบญเบ‡เบเบฑเบ™เบชเบฐเปเบญเบ‡เปเบ•เบ. เบ–เป‰เบฒเบŠเบญเบšเปเบงเบ—เบตเปˆเบฎเบฑเบšเบœเบดเบ”เบŠเบญเบšเบ•เปเปˆเบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰เบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบ, เบ•เบปเบงเบขเปˆเบฒเบ‡เป€เบŠเบฑเปˆเบ™, เบญเบตเบ‡เปƒเบชเปˆ IPMI, เบˆเบฐเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เบงเบฝเบ.

เบ–เป‰เบฒเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡ nodes เปเบกเปˆเบ™เบ„เบนเปˆ (เบเบธเปˆเบกเบขเบนเปˆเปƒเบ™เบชเบญเบ‡เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™), เบ„เบงเบฒเบกเบšเปเปˆเปเบ™เปˆเบ™เบญเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบญเบฒเบ”เบˆเบฐเป€เบเบตเบ”เบ‚เบทเป‰เบ™. 50% / 50% (เบซเป‰เบฒเบชเบดเบšเบซเป‰เบฒเบชเบดเบš) เป€เบกเบทเปˆเบญเบเบฒเบ™เปเบเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบเปเบšเปˆเบ‡เบเบธเปˆเบกเบขเปˆเบฒเบ‡เปเบ™เปˆเบ™เบญเบ™เปƒเบ™เป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบชเปเบฒเบฅเบฑเบšเบˆเปเบฒเบ™เบงเบ™เบ„เบนเปˆเบ‚เบญเบ‡ nodes, เบžเบงเบเป€เบฎเบปเบฒเป€เบžเบตเปˆเบก เบญเบธเบ›เบฐเบเบญเบ™เบเบธเปˆเบก เป€เบ›เบฑเบ™ daemon undemanding เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เป€เบ›เบตเบ”เบ•เบปเบงเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡ virtual เบฅเบฒเบ„เบฒเบ–เบทเบเบ—เบตเปˆเบชเบธเบ”เปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเบชเบฒเบก. เบฅเบฒเบงเปƒเบซเป‰เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡เบ‚เบญเบ‡เบฅเบฒเบงเบเบฑเบšเบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเปˆเบงเบ™ (เบ—เบตเปˆเบฅเบฒเบงเป€เบซเบฑเบ™), เปเบฅเบฐเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เปเบเป‰เป„เบ‚เบ„เบงเบฒเบกเบšเปเปˆเปเบ™เปˆเบ™เบญเบ™ 50% / 50%. เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบ•เบฑเป‰เบ‡โ€‹เบŠเบทเปˆโ€‹เป€เบŠเบตเบšโ€‹เป€เบงเบตโ€‹เบ—เบตเปˆโ€‹เบญเบธโ€‹เบ›เบฐโ€‹เบเบญเบ™โ€‹เบเบธเปˆเบกโ€‹เป‚เบ„โ€‹เบฃเบณโ€‹เบˆเบฐโ€‹เบ–เบทเบโ€‹เป€เบ›เบตเบ”โ€‹เบ™เบณโ€‹เปƒเบŠเป‰ เบžเบฐเบเบฒเบ™ (เบ„เบณเบชเบฑเบšเบˆเบฒเบ repmgr, เบ‚เป‰เบญเบเบกเบฑเบเบกเบฑเบ™).

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

Tuchanka1 (เบงเบปเบ‡เบˆเบญเบ™เบ—เบตเปˆเบกเบตเบเบฒเบ™เบšเบตเบšเบญเบฑเบ”)

เป‚เบ„เบ‡เบ›เบฐเบเบญเบšเบเบฒเบ™

เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ PostgreSQL เปเบฅเบฐ Pacemaker

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

เปเบ•เปˆเบฅเบฐเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเบ™เบถเปˆเบ‡. เปเบ•เปˆเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบกเบตเบชเบญเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡ PostgreSQL (เปƒเบ™เบ„เปเบฒเบชเบฑเบš PostgreSQL เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบเบธเปˆเบก, เปเบ•เปˆเป€เบžเบทเปˆเบญเบซเบผเบตเบเป€เบงเบฑเป‰เบ™เบเบฒเบ™เบชเบฑเบšเบชเบปเบ™, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเป‚เบ—เบซเบฒเบžเบงเบเป€เบ‚เบปเบฒ instances (เป‚เบ”เบเบเบฒเบ™เบ›เบฝเบšเบ—เบฝเบšเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบญเบทเปˆเบ™เป†), เปเบฅเบฐเบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเป‚เบ—เบซเบฒเบžเบฝเบ‡เปเบ•เปˆเบเบธเปˆเบก Pacemaker clusters). เบ•เบปเบงเบขเปˆเบฒเบ‡เบซเบ™เบถเปˆเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เปƒเบ™เบฎเบนเบšเปเบšเบšเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš, เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบกเบฑเบ™เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ (เบžเบฝเบ‡เปเบ•เปˆ IP เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เบ™เปเบฒเป„เบ›เบชเบนเปˆเบกเบฑเบ™). เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเบชเบญเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเป€เบ›เบฑเบ™เบ—เบฒเบ”เบชเปเบฒเบฅเบฑเบšเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเบชเบญเบ‡, เปเบฅเบฐเบˆเบฐเปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบžเบฝเบ‡เปเบ•เปˆเบ–เป‰เบฒเปเบกเปˆเปเบšเบšเบ‚เบญเบ‡เบกเบฑเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบง. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเป€เบงเบฅเบฒเบชเปˆเบงเบ™เปƒเบซเบเปˆเบกเบตเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡เบญเบญเบเบˆเบฒเบเบชเบญเบ‡ (เปเบกเปˆเบšเบปเบ”) เบˆเบฐเปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ (เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป), เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบฑเบ‡เบซเบกเบปเบ”เปเบกเปˆเบ™ optimized เบชเปเบฒเบฅเบฑเบšเปเบกเปˆเบšเบปเบ” (เบซเบ™เปˆเบงเบเบ„เบงเบฒเบกเบˆเปเบฒเบ–เบทเบเบˆเบฑเบ”เบชเบฑเบ™เบชเปเบฒเบฅเบฑเบš share_buffers cache, เปเบฅเบฐเบญเบทเปˆเบ™เป†), เปเบ•เปˆเบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเบชเบญเบ‡. เบเบฑเบ‡เบกเบตเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบžเบฝเบ‡เบžเป (เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เป‚เบ”เบเบœเปˆเบฒเบ™ cache เบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป„เบŸเบฅเปŒ) เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบญเบ‡เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบ™เบถเปˆเบ‡. เบชเปเบฒเบฅเบญเบ‡เบšเปเปˆเป„เบ”เป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ (เบšเปเปˆเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™) เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ›เบปเบเบเบฐเบ•เบดเบ‚เบญเบ‡เบเบธเปˆเบก, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบšเปเปˆเบกเบตเบชเบปเบ‡เบ„เบฒเบกเบชเปเบฒเบฅเบฑเบšเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบเบฑเบšเปเบกเปˆเบšเบปเบ”เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เบ”เบฝเบงเบเบฑเบ™.

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

เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบžเบฐเบเบฒเบ™

เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ PostgreSQL เปเบฅเบฐ Pacemaker

เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบžเบฐเบเบฒเบ™ (เบญเบธเบ›เบฐเบเบญเบ™เบเบธเปˆเบก) เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบˆเบฐเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบฑเบšเบเบธเปˆเบก Tuchanka1, เบเบฑเบšเบชเบดเปˆเบ‡เบญเบทเปˆเบ™เป†เบ—เบฑเบ‡เบซเบกเบปเบ”เบกเบฑเบ™เบˆเบฐเป€เบ›เบฑเบ™เป€เบฅเบทเปˆเบญเบ‡เบ”เบฝเบงเบเบฑเบ™. เบ–เป‰เบฒเบžเบฐเบเบฒเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบง, เบšเปเปˆเบกเบตเบซเบเบฑเบ‡เบˆเบฐเบ›เปˆเบฝเบ™เปเบ›เบ‡เปƒเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบ‚เบญเบ‡เบเบธเปˆเบก, เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบˆเบฐเบชเบทเบšเบ•เปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบกเบฑเบ™. โ€‹เปเบ•เปˆโ€‹เบเบธเปˆเบกโ€‹เป‚เบ„โ€‹เบฃเบณโ€‹เบˆเบฐโ€‹เบเบฒเบโ€‹เป€เบ›เบฑเบ™ 2 โ€‹เปƒเบ™ 3 โ€‹เบ„เบฐโ€‹เปเบ™เบ™, โ€‹เปเบฅเบฐโ€‹เป€เบžเบฒเบฐโ€‹เบชเบฐโ€‹เบ™เบฑเป‰เบ™โ€‹เบ„เบงเบฒเบกโ€‹เบฅเบปเป‰เบกโ€‹เป€เบซเบผเบงโ€‹เปƒเบ™โ€‹เบ„เบฑเป‰เบ‡โ€‹เบ•เปเปˆโ€‹เบกเบฒโ€‹เบˆเบฐโ€‹เป€เบ›เบฑเบ™โ€‹เบญเบฑเบ™เบ•เบฐเบฅเบฒเบโ€‹เบฎเป‰เบฒเบโ€‹เปเบฎเบ‡โ€‹เบ•เปเปˆโ€‹เบเบธเปˆเบก. เบเบฑเบ‡โ€‹เบˆเบฐโ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚โ€‹เบขเปˆเบฒเบ‡โ€‹เบฎเบตเบšโ€‹เบ”เปˆเบงเบ™.

Tuchanka1 เบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”

เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ PostgreSQL เปเบฅเบฐ Pacemaker

เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบญเบ‡เบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบชเปเบฒเบฅเบฑเบš Tuchanka1. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰ เบžเบฐเบเบฒเบ™ เป‚เบซเบงเบ”เปƒเบซเป‰เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡เบ—เบตเปˆเบชเบญเบ‡เบขเบนเปˆเปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเบชเบญเบ‡. เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™, เบญเบฐเบ”เบตเบ”เบ—เบฒเบ”เบเบฒเบเป€เบ›เบฑเบ™เปเบกเปˆเบšเบปเบ”, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เปเบกเปˆเบšเบปเบ”เบ—เบฑเบ‡เบชเบญเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ”เบฝเบงเบเบฑเบ™เปเบฅเบฐเบ—เบฑเบ‡เบชเบญเบ‡ IP เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบžเบงเบเป€เบ‚เบปเบฒ.

Tuchanka2 (เบ„เบฅเบฒเบชเบชเบดเบ)

เป‚เบ„เบ‡เบ›เบฐเบเบญเบšเบเบฒเบ™

เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ PostgreSQL เปเบฅเบฐ Pacemaker

เป‚เบ„เบ‡เบเบฒเบ™เบ„เบฅเบฒเบชเบชเบดเบเบ‚เบญเบ‡เบชเบญเบ‡ nodes. เบ™เบฒเบโ€‹เป€เบฎเบฑเบ”โ€‹เบงเบฝเบโ€‹เบขเบนเปˆโ€‹เบ„เบปเบ™โ€‹เปœเบถเปˆเบ‡, เบ‚เป‰เบฒโ€‹เปƒเบŠเป‰โ€‹เบ„เบปเบ™โ€‹เบ—เบตโ€‹เบชเบญเบ‡. เบ—เบฑเบ‡เบชเบญเบ‡เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป (เบชเปเบฒเบฅเบญเบ‡เปเบกเปˆเบ™เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™), เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบ—เบฑเบ‡เบชเบญเบ‡เป„เบ”เป‰เบ–เบทเบเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป‚เบ”เบ float IP: krogan2 เปเบกเปˆเบ™เปเบกเปˆเบšเบปเบ”, krogan2s1 เปเบกเปˆเบ™เบชเปเบฒเบฅเบญเบ‡. เบ—เบฑเบ‡เบ™เบฒเบเปเบฅเบฐเบ‚เป‰เบฒเปƒเบŠเป‰เบˆเบฐเบกเบตเบ„เบงเบฒเบกเบญเบปเบ”เบ—เบปเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”.

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

Tuchanka2 เบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”

เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ PostgreSQL เปเบฅเบฐ Pacemaker

เบ–เป‰เบฒเบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบง เบžเบฐเบเบฒเบ™ เบฅเบปเบ‡เบ„เบฐเปเบ™เบ™เบชเบฝเบ‡เบชเปเบฒเบฅเบฑเบšเบญเบฑเบ™เบ—เบตเบชเบญเบ‡. เปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบ, เปเบกเปˆเบšเบปเบ”เบˆเบฐเบ–เบทเบเบเบปเบเบ‚เบถเป‰เบ™เบกเบฒ, เปเบฅเบฐ IPs เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เบ—เบฑเบ‡เบชเบญเบ‡เบˆเบฐเบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เป€เบ–เบดเบ‡เบกเบฑเบ™: เปเบกเปˆเบšเบปเบ”เปเบฅเบฐเบชเปเบฒเบฅเบญเบ‡. เปเบ™เปˆเบ™เบญเบ™, เบ•เบปเบงเบขเปˆเบฒเบ‡เบ•เป‰เบญเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ—เบตเปˆเบกเบฑเบ™เบกเบตเบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เบžเบฝเบ‡เบžเป (เบˆเปเบฒเบเบฑเบ”เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ, เปเบฅเบฐเบญเบทเปˆเบ™เป†) เป€เบžเบทเปˆเบญเบฎเบฑเบšเป€เบญเบปเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปเบฅเบฐเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบเปเบกเปˆเบšเบปเบ”เปเบฅเบฐ slave float IP เปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™. เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‡เบฒเบ™เบ›เบปเบเบเบฐเบ•เบด, เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเบกเบตเบ‚เบญเบšเป€เบ‚เบ”เบˆเปเบฒเบเบฑเบ”เบžเบฝเบ‡เบžเป.

Tuchanka4 (เบ‚เป‰เบฒโ€‹เปƒเบŠเป‰โ€‹เบซเบผเบฒเบโ€‹)

เป‚เบ„เบ‡เบ›เบฐเบเบญเบšเบเบฒเบ™

เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ PostgreSQL เปเบฅเบฐ Pacemaker

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

เบ„เบธเบ™เบ™เบฐเบชเบปเบกเบšเบฑเบ”เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบˆเบฑเบ”เบซเบ™เบถเปˆเบ‡ replication synchronous. เบกเบฑเบ™เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปƒเบซเป‰ replicate, เบ–เป‰เบฒเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰, เบเบฑเบšเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบญเบทเปˆเบ™, เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ replica เปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš. เปเบกเปˆเบšเบปเบ”เปเบฅเบฐเบ—เบฒเบ”เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบ–เบทเบเบŠเบตเป‰เป„เบ›เบซเบฒ IP เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰. เป‚เบŠเบเบ”เบต, เบฅเบฐเบซเบงเปˆเบฒเบ‡เบชเปเบฒเบฅเบญเบ‡เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบตเปˆเบˆเบฐเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เป somehow sql proxy, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เปƒเบ™เบ”เป‰เบฒเบ™เบฅเบนเบเบ„เป‰เบฒ. เบ›เบฐเป€เบžเบ”เบ•เปˆเบฒเบ‡เป†เบ‚เบญเบ‡เบฅเบนเบเบ„เป‰เบฒเบญเบฒเบ”เบˆเบฐเบ•เป‰เบญเบ‡เบเบฒเบ™เบ›เบฐเป€เบžเบ”เบ•เปˆเบฒเบ‡เป† sql proxy, เปเบฅเบฐเบžเบฝเบ‡เปเบ•เปˆเบœเบนเป‰เบžเบฑเบ”เบ—เบฐเบ™เบฒเบฅเบนเบเบ„เป‰เบฒเบฎเบนเป‰เบงเปˆเบฒเปƒเบœเบ•เป‰เบญเบ‡เบเบฒเบ™เบญเบฑเบ™เปƒเบ”. เบŸเบฑเบ‡เบŠเบฑเบ™เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เป‚เบ”เบ daemon เบžเบฒเบเบ™เบญเบเบซเบผเบทเป‚เบ”เบเบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบฅเบนเบเบ„เป‰เบฒ (เบชเบฐเบ™เบธเบเป€เบเบตเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ), เปเบฅเบฐเบญเบทเปˆเบ™เป†. เบ—เบฑเบ‡เปเบปเบ”เบ™เบตเป‰เป„เบ›เป€เบเบตเบ™เบซเบปเบงเบ‚เปเป‰เบ‚เบญเบ‡เบเบธเปˆเบกเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบง (failover SQL proxy เบชเบฒโ€‹เบกเบฒเบ”โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹เป€เบ›เบฑเบ™โ€‹เบญเบดเบ”โ€‹เบชเบฐโ€‹เบซเบผเบฐโ€‹, เบฎเปˆเบงเบกโ€‹เบเบฑเบ™โ€‹เบเบฑเบšโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹เบฅเบนเบโ€‹เบ„เป‰เบฒโ€‹)โ€‹.

Tuchanka4 เบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”

เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ PostgreSQL เปเบฅเบฐ Pacemaker

เบ–เป‰เบฒเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบ™เบถเปˆเบ‡ (i.e., เบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ) เบฅเบปเป‰เบกเป€เบซเบฅเบง, เบžเบฐเบเบฒเบ™ vote เบชเปเบฒเบฅเบฑเบšเบ—เบตเบชเบญเบ‡. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบตเบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ—เบตเปˆเปเบฅเปˆเบ™เบขเบนเปˆเปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเบชเบญเบ‡: เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เปเบฅเปˆเบ™เปเบกเปˆเบšเบปเบ”, เปเบฅเบฐเปเบกเปˆเบšเบปเบ” float IP เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบกเบฑเบ™ (เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบญเปˆเบฒเบ™เบ‚เบฝเบ™); เปเบฅเบฐเปƒเบ™เป€เบŠเบตเบšเป€เบงเบตเบ—เบตเบชเบญเบ‡เบกเบต slave เปเบฅเปˆเบ™เบเบฑเบš replication synchronous, เปเบฅเบฐเบซเบ™เบถเปˆเบ‡เปƒเบ™ slave float IPs เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบกเบฑเบ™ (เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™).

เบชเบดเปˆเบ‡เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบ„เบงเบ™เบชเบฑเบ‡เป€เบเบ”เปเบกเปˆเบ™เบงเปˆเบฒเบšเปเปˆเปเบกเปˆเบ™เบ—เบฑเบ‡เบซเบกเบปเบ” slave float IPs เบˆเบฐเป€เบ›เบฑเบ™เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™, เปเบ•เปˆเบงเปˆเบฒเบกเบตเบžเบฝเบ‡เปเบ•เปˆเบซเบ™เบถเปˆเบ‡. เปเบฅเบฐเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบšเบกเบฑเบ™เบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡, เบกเบฑเบ™เบˆเบฐเบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™ sql proxy redirected เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบ—เบฑเบ‡เบซเบกเบปเบ”เป„เบ›เบซเบฒ IP เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบžเบฝเบ‡เปเบ•เปˆ float; เปเบฅเบฐเบ–เป‰เบฒ sql proxy เบšเปเปˆ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฅเบฒเบเบŠเบทเปˆเบชเปเบฒเบฅเบญเบ‡ IP เบฅเบญเบเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเปเบเบเบญเบญเบเบ”เป‰เบงเบเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบˆเบธเบ”เบขเบนเปˆเปƒเบ™ URL เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰, เบเบฑเบš libpq เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบˆเบฐเป€เบ›เบฑเบ™ IP เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบ—เปเบฒเบญเบดเบ”, เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เปƒเบ™เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”. เบšเบฒเบ‡เบ—เบตเบขเบนเปˆเปƒเบ™เบซเป‰เบญเบ‡เบชเบฐเบซเบกเบธเบ”เบญเบทเปˆเบ™เป†, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, JDBC, เบ™เบตเป‰เบˆเบฐเบšเปเปˆเป€เบฎเบฑเบ”เบงเบฝเบเปเบฅเบฐเบกเบตเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™ sql proxy. เบ™เบตเป‰เปเบกเปˆเบ™เป€เบฎเบฑเบ”เป„เบ”เป‰เป€เบžเบฒเบฐเบงเปˆเบฒ IPs เบฅเบญเบเบชเปเบฒเบฅเบฑเบšเบชเปเบฒเบฅเบญเบ‡เบ–เบทเบเบซเป‰เบฒเบกเบšเปเปˆเปƒเบซเป‰เบ–เบทเบเบเบปเบเบ‚เบถเป‰เบ™เบกเบฒเบžเป‰เบญเบกเป†เบเบฑเบ™เบขเบนเปˆเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบซเบ™เบถเปˆเบ‡, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบžเบงเบเบกเบฑเบ™เบˆเบฐเบ–เบทเบเปเบˆเบเบขเบฒเบเบขเปˆเบฒเบ‡เป€เบ—เบปเปˆเบฒเบ—เบฝเบกเบเบฑเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบชเปเบฒเบฅเบญเบ‡เบ–เป‰เบฒเบกเบตเบซเบผเบฒเบเบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบฅเปˆเบ™.

เบญเบฑเบ™เบ—เบตเบชเบญเบ‡: เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบง, เบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบš synchronous เบˆเบฐเบ–เบทเบเบฎเบฑเบเบชเบฒเป„เบงเป‰. เปเบฅเบฐเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบฅเบงเบ‚เบฑเป‰เบ™เบชเบญเบ‡เป€เบเบตเบ”เบ‚เบทเป‰เบ™, เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบซเบ™เบถเปˆเบ‡เปƒเบ™เบชเบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปƒเบ™เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบฅเบปเป‰เบกเป€เบซเบฅเบง, เบเบธเปˆเบก, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เบˆเบฐเบขเบธเบ”เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™, เบˆเบฐเบเบฑเบ‡เบ„เบปเบ‡เบฎเบฑเบเบชเบฒเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบกเบฑเบ™เปƒเบซเป‰เบเบฒเบ™เบขเบทเบ™เบขเบฑเบ™เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒ. (เบˆเบฐเบšเปเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบเบฒเบ™เบชเบนเบ™เป€เบชเบเปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบงเบ‚เบฑเป‰เบ™เบชเบญเบ‡).

Tuchanka3 (3 เบชเบนเบ™โ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹)

เป‚เบ„เบ‡เบ›เบฐเบเบญเบšเบเบฒเบ™

เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ PostgreSQL เปเบฅเบฐ Pacemaker

เบ™เบตเป‰เปเบกเปˆเบ™เบเบธเปˆเบกเบชเปเบฒเบฅเบฑเบšเบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เบ—เบตเปˆเบกเบตเบชเบฒเบกเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ, เปเบ•เปˆเบฅเบฐเบ„เบปเบ™เบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆ. เปƒเบ™โ€‹เบเปโ€‹เบฅเบฐโ€‹เบ™เบตโ€‹เบ™เบตเป‰ เบญเบธเบ›เบฐเบเบญเบ™เบเบธเปˆเบก เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™. เบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เป‚เบ”เบเบ™เบฒเบ, เบญเบตเบเบชเบญเบ‡เบ„เบปเบ™เปเบกเปˆเบ™เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เป‚เบ”เบเบชเปเบฒเบฅเบญเบ‡. Replication เปเบกเปˆเบ™ synchronous, เบ›เบฐเป€เบžเบ” ANY (slave1, slave2), เบ™เบฑเป‰เบ™เปเบกเปˆเบ™, เบฅเบนเบเบ„เป‰เบฒเบˆเบฐเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบขเบทเบ™เบขเบฑเบ™เป€เบกเบทเปˆเบญเบชเปเบฒเบฅเบญเบ‡เบ„เบปเบ™เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เบงเปˆเบฒเบฅเบฒเบงเป„เบ”เป‰เบเบญเบกเบฎเบฑเบšเบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒ. เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เป‚เบ”เบ IP เบฅเบญเบเบซเบ™เบถเปˆเบ‡เบชเปเบฒเบฅเบฑเบšเปเบกเปˆเบšเบปเบ”เปเบฅเบฐเบชเบญเบ‡เบชเปเบฒเบฅเบฑเบšเบชเปเบฒเบฅเบญเบ‡. เบšเปเปˆเป€เบซเบกเบทเบญเบ™เบเบฑเบš Tuchanka4, เบ—เบฑเบ‡เบชเบฒเบก IP float เปเบกเปˆเบ™เบกเบตเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”. เป€เบžเบทเปˆเบญเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เบเบฒเบ™เบชเบญเบšเบ–เบฒเบก SQL เปเบšเบšเบญเปˆเบฒเบ™เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ™เปเบฒเปƒเบŠเป‰ sql proxy (เบกเบตเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ•เปเปˆเบ„เบงเบฒเบกเบœเบดเบ”เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบ), เบซเบผเบทเบกเบญเบšเบซเบกเบฒเบ IP เบ—เบตเปˆเป€เบฅเบทเปˆเบญเบ™เป„เบ”เป‰เบซเบ™เบถเปˆเบ‡เปƒเบซเป‰เปเบเปˆเบฅเบนเบเบ„เป‰เบฒเป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡, เปเบฅเบฐเบญเบตเบเป€เบ„เบดเปˆเบ‡เบซเบ™เบถเปˆเบ‡เป€เบ›เบฑเบ™เบ—เบตเบชเบญเบ‡.

Tuchanka3 เบเบฒเบ™เบ›เบฐเบ•เบดเป€เบชเบ”

เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ PostgreSQL เปเบฅเบฐ Pacemaker

เบ–เป‰เบฒเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบซเบ™เบถเปˆเบ‡เบฅเบปเป‰เบกเป€เบซเบฅเบง, เบชเบญเบ‡เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆ. เปƒเบ™เบซเบ™เบถเปˆเบ‡, IP เบ‚เบญเบ‡เปเบกเปˆเบšเบปเบ”เปเบฅเบฐ float เบˆเบฒเบเปเบกเปˆเบšเบปเบ”เป„เบ”เป‰เบ–เบทเบเบเบปเบเบ‚เบถเป‰เบ™เบกเบฒ, เปƒเบ™เบ—เบตเบชเบญเบ‡ - slave เปเบฅเบฐเบ—เบฑเบ‡เบชเบญเบ‡ slave float IPs (เบ•เบปเบงเบขเปˆเบฒเบ‡เบ•เป‰เบญเบ‡เบกเบตเบชเบฐเบซเบ‡เบงเบ™เบชเบญเบ‡เป€เบ—เบปเปˆเบฒเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เป€เบžเบทเปˆเบญเบเบญเบกเบฎเบฑเบšเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบ—เบฑเบ‡เบซเบกเบปเบ”เบˆเบฒเบเบ—เบฑเบ‡เบชเบญเบ‡ slave float IPs). เบเบฒเบ™เบˆเบณเบฅเบญเบ‡เปเบšเบš synchronous เบฅเบฐเบซเบงเปˆเบฒเบ‡เบ™เบฒเบ เปเบฅเบฐเบ‚เป‰เบฒเบ—เบฒเบ”. เบ™เบญเบเบˆเบฒเบเบ™เบตเป‰, เบเบธเปˆเบกเบˆเบฐเบŠเปˆเบงเบเบ›เบฐเบขเบฑเบ”เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เป€เบฎเบฑเบ”เบ—เบธเบฅเบฐเบเปเบฒเบ—เบตเปˆเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒเปเบฅเบฐเบขเบทเบ™เบขเบฑเบ™ (เบˆเบฐเบšเปเปˆเบชเบนเบ™เป€เบชเบเบ‚เปเป‰เบกเบนเบ™) เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ—เบตเปˆเบกเบตเบเบฒเบ™เบ—เปเบฒเบฅเบฒเบเบชเบนเบ™เบ‚เปเป‰เบกเบนเบ™เบชเบญเบ‡ (เบ–เป‰เบฒเบžเบงเบเบกเบฑเบ™เบšเปเปˆเป„เบ”เป‰เบ–เบทเบเบ—เปเบฒเบฅเบฒเบเบžเป‰เบญเบกเป†เบเบฑเบ™).

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

เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”

เป€เบžเบทเปˆเบญเบ—เบปเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ—เบปเบ™เบ—เบฒเบ™เบ„เบงเบฒเบกเบœเบดเบ”เบ‚เบญเบ‡เบเบธเปˆเบกเป‚เบ”เบเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบ•เปˆเบฒเบ‡เป†, เบฅเบฐเบšเบปเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”เป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™. เป€เบ›เบตเบ”เบ•เบปเบงเป‚เบ”เบ script test/failure. script เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป€เบงเบฅเบฒเป€เบ›เบฑเบ™เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เบ—เบตเปˆเบˆเบฐเบ—เบปเบ”เบชเบญเบš. เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, เบ„เปเบฒเบชเบฑเปˆเบ‡เบ™เบตเป‰:

test/failure 2 3

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

เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ PostgreSQL เปเบฅเบฐ Pacemaker

terminal เป„เบ”เป‰เบ–เบทเบเปเบšเปˆเบ‡เบญเบญเบเป€เบ›เบฑเบ™เบ–เบฑเบ™เบ•เบฒเบกเบˆเปเบฒเบ™เบงเบ™เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบ–เบทเบเบ—เบปเบ”เบชเบญเบšเป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ (เปƒเบ™ screenshot) เบกเบตเบชเบตเปˆ. เบ‚เป‰เบญเบเบˆเบฐเบญเบฐเบ—เบดเบšเบฒเบเป€เบ™เบทเป‰เบญเปƒเบ™เบ‚เบญเบ‡เบ„เปเบฅเปเบฒเป‚เบ”เบเปƒเบŠเป‰เบ•เบปเบงเบขเปˆเบฒเบ‡เบ‚เบญเบ‡ Tuchanka2. เปเบœเบ‡เปƒเบ™เบžเบฒเบšเปœเป‰เบฒเบˆเปเปเบกเปˆเบ™เป€เบ›เบฑเบ™เบ•เบปเบงเป€เบฅเบ:

  1. เบชเบฐเบ–เบดเบ•เบดเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ–เบทเบเบชเบฐเปเบ”เบ‡เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰. เบ–เบฑเบ™:
    • เบ„เบงเบฒเบกเบฅเบปเป‰เบกเป€เบซเบผเบง โ€” เบŠเบทเปˆโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบš (เบซเบ™เป‰เบฒโ€‹เบ—เบตเปˆโ€‹เปƒเบ™โ€‹เบ•เบปเบงโ€‹เบญเบฑเบโ€‹เบชเบญเบ™โ€‹) เบ—เบตเปˆโ€‹เป€เบฎเบฑเบ”โ€‹เบ•เบฒเบกโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹.
    • เบ•เบดเบเบดเบฃเบดเบเบฒ โ€” เป€เบงโ€‹เบฅเบฒโ€‹เบชเบฐโ€‹เป€เบฅเปˆเบโ€‹เป€เบฅเบโ€‹เบ„เบฐโ€‹เบ™เบดเบ”โ€‹เปƒเบ™โ€‹เบงเบดโ€‹เบ™เบฒโ€‹เบ—เบตโ€‹เบ—เบตเปˆโ€‹เบเบธเปˆเบกโ€‹เป„เบ”เป‰โ€‹เบŸเบทเป‰เบ™โ€‹เบ•เบปเบงโ€‹เบเบฒเบ™โ€‹เบ—เปเบฒโ€‹เบ‡เบฒเบ™โ€‹เบ‚เบญเบ‡โ€‹เบ•เบปเบ™โ€‹. เบกเบฑเบ™เบ–เบทเบเบงเบฑเบ”เปเบ—เบเบ•เบฑเป‰เบ‡เปเบ•เปˆเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบ‚เบญเบ‡เบชเบฐเบ„เบฃเบดเบšเบ—เบตเปˆเบˆเบณเบฅเบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เป„เบ›เบˆเบปเบ™เป€เบ–เบดเบ‡เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ—เบตเปˆเบเบธเปˆเบกเบเบธเปˆเบกเบŸเบทเป‰เบ™เบŸเบนเบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ‚เบญเบ‡เบกเบฑเบ™ เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบชเบทเบšเบ•เปเปˆเปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เป„เบ”เป‰. เบ–เป‰เบฒเป€เบงเบฅเบฒเบชเบฑเป‰เบ™เบซเบผเบฒเบ, เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบปเบเบ•เบปเบงเบขเปˆเบฒเบ‡, เบซเบปเบเบงเบดเบ™เบฒเบ—เบต (เบญเบฑเบ™เบ™เบตเป‰เป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบเบธเปˆเบกเบ—เบตเปˆเบกเบตเบ—เบฒเบ”เบซเบผเบฒเบ (Tuchanka3 เปเบฅเบฐ Tuchanka4)), เบ™เบตเป‰เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ„เบงเบฒเบกเบœเบดเบ”เปเบกเปˆเบ™เบขเบนเปˆเปƒเบ™เบชเปเบฒเบฅเบญเบ‡เบ—เบตเปˆเบšเปเปˆเบเบปเบ‡เบเบฑเบ™เปเบฅเบฐเบšเปเปˆเบกเบตเบœเบปเบ™เบเบฐเบ—เบปเบšเบ•เปเปˆเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปƒเบ™เบ—เบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก; เบ›เบธเปˆเบกเบฅเบฑเบ”เบเบธเปˆเบก.
    • เบเบฒเบ™เบšเปˆเบฝเบ‡เป€เบšเบ™ โ€” เบชเบฐโ€‹เปเบ”เบ‡โ€‹เปƒเบซเป‰โ€‹เป€เบซเบฑเบ™โ€‹เบเบฒเบ™โ€‹เปเบœเปˆโ€‹เบเบฐโ€‹เบˆเบฒเบ (เบ„เบงเบฒเบกโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹) เบ‚เบญเบ‡โ€‹เบกเบนเบ™โ€‹เบ„เปˆเบฒโ€‹ เบ•เบดเบเบดเบฃเบดเบเบฒ เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบงเบดเบ—เบตเบเบฒเบ™ deviation เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™.
    • เบ™เบฑเบš โ€” เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ™เบตเป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”เบˆเบฑเบเป€เบ—เบทเปˆเบญ.
  2. เบšเบฑเบ™เบ—เบถเบเบชเบฑเป‰เบ™เบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเป€เบกเบตเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบเบธเปˆเบกเบเปเบฒเบฅเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™. เบ•เบปเบงเป€เบฅเบ iteration (เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš), เป€เบงเบฅเบฒเปเบฅเบฐเบŠเบทเปˆเบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡. เบเบฒเบ™เปเบฅเปˆเบ™เบ”เบปเบ™เป€เบเบตเบ™เป„เบ› (> 5 เบ™เบฒเบ—เบต) เบชเบฐเปเบ”เบ‡เป€เบ–เบดเบ‡เบšเบฑเบ™เบซเบฒ.
  3. เบซเบปเบงเปƒเบˆ (เบซเบปเบงเปƒเบˆ) - เป€เบงเบฅเบฒเบ›เบฐเบˆเบธเบšเบฑเบ™. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ›เบฐเป€เบกเบตเบ™เบชเบฒเบเบ•เบฒเบ‚เบญเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ” เปเบกเปˆเบšเบปเบ” เป€เบงเบฅเบฒเบ›เบฐเบˆเบธเบšเบฑเบ™เปเบกเปˆเบ™เบ‚เบฝเบ™เปƒเบชเปˆเบ•เบฒเบ•เบฐเบฅเบฒเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เบขเปˆเบฒเบ‡เบ•เปเปˆเป€เบ™เบทเปˆเบญเบ‡เป‚เบ”เบเปƒเบŠเป‰เปเบกเปˆเบšเบปเบ” IP เบฅเบญเบ. เบ–เป‰เบฒเบ›เบฐเบชเบปเบšเบœเบปเบ™เบชเปเบฒเป€เบฅเบฑเบ”, เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบˆเบฐเบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบเบฐเบ”เบฒเบ™เบ™เบตเป‰.
  4. เบซเบผเบดเป‰เบ™เปƒเบซเป‰เป€เบเบตเบ™เปเบกเปˆเบ™ (เบเปเบฒเบกเบฐเบˆเบญเบ™) - "เป€เบงเบฅเบฒเบ›เบฐเบˆเบธเบšเบฑเบ™", เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เป€เบกเบทเปˆเบญเบเปˆเบญเบ™เป‚เบ”เบ script เบซเบปเบงเปƒเบˆ เบเบฑเบšเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš, เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบญเปˆเบฒเบ™เบˆเบฒเบ เบ—เบฒเบ” เบœเปˆเบฒเบ™ IP เบฅเบญเบเบ‚เบญเบ‡เบกเบฑเบ™. เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเป€เบกเบตเบ™เบ›เบฐเบชเบดเบ”เบ—เบดเบžเบฒเบšเบ‚เบญเบ‡เบชเปเบฒเบฅเบญเบ‡เปเบฅเบฐเบเบฒเบ™เบˆเปเบฒเบฅเบญเบ‡เปเบšเบš. เปƒเบ™ Tuchanka1 เบšเปเปˆเบกเบตเบชเปเบฒเบฅเบญเบ‡เบ—เบตเปˆเบกเบต IP เบฅเบญเบ (เบšเปเปˆเบกเบตเบชเปเบฒเบฅเบญเบ‡เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™), เปเบ•เปˆเบกเบตเบชเบญเบ‡เบ•เบปเบงเบขเปˆเบฒเบ‡ (DBs), เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบกเบฑเบ™เบˆเบฐเบšเปเปˆเบชเบฐเปเบ”เบ‡เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰. เบซเบผเบดเป‰เบ™เปƒเบซเป‰เป€เบเบตเบ™เปเบกเปˆเบ™เปเบฅเบฐ เบซเบปเบงเปƒเบˆ เบ•เบปเบงเบขเปˆเบฒเบ‡เบ—เบตเบชเบญเบ‡.
  5. เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบชเบธเบ‚เบฐเบžเบฒเบšเบ‚เบญเบ‡เบเบธเปˆเบกเป‚เบ”เบเปƒเบŠเป‰เบ›เบฐเป‚เบซเบเบ” pcs mon. เบชเบฐเปเบ”เบ‡เปƒเบซเป‰เป€เบซเบฑเบ™เป‚เบ„เบ‡เบชเป‰เบฒเบ‡, เบเบฒเบ™เปเบœเปˆเบเบฐเบˆเบฒเบเบ‚เบญเบ‡เบŠเบฑเบšเบžเบฐเบเบฒเบเบญเบ™เปƒเบ™เบ—เบปเปˆเบง nodes เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบ›เบฐเป‚เบซเบเบ”เบญเบทเปˆเบ™เป†.
  6. เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบฅเบฐเบšเบปเบšเบˆเบฒเบเปเบ•เปˆเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡ virtual เปƒเบ™ cluster เปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰. เบญเบฒเบ”เบˆเบฐเบกเบตเปเบœเบ‡เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบซเบผเบฒเบเบ‚เบทเป‰เบ™เบ‚เบถเป‰เบ™เบเบฑเบšเบงเปˆเบฒเบกเบตเบˆเบฑเบ virtual machines เบ—เบตเปˆ cluster เบกเบต. เบชเบญเบ‡เบเบฃเบฒเบŸ เป‚เบซเบผเบ” CPU (เป€เบ„เบทเปˆเบญเบ‡ virtual เบกเบตเบชเบญเบ‡เป‚เบ›เป€เบŠเบ”เป€เบŠเบต), เบŠเบทเปˆเป€เบ„เบทเปˆเบญเบ‡ virtual, เป‚เบซเบผเบ”เบฅเบฐเบšเบปเบš (เบกเบตเบŠเบทเปˆเบงเปˆเบฒ Load Average เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบชเบฐเป€เบฅเปˆเบเบซเบผเบฒเบเบเบงเปˆเบฒ 5, 10 เปเบฅเบฐ 15 เบ™เบฒเบ—เบต), เบ‚เปเป‰เบกเบนเบ™เบ‚เบฐเบšเบงเบ™เบเบฒเบ™ เปเบฅเบฐ เบเบฒเบ™เบˆเบฑเบ”เบชเบฑเบ™เปœเปˆเบงเบเบ„เบงเบฒเบกเบˆเบณ.
  7. เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบกเบ‚เบญเบ‡ script เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš. เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ‚เบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด - เบเบฒเบ™เบ‚เบฑเบ”เบ‚เบงเบฒเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบขเปˆเบฒเบ‡เบเบฐเบ—เบฑเบ™เบซเบฑเบ™เบซเบผเบทเบงเบปเบ‡เบˆเบญเบ™เบเบฒเบ™เบฅเปเบ–เป‰เบฒเบ—เบตเปˆเบšเปเปˆเบกเบตเบชเบดเป‰เบ™เบชเบธเบ” - เบ—เบตเปˆเบ™เบตเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบšเบดเปˆเบ‡เป€เบซเบ”เบœเบปเบ™เบชเปเบฒเบฅเบฑเบšเบžเบถเบ”เบ•เบดเบเปเบฒเบ™เบตเป‰.

เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปเบกเปˆเบ™เบ”เปเบฒเป€เบ™เบตเบ™เปƒเบ™เบชเบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™. เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ”, script เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบธเบเบ›เบฐเป€เบžเบ”, random เป€เบฅเบทเบญเบเป€เบ„เบทเปˆเบญเบ‡ virtual เป€เบžเบทเปˆเบญเบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ™เบตเป‰. เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹, เบฎเบญเบšโ€‹เบงเบฝเบ™โ€‹เบเบฒเบ™โ€‹เบ—เบปเบ”โ€‹เบชเบญเบšโ€‹เบ—เบตเปˆโ€‹เบšเปเปˆโ€‹เบชเบดเป‰เบ™โ€‹เบชเบธเบ”โ€‹เปเบกเปˆเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ”โ€‹, เป€เบ„เบทเปˆเบญเบ‡ virtual เปเบฅเบฐโ€‹เบ„เบงเบฒเบกโ€‹เบœเบดเบ”โ€‹เบžเบฒเบ”โ€‹เป„เบ”เป‰โ€‹เบ–เบทเบโ€‹เบ„เบฑเบ”โ€‹เป€เบฅเบทเบญเบโ€‹เปเบšเบšโ€‹เบชเบธเปˆเบกโ€‹เปƒเบ™โ€‹เปเบ•เปˆโ€‹เบฅเบฐโ€‹เบ„เบฑเป‰เบ‡โ€‹. เบเบฒเบ™เบขเบธเบ”เป€เบŠเบปเบฒเบขเปˆเบฒเบ‡เบเบฐเบ—เบฑเบ™เบซเบฑเบ™เบ‚เบญเบ‡เบชเบฐเบ„เบดเบšเบ—เบปเบ”เบชเบญเบš (เบเบฐเบ”เบฒเบ™เบฅเบธเปˆเบก) เบซเบผเบทเบเบฒเบ™เบฅเปเบ„เบญเบเบ—เบตเปˆเบšเปเปˆเบกเบตเบ—เบตเปˆเบชเบดเป‰เบ™เบชเบธเบ” (> เป€เบงเบฅเบฒเบ›เบฐเบ•เบดเบšเบฑเบ” 5 เบ™เบฒเบ—เบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบซเบ™เบถเปˆเบ‡, เบ™เบตเป‰เบชเบฒเบกเบฒเบ”เป€เบซเบฑเบ™เป„เบ”เป‰เปƒเบ™เบเบฒเบ™เบ•เบดเบ”เบ•เบฒเบก) เบŠเบตเป‰เปƒเบซเป‰เป€เบซเบฑเบ™เบงเปˆเบฒเบšเบฒเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปƒเบ™เบเบธเปˆเบกเบ™เบตเป‰เบฅเบปเป‰เบกเป€เบซเบฅเบง.

เปเบ•เปˆเบฅเบฐเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ”เบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰:

  1. เป€เบ›เบตเบ”เปƒเบŠเป‰เบŸเบฑเบ‡เบŠเบฑเบ™เบ—เบตเปˆเบˆเบณเบฅเบญเบ‡เบ„เบงเบฒเบกเบœเบดเบ”.
  2. เบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐ? โ€” เบฅเปโ€‹เบ–เป‰เบฒโ€‹เปƒเบซเป‰โ€‹เบเบธเปˆเบกโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบŸเบทเป‰เบ™โ€‹เบŸเบน (เป€เบกเบทเปˆเบญโ€‹เบเบฒเบ™โ€‹เบšเปโ€‹เบฅเบดโ€‹เบเบฒเบ™โ€‹เบ—เบฑเบ‡โ€‹เบซเบกเบปเบ”โ€‹เปเบกเปˆเบ™โ€‹เป„เบ”เป‰โ€‹เบฎเบฑเบšโ€‹เบเบฒเบ™โ€‹เบชเบฐโ€‹เบซเบ™เบญเบ‡โ€‹เปƒเบซเป‰โ€‹)โ€‹.
  3. เบชเบฐโ€‹เปเบ”เบ‡โ€‹เบเบฒเบ™โ€‹เบซเบกเบปเบ”โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบเบฒเบ™โ€‹เบŸเบทเป‰เบ™โ€‹เบ•เบปเบงโ€‹เบ‚เบญเบ‡โ€‹เบเบธเปˆเบก (เบ•เบดเบเบดเบฃเบดเบเบฒ).
  4. เปเบเป‰เป„เบ‚ - เบเบธเปˆเบกเบเปเบฒเบฅเบฑเบ‡เบ–เบทเบ "เบชเป‰เบญเบกเปเบ›เบ‡." เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบฑเบ™เบ„เบงเบ™เบˆเบฐเบเบฑเบšเบ„เบทเบ™เบชเบนเปˆเบชเบฐเบžเบฒเบšเบ—เบตเปˆเป€เบฎเบฑเบ”เบงเบฝเบเบขเปˆเบฒเบ‡เป€เบ•เบฑเบกเบ—เบตเปˆเปเบฅเบฐเบเบฝเบกเบžเป‰เบญเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบดเบ•เปเปˆเป„เบ›.

เบ™เบตเป‰เปเบกเปˆเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ‚เบญเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบ—เบตเปˆเบกเบตเบ„เปเบฒเบญเบฐเบ—เบดเบšเบฒเบเบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเป€เบฎเบฑเบ”:

  • ForkBomb: เบชเป‰เบฒเบ‡ "เบญเบญเบเบˆเบฒเบเบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒ" เป‚เบ”เบเปƒเบŠเป‰เบฅเบนเบเบฅเบฐเป€เบšเบตเบ”เบ‚เบญเบ‡เบชเป‰เบญเบก.
  • เบ™เบญเบเบžเบทเป‰เบ™เบ—เบตเปˆ: เบฎเบฒเบ”เป„เบ”เป€เบ•เบฑเบก. เปเบ•เปˆเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปเบกเปˆเบ™เปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™เบชเบฑเบ™เบเบฒเบฅเบฑเบ;
  • Postgres-เบ‚เป‰เบฒ: เบ‚เป‰เบฒ PostgreSQL เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡ killall -KILL postgres.
  • Postgres-STOP: เบงเบฒเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡ PostgreSQL killall -STOP postgres.
  • เบžเบฐเบฅเบฑเบ‡เบ‡เบฒเบ™: "de-energizes" เป€เบ„เบทเปˆเบญเบ‡ virtual เบ”เป‰เบงเบเบ„เปเบฒเบชเบฑเปˆเบ‡ VBoxManage controlvm "ะฒะธั€ั‚ัƒะฐะปะบะฐ" poweroff.
  • เบ•เบฑเป‰เบ‡โ€‹เบ„เปˆเบฒ: overloads the virtual machine with the command VBoxManage controlvm "ะฒะธั€ั‚ัƒะฐะปะบะฐ" reset.
  • SBD-STOP: suspends SBD demon เบเบฑเบšเบ„เปเบฒเบชเบฑเปˆเบ‡ killall -STOP sbd.
  • เบ›เบดเบ”โ€‹เป€เบ„เบทเปˆเบญเบ‡: เบชเบปเปˆเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เป„เบ›เบเบฑเบ‡เป€เบ„เบทเปˆเบญเบ‡ virtual เบœเปˆเบฒเบ™ SSH systemctl poweroff, เบฅเบฐเบšเบปเบšเบ›เบดเบ”เบฅเบปเบ‡เบขเปˆเบฒเบ‡เบชเบฐเบซเบ‡เปˆเบฒเบ‡เบฒเบก.
  • เบเบปเบเป€เบฅเบตเบเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ: เบเบฒเบ™เปเบเบเป€เบ„เบทเบญเบ‚เปˆเบฒเบ, เบ„เปเบฒเบชเบฑเปˆเบ‡ VBoxManage controlvm "ะฒะธั€ั‚ัƒะฐะปะบะฐ" setlinkstate1 off.

เบชเปเบฒเป€เบฅเบฑเบ”เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป‚เบ”เบเปƒเบŠเป‰เบ„เปเบฒเบชเบฑเปˆเบ‡ tmux เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ "kill-window" Ctrl-b &, เบซเบผเบทเบ„เปเบฒเบชเบฑเปˆเบ‡ "detach-client". Ctrl-b เบ‡: เปƒเบ™เบˆเบธเบ”เบ™เบตเป‰เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡, tmux เบ›เบดเบ”, เป€เบ„เบทเปˆเบญเบ‡ virtual เบ›เบดเบ”.

เบšเบฑเบ™เบซเบฒเบ—เบตเปˆเบ–เบทเบเบเปเบฒเบ™เบปเบ”เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš

  • เปƒเบ™เป€เบงเบฅเบฒเบ™เบตเป‰ watchdog demon sbd เป€เบฎเบฑเบ”เบงเบฝเบเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบขเบธเบ” daemon เบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™, เปเบ•เปˆเบšเปเปˆเปเบŠเปˆเปเบ‚เบ‡เปƒเบซเป‰เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒ. เปเบฅเบฐ, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบ„เบงเบฒเบกเบœเบดเบ”เบ—เบตเปˆเบ™เปเบฒเป„เบ›เบชเบนเปˆเบเบฒเบ™ freezing เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™ เป‚เบ„เป‚เบฃเบŠเบดเป‰เบ‡ ะธ เบกเป‰เบฒเบ™เปเบฒ, เปเบ•เปˆเบšเปเปˆเบซเป‰เบญเบ sbd. เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบš เป‚เบ„เป‚เบฃเบŠเบดเป‰เบ‡ เบกเบตเปเบฅเป‰เบง PR#83 (เบขเบนเปˆ GitHub เบ—เบตเปˆ sbd), เบเบญเบกเบฎเบฑเบšเบเบฑเบšเบเบฐเบ—เบนเป‰ เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบš. เบžเบงเบเป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบชเบฑเบ™เบเบฒ (เปƒเบ™ PR # 83) เบงเปˆเบฒเบˆเบฐเบกเบตเบšเบฒเบ‡เบชเบดเปˆเบ‡เบšเบฒเบ‡เบขเปˆเบฒเบ‡เบ—เบตเปˆเบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบชเปเบฒเบฅเบฑเบš Pacemaker, เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบซเบงเบฑเบ‡เบงเปˆเบฒเป‚เบ”เบ Red Hat 8 เบˆเบฐโ€‹เป€เบฎเบฑเบ”. เปเบ•เปˆ "เบ„เบงเบฒเบกเบœเบดเบ”เบ›เบปเบเบเบฐเบ•เบด" เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเป€เบ›เบฑเบ™เบเบฒเบ™เบ„เบฒเบ”เป€เบ”เบปเบฒเปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ–เบทเบเบˆเปเบฒเบฅเบญเบ‡เป„เบ”เป‰เบ‡เปˆเบฒเบเป‚เบ”เบเปƒเบŠเป‰, เบชเปเบฒเบฅเบฑเบšเบ•เบปเบงเบขเปˆเบฒเบ‡, killall -STOP corosync, เปเบ•เปˆเบšเปเปˆเป€เบ„เบตเบเบžเบปเบšเปƒเบ™เบŠเบตเบงเบดเบ”เบˆเบดเบ‡.

  • ะฃ เบกเป‰เบฒเบ™เปเบฒ เปƒเบ™โ€‹เบชเบฐโ€‹เบšเบฑเบšโ€‹เบชเปเบฒโ€‹เบฅเบฑเบšโ€‹เบเบฒเบ™โ€‹ CentOS 7 เบ•เบฑเป‰เบ‡โ€‹เบšเปเปˆโ€‹เบ–เบทเบโ€‹เบ•เป‰เบญเบ‡โ€‹ sync_timeout ัƒ เบญเบธเบ›เบฐเบเบญเบ™เบเบธเปˆเบก, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™ เบ–เป‰เบฒโ€‹เบซเบฒเบโ€‹เบงเปˆเบฒโ€‹เบซเบ™เบถเปˆเบ‡ node เบฅเบปเป‰เบกโ€‹เป€เบซเบผเบง, เบกเบตโ€‹เบšเบฒเบ‡โ€‹เบ„เบงเบฒเบกโ€‹เป€เบ›เบฑเบ™โ€‹เป„เบ›โ€‹เป„เบ”เป‰โ€‹เบšเบฒเบ‡ node เบ—เบตเปˆโ€‹เบชเบญเบ‡โ€‹เบเบฑเบ‡ rebooted, เบ—เบตเปˆเปเบกเปˆเบšเบปเบ”เป„เบ”เป‰เบ–เบทเบ supposed เบเป‰เบฒเบเบญเบญเบ. เบ›เบดเปˆเบ™เบ›เบปเบงเป‚เบ”เบเบเบฒเบ™เบ‚เบฐเบซเบเบฒเบเปƒเบซเบเปˆเบ‚เบทเป‰เบ™ sync_timeout ัƒ เบญเบธเบ›เบฐเบเบญเบ™เบเบธเปˆเบก เปƒเบ™โ€‹เบฅเบฐโ€‹เบซเบงเปˆเบฒเบ‡โ€‹เบเบฒเบ™โ€‹เบ™เปเบฒโ€‹เปƒเบŠเป‰ (เปƒเบ™ script setup/setup1). เบเบฒเบ™เปเบเป‰เป„เบ‚เบ™เบตเป‰เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบเบญเบกเบฎเบฑเบšเป‚เบ”เบเบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ เบกเป‰เบฒเบ™เปเบฒเปเบ—เบ™เบ—เบตเปˆเบˆเบฐ, เบžเบงเบเป€เบ‚เบปเบฒเบชเบฑเบ™เบเบฒเบงเปˆเบฒเบˆเบฐเบญเบญเบเปเบšเบšเป‚เบ„เบ‡เบชเป‰เบฒเบ‡เบžเบทเป‰เบ™เบ–เบฒเบ™เปƒเบซเบกเปˆเปƒเบ™เบฅเบฑเบเบชเบฐเบ™เบฐเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง (เปƒเบ™เบšเบฒเบ‡เบญเบฐเบ™เบฒเบ„เบปเบ”เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบเปเบฒเบ™เบปเบ”) เบ—เบตเปˆเป€เบงเบฅเบฒเบซเบกเบปเบ”เป€เบงเบฅเบฒเบ™เบตเป‰เบˆเบฐเบ–เบทเบเบ„เบดเบ”เป„เบฅเปˆเป‚เบ”เบเบญเบฑเบ”เบ•เบฐเป‚เบ™เบกเบฑเบ”.

  • เบ–เป‰เบฒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบเปเบฒเบ™เบปเบ”เบงเปˆเบฒ LC_MESSAGES (เบ‚เปเป‰เบ„เบงเบฒเบก) เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰ Unicode, e.g. ru_RU.UTF-8, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบ™เบ•เบญเบ™เป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™ เป„เบ›เบชเบฐเบ™เบต เปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เบšเปเปˆเปเบกเปˆเบ™ UTF-8, เป€เบงเบปเป‰เบฒเปƒเบ™เบชเบฐเบžเบฒเบšเปเบงเบ”เบฅเป‰เบญเบกเบ—เบตเปˆเบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ (เบ—เบตเปˆเบ™เบตเป‰ เป€เบ„เบทเปˆเบญเบ‡เบˆเบฑเบ‡เบซเบงเบฐ+pgsqlms(paf) เปเบฅเปˆเบ™ เป„เบ›เบชเบฐเบ™เบต), เปเบฅเป‰เบง เบšเบฑเบ™เบ—เบถเบเบˆเบฐเบกเบตเป€เบ„เบทเปˆเบญเบ‡เปเบฒเบเบ–เบฒเบกเปเบ—เบ™เบ•เบปเบงเบญเบฑเบเบชเบญเบ™ UTF-8. เบ™เบฑเบเบžเบฑเบ”เบ—เบฐเบ™เบฒ PostgreSQL เบšเปเปˆเป„เบ”เป‰เบ•เบปเบเบฅเบปเบ‡เบเปˆเบฝเบงเบเบฑเบšเบชเบดเปˆเบ‡เบ—เบตเปˆเบ•เป‰เบญเบ‡เป€เบฎเบฑเบ”เปƒเบ™เบเปเบฅเบฐเบ™เบตเบ™เบตเป‰. เบกเบฑเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบ, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบดเบ”เบ•เบฑเป‰เบ‡ LC_MESSAGES=en_US.UTF-8 เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ (เบชเป‰เบฒเบ‡) เบ•เบปเบงเบขเปˆเบฒเบ‡เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™.

  • เบ–เป‰เบฒ wal_receiver_timeout เบ–เบทเบเบเปเบฒเบ™เบปเบ” (เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบกเบฑเบ™เปเบกเปˆเบ™ 60s), เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš PostgreSQL-STOP เปƒเบ™เปเบกเปˆเบšเบปเบ”เปƒเบ™เบเบธเปˆเบก tuchanka3 เปเบฅเบฐ tuchanka4 replication เบšเปเปˆเป„เบ”เป‰เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบซเบกเปˆเบเบฑเบšเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆ. Replication เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™เปเบกเปˆเบ™ synchronous, เบชเบฐเบ™เบฑเป‰เบ™เบšเปเปˆเบžเบฝเบ‡เปเบ•เปˆเบชเปเบฒเบฅเบญเบ‡เบขเบธเบ”เป€เบŠเบปเบฒ, เปเบ•เปˆเบเบฑเบ‡เบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเปƒเบซเบกเปˆ. เป€เบฎเบฑเบ”เบงเบฝเบเป‚เบ”เบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ wal_receiver_timeout=0 เป€เบกเบทเปˆเบญเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ PostgreSQL.

  • เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบชเบฑเบ‡เป€เบเบ”เป€เบซเบฑเบ™ replication freezes เปƒเบ™ PostgreSQL เปƒเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš ForkBomb (เบ„เบงเบฒเบกเบˆเปเบฒ overflow). เบซเบผเบฑเบ‡เบˆเบฒเบ ForkBomb, เบšเบฒเบ‡เบ„เบฑเป‰เบ‡เบ‚เป‰เบฒเบ—เบฒเบ”เบญเบฒเบ”เบˆเบฐเบšเปเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเปเบกเปˆเบšเบปเบ”เปƒเบซเบกเปˆ. เบ‚เป‰เบฒเบžเบฐเป€เบˆเบปเป‰เบฒเบžเบฝเบ‡เปเบ•เปˆเป„เบ”เป‰เบžเบปเบšเบ™เบตเป‰เบขเบนเปˆเปƒเบ™เบเบธเปˆเบก tuchanka3 เปเบฅเบฐ tuchanka4, เบšเปˆเบญเบ™เบ—เบตเปˆเปเบกเปˆเบšเบปเบ” froze เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™ replication synchronous. เบšเบฑเบ™เบซเบฒเป„เบ”เป‰เบซเบฒเบเป„เบ›เบ”เป‰เบงเบเบ•เบปเบงเบกเบฑเบ™เป€เบญเบ‡เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบงเบฅเบฒเบ”เบปเบ™เบ™เบฒเบ™ (เบ›เบฐเบกเบฒเบ™เบชเบญเบ‡เบŠเบปเปˆเบงเป‚เบกเบ‡). เบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบ„เบปเป‰เบ™เบ„เบงเป‰เบฒเป€เบžเบตเปˆเบกเป€เบ•เบตเบกเป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบ™เบตเป‰. เบญเบฒเบเบฒเบ™เปเบกเปˆเบ™เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเปเบกเบ‡เป„เบกเป‰เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ, เป€เบŠเบดเปˆเบ‡เป€เบเบตเบ”เบˆเบฒเบเป€เบซเบ”เบœเบปเบ™เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เปเบ•เปˆเบกเบตเบœเบปเบ™เบชเบฐเบ—เป‰เบญเบ™เบ”เบฝเบงเบเบฑเบ™.

เบฎเบนเบš Krogan เบ–เปˆเบฒเบเบˆเบฒเบ เบชเบดเบฅเบฐเบ›เบฐ Deviant เป‚เบ”เบโ€‹เบเบฒเบ™โ€‹เบญเบฐโ€‹เบ™เบธโ€‹เบเบฒเบ”โ€‹เบ‚เบญเบ‡โ€‹เบœเบนเป‰โ€‹เบ‚เบฝเบ™โ€‹:

เบเบฒเบ™เบชเป‰เบฒเบ‡เปเบšเบšเบˆเปเบฒเบฅเบญเบ‡เบ‚เบญเบ‡เบเบธเปˆเบกเบ—เบตเปˆเบฅเบปเป‰เบกเป€เบซเบฅเบงเป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ PostgreSQL เปเบฅเบฐ Pacemaker

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