ื“ื•ื’ืžื ื•ืช ืืฉื›ื•ืœื•ืช ื›ืฉืœ ืขืœ ื‘ืกื™ืก PostgreSQL ื•-Pacemaker

ืžื‘ื•ื

ืœืคื ื™ ื–ืžืŸ ืžื” ืงื™ื‘ืœืชื™ ืืช ื”ืžืฉื™ืžื” ืœืคืชื— ืืฉื›ื•ืœ failover ืขื‘ื•ืจ PostgreSQL, ื”ืคื•ืขืœืช ื‘ืžืกืคืจ ืžืจื›ื–ื™ ื ืชื•ื ื™ื ื”ืžื—ื•ื‘ืจื™ื ื‘ืกื™ื‘ ืื•ืคื˜ื™ ื‘ืชื•ืš ืขื™ืจ ืื—ืช, ื•ืžืกื•ื’ืœืช ืœืขืžื•ื“ ื‘ื›ืฉืœ (ืœืžืฉืœ, ื”ืคืกืงื”) ืฉืœ ืžืจื›ื– ื ืชื•ื ื™ื ืื—ื“. ื‘ืชื•ืจ ื”ืชื•ื›ื ื” ืฉืื—ืจืื™ืช ืœืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช, ื‘ื—ืจืชื™ ืงื•ืฆื‘ ืœื‘ื›ื™ ื–ื”ื• ื”ืคืชืจื•ืŸ ื”ืจืฉืžื™ ืฉืœ RedHat ืœื™ืฆื™ืจืช ืืฉื›ื•ืœื•ืช ื›ืฉืœ. ื–ื” ื˜ื•ื‘ ื›ื™ RedHat ืžืกืคืง ืชืžื™ื›ื” ืขื‘ื•ืจื•, ื•ืžื›ื™ื•ื•ืŸ ืฉื”ืคืชืจื•ืŸ ื”ื–ื” ื”ื•ื ืื•ื ื™ื‘ืจืกืœื™ (ืžื•ื“ื•ืœืืจื™). ื‘ืขื–ืจืชื•, ื ื™ืชืŸ ื™ื”ื™ื” ืœื”ื‘ื˜ื™ื— ืกื•ื‘ืœื ื•ืช ืœืชืงืœื•ืช ืœื ืจืง ืฉืœ PostgreSQL, ืืœื ื’ื ืฉืœ ืฉื™ืจื•ืชื™ื ืื—ืจื™ื, ื‘ื™ืŸ ืื ื‘ืืžืฆืขื•ืช ืžื•ื“ื•ืœื™ื ืกื˜ื ื“ืจื˜ื™ื™ื ืื• ื™ืฆื™ืจืชื ืœืฆืจื›ื™ื ืกืคืฆื™ืคื™ื™ื.

ื”ื—ืœื˜ื” ื–ื• ื”ืขืœืชื” ืฉืืœื” ืกื‘ื™ืจื”: ื›ืžื” ืกื•ื‘ืœื ื™ ืœืชืงืœื•ืช ื™ื”ื™ื” ืืฉื›ื•ืœ ื›ืฉืœ? ื›ื“ื™ ืœื—ืงื•ืจ ื–ืืช, ืคื™ืชื—ืชื™ ืกืคืกืœ ื‘ื“ื™ืงื” ื”ืžื“ืžื” ื›ืฉืœื™ื ืฉื•ื ื™ื ื‘ืฆืžืชื™ ื”ืืฉื›ื•ืœ, ืžืžืชื™ืŸ ืœืฉื—ื–ื•ืจ ื”ืฉื™ืจื•ืช, ืžืฉื—ื–ืจ ืืช ื”ืฆื•ืžืช ื”ื›ื•ืฉืœ ื•ืžืžืฉื™ืš ื‘ื‘ื“ื™ืงื” ื‘ืœื•ืœืื”. ื”ืคืจื•ื™ืงื˜ ื”ื–ื” ื ืงืจื ื‘ืžืงื•ืจ hapgsql, ืื‘ืœ ืขื ื”ื–ืžืŸ ื”ืฉืชืขืžืžืชื™ ืžื”ืฉื, ืฉื”ื™ื” ืœื• ืจืง ืชื ื•ืขื” ืื—ืช. ืœื›ืŸ, ื”ืชื—ืœืชื™ ืœืงืจื•ื ืœื‘ืกื™ืกื™ ื ืชื•ื ื™ื ืกื•ื‘ืœื ื™ ืชืงืœื•ืช (ื•ืœืฆื™ืฃ IP ื”ืžืฆื‘ื™ืข ืขืœื™ื”ื) ืงืจื•ื’ืŸ (ื“ืžื•ืช ืžืžืฉื—ืง ืžื—ืฉื‘ ืฉื‘ื• ื›ืœ ื”ืื™ื‘ืจื™ื ื”ื—ืฉื•ื‘ื™ื ืžืฉื•ื›ืคืœื™ื), ื•ืฆืžืชื™ื, ืืฉื›ื•ืœื•ืช ื•ื”ืคืจื•ื™ืงื˜ ืขืฆืžื• ื”ื ื˜ื•ืฆ'ืื ืงื” (ื›ื•ื›ื‘ ื”ืœื›ืช ืฉื‘ื• ื—ื™ื™ื ื”ืงืจื•ื’ื ื™ื).

ืขื›ืฉื™ื• ื”ื”ื ื”ืœื” ื”ืชื™ืจื” ืคืชื— ืืช ื”ืคืจื•ื™ืงื˜ ืœืงื”ื™ืœืช ื”ืงื•ื“ ื”ืคืชื•ื— ืชื—ืช ืจื™ืฉื™ื•ืŸ MIT. ื”-README ื™ืชื•ืจื’ื ื‘ืงืจื•ื‘ ืœืื ื’ืœื™ืช (ืžื›ื™ื•ื•ืŸ ืฉืฆืคื•ื™ ืฉื”ืฆืจื›ื ื™ื ื”ืขื™ืงืจื™ื™ื ื™ื”ื™ื• ืžืคืชื—ื™ Pacemaker ื•-PostgreSQL), ื•ื”ื—ืœื˜ืชื™ ืœื”ืฆื™ื’ ืืช ื”ื’ืจืกื” ื”ืจื•ืกื™ืช ื”ื™ืฉื ื” ืฉืœ ื”-README (ื—ืœืงื™ืช) ื‘ืฆื•ืจืช ืžืืžืจ ื–ื”.

ื“ื•ื’ืžื ื•ืช ืืฉื›ื•ืœื•ืช ื›ืฉืœ ืขืœ ื‘ืกื™ืก PostgreSQL ื•-Pacemaker

ืืฉื›ื•ืœื•ืช ืคืจื•ืกื™ื ืขืœ ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช VirtualBox. ื‘ืกืš ื”ื›ืœ ื™ื™ืคืจืกื• 12 ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช (36GiB ื‘ืกืš ื”ื›ืœ), ืืฉืจ ื™ื•ืฆืจื•ืช 4 ืืฉื›ื•ืœื•ืช ืกื•ื‘ืœื ื™ ืชืงืœื•ืช (ืืคืฉืจื•ื™ื•ืช ืฉื•ื ื•ืช). ืฉื ื™ ื”ืืฉื›ื•ืœื•ืช ื”ืจืืฉื•ื ื™ื ืžื•ืจื›ื‘ื™ื ืžืฉื ื™ ืฉืจืชื™ PostgreSQL, ื”ืžืžื•ืงืžื™ื ื‘ืžืจื›ื–ื™ ื ืชื•ื ื™ื ืฉื•ื ื™ื, ื•ืฉืจืช ืžืฉื•ืชืฃ ืขื“ c ืžื›ืฉื™ืจ ืžื ื™ื™ืŸ (ืžืชืืจื— ื‘ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช ื–ื•ืœื” ื‘ืžืจื›ื– ื ืชื•ื ื™ื ืฉืœื™ืฉื™), ืžื” ืฉืคื•ืชืจ ืื™ ื•ื“ืื•ืช 50% / 50%, ืžืชืŸ ืงื•ืœืš ืœืื—ืช ื”ืžืคืœื’ื•ืช. ืืฉื›ื•ืœ ืฉืœื™ืฉื™ ื‘ืฉืœื•ืฉื” ืžืจื›ื–ื™ ื ืชื•ื ื™ื: ืžืืกื˜ืจ ืื—ื“, ืฉื ื™ ืขื‘ื“ื™ื, ืœื ืžื›ืฉื™ืจ ืžื ื™ื™ืŸ. ื”ืืฉื›ื•ืœ ื”ืจื‘ื™ืขื™ ืžื•ืจื›ื‘ ืžืืจื‘ืขื” ืฉืจืชื™ PostgreSQL, ืฉื ื™ื™ื ืœื›ืœ ืžืจื›ื– ื ืชื•ื ื™ื: ืžืืกื˜ืจ ืื—ื“, ื”ืฉืืจ ื”ืขืชืงื™ื, ื•ื’ื ืžืฉืชืžืฉ ืขื“ c ืžื›ืฉื™ืจ ืžื ื™ื™ืŸ. ื”ืจื‘ื™ืขื™ ื™ื›ื•ืœ ืœืขืžื•ื“ ื‘ื›ืฉืœ ืฉืœ ืฉื ื™ ืฉืจืชื™ื ืื• ืžืจื›ื– ื ืชื•ื ื™ื ืื—ื“. ื ื™ืชืŸ ืœื”ื’ื“ื™ืœ ืืช ื”ืคืชืจื•ืŸ ื”ื–ื” ืœืžืกืคืจ ื’ื“ื•ืœ ื™ื•ืชืจ ืฉืœ ื”ืขืชืงื™ื ื‘ืžื™ื“ืช ื”ืฆื•ืจืš.

ืฉื™ืจื•ืช ื–ืžืŸ ืžื“ื•ื™ืง ntpd ื’ื ืžื•ื’ื“ืจ ืžื—ื“ืฉ ืขื‘ื•ืจ ืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช, ืื‘ืœ ื”ื•ื ืžืฉืชืžืฉ ื‘ืฉื™ื˜ื” ืขืฆืžื” ntpd (ืžืฆื‘ ื™ืชื•ื). ืฉืจืช ืžืฉื•ืชืฃ ืขื“ ืคื•ืขืœ ื›ืฉืจืช NTP ืžืจื›ื–ื™, ืžื—ืœืง ืืช ื–ืžื ื• ืœื›ืœ ื”ืืฉื›ื•ืœื•ืช, ื•ื‘ื›ืš ืžืกื ื›ืจืŸ ืืช ื›ืœ ื”ืฉืจืชื™ื ื–ื” ืขื ื–ื”. ืื ืขื“ ื ื›ืฉืœ ืื• ื”ื•ืคืš ืžื‘ื•ื“ื“, ืื– ืื—ื“ ืžืฉืจืชื™ ื”ืืฉื›ื•ืœื•ืช (ื‘ืชื•ืš ื”ืืฉื›ื•ืœ) ื™ืชื—ื™ืœ ืœื—ืœืง ืืช ื–ืžื ื•. ืžื˜ืžื•ืŸ ืขื–ืจ ืคืจื•ืงืกื™ HTTP ื’ื ื”ืขืœื” ืœ ืขื“, ื‘ืขื–ืจืชื•, ืœืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ืื—ืจื•ืช ื™ืฉ ื’ื™ืฉื” ืœืžืื’ืจื™ Yum. ื‘ืžืฆื™ืื•ืช, ืฉื™ืจื•ืชื™ื ื›ืžื• ื–ืžืŸ ืžื“ื•ื™ืง ื•ืคืจื•ืงืกื™ ื™ืชืืจื—ื• ื›ื›ืœ ื”ื ืจืื” ื‘ืฉืจืชื™ื ื™ื™ืขื•ื“ื™ื™ื, ืืš ื‘ื“ื•ื›ืŸ ื”ื ืžืชืืจื—ื™ื ื‘- ืขื“ ืจืง ื›ื“ื™ ืœื—ืกื•ืš ืืช ืžืกืคืจ ื”ืžื›ื•ื ื•ืช ื”ื•ื•ื™ืจื˜ื•ืืœื™ื•ืช ื•ื”ืฉื˜ื—.

ื’ืจืกืื•ืช

v0. ืขื•ื‘ื“ ืขื CentOS 7 ื•- PostgreSQL 11 ื‘- VirtualBox 6.1.

ืžื‘ื ื” ืืฉื›ื•ืœ

ื›ืœ ื”ืืฉื›ื•ืœื•ืช ืžืชื•ื›ื ื ื™ื ืœื”ื™ื•ืช ืžืžื•ืงืžื™ื ื‘ืžืกืคืจ ืžืจื›ื–ื™ ื ืชื•ื ื™ื, ืžืฉื•ืœื‘ื™ื ืœืจืฉืช ืฉื˜ื•ื—ื” ืื—ืช ื•ื—ื™ื™ื‘ื™ื ืœืขืžื•ื“ ื‘ื›ืฉืœ ืื• ื‘ื™ื“ื•ื“ ืจืฉืช ืฉืœ ืžืจื›ื– ื ืชื•ื ื™ื ื‘ื•ื“ื“. ื‘ื’ืœืœ ื–ื” ื”ื•ื ื‘ืœืชื™ ืืคืฉืจื™ ืœื”ืฉืชืžืฉ ืœื”ื’ื ื” ืžืคื ื™ ืžื•ื— ืžืคื•ืฆืœ ื˜ื›ื ื•ืœื•ื’ื™ื™ืช ืงื•ืฆื‘ ืœื‘ ืกื˜ื ื“ืจื˜ื™ืช ื”ื ืงืจืืช ืกื˜ื•ื ื™ืช (ืชื™ืจื” ื‘ืฆื•ืžืช ื”ืื—ืจ ื‘ืจืืฉ) ืื• ืกื™ื•ืฃ. ื”ืžื”ื•ืช ืฉืœื•: ืื ื”ืฆืžืชื™ื ื‘ืืฉื›ื•ืœ ืžืชื—ื™ืœื™ื ืœื—ืฉื•ื“ ืฉืžืฉื”ื• ืœื ื‘ืกื“ืจ ื‘ืฆื•ืžืช ื›ืœืฉื”ื•, โ€‹โ€‹ื”ื•ื ืœื ืžื’ื™ื‘ ืื• ืžืชื ื”ื’ ื‘ืฆื•ืจื” ืœื ื ื›ื•ื ื”, ืื– ื”ื ืžื›ื‘ื™ื ืื•ืชื• ื‘ื›ื•ื— ื‘ืืžืฆืขื•ืช ืžื›ืฉื™ืจื™ื "ื—ื™ืฆื•ื ื™ื™ื", ืœืžืฉืœ, ื›ืจื˜ื™ืก ื‘ืงืจื” IPMI ืื• UPS . ืื‘ืœ ื–ื” ื™ืขื‘ื•ื“ ืจืง ื‘ืžืงืจื™ื ืฉื‘ื”ื, ื‘ืžืงืจื” ืฉืœ ืชืงืœื” ื‘ื•ื“ื“ืช, ืฉืจืช ื”-IPMI ืื• UPS ื™ืžืฉื™ื›ื• ืœืขื‘ื•ื“. ื›ืืŸ ืื ื• ืžืชื›ื ื ื™ื ืœื”ื’ืŸ ืžืคื ื™ ืชืงืœื” ื”ืจื‘ื” ื™ื•ืชืจ ืงื˜ืกื˜ืจื•ืคืœื™ืช, ื›ืืฉืจ ืžืจื›ื– ื”ื ืชื•ื ื™ื ื›ื•ืœื• ื ื›ืฉืœ (ืœืžืฉืœ, ืžืื‘ื“ ื—ืฉืžืœ). ื•ืขื ืกื™ืจื•ื‘ ื›ื–ื”, ื”ื›ืœ ืกื˜ื•ื ื™ืชื’ื ื”ืชืงื ื™ื (IPMI, UPS ื•ื›ื•') ืœื ื™ืขื‘ื“ื•.

ื‘ืžืงื•ื ื–ืืช, ื”ืžืขืจื›ืช ืžื‘ื•ืกืกืช ืขืœ ืจืขื™ื•ืŸ ื”ืงื•ื•ืจื•ื. ืœื›ืœ ื”ืฆืžืชื™ื ื™ืฉ ืงื•ืœ, ื•ืจืง ืืœื• ืฉื™ื›ื•ืœื™ื ืœืจืื•ืช ื™ื•ืชืจ ืžืžื—ืฆื™ืช ืžื›ืœ ื”ืฆืžืชื™ื ื™ื›ื•ืœื™ื ืœืขื‘ื•ื“. ื›ืžื•ืช ื–ื• ืฉืœ "ื—ืฆื™ + 1" ื ืงืจืืช ืžึดื ื™ึธืŸ. ืื ื”ืงื•ื•ืจื•ื ืœื ื”ื•ืฉื’, ืื– ื”ืฆื•ืžืช ืžื—ืœื™ื˜ ืฉื”ื•ื ื‘ื‘ื™ื“ื•ื“ ืจืฉืช ื•ืขืœื™ื• ืœื›ื‘ื•ืช ืืช ื”ืžืฉืื‘ื™ื ืฉืœื•, ื›ืœื•ืžืจ. ื–ื” ืžื” ืฉื–ื” ื”ื’ื ื” ืžืคื•ืฆืœืช ืžื•ื—. ืื ื”ืชื•ื›ื ื” ืฉืื—ืจืื™ืช ืœื”ืชื ื”ื’ื•ืช ื–ื• ืœื ืขื•ื‘ื“ืช, ืื– ื›ืœื‘ ืฉืžื™ืจื”, ืœืžืฉืœ, ื”ืžื‘ื•ืกืก ืขืœ IPMI, ื™ืฆื˜ืจืš ืœืขื‘ื•ื“.

ืื ืžืกืคืจ ื”ืฆืžืชื™ื ื”ื•ื ื–ื•ื’ื™ (ืืฉื›ื•ืœ ื‘ืฉื ื™ ืžืจื›ื–ื™ ื ืชื•ื ื™ื), ืขืœื•ืœื” ืœื”ื™ื•ื•ืฆืจ ืžื” ืฉื ืงืจื ืื™ ื•ื“ืื•ืช 50% / 50% (ื—ืžื™ืฉื™ื ื—ืžื™ืฉื™ื) ื›ืืฉืจ ื‘ื™ื“ื•ื“ ื”ืจืฉืช ืžื—ืœืง ืืช ื”ืืฉื›ื•ืœ ื‘ื“ื™ื•ืง ืœืฉื ื™ื™ื. ืœื›ืŸ, ืขื‘ื•ืจ ืžืกืคืจ ื–ื•ื’ื™ ืฉืœ ืฆืžืชื™ื, ืื ื• ืžื•ืกื™ืคื™ื ืžื›ืฉื™ืจ ืžื ื™ื™ืŸ ื”ื•ื ื“ืžื•ืŸ ืœื ืชื•ื‘ืขื ื™ ืฉื ื™ืชืŸ ืœื”ืฉื™ืง ื‘ืžื›ื•ื ื” ื”ื•ื™ืจื˜ื•ืืœื™ืช ื”ื–ื•ืœื” ื‘ื™ื•ืชืจ ื‘ืžืจื›ื– ื ืชื•ื ื™ื ืฉืœื™ืฉื™. ื”ื•ื ื ื•ืชืŸ ืืช ืงื•ืœื• ืœืื—ื“ ื”ืงื˜ืขื™ื (ืฉื”ื•ื ืจื•ืื”), ื•ื‘ื›ืš ืคื•ืชืจ ืืช ืื™ ื”ื•ื•ื“ืื•ืช ืฉืœ 50%/50%. ืฉืžืชื™ ืืช ืฉื ื”ืฉืจืช ืฉื‘ื• ื™ื•ืคืขืœ ื”ืชืงืŸ ื”ืงื•ื•ืจื•ื ืขื“ (ื˜ืจืžื™ื ื•ืœื•ื’ื™ื” ืž-rpmgr, ืื”ื‘ืชื™).

ื ื™ืชืŸ ืœื”ืขื‘ื™ืจ ืžืฉืื‘ื™ื ืžืžืงื•ื ืœืžืงื•ื, ืœืžืฉืœ, ืžืฉืจืชื™ื ืคื’ื•ืžื™ื ืœืชืงื™ื ื™ื, ืื• ื‘ืคืงื•ื“ืช ืžื ื”ืœื™ ืžืขืจื›ืช. ื›ื“ื™ ืฉืœืงื•ื—ื•ืช ื™ื“ืขื• ื”ื™ื›ืŸ ื ืžืฆืื™ื ื”ืžืฉืื‘ื™ื ื”ื“ืจื•ืฉื™ื ืœื”ื (ื”ื™ื›ืŸ ืœื”ืชื—ื‘ืจ?), IP ืฆืฃ (IP ืœืฆื•ืฃ). ืืœื• ื”ื ื›ืชื•ื‘ื•ืช IP ืฉ-Pacemaker ื™ื›ื•ืœ ืœื”ืขื‘ื™ืจ ื‘ื™ืŸ ืฆืžืชื™ื (ื”ื›ืœ ื ืžืฆื ื‘ืจืฉืช ืฉื˜ื•ื—ื”). ื›ืœ ืื—ื“ ืžื”ื ืžืกืžืœ ืžืฉืื‘ (ืฉื™ืจื•ืช) ื•ื”ื•ื ื™ืžื•ืงื ื‘ืžืงื•ื ื‘ื• ืืชื” ืฆืจื™ืš ืœื”ืชื—ื‘ืจ ื›ื“ื™ ืœืงื‘ืœ ื’ื™ืฉื” ืœืฉื™ืจื•ืช ื–ื” (ื‘ืžืงืจื” ืฉืœื ื•, ืžืกื“ ื ืชื•ื ื™ื).

Tuchanka1 (ืžืขื’ืœ ืขื ื“ื—ื™ืกื”)

ืžื‘ื ื”

ื“ื•ื’ืžื ื•ืช ืืฉื›ื•ืœื•ืช ื›ืฉืœ ืขืœ ื‘ืกื™ืก PostgreSQL ื•-Pacemaker

ื”ืจืขื™ื•ืŸ ื”ื™ื” ืฉื™ืฉ ืœื ื• ื”ืจื‘ื” ืžืกื“ื™ ื ืชื•ื ื™ื ืงื˜ื ื™ื ืขื ืขื•ืžืก ื ืžื•ืš, ืฉืขื‘ื•ืจื ืœื ืžืฉืชืœื ืœืชื—ื–ืง ืฉืจืช ืขื‘ื“ื™ื ื™ื™ืขื•ื“ื™ ื‘ืžืฆื‘ ื”ืžืชื ื” ื—ื ืœื˜ืจื ื–ืงืฆื™ื•ืช ืœืงืจื™ืื” ื‘ืœื‘ื“ (ืื™ืŸ ืฆื•ืจืš ื‘ื‘ื–ื‘ื•ื– ื›ื–ื” ืฉืœ ืžืฉืื‘ื™ื).

ืœื›ืœ ืžืจื›ื– ื ืชื•ื ื™ื ื™ืฉ ืฉืจืช ืื—ื“. ืœื›ืœ ืฉืจืช ื™ืฉ ืฉื ื™ ืžื•ืคืขื™ PostgreSQL (ื‘ืžื™ื ื•ื— ืฉืœ PostgreSQL ื”ื ื ืงืจืื™ื clusters, ืื‘ืœ ื›ื“ื™ ืœืžื ื•ืข ื‘ืœื‘ื•ืœ ืืงืจื ืœื”ื ืžื•ืคืขื™ื (ื‘ืื ืœื•ื’ื™ื” ืœืžืื’ืจื™ ืžื™ื“ืข ืื—ืจื™ื), ื•ืืงืจื ืจืง Pacemaker clusters clusters). ืžื•ืคืข ืื—ื“ ืคื•ืขืœ ื‘ืžืฆื‘ ืžืืกื˜ืจ, ื•ืจืง ื”ื•ื ืžืกืคืง ืฉื™ืจื•ืชื™ื (ืจืง IP Float ืžื•ื‘ื™ืœ ืืœื™ื•). ื”ืžื•ืคืข ื”ืฉื ื™ ืขื•ื‘ื“ ื›ืขื‘ื“ ืขื‘ื•ืจ ืžืจื›ื– ื”ื ืชื•ื ื™ื ื”ืฉื ื™, ื•ื™ืกืคืง ืฉื™ืจื•ืชื™ื ืจืง ืื ื”ืžืืกื˜ืจ ืฉืœื• ื ื›ืฉืœ. ืžื›ื™ื•ื•ืŸ ืฉืœืจื•ื‘ ืจืง ืžื•ืคืข ืื—ื“ ืžืชื•ืš ืฉื ื™ื™ื (ื”ืžืืกื˜ืจ) ื™ืกืคืง ืฉื™ืจื•ืชื™ื (ืœื‘ืฆืข ื‘ืงืฉื•ืช), ื›ืœ ืžืฉืื‘ื™ ื”ืฉืจืช ืžื•ืชืืžื™ื ืœืžืืกื˜ืจ (ื”ื–ื™ื›ืจื•ืŸ ืžื•ืงืฆื” ืœืžื˜ืžื•ืŸ shared_buffers ื•ื›ื•'), ืืš ื›ืš ืฉื”ืžื•ืคืข ื”ืฉื ื™ ื™ืฉ ื’ื ืžืกืคื™ืง ืžืฉืื‘ื™ื (ืื ื›ื™ ืœืคืขื•ืœื” ืœื ืื•ืคื˜ื™ืžืœื™ืช ื“ืจืš ืžื˜ืžื•ืŸ ืžืขืจื›ืช ื”ืงื‘ืฆื™ื) ื‘ืžืงืจื” ืฉืœ ื›ืฉืœ ืฉืœ ืื—ื“ ืžืžืจื›ื–ื™ ื”ื ืชื•ื ื™ื. ื”ืขื‘ื“ ืœื ืžืกืคืง ืฉื™ืจื•ืชื™ื (ืื™ื ื• ืžื‘ืฆืข ื‘ืงืฉื•ืช ืœืงืจื™ืื” ื‘ืœื‘ื“) ื‘ืžื”ืœืš ืคืขื•ืœื” ืจื’ื™ืœื” ืฉืœ ื”ืืฉื›ื•ืœ, ื›ืš ืฉืื™ืŸ ืžืœื—ืžื” ืขืœ ืžืฉืื‘ื™ื ืขื ื”ืžืืกื˜ืจ ื‘ืื•ืชื” ืžื›ื•ื ื”.

ื‘ืžืงืจื” ืฉืœ ืฉื ื™ ืฆืžืชื™ื, ืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช ืืคืฉืจื™ืช ืจืง ื‘ืฉื›ืคื•ืœ ืืกื™ื ื›ืจื•ื ื™, ืฉื›ืŸ ื‘ืฉื›ืคื•ืœ ืกื™ื ื›ืจื•ื ื™, ื›ืฉืœ ืฉืœ ืขื‘ื“ ื™ื•ื‘ื™ืœ ืœืขืฆื™ืจืช ื”ืžืืกื˜ืจ.

ืื™ ืขื“ื•ืช

ื“ื•ื’ืžื ื•ืช ืืฉื›ื•ืœื•ืช ื›ืฉืœ ืขืœ ื‘ืกื™ืก PostgreSQL ื•-Pacemaker

ืื™ ืขื“ื•ืช (ืžื›ืฉื™ืจ ืžื ื™ื™ืŸ) ืืฉืงื•ืœ ืจืง ืœื’ื‘ื™ ืืฉื›ื•ืœ Tuchanka1, ืขื ื›ืœ ื”ืื—ืจื™ื ื–ื” ื™ื”ื™ื” ืื•ืชื• ืกื™ืคื•ืจ. ืื ื”ืขื“ ื ื›ืฉืœ, ืฉื•ื ื“ื‘ืจ ืœื ื™ืฉืชื ื” ื‘ืžื‘ื ื” ื”ืืฉื›ื•ืœ, ื”ื›ืœ ื™ืžืฉื™ืš ืœืขื‘ื•ื“ ื›ืคื™ ืฉืขื‘ื“. ืื‘ืœ ื”ืžื ื™ื™ืŸ ื™ื”ืคื•ืš ืœ-2 ืžืชื•ืš 3, ื•ืœื›ืŸ ื›ืœ ื›ื™ืฉืœื•ืŸ ืฉืœืื—ืจ ืžื›ืŸ ื™ื”ื™ื” ืงื˜ืœื ื™ ืขื‘ื•ืจ ื”ืืฉื›ื•ืœ. ืขื“ื™ื™ืŸ ื™ื”ื™ื” ืฆื•ืจืš ืœืชืงืŸ ืืช ื–ื” ื‘ื“ื—ื™ืคื•ืช.

ืกื™ืจื•ื‘ Tuchanka1

ื“ื•ื’ืžื ื•ืช ืืฉื›ื•ืœื•ืช ื›ืฉืœ ืขืœ ื‘ืกื™ืก PostgreSQL ื•-Pacemaker

ื›ืฉืœ ื‘ืื—ื“ ืžืžืจื›ื–ื™ ื”ื ืชื•ื ื™ื ืฉืœ Tuchanka1. ื‘ืžืงืจื” ื”ื–ื” ืขื“ ืžื˜ื™ืœ ืืช ืงื•ืœื• ืœืฆื•ืžืช ืฉื ื™ ื‘ืžืจื›ื– ื ืชื•ื ื™ื ืฉื ื™. ืฉื, ื”ืขื‘ื“ ืœืฉืขื‘ืจ ื”ื•ืคืš ืœืžืืกื˜ืจ, ื›ืชื•ืฆืื” ืžื›ืš, ืฉื ื™ ื”ืžืืกื˜ืจื™ื ืขื•ื‘ื“ื™ื ืขืœ ืื•ืชื• ืฉืจืช ื•ืฉื ื™ื”ื ื”-IP ื”ืฆืคื™ื ืฉืœื”ื ืžืฆื‘ื™ืขื™ื ืขืœื™ื”ื.

Tuchanka2 (ืงืœืืกื™)

ืžื‘ื ื”

ื“ื•ื’ืžื ื•ืช ืืฉื›ื•ืœื•ืช ื›ืฉืœ ืขืœ ื‘ืกื™ืก PostgreSQL ื•-Pacemaker

ืกื›ื™ืžื” ืงืœืืกื™ืช ืฉืœ ืฉื ื™ ืฆืžืชื™ื. ื”ืื“ื•ืŸ ืขื•ื‘ื“ ืขืœ ืื—ื“, ื”ืขื‘ื“ ืขืœ ื”ืฉื ื™. ืฉื ื™ื”ื ื™ื›ื•ืœื™ื ืœื‘ืฆืข ื‘ืงืฉื•ืช (ื”ืขื‘ื“ ื”ื•ื ืœืงืจื™ืื” ื‘ืœื‘ื“), ื›ืš ืฉืฉืชื™ื”ืŸ ืžืฆื‘ื™ืขื•ืช ืขืœ ื™ื“ื™ ืฆืฃ IP: krogan2 ื”ื•ื ื”ืžืืกื˜ืจ, krogan2s1 ื”ื•ื ื”ืขื‘ื“. ื’ื ืœืื“ื•ืŸ ื•ื’ื ืœืขื‘ื“ ื™ื”ื™ื• ืกื•ื‘ืœื ื•ืช ืœืชืงืœื•ืช.

ื‘ืžืงืจื” ืฉืœ ืฉื ื™ ืฆืžืชื™ื, ืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช ืืคืฉืจื™ืช ืจืง ื‘ืฉื›ืคื•ืœ ืืกื™ื ื›ืจื•ื ื™, ืžื›ื™ื•ื•ืŸ ืฉื‘ืฉื›ืคื•ืœ ืกื™ื ื›ืจื•ื ื™, ื›ื™ืฉืœื•ืŸ ื”ืขื‘ื“ ื™ื•ื‘ื™ืœ ืœืขืฆื™ืจืช ื”ืžืืกื˜ืจ.

ืกื™ืจื•ื‘ Tuchanka2

ื“ื•ื’ืžื ื•ืช ืืฉื›ื•ืœื•ืช ื›ืฉืœ ืขืœ ื‘ืกื™ืก PostgreSQL ื•-Pacemaker

ืื ืื—ื“ ืžืžืจื›ื–ื™ ื”ื ืชื•ื ื™ื ื ื›ืฉืœ ืขื“ ื”ืฆื‘ืขื•ืช ืขื‘ื•ืจ ื”ืฉื ื™. ื‘ืžืจื›ื– ื”ื ืชื•ื ื™ื ื”ื™ื—ื™ื“ ื”ืคื•ืขืœ, ื”ืžืืกื˜ืจ ื™ื•ืขืœื”, ื•ืฉื ื™ ื›ืชื•ื‘ื•ืช ื”-IP ื”ืฆืคื•ืช ื™ืฆื‘ื™ืขื• ืขืœื™ื•: ื”ืžืืกื˜ืจ ื•ื”ืขื‘ื“. ื›ืžื•ื‘ืŸ, ื™ืฉ ืœื”ื’ื“ื™ืจ ืืช ื”ืžื•ืคืข ื‘ืฆื•ืจื” ื›ื–ื• ืฉื™ืฉ ืœื• ืžืกืคื™ืง ืžืฉืื‘ื™ื (ืžื’ื‘ืœื•ืช ื—ื™ื‘ื•ืจ ื•ื›ื•') ื›ื“ื™ ืœืงื‘ืœ ื‘ื•-ื–ืžื ื™ืช ืืช ื›ืœ ื”ื—ื™ื‘ื•ืจื™ื ื•ื”ื‘ืงืฉื•ืช ืžื”-IP ืฉืœ ื”ืžืืกื˜ืจ ื•ื”-slave float. ื›ืœื•ืžืจ, ื‘ืžื”ืœืš ืคืขื•ืœื” ืจื’ื™ืœื” ืฆืจื™ืš ืœื”ื™ื•ืช ืœื• ืืกืคืงื” โ€‹โ€‹ืžืกืคืงืช ืฉืœ ื’ื‘ื•ืœื•ืช.

Tuchanka4 (ืขื‘ื“ื™ื ืจื‘ื™ื)

ืžื‘ื ื”

ื“ื•ื’ืžื ื•ืช ืืฉื›ื•ืœื•ืช ื›ืฉืœ ืขืœ ื‘ืกื™ืก PostgreSQL ื•-Pacemaker

ื›ื‘ืจ ืขื•ื“ ืงื™ืฆื•ืŸ. ื™ืฉื ื ืžืกื“ื™ ื ืชื•ื ื™ื ืฉืžืงื‘ืœื™ื ื”ืจื‘ื” ื‘ืงืฉื•ืช ืœืงืจื™ืื” ื‘ืœื‘ื“ (ืžืงืจื” ื˜ื™ืคื•ืกื™ ืฉืœ ืืชืจ ื‘ืขืœ ืขื•ืžืก ืจื‘). Tuchanka4 ื”ื•ื ืžืฆื‘ ืฉื‘ื• ืขืฉื•ื™ื™ื ืœื”ื™ื•ืช ืฉืœื•ืฉื” ืื• ื™ื•ืชืจ ืขื‘ื“ื™ื ืœื˜ืคืœ ื‘ื‘ืงืฉื•ืช ื›ืืœื”, ืื‘ืœ ืขื“ื™ื™ืŸ ืœื ื™ื•ืชืจ ืžื“ื™. ืขื ืžืกืคืจ ื’ื“ื•ืœ ืžืื•ื“ ืฉืœ ืขื‘ื“ื™ื, ื™ื”ื™ื” ืฆื•ืจืš ืœื”ืžืฆื™ื ืžืขืจื›ืช ืฉื›ืคื•ืœ ื”ื™ืจืจื›ื™ืช. ื‘ืžืงืจื” ื”ืžื™ื ื™ืžืœื™ (ื‘ืชืžื•ื ื”), ืœื›ืœ ืื—ื“ ืžืฉื ื™ ืžืจื›ื–ื™ ื”ื ืชื•ื ื™ื ื™ืฉ ืฉื ื™ ืฉืจืชื™ื, ื›ืœ ืื—ื“ ืขื ืžื•ืคืข PostgreSQL.

ืชื›ื•ื ื” ื ื•ืกืคืช ืฉืœ ืกื›ื™ืžื” ื–ื• ื”ื™ื ืฉื›ื‘ืจ ื ื™ืชืŸ ืœืืจื’ืŸ ืฉื›ืคื•ืœ ืกื™ื ื›ืจื•ื ื™ ืื—ื“. ื”ื•ื ืžื•ื’ื“ืจ ืœืฉื›ืคื•ืœ, ืื ืืคืฉืจ, ืœืžืจื›ื– ื ืชื•ื ื™ื ืื—ืจ, ื‘ืžืงื•ื ืœืขืชืง ื‘ืื•ืชื• ืžืจื›ื– ื ืชื•ื ื™ื ื›ืžื• ื”ืžืืกื˜ืจ. ืืœ ื”ืžืืกื˜ืจ ื•ื›ืœ ืขื‘ื“ ืžืฆื‘ื™ืขื™ื ืขืœ ื™ื“ื™ ื›ืชื•ื‘ืช IP ืฆื™ืคื”. ืœืžืจื‘ื” ื”ืžื–ืœ, ื‘ื™ืŸ ืขื‘ื“ื™ื ื™ื”ื™ื” ืฆื•ืจืš ืœืื–ืŸ ื‘ืงืฉื•ืช ืื™ื›ืฉื”ื• sql proxy, ืœืžืฉืœ, ื‘ืฆื“ ื”ืœืงื•ื—. ืกื•ื’ื™ื ืฉื•ื ื™ื ืฉืœ ืœืงื•ื—ื•ืช ืขืฉื•ื™ื™ื ืœื“ืจื•ืฉ ืกื•ื’ื™ื ืฉื•ื ื™ื sql proxy, ื•ืจืง ืžืคืชื—ื™ ืœืงื•ื—ื•ืช ื™ื•ื“ืขื™ื ืžื™ ืฆืจื™ืš ืื™ื–ื”. ื ื™ืชืŸ ืœื™ื™ืฉื ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ื–ื• ืขืœ ื™ื“ื™ ื“ืžื•ืŸ ื—ื™ืฆื•ื ื™ ืื• ืขืœ ื™ื“ื™ ืกืคืจื™ื™ืช ืœืงื•ื— (ื‘ืจื™ื›ืช ื—ื™ื‘ื•ืจื™ื) ื•ื›ื•'. ื›ืœ ื–ื” ื—ื•ืจื’ ืžื”ื ื•ืฉื ืฉืœ ืืฉื›ื•ืœ ืžืกื“ ื ืชื•ื ื™ื ื›ืฉืœ (failover ืคืจื•ืงืกื™ SQL ื ื™ืชืŸ ืœื™ื™ืฉื ื‘ืื•ืคืŸ ืขืฆืžืื™, ื™ื—ื“ ืขื ืกื•ื‘ืœื ื•ืช ืœืชืงืœื•ืช ื”ืœืงื•ื—).

ืกื™ืจื•ื‘ Tuchanka4

ื“ื•ื’ืžื ื•ืช ืืฉื›ื•ืœื•ืช ื›ืฉืœ ืขืœ ื‘ืกื™ืก PostgreSQL ื•-Pacemaker

ืื ืžืจื›ื– ื ืชื•ื ื™ื ืื—ื“ (ื›ืœื•ืžืจ ืฉื ื™ ืฉืจืชื™ื) ื ื›ืฉืœ, ื”ืขื“ื™ื ื™ืฆื‘ื™ืขื• ืขื‘ื•ืจ ื”ืฉื ื™. ื›ืชื•ืฆืื” ืžื›ืš, ื™ืฉื ื ืฉื ื™ ืฉืจืชื™ื ื”ืคื•ืขืœื™ื ื‘ืžืจื›ื– ื”ื ืชื•ื ื™ื ื”ืฉื ื™: ื”ืื—ื“ ืžืคืขื™ืœ ืžืืกื˜ืจ, ื•ื”-Master float IP ืžืฆื‘ื™ืข ืืœื™ื• (ืœืงื‘ืœืช ื‘ืงืฉื•ืช ืงืจื™ืื”-ื›ืชื™ื‘ื”); ื•ื‘ืฉืจืช ื”ืฉื ื™ ื™ืฉ ืขื‘ื“ ืจืฅ ืขื ืฉื›ืคื•ืœ ืกื™ื ื›ืจื•ื ื™, ื•ืื—ื“ ืžื”-slave float IPs ืžืฆื‘ื™ืข ืขืœื™ื• (ืขื‘ื•ืจ ื‘ืงืฉื•ืช ืœืงืจื™ืื” ื‘ืœื‘ื“).

ื”ื“ื‘ืจ ื”ืจืืฉื•ืŸ ืฉื™ืฉ ืœืฆื™ื™ืŸ ื”ื•ื ืฉืœื ื›ืœ ื›ืชื•ื‘ื•ืช ื”-IP ืฉืœ ื”ืขื‘ื“ื™ื ื™ื”ื™ื• ืขื•ื‘ื“ื™ื, ืืœื ืจืง ืื—ื“. ื•ื›ื“ื™ ืœืขื‘ื•ื“ ืขื ื–ื” ื ื›ื•ืŸ ื™ื”ื™ื” ืฆื•ืจืš ื‘ื›ืš sql proxy ื”ืคื ื” ืžื—ื“ืฉ ืืช ื›ืœ ื”ื‘ืงืฉื•ืช ืœ-IP ื”ืฆืฃ ื”ื™ื—ื™ื“ ืฉื ื•ืชืจ; ื•ืื sql proxy ืœื, ืื– ืืชื” ื™ื›ื•ืœ ืœืจืฉื•ื ืืช ื›ืœ ืขื‘ื“ื™ ื”-IP ื”ืฆืคื™ื ืžื•ืคืจื“ื™ื ื‘ืคืกื™ืงื™ื ื‘ื›ืชื•ื‘ืช ื”-URL ืฉืœ ื”ื—ื™ื‘ื•ืจ. ื‘ืžืงืจื” ื–ื”, ืขื libpq ื”ื—ื™ื‘ื•ืจ ื™ื”ื™ื” ืœ-IP ื”ืจืืฉื•ืŸ ื”ืคื•ืขืœ, ื–ื” ื ืขืฉื” ื‘ืžืขืจื›ืช ื”ื‘ื“ื™ืงื” ื”ืื•ื˜ื•ืžื˜ื™ืช. ืื•ืœื™ ื‘ืกืคืจื™ื•ืช ืื—ืจื•ืช, ืœืžืฉืœ, JDBC, ื–ื” ืœื ื™ืขื‘ื•ื“ ื•ื”ื›ืจื—ื™ sql proxy. ื”ื“ื‘ืจ ื ืขืฉื” ืžื›ื™ื•ื•ืŸ ืฉืืกื•ืจ ืœื”ืขืœื•ืช ื›ืชื•ื‘ื•ืช IP ืœืฆื•ืฃ ืขื‘ื•ืจ ืขื‘ื“ื™ื ื‘ื• ื–ืžื ื™ืช ื‘ืฉืจืช ืื—ื“, ื›ืš ืฉื”ื ืžื—ื•ืœืงื™ื ื‘ืื•ืคืŸ ืฉื•ื•ื” ื‘ื™ืŸ ืฉืจืชื™ ืขื‘ื“ื™ื ืื ื™ืฉ ื›ืžื” ืžื”ื ืคื•ืขืœื™ื.

ืฉื ื™ืช: ื’ื ื‘ืžืงืจื” ืฉืœ ืชืงืœื” ื‘ืžืจื›ื– ื”ื ืชื•ื ื™ื, ื™ื™ืฉืžืจ ืฉื›ืคื•ืœ ืกื™ื ื›ืจื•ื ื™. ื•ื’ื ืื ืžืชืจื—ืฉ ื›ืฉืœ ืžืฉื ื™, ื›ืœื•ืžืจ, ืื—ื“ ืžืฉื ื™ ื”ืฉืจืชื™ื ื‘ืžืจื›ื– ื”ื ืชื•ื ื™ื ืฉื ื•ืชืจ ื›ืฉืœ, ื”ืืฉื›ื•ืœ, ืœืžืจื•ืช ืฉื”ื•ื ื™ืคืกื™ืง ืœืกืคืง ืฉื™ืจื•ืชื™ื, ืขื“ื™ื™ืŸ ื™ืฉืžื•ืจ ืžื™ื“ืข ืขืœ ื›ืœ ื”ืขืกืงืื•ืช ื”ืžื—ื•ื™ื‘ื•ืช ืฉื‘ื’ื™ื ืŸ ื”ื•ื ื ืชืŸ ืื™ืฉื•ืจ ืœื”ืชื—ื™ื™ื‘ื•ืช (ืœื ื™ื”ื™ื” ืžื™ื“ืข ืื•ื‘ื“ืŸ ื‘ืžืงืจื” ืฉืœ ื›ืฉืœ ืžืฉื ื™).

Tuchanka3 (3 ืžืจื›ื–ื™ ื ืชื•ื ื™ื)

ืžื‘ื ื”

ื“ื•ื’ืžื ื•ืช ืืฉื›ื•ืœื•ืช ื›ืฉืœ ืขืœ ื‘ืกื™ืก PostgreSQL ื•-Pacemaker

ื–ื”ื• ืืฉื›ื•ืœ ืœืžืฆื‘ ื‘ื• ื™ืฉื ื ืฉืœื•ืฉื” ืžืจื›ื–ื™ ื ืชื•ื ื™ื ื”ืคื•ืขืœื™ื ื‘ืžืœื•ืื, ืฉืœื›ืœ ืื—ื“ ืžื”ื ื™ืฉ ืฉืจืช ืžืกื“ ื ืชื•ื ื™ื ื”ืคื•ืขืœ ื‘ืžืœื•ืื•. ื‘ืžืงืจื” ื”ื–ื” ืžื›ืฉื™ืจ ืžื ื™ื™ืŸ ืœื ื ื—ื•ืฅ. ืžืจื›ื– ื ืชื•ื ื™ื ืื—ื“ ืžืื•ื™ืฉ ืขืœ ื™ื“ื™ ืžืืกื˜ืจ, ื”ืฉื ื™ื™ื ื”ืื—ืจื™ื ืžืื•ื™ืฉื™ื ืขืœ ื™ื“ื™ ืขื‘ื“ื™ื. ื”ืฉื›ืคื•ืœ ื”ื•ื ืกื™ื ื›ืจื•ื ื™, ื”ืงืœื“ ANY (slave1, slave2), ื›ืœื•ืžืจ, ื”ืœืงื•ื— ื™ืงื‘ืœ ืื™ืฉื•ืจ ื”ืชื—ื™ื™ื‘ื•ืช ื›ืืฉืจ ืžื™ืฉื”ื• ืžื”ืขื‘ื“ื™ื ื”ื•ื ื”ืจืืฉื•ืŸ ืœื”ื’ื™ื‘ ืฉื”ื•ื ืงื™ื‘ืœ ืืช ื”ื”ืชื—ื™ื™ื‘ื•ืช. ืžืฉืื‘ื™ื ืžืกื•ืžื ื™ื ื‘ืืžืฆืขื•ืช IP ืฆืฃ ืื—ื“ ืขื‘ื•ืจ ื”ืžืืกื˜ืจ ื•ืฉื ื™ื™ื ืขื‘ื•ืจ ืขื‘ื“ื™ื. ืฉืœื ื›ืžื• Tuchanka4, ื›ืœ ืฉืœื•ืฉืช ื›ืชื•ื‘ื•ืช ื”-IP ื”ืฆืคื•ืช ืขืžื™ื“ื•ืช ื‘ืคื ื™ ืชืงืœื•ืช. ื›ื“ื™ ืœืื–ืŸ ืฉืื™ืœืชื•ืช SQL ืœืงืจื™ืื” ื‘ืœื‘ื“ ืืชื” ื™ื›ื•ืœ ืœื”ืฉืชืžืฉ sql proxy (ืขื ืกื•ื‘ืœื ื•ืช ืชืงืœื•ืช ื ืคืจื“ืช), ืื• ื”ืงืฆื” IP float ืขื‘ื“ ืื—ื“ ืœืžื—ืฆื™ืช ืžื”ืœืงื•ื—ื•ืช, ื•ื”ื—ืฆื™ ื”ืฉื ื™ ืœืฉื ื™.

ืกื™ืจื•ื‘ Tuchanka3

ื“ื•ื’ืžื ื•ืช ืืฉื›ื•ืœื•ืช ื›ืฉืœ ืขืœ ื‘ืกื™ืก PostgreSQL ื•-Pacemaker

ืื ืื—ื“ ืžืžืจื›ื–ื™ ื”ื ืชื•ื ื™ื ื ื›ืฉืœ, ืฉื ื™ื™ื ื ืฉืืจื™ื. ื‘ืื—ื“, ื”-Master ื•ื”-Float IP ืžื”ืžืืกื˜ืจ ืžื•ืขืœื™ื, ื‘ืฉื ื™ - ื”-slave ื•-slave float IPs (ืœืžื•ืคืข ื—ื™ื™ื‘ ืœื”ื™ื•ืช ืจื–ืจื‘ื” ื›ืคื•ืœื” ืฉืœ ืžืฉืื‘ื™ื ื›ื“ื™ ืœืงื‘ืœ ืืช ื›ืœ ื”ื—ื™ื‘ื•ืจื™ื ืžืฉื ื™ ื”-slave float IPs). ืฉื›ืคื•ืœ ืกื™ื ื›ืจื•ื ื™ ื‘ื™ืŸ ืื“ื•ื ื™ื ื•ืขื‘ื“ื™ื. ื›ืžื• ื›ืŸ, ื”ืืฉื›ื•ืœ ื™ืฉืžื•ืจ ืžื™ื“ืข ืขืœ ืขืกืงืื•ืช ืžื—ื•ื™ื‘ื•ืช ื•ืื•ืฉืจื• (ืœื ื™ื”ื™ื” ืื•ื‘ื“ืŸ ืžื™ื“ืข) ื‘ืžืงืจื” ืฉืœ ื”ืจืก ืฉืœ ืฉื ื™ ืžืจื›ื–ื™ ื ืชื•ื ื™ื (ืื ื”ื ืœื ื™ื”ืจืกื• ื‘ื• ื–ืžื ื™ืช).

ื”ื—ืœื˜ืชื™ ืœื ืœื›ืœื•ืœ ืชื™ืื•ืจ ืžืคื•ืจื˜ ืฉืœ ืžื‘ื ื” ื”ืงื•ื‘ืฅ ื•ื”ืคืจื™ืกื”. ื›ืœ ืžื™ ืฉืจื•ืฆื” ืœืฉื—ืง ื™ื›ื•ืœ ืœืงืจื•ื ื”ื›ืœ ื‘-README. ืื ื™ ืžืกืคืง ืจืง ืชื™ืื•ืจ ืฉืœ ื‘ื“ื™ืงื•ืช ืื•ื˜ื•ืžื˜ื™ื•ืช.

ืžืขืจื›ืช ื‘ื“ื™ืงื” ืื•ื˜ื•ืžื˜ื™ืช

ื›ื“ื™ ืœื‘ื“ื•ืง ืืช ืกื‘ื™ืœื•ืช ื”ืชืงืœื•ืช ืฉืœ ืืฉื›ื•ืœื•ืช ืขืœ ื™ื“ื™ ื”ื“ืžื™ื™ืช ืชืงืœื•ืช ืฉื•ื ื•ืช, ื ื•ืฆืจื” ืžืขืจื›ืช ื‘ื“ื™ืงื” ืื•ื˜ื•ืžื˜ื™ืช. ื”ื•ืฉืง ืขืœ ื™ื“ื™ ืชืกืจื™ื˜ test/failure. ื”ืกืงืจื™ืคื˜ ื™ื›ื•ืœ ืœืงื—ืช ื›ืคืจืžื˜ืจื™ื ืืช ืžืกืคืจ ื”ืืฉื›ื•ืœื•ืช ืฉื‘ืจืฆื•ื ืš ืœื‘ื“ื•ืง. ืœืžืฉืœ ื”ืคืงื•ื“ื” ื”ื–ื•:

test/failure 2 3

ื™ื‘ื“ื•ืง ืจืง ืืช ื”ืืฉื›ื•ืœ ื”ืฉื ื™ ื•ื”ืฉืœื™ืฉื™. ืื ืœื ืฆื•ื™ื ื• ืคืจืžื˜ืจื™ื, ื›ืœ ื”ืืฉื›ื•ืœื•ืช ื™ื™ื‘ื“ืงื•. ื›ืœ ื”ืืฉื›ื•ืœื•ืช ื ื‘ื“ืงื™ื ื‘ืžืงื‘ื™ืœ, ื•ื”ืชื•ืฆืื” ืžื•ืฆื’ืช ื‘ื—ืœื•ื ื™ืช tmux. Tmux ืžืฉืชืžืฉ ื‘ืฉืจืช tmux ื™ื™ืขื•ื“ื™, ื›ืš ืฉื ื™ืชืŸ ืœื”ืคืขื™ืœ ืืช ื”ืกืงืจื™ืคื˜ ืชื—ืช ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ืฉืœ tmux, ื•ื›ืชื•ืฆืื” ืžื›ืš tmux ืžืงื•ื ืŸ. ืื ื™ ืžืžืœื™ืฅ ืœื”ืฉืชืžืฉ ื‘ื˜ืจืžื™ื ืœ ื‘ื—ืœื•ืŸ ื’ื“ื•ืœ ื•ืขื ื’ื•ืคืŸ ืงื˜ืŸ. ืœืคื ื™ ืชื—ื™ืœืช ื”ื‘ื“ื™ืงื”, ื›ืœ ื”ืžื›ื•ื ื•ืช ื”ื•ื™ืจื˜ื•ืืœื™ื•ืช ืžื•ื—ื–ืจื•ืช ืœืชืžื•ื ืช ืžืฆื‘ ื‘ื–ืžืŸ ื”ืฉืœืžืช ื”ืกืงืจื™ืคื˜ setup.

ื“ื•ื’ืžื ื•ืช ืืฉื›ื•ืœื•ืช ื›ืฉืœ ืขืœ ื‘ืกื™ืก PostgreSQL ื•-Pacemaker

ื”ื˜ืจืžื™ื ืœ ืžื—ื•ืœืง ืœืขืžื•ื“ื•ืช ืœืคื™ ืžืกืคืจ ื”ืืฉื›ื•ืœื•ืช ื”ื ื‘ื“ืงื™ื; ื›ื‘ืจื™ืจืช ืžื—ื“ืœ (ื‘ืชืžื•ื ืช ื”ืžืกืš) ื™ืฉื ื ืืจื‘ืขื”. ืืชืืจ ืืช ืชื•ื›ืŸ ื”ืขืžื•ื“ื•ืช ื‘ืืžืฆืขื•ืช ื”ื“ื•ื’ืžื” ืฉืœ Tuchanka2. ื”ืœื•ื—ื•ืช ื‘ืฆื™ืœื•ื ื”ืžืกืš ืžืžื•ืกืคืจื™ื:

  1. ืกื˜ื˜ื™ืกื˜ื™ืงืช ื‘ื“ื™ืงื•ืช ืžื•ืฆื’ืช ื›ืืŸ. ืขืžื•ื“ื•ืช:
    • ื›ื™ืฉืœื•ืŸ - ืฉื ื”ื‘ื“ื™ืงื” (ืคื•ื ืงืฆื™ื” ื‘ืกืงืจื™ืคื˜) ืฉืžื—ืงื” ืืช ื”ืชืงืœื”.
    • ืชื’ื•ื‘ื” - ื–ืžืŸ ืžืžื•ืฆืข ืืจื™ืชืžื˜ื™ ื‘ืฉื ื™ื•ืช ืฉื‘ืžื”ืœื›ืŸ ื”ืืฉื›ื•ืœ ืฉื™ื—ื–ืจ ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœื•. ื”ื•ื ื ืžื“ื“ ืžืชื—ื™ืœืช ื”ืกืงืจื™ืคื˜ ื”ืžื—ืงื” ืชืงืœื” ื•ืขื“ ืœืจื’ืข ืฉื‘ื• ื”ืืฉื›ื•ืœ ืžืฉื—ื–ืจ ืืช ื”ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช ืฉืœื• ื•ืžืกื•ื’ืœ ืœื”ืžืฉื™ืš ืœืกืคืง ืฉื™ืจื•ืชื™ื. ืื ื”ื–ืžืŸ ืงืฆืจ ืžืื•ื“, ืœืžืฉืœ, ืฉืฉ ืฉื ื™ื•ืช (ื–ื” ืงื•ืจื” ื‘ืืฉื›ื•ืœื•ืช ืขื ืžืกืคืจ ืขื‘ื“ื™ื (Tuchanka3 ื•- Tuchanka4)), ื–ื” ืื•ืžืจ ืฉื”ืชืงืœื” ื”ื™ื™ืชื” ื‘ืขื‘ื“ ื”ืืกื™ื ื›ืจื•ื ื™ ื•ืœื ื”ืฉืคื™ืขื” ื‘ืฉื•ื ืฆื•ืจื” ืขืœ ื”ื‘ื™ืฆื•ืขื™ื; ืœื ื”ื™ื• ืžืชื’ื™ ืžืฆื‘ ืืฉื›ื•ืœ.
    • ืกื˜ื™ื™ื” - ืžืฆื™ื’ ืืช ื”ืชืคืฉื˜ื•ืช (ื“ื™ื•ืง) ืฉืœ ื”ืขืจืš ืชื’ื•ื‘ื” ื‘ืฉื™ื˜ืช ืกื˜ื™ื™ืช ื”ืชืงืŸ.
    • ืœืกืคื•ืจ - ื›ืžื” ืคืขืžื™ื ื‘ื•ืฆืขื” ื‘ื“ื™ืงื” ื–ื•.
  2. ื™ื•ืžืŸ ืงืฆืจ ืžืืคืฉืจ ืœืš ืœื”ืขืจื™ืš ืžื” ื”ืืฉื›ื•ืœ ืขื•ืฉื” ื›ืจื’ืข. ืžื•ืฆื’ื™ื ืžืกืคืจ ื”ืื™ื˜ืจืฆื™ื” (ื‘ื“ื™ืงื”), ื—ื•ืชืžืช ื”ื–ืžืŸ ื•ืฉื ื”ืคืขื•ืœื”. ืจื™ืฆื” ืืจื•ื›ื” ืžื“ื™ (> 5 ื“ืงื•ืช) ืžืขื™ื“ื” ืขืœ ื‘ืขื™ื”.
  3. ืœึตื‘ (ืœื‘) - ืฉืขื” ื ื•ื›ื—ื™ืช. ืœื”ืขืจื›ื” ื•ื™ื–ื•ืืœื™ืช ืฉืœ ื‘ื™ืฆื•ืขื™ื ืื“ื•ื ื™ื ื”ืฉืขื” ื”ื ื•ื›ื—ื™ืช ื ื›ืชื‘ืช ื›ืœ ื”ื–ืžืŸ ืœื˜ื‘ืœื” ืฉืœื• ื‘ืืžืฆืขื•ืช ืžืืกื˜ืจ ื”-IP float. ืื ื–ื” ืžืฆืœื™ื—, ื”ืชื•ืฆืื” ืžื•ืฆื’ืช ื‘ื—ืœื•ื ื™ืช ื–ื•.
  4. ืœื”ื™ื•ืช ื‘ (ื“ื•ืคืง) - "ื–ืžืŸ ื ื•ื›ื—ื™", ืฉื”ื•ืงืœื˜ ื‘ืขื‘ืจ ืขืœ ื™ื“ื™ ื”ืชืกืจื™ื˜ ืœึตื‘ ืœืฉืœื•ื˜, ืขื›ืฉื™ื• ืงืจื ืž ืขื‘ื“ ื“ืจืš ื”-IP ื”ืฆืฃ ืฉืœื•. ืžืืคืฉืจ ืœืš ืœื”ืขืจื™ืš ื—ื–ื•ืชื™ืช ืืช ื”ื‘ื™ืฆื•ืขื™ื ืฉืœ ื”ืขื‘ื“ ื•ื”ืฉื›ืคื•ืœ. ื‘- Tuchanka1 ืื™ืŸ ืขื‘ื“ื™ื ืขื IP Float (ืื™ืŸ ืขื‘ื“ื™ื ื”ืžืกืคืงื™ื ืฉื™ืจื•ืชื™ื), ืื‘ืœ ื™ืฉ ืฉื ื™ ืžื•ืคืขื™ื (DBs), ืื– ื–ื” ืœื ื™ื•ืฆื’ ื›ืืŸ ืœื”ื™ื•ืช ื‘ื• - ืœึตื‘ ืžืงืจื” ืฉื ื™.
  5. ื ื™ื˜ื•ืจ ืชืงื™ื ื•ืช ื”ืืฉื›ื•ืœื•ืช ื‘ืืžืฆืขื•ืช ื›ืœื™ ื”ืฉื™ืจื•ืช pcs mon. ืžืฆื™ื’ ืืช ื”ืžื‘ื ื”, ื”ืชืคืœื’ื•ืช ื”ืžืฉืื‘ื™ื ืขืœ ืคื ื™ ืฆืžืชื™ื ื•ืžื™ื“ืข ืฉื™ืžื•ืฉื™ ืื—ืจ.
  6. ื ื™ื˜ื•ืจ ืžืขืจื›ืช ืžื›ืœ ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืฉื›ื•ืœ ืžื•ืฆื’ ื›ืืŸ. ื™ื™ืชื›ืŸ ืฉื™ื”ื™ื• ืขื•ื“ ืคืื ืœื™ื ื›ืืœื” ืชืœื•ื™ ื‘ื›ืžื” ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื™ืฉ ืœืืฉื›ื•ืœ. ืฉื ื™ ื’ืจืคื™ื ืขื•ืžืก ืžืขื‘ื“ (ืœืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื™ืฉ ืฉื ื™ ืžืขื‘ื“ื™ื), ืฉื ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช, ื˜ืขืŸ ืžืขืจื›ืช (ื”ื ืงืจื Load Average ืžื›ื™ื•ื•ืŸ ืฉื”ื•ื ื ืžืฆื ื‘ืžืžื•ืฆืข ืขืœ ืคื ื™ 5, 10 ื•-15 ื“ืงื•ืช), ื ืชื•ื ื™ ืชื”ืœื™ืš ื•ื”ืงืฆืืช ื–ื™ื›ืจื•ืŸ.
  7. ืžืขืงื‘ ืื—ืจ ื”ืกืงืจื™ืคื˜ ื”ืžื‘ืฆืข ื‘ื“ื™ืงื”. ื‘ืžืงืจื” ืฉืœ ืชืงืœื” โ€“ ื”ืคืกืงื” ืคืชืื•ืžื™ืช ื‘ืคืขื•ืœื” ืื• ืžื—ื–ื•ืจ ื”ืžืชื ื” ืื™ื ืกื•ืคื™ โ€“ ื›ืืŸ ืชื•ื›ืœื• ืœืจืื•ืช ืืช ื”ืกื™ื‘ื” ืœื”ืชื ื”ื’ื•ืช ื–ื•.

ื”ื‘ื“ื™ืงื” ืžืชื‘ืฆืขืช ื‘ืฉื ื™ ืฉืœื‘ื™ื. ืจืืฉื™ืช, ื”ืชืกืจื™ื˜ ืขื•ื‘ืจ ืืช ื›ืœ ืกื•ื’ื™ ื”ื‘ื“ื™ืงื•ืช, ื‘ื•ื—ืจ ื‘ืืงืจืื™ ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช ืฉืขืœื™ื” ืœื”ื—ื™ืœ ืืช ื”ื‘ื“ื™ืงื” ื”ื–ื•. ืœืื—ืจ ืžื›ืŸ ืžืชื‘ืฆืข ืžื—ื–ื•ืจ ืื™ื ืกื•ืคื™ ืฉืœ ื‘ื“ื™ืงื•ืช, ื”ืžื›ื•ื ื•ืช ื”ื•ื™ืจื˜ื•ืืœื™ื•ืช ื•ื”ืชืงืœื” ื ื‘ื—ืจื•ืช ื‘ืื•ืคืŸ ืืงืจืื™ ื‘ื›ืœ ืคืขื. ืกื™ื•ื ืคืชืื•ืžื™ ืฉืœ ืกืงืจื™ืคื˜ ื”ื‘ื“ื™ืงื” (ืคืื ืœ ืชื—ืชื•ืŸ) ืื• ืœื•ืœืื” ืื™ื ืกื•ืคื™ืช ืฉืœ ื”ืžืชื ื” ืœืžืฉื”ื• (> 5 ื“ืงื•ืช ื–ืžืŸ ื‘ื™ืฆื•ืข ืœืคืขื•ืœื” ืื—ืช, ื ื™ืชืŸ ืœืจืื•ืช ื–ืืช ื‘ืžืขืงื‘) ืžืฆื‘ื™ืข ืขืœ ื›ืš ืฉื—ืœืง ืžื”ื‘ื“ื™ืงื•ืช ื‘ืืฉื›ื•ืœ ื–ื” ื ื›ืฉืœื•.

ื›ืœ ืžื‘ื—ืŸ ืžื•ืจื›ื‘ ืžื”ืคืขื•ืœื•ืช ื”ื‘ืื•ืช:

  1. ื”ืคืขืœ ืคื•ื ืงืฆื™ื” ืฉืžื—ืงื” ืชืงืœื”.
  2. ืžื•ื›ืŸ? - ื”ืžืชื ื” ืœืฉื—ื–ื•ืจ ื”ืืฉื›ื•ืœ (ื›ืืฉืจ ื›ืœ ื”ืฉื™ืจื•ืชื™ื ืžืกื•ืคืงื™ื).
  3. ืžืฆื™ื’ ืืช ืคืกืง ื”ื–ืžืŸ ืฉืœ ืฉื—ื–ื•ืจ ื”ืืฉื›ื•ืœ (ืชื’ื•ื‘ื”).
  4. ืœืกื“ืจ - ื”ืืฉื›ื•ืœ ื ืžืฆื ื‘"ืชื™ืงื•ืŸ". ืœืื—ืจ ืžื›ืŸ ื”ื•ื ืืžื•ืจ ืœื—ื–ื•ืจ ืœืžืฆื‘ ืชืคืขื•ืœื™ ืžืœื ื•ืœื”ื™ื•ืช ืžื•ื›ืŸ ืœืชืงืœื” ื”ื‘ืื”.

ืœื”ืœืŸ ืจืฉื™ืžื” ืฉืœ ืžื‘ื—ื ื™ื ืขื ืชื™ืื•ืจ ืฉืœ ืžื” ืฉื”ื ืขื•ืฉื™ื:

  • ForkBomb: ื™ื•ืฆืจ "ืžื—ื•ืฅ ืœื–ื™ื›ืจื•ืŸ" ื‘ืืžืฆืขื•ืช ืคืฆืฆืช ืžื–ืœื’.
  • ืžื—ื•ืฅ ืœื—ืœืœ: ื”ื›ื•ื ืŸ ื”ืงืฉื™ื— ืžืœื. ืื‘ืœ ื”ื‘ื“ื™ืงื” ื”ื™ื ืกืžืœื™ืช ืœืžื“ื™; ืขื ื”ืขื•ืžืก ื”ืœื ืžืฉืžืขื•ืชื™ ืฉื ื•ืฆืจ ื‘ืžื”ืœืš ื”ื‘ื“ื™ืงื”, PostgreSQL ื‘ื“ืจืš ื›ืœืœ ืœื ื ื›ืฉืœ ื›ืืฉืจ ื”ื›ื•ื ืŸ ื”ืงืฉื™ื— ืžืœื.
  • Postgres-KILL: ื”ื•ืจื’ ืืช PostgreSQL ืขื ื”ืคืงื•ื“ื” killall -KILL postgres.
  • Postgres-STOP: ืชืœื•ื™ ื‘ืคืงื•ื“ืช PostgreSQL killall -STOP postgres.
  • ืคืื•ื•ืจื•ืฃ: "ืžื•ืฆื™ื ืžื”ืื ืจื’ื™ื”" ืืช ื”ืžื›ื•ื ื” ื”ื•ื™ืจื˜ื•ืืœื™ืช ืขื ื”ืคืงื•ื“ื” VBoxManage controlvm "ะฒะธั€ั‚ัƒะฐะปะบะฐ" poweroff.
  • ืœืืคืก: ืžืขืžื™ืก ืขืœ ื”ืžื—ืฉื‘ ื”ื•ื™ืจื˜ื•ืืœื™ ื‘ืคืงื•ื“ื” VBoxManage controlvm "ะฒะธั€ั‚ัƒะฐะปะบะฐ" reset.
  • SBD-STOP: ืžืฉืขื” ืืช ืฉื“ SBD ืขื ื”ืคืงื•ื“ื” killall -STOP sbd.
  • ื›ื™ื‘ื•ื™: ืฉื•ืœื— ืคืงื•ื“ื” ืœืžื›ื•ื ื” ื”ื•ื™ืจื˜ื•ืืœื™ืช ื‘ืืžืฆืขื•ืช SSH systemctl poweroff, ื”ืžืขืจื›ืช ื ืกื’ืจืช ื‘ื—ืŸ.
  • ื‘ื˜ืœ ืงื™ืฉื•ืจ: ื‘ื™ื“ื•ื“ ืจืฉืช, ืคืงื•ื“ื” VBoxManage controlvm "ะฒะธั€ั‚ัƒะฐะปะบะฐ" setlinkstate1 off.

ื”ืฉืœืžืช ื‘ื“ื™ืงื” ื‘ืืžืฆืขื•ืช ืคืงื•ื“ืช tmux ื”ืกื˜ื ื“ืจื˜ื™ืช "kill-window" Ctrl-b &, ืื• ื”ืคืงื•ื“ื” "ื ื™ืชื•ืง-ืœืงื•ื—". Ctrl-b ื“: ื‘ืฉืœื‘ ื–ื” ืžืกืชื™ื™ืžืช ื”ื‘ื“ื™ืงื”, tmux ื ืกื’ืจืช, ืžื›ื•ื ื•ืช ื•ื™ืจื˜ื•ืืœื™ื•ืช ื›ื‘ื•ื™ื•ืช.

ื‘ืขื™ื•ืช ืฉื–ื•ื”ื• ื‘ืžื”ืœืš ื”ื‘ื“ื™ืงื”

  • ื›ืจื’ืข ื›ืœื‘ ืฉืžื™ืจื” ืฉื“ sbd ืขื•ื‘ื“ ืขืœ ืขืฆื™ืจืช ื“ืžื•ื ื™ื ืฉื ืฆืคื•, ืืš ืœื ื”ืงืคืืชื. ื•ื›ืชื•ืฆืื” ืžื›ืš, ืชืงืœื•ืช ื”ืžื•ื‘ื™ืœื•ืช ืœื”ืงืคืื” ื‘ืœื‘ื“ ืงื•ืจื•ืกื™ื ืง ะธ ืงื•ืฆื‘ ืœื‘, ืื‘ืœ ืœื ืชืœื•ื™ SBD... ืœื‘ื“ื™ืงื” ืงื•ืจื•ืกื™ื ืง ื›ื‘ืจ ื™ืฉ ื™ื—ืกื™ ืฆื™ื‘ื•ืจ ืžืก '83 (ื‘-GitHub ื‘- SBD), ื”ืชืงื‘ืœ ืœืฉืจืฉื•ืจ ืื‘. ื”ื ื”ื‘ื˜ื™ื—ื• (ื‘-PR#83) ืฉื™ื”ื™ื” ืžืฉื”ื• ื“ื•ืžื” ืœ-Pacemaker, ืื ื™ ืžืงื•ื•ื” ืฉืขื“ RedHat 8 ื–ื” ืžื” ืฉืืขืฉื”. ืื‘ืœ "ืชืงืœื•ืช" ื›ืืœื” ื”ืŸ ืกืคืงื•ืœื˜ื™ื‘ื™ื•ืช ื•ื ื™ืชืŸ ืœื“ืžื•ืช ืื•ืชืŸ ื‘ืงืœื•ืช ื‘ืื•ืคืŸ ืžืœืื›ื•ืชื™ ื‘ืืžืฆืขื•ืช, ืœืžืฉืœ, killall -STOP corosync, ืื‘ืœ ืœืขื•ืœื ืœื ื ืคื’ืฉื™ื ื‘ื—ื™ื™ื ื”ืืžื™ืชื™ื™ื.

  • ะฃ ืงื•ืฆื‘ ืœื‘ ื‘ื’ืจืกื” ืขื‘ื•ืจ CentOS 7 ืžื•ื’ื“ืจ ื‘ืฆื•ืจื” ืœื ื ื›ื•ื ื” sync_timeout ัƒ ืžื›ืฉื™ืจ ืžื ื™ื™ืŸ, ื›ืชื•ืฆืื” ืื ืฆื•ืžืช ืื—ื“ ื ื›ืฉืœ, ื‘ืกื‘ื™ืจื•ืช ืžืกื•ื™ืžืช ื’ื ื”ืฆื•ืžืช ื”ืฉื ื™ ืขืœื” ืžื—ื“ืฉ, ืฉืืœื™ื• ื”ืื“ื•ืŸ ื”ื™ื” ืืžื•ืจ ืœืขื‘ื•ืจ. ื ืจืคื ืขืœ ื™ื“ื™ ื”ื’ื“ืœื” sync_timeout ัƒ ืžื›ืฉื™ืจ ืžื ื™ื™ืŸ ื‘ืžื”ืœืš ื”ืคืจื™ืกื” (ื‘ืชืกืจื™ื˜ setup/setup1). ืชื™ืงื•ืŸ ื–ื” ืœื ื”ืชืงื‘ืœ ืขืœ ื™ื“ื™ ื”ื™ื–ืžื™ื ืงื•ืฆื‘ ืœื‘, ื‘ืžืงื•ื ื–ืืช ื”ื ื”ื‘ื˜ื™ื—ื• ืœืชื›ื ืŸ ืžื—ื“ืฉ ืืช ื”ืชืฉืชื™ืช ื‘ืฆื•ืจื” ื›ื–ื• (ื‘ืขืชื™ื“ ืœื ืžื•ื’ื“ืจ) ืฉืคืกืง ื”ื–ืžืŸ ื”ื–ื” ื™ื—ื•ืฉื‘ ืื•ื˜ื•ืžื˜ื™ืช.

  • ืื ืชืฆื•ืจืช ืžืกื“ ื”ื ืชื•ื ื™ื ืžืฆื™ื™ื ืช ื–ืืช LC_MESSAGES (ื”ื•ื“ืขื•ืช ื˜ืงืกื˜) ื ื™ืชืŸ ืœื”ืฉืชืžืฉ ื‘-Unicode, ืœืžืฉืœ. ru_RU.UTF-8, ื•ืื– ื‘ื”ืคืขืœื” postgres ื‘ืกื‘ื™ื‘ื” ืฉื‘ื” ื”ืžืงื•ื ืื™ื ื• UTF-8, ื ื ื™ื— ื‘ืกื‘ื™ื‘ื” ืจื™ืงื” (ื›ืืŸ ืงื•ืฆื‘ ืœื‘+pgsqlms(ืคืืฃ) ืจืฅ postgres) ืื– ื”ื™ื•ืžืŸ ื™ื›ื™ืœ ืกื™ืžื ื™ ืฉืืœื” ื‘ืžืงื•ื ืื•ืชื™ื•ืช UTF-8. ืžืคืชื—ื™ PostgreSQL ืœื ื”ืกื›ื™ืžื• ืžื” ืœืขืฉื•ืช ื‘ืžืงืจื” ื–ื”. ื–ื” ืขื•ืœื”, ืืชื” ืฆืจื™ืš ืœื”ืชืงื™ืŸ LC_MESSAGES=en_US.UTF-8 ื‘ืขืช ื”ื’ื“ืจืช (ื™ืฆื™ืจืช) ืžื•ืคืข ืžืกื“ ื ืชื•ื ื™ื.

  • ืื wal_receiver_timeout ืžื•ื’ื“ืจ (ื›ื‘ืจื™ืจืช ืžื—ื“ืœ ื–ื” 60s), ืื– ื‘ืžื”ืœืš ืžื‘ื—ืŸ PostgreSQL-STOP ืขืœ ื”ืžืืกื˜ืจ ื‘ืืฉื›ื•ืœื•ืช tuchanka3 ื•-tuchanka4 ืฉื›ืคื•ืœ ืื™ื ื• ืžืชื—ื‘ืจ ืžื—ื“ืฉ ืœืžืืกื˜ืจ ื”ื—ื“ืฉ. ื”ืฉื›ืคื•ืœ ืฉื ื”ื•ื ืกื™ื ื›ืจื•ื ื™, ื›ืš ืฉืœื ืจืง ื”ืขื‘ื“ ืขื•ืฆืจ, ืืœื ื’ื ื”ืžืืกื˜ืจ ื”ื—ื“ืฉ. ืžืขืงืฃ ืขืœ ื™ื“ื™ ื”ื’ื“ืจืช wal_receiver_timeout=0 ื‘ืขืช ื”ื’ื“ืจืช PostgreSQL.

  • ืžื“ื™ ืคืขื ืจืื™ืชื™ ื”ืงืคืืช ืฉื›ืคื•ืœ ื‘-PostgreSQL ื‘ืžื‘ื—ืŸ ForkBomb (ื”ืฆืคืช ื–ื™ื›ืจื•ืŸ). ืœืื—ืจ ForkBomb, ืœืคืขืžื™ื ืขื‘ื“ื™ื ืขืฉื•ื™ื™ื ืฉืœื ืœื”ืชื—ื‘ืจ ืžื—ื“ืฉ ืœืžืืกื˜ืจ ื”ื—ื“ืฉ. ื ืชืงืœืชื™ ื‘ื–ื” ืจืง ื‘ืืฉื›ื•ืœื•ืช tuchanka3 ื•-tuchanka4, ืฉื ื”ืžืืกื˜ืจ ืงืคื ืขืงื‘ ืฉื›ืคื•ืœ ืกื™ื ื›ืจื•ื ื™. ื”ื‘ืขื™ื” ื—ืœืคื” ืžืขืฆืžื” ืœืื—ืจ ื–ืžืŸ ืจื‘ (ื›ืฉืขืชื™ื™ื). ื™ืฉ ืฆื•ืจืš ื‘ืžื—ืงืจ ื ื•ืกืฃ ื›ื“ื™ ืœืชืงืŸ ื–ืืช. ื”ืชืกืžื™ื ื™ื ื“ื•ืžื™ื ืœื‘ืื’ ื”ืงื•ื“ื, ืฉื ื’ืจื ืžืกื™ื‘ื” ืื—ืจืช, ืืš ืขื ืื•ืชืŸ ื”ืฉืœื›ื•ืช.

ืชืžื•ื ื” ืฉืœ ืงืจื•ื’ืŸ ื ืœืงื—ื” ืž ืืžื ื•ืช ืกื•ื˜ื” ื‘ืื™ืฉื•ืจ ื”ืžื—ื‘ืจ:

ื“ื•ื’ืžื ื•ืช ืืฉื›ื•ืœื•ืช ื›ืฉืœ ืขืœ ื‘ืกื™ืก PostgreSQL ื•-Pacemaker

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”