áááá«ááºáž
áááŒá¬áá±ážáá®á áá»áœááºá¯ááºá¡á¬áž ááŸá¯á¶ážáááá·áºááŸá¯á¡á
á¯á¡áá±ážáá
áºáᯠáááºáá±á¬ááºááẠáá¬áááºáá±ážá¡ááºáá¶ááááºá
á€áá¯á¶ážááŒááºáá»ááºááẠáá»áá¯ážááŒá±á¬ááºážáá®áá»á±á¬áºáá±á¬áá±ážááœááºážááᯠááŒá áºáá±á«áºá á±áááº- ááŸá¯á¶ážáááá·áºááŸá¯á¡á á¯á¡ááœá²á·ááẠáááºáá²á·ááá¯á· á¡ááŸá¬ážá¡ááœááºážáá¶ááá¯ááºáááºááŸááááºáááºážá áááºážááᯠá á¯á¶á ááºážá á áºáá±ážáááºá á¡á á¯á¡áá±ážáá»á¬ážáá±á«áºááŸá á¡áá»áá¯ážáá»áá¯ážáá±á¬ áá»áá¯á·ááœááºážáá»ááºáá»á¬ážááᯠá¡áá¯áá°áᬠáááºáá±á¬ááºááŸá¯ááᯠááŒááºáááºááá°ááẠá á±á¬áá·áºááá¯ááºážááŒááºážá áá¡á±á¬ááºááŒááºáá±á¬ node ááᯠááŒááºáááºááá°ááŒá®áž ááœááºážáááºáá áºáá¯ááœáẠá ááºážáááºááŸá¯áá»á¬ážááᯠáááºáááºáá¯ááºáá±á¬ááºááá·áº á ááºážáááºáá¯á¶áááºážáá»á¬ážáá áºáá¯ááᯠáá®ááœááºáá²á·áááºá á€ááá±á¬áá»ááºááᯠáá°áá hapgsql áá¯áá±á«áºáá±á¬áºáááºáž áááá áºáá¯á¶ážáááºážáá¬áá«ááá·áº á¡áááºááᯠá¡áá»áááºááŒá¬áá¬áááºááŸáá·áºá¡áá»áŸ ááŒá®ážááœá±á·áá¬áááºá ááá¯á·ááŒá±á¬áá·áºá áá»áœááºá¯ááºááẠá¡ááŸá¬áž-áá¶ááá¯ááºáááºááŸááá±á¬ áá±áá¬áá±á·á áºáá»á¬áž (áááºážááá¯á·á¡á¬áž ááœáŸááºááŒáá±áá±á¬ float IP) áááá¯ááẠ(á¡áá±ážááŒá®ážáá±á¬á¡ááºá¹áá«áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáááºáá°ááœá¬ážáá±ááá·áº ááœááºáá»á°áá¬ááááºážáá áºáá¯á០áá¬ááºáá±á¬ááºáá áºáá¯) ááŸáá·áº nodesá clusters ááŸáá·áº project ááá¯ááºááá¯áẠtuchanka (áááá¯áááºááœá±áá±ááá¯ááºáá²á· ááŒáá¯ááº)á
á¡áá¯áá±á¬á· á
á®áá¶ááá·áºááœá²ááœáá·áº áá±ážááá¯ááºááŒá®á
á¡á
á¯á¡áá±ážáá»á¬ážááᯠvirtual machines áá»á¬ážááœáẠá¡áá¯á¶ážááŒá¯áááºá
áááá»áá±á¬á¡áá»áááºáááºáá±á¬ááºááŸá¯ ntpd
(ááááá²á·áá¯ááº) áá»áŸáá±áá¬ážáá±á¬ áá¬áᬠááá»ááá±á¶ áááᯠNTP áá¬áá¬áá
áºáá¯á¡áá±ááŒáá·áº áá¯ááºáá±á¬ááºááŒá®áž áááºážáá¡áá»áááºááᯠá¡á
á¯á¡áá±ážáá»á¬ážá¡á¬ážáá¯á¶ážááá¯á· ááŒáá·áºáá±áá±ážáᬠáá¬áá¬á¡á¬ážáá¯á¶ážááᯠáá
áºáá¯ááŸáá·áºáá
áºáᯠáá
áºááŒáá¯ááºáááºáž áá
áºááŒáá¯ááºáááºážáá¯ááºáá±á¬ááºáááºá á¡áááºááá¯á· ááá»ááá±á¶ áá»ááºááœááºááẠááá¯á·ááá¯áẠáá®ážááŒá¬ážááŒá
áºááœá¬ážáááºá ááá¯á·áá±á¬áẠá¡á
á¯ááá¯ááºáá¬áá¬áá»á¬áž (á¡á
á¯á¡áá±ážá¡ááœááºáž) áá
áºáá¯ááẠáááºážáá¡áá»áááºááᯠá
áááºááŒáá·áºáá±áááºááŒá
áºáááºá á¡áááºááááºážáááºážááŒááºáž HTTP ááá±á¬ááºá
á® áááºáááºáááºá ááá»ááá±á¶áááºážáá¡áá°á¡áá®ááŒáá·áºá á¡ááŒá¬ážáá±á¬ virtual machine áá»á¬ážááẠYum repositories ááá¯á· áááºáá±á¬ááºááá¯ááºáááºá á¡ááŸááºááááºááœááºá áááá»áá±á¬á¡áá»áááºááŸáá·áº proxy áá²á·ááá¯á·áá±á¬ áááºáá±á¬ááºááŸá¯áá»á¬ážááẠáá®ážááŒá¬ážáá¬áá¬áá»á¬ážáá±á«áºááœáẠáááºáá¶áá»ááºážáááá¯ááºááœááºááŸááá±á¬áºáááºáž booth ááœáẠáááºážááá¯á·ááᯠáááºáá¶áá±á¬ááºááœááºáá±ážáá«áááºá ááá»ááá±á¶ virtual machines ááŸáá·áº space á¡áá±á¡ááœááºááᯠáá»áœá±áá¬áááºáá¬á
áá¬ážááŸááºáž
v0á VirtualBox 7 ááœáẠCentOS 11 ááŸáá·áº PostgreSQL 6.1 ááŸáá·áº á¡áá¯ááºáá¯ááºáááºá
á¡á á¯á¡ááœá²á·ááœá²á·á ááºážáá¯á¶
á¡á á¯á¡áá±ážáá»á¬ážá¡á¬ážáá¯á¶ážááẠáá±áá¬á ááºáá¬áá»á¬ážá áœá¬ááœáẠáááºááŸáááŒá®áž ááŒá¬ážáá»ááºáá»ááºááœááºáááºáá áºáá¯ááá¯á· áá±á«ááºážá ááºáᬠáá±áá¬á ááºáá¬áá áºáá¯á ááœááºáááºá¡áá®ážáá»ááºááŸá¯ááᯠáá¶ááá¯ááºáááºááŸáááẠáá®ááá¯ááºážáá¯ááºáá¬ážáááºá á¡á²áá«ááŒá±á¬ááºá· áááŒá áºááá¯ááºáá±á¬ á¡áá¬á¡ááœááºá¡ááœáẠá¡áá¯á¶ážááŒá¯ split-áŠážááŸá±á¬áẠstandard Pacemaker áááºážááá¬áá¯áá±á«áºáááºá STONITH (Shoot The Other Node In The Head) ááá¯á·ááá¯áẠááŒá¶á ááºážááá¯áž. áááºážáá¡ááŸá áºáá¬á- á¡áá»áá¯á·áá±á¬ node áá»á¬ážááœáẠáá áºáá¯áá¯ááŸá¬ážááœááºážáá±áááºáᯠáá¶ááá ááŒá¯áá¬áá«áá áááºážááẠáá¯á¶á·ááŒááºááŒááºážáááŸááá« ááá¯á·ááá¯áẠááŸá¬ážááœááºážá áœá¬áá¯ááºáá±á¬ááºáá±áá«áá á¥ááá¬á IPMI ááá¯á·ááá¯áẠUPS ááááºážáá»á¯ááºááŸá¯áááºáá áºáá¯ááŸáá áºááá·áº áááºážá¡á¬áž áááºážááá¯á·á¡á¬áž á¡áááºážá¡áá»ááºááááºá á±ááŒááºáž . ááá¯á·áá±á¬áº áá áºáá¯áááºážáá±á¬ áá»áá¯á·ááœááºážááŸá¯áá áºáá¯ááœáẠIPMI ááá¯á·ááá¯áẠUPS áá¬áᬠáááºáááºá¡áá¯ááºáá¯ááºáá±ááá·áº ááá á¹á áá»á¬ážááœááºáᬠáááºážááẠáá¯ááºáá±á¬ááºááá¯ááºáááºááŒá áºáááºá á€áá±áá¬ááœáẠáá»áœááºá¯ááºááá¯á·ááẠáá±áá¬á ááºáá¬áá áºáá¯áá¯á¶áž áá»ááºááœááºááœá¬ážáá±á¬á¡áá« (á¥ááá¬á áá«áá«áá¯á¶ážááŸá¯á¶ážááŒááºáž) ááᯠáá¬ááœááºááẠá€áá±áá¬ááœáẠáá»áœááºá¯ááºááá¯á· á á®á ááºáá¬ážáá«áááºá ááá¯áá²á·ááá¯á· ááŒááºážááá¯ááŒááºážááŒáá·áº á¡áá¬áá¬ááá¯ááºážááẠáá»á±á¬ááºáá²- á ááºáá á¹á ááºážáá»á¬áž (IPMIá UPS á áááºááŒáá·áº) áááºáž á¡áá¯ááºááá¯ááºáá«á
áááºážá¡á á¬áž á áá áºááẠá¡áááŒá±á¬ááºááá·áº á¡áá°á¡áá¡áá±á«áº á¡ááŒá±áá¶áááºá node á¡á¬ážáá¯á¶ážááœáẠá¡áá¶áá áºáá¯ááŸáááŒá®áž node á¡á¬ážáá¯á¶ážá áááºáááºáá»á±á¬áºááᯠááŒááºááá¯ááºáá°áá»á¬ážáᬠá¡áá¯ááºáá¯ááºááá¯ááºáááºá á€ááá¬áááᯠ"half + 1" áá¯áá±á«áºáááºá á¡áááŒá±á¬ááºáááºá. quorum ááá±á¬ááºáá«áá node ááẠnetwork isolation ááœááºááŸáááŒá±á¬ááºáž áá¯á¶ážááŒááºááŒá®áž áááºážáá¡áááºážá¡ááŒá áºáá»á¬ážááᯠááááºááááºá ááá¯ááá¯áááºááŸá¬á áá«á áá¬áá²á áŠážááŸá±á¬ááºááœá²ááŒááºážááᯠáá¬ááœááºáá±ážááŒááºážá. á€á¡ááŒá¯á¡áá°á¡ááœáẠáá¬áááºááŸááá±á¬ áá±á¬á·ááºáá²ááºááẠá¡áá¯ááºááá¯ááºáá«áá á¥ááá¬á IPMI ááᯠá¡ááŒá±áá¶áá¬ážáá±á¬ á á±á¬áá·áºááŒáá·áºá¡ááœá²á·ááẠá¡áá¯ááºáá¯ááºááááºááŒá áºáá«áááºá
á¡áááºá node á¡áá±á¡ááœááºááẠ(áá±áá¬á ááºáá¬ááŸá áºáá¯ááŸá á¡á á¯á¡áá±ážáá áºáá¯) ááŒá áºáá«á ááá±áá»á¬ááá±áá¬ááŸá¯áᯠáá±á«áºááẠáá% / áá% (áá«ážááá·áºáá«ážáááº) network isolation ááẠcluster ááᯠáá áºáááºááááááœá²áá±ážáá±á¬á¡áá«á ááá¯á·ááŒá±á¬áá·áºá áá°áá®áá±á¬áá¶áá«ááºáá»á¬ážá¡ááœááºá áá»áœááºá¯ááºááá¯á·ááá·áºáá«á á¡áááŒá±á¬áẠáááááᬠáááááá±áá¬á ááºáá¬ááŸá á á»á±ážá¡áááºáá¬áá¯á¶áž virtual machine ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº áááá¯á¡ááºáá±á¬ daemon áá áºáá¯ááŒá áºáááºá áá°ááŒááºáá±á¬ á¡ááá¯ááºážáá»á¬ážáá²á០(áá°ááŒááºáááº) ááᯠáá²áá±ážááŒá®áž 50%/50% ááá±áá»á¬ááŸá¯ááᯠááŒá±ááŸááºážáá±ážáááºá á¡áááŒá±á¬ááºááá·áº áááááá¬ááᯠá áááºááá·áº áá¬áá¬ááᯠáá»áœááºá¯áẠá¡áááºáá±ážáá²á·áááºá ááá»ááá±á¶ (repmgr á០áá±á«áá¬áá¡áá¯á¶ážá¡ááŸá¯ááºážááᯠáá»áœááºáá±á¬áº ááá±á¬áá»áááº)á
á¡áááºážá¡ááŒá áºáá»á¬ážááᯠáá áºáá±áá¬ááŸáá áºáá±áá¬ááá¯á· ááœáŸá±á·ááŒá±á¬ááºážááá¯ááºáááºá á¥ááá¬á áá»áá¯á·ááœááºážáá±áá±á¬áá¬áá¬áá»á¬ážá០áá»ááºážáá¬áá±á¬áá¬áá¬áá»á¬ážáá®ááá¯á· ááá¯á·ááá¯áẠá áá áºá á®áá¶ááá·áºááœá²áá°áá»á¬ážá á¡áááá·áºááŒáá·áº ááœáŸá±á·ááá¯ááºáááºá ááá¯á·ááŸáᬠáá±á¬ááºáááºáá»á¬ážááẠáááºážááá¯á·ááá¯á¡ááºáá±á¬ á¡áááºážá¡ááŒá áºáá»á¬áž áááºááŸááá¬áá±áᬠ(áá»áááºáááºááẠáááºááá·áºáá±áá¬ááœááºááŸáááááºáž)á floating IP (float IP) á€á¡áá¬áá»á¬ážááẠPacemaker ááẠnode áá»á¬ážáááá¯ááºááœááºááœá±á·áá»á¬ážááá¯ááºáá±á¬ IP áá»á¬ážááŒá áºááẠ(á¡áá¬á¡á¬ážáá¯á¶ážááẠflat network áá±á«áºááœááºááŸááááº)á áááºážááá¯á·áá áºáá¯á á®ááẠá¡áááºážá¡ááŒá Ạ(áááºáá±á¬ááºááŸá¯) ááᯠááá¯ááºá á¬ážááŒá¯ááŒá®áž á€áááºáá±á¬ááºááŸá¯ (áá»áœááºá¯ááºááá¯á·áááá á¹á ááœááºá áá±áá¬áá±á·á áºáá áºáá¯) ááá¯á·áááºáá±á¬ááºááá¯ááºááẠáááºáá»áááºáááºáááºááá¯á¡ááºááá·áºáá±áá¬ááœáẠáááºááŸááááºááŒá áºáááºá
Tuchanka1 (áá»á áºáá áºáá±á¬áááºáááºáž)
ááœá²á·á ááºážáá¯á¶ááŸá¬
á¡áá¯ááºáá®áá¬ááŸá¬ áá»áœááºá¯ááºááá¯á·ááœáẠáááºáááºážáá«ážáá±á¬ áá±áá¬áá±á·á áºáááºáá»á¬ážá áœá¬ááŸáááŒá®ážá áááºážááẠáá®ážááá·áºááœá±áá±ážáá»á±ááŸá¯áá»á¬ážá¡ááœáẠhot standby áá¯ááºááœáẠáá®ážááŒá¬áž slave áá¬áá¬ááᯠááááºážááááºážáá¬ážááẠá¡áá»áá¯ážáááŸááá±á¬ááŒá±á¬áá·áº (ááá¯áá²á·ááá¯á·áá±á¬ á¡áááºážá¡ááŒá áºáá»á¬ážááᯠááŒá¯ááºážáá®ážáá±á áᬠáááá¯áá«)á
áá±áá¬á ááºáá¬áá áºáá¯á á®ááœáẠáá¬áá¬áá áºáá¯ááŸááááºá áá¬áá¬áá áºáá¯á á®ááœáẠPostgreSQL ááŒá áºáááºááŸá áºáá¯ááŸáááẠ(PostgreSQL áá±á«áá¬áááœáẠáááºážááá¯á·ááᯠá¡á á¯á¡áá±ážáá»á¬ážáᯠáá±á«áºáá±á¬áºáááºáž ááŸá¯ááºááœá±ážááŸá¯áá»á¬ážááᯠááŸá±á¬ááºááŸá¬ážááẠáááºážááá¯á·ááᯠá¥ááá¬áá»á¬áž (á¡ááŒá¬ážáá±áá¬áá±á·á áºáá»á¬ážááŸáá·áº ááŸááºááœá²á) áá±á«áºááá¯áááºááŒá áºááŒá®ážá Pacemaker á¡á á¯á¡áá±ážáá»á¬ážááá¯áᬠáá±á«áºááá¯áá«áááº)á á¥ááá¬áá áºáá¯ááẠáá¬á áá¬áá¯ááºááœáẠáá¯ááºáá±á¬ááºáá±ááŒá®áž áááºážááẠáááºáá±á¬ááºááŸá¯áá»á¬ážááá¯áᬠáá±ážááẠ(float IP ááᬠáááºážááᯠáŠážáááºáááº)á áá¯áááá¥ááá¬ááẠáá¯ááááá±áá¬á ááºáá¬á¡ááœáẠáá»áœááºá¡ááŒá áºá¡áá¯ááºáá¯ááºááŒá®áž áááºážááá¬á áá¬áá»ááºááœááºááŸáᬠáááºáá±á¬ááºááŸá¯áá»á¬ážáá±ážáááºááŒá áºáááºá á¡áá»áááºá¡áá»á¬ážá á¯ááœáẠ(áá¬á áá¬) á០áááºáá±á¬ááºááŸá¯áá»á¬áž (áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºáá±ážáááº) ááŒá áºáá±á¬ááŒá±á¬áá·áºá áá¬áá¬áááºážááŒá áºá¡á¬ážáá¯á¶ážááᯠáá¬á áá¬á¡ááœáẠá¡áá±á¬ááºážáá¯á¶ážááŒá áºá¡á±á¬áẠááŒá¯áá¯ááºáá¬ážááẠ(áááºááá¯áá®ááᯠshared_buffers áááºááŸáºá¡ááœáẠááœá²áá±áá±ážááẠá áááºááŒáá·áº)á ááá¯á·áá±á¬áº áá¯áááá¥ááá¬ááᯠáááŸáá á±áááºá áá±áá¬á ááºáá¬áá áºáá¯ááá»áá¯á·ááœááºážááŸá¯ááŒá áºáá±á¬á¡áá«ááœáẠ(ááá¯ááºá áá Ạcache ááŸáááá·áº á¡áá±á¬ááºážáá¯á¶ážáá¯ááºáá±á¬ááºááŸá¯áá»á¬ážá¡ááœááº) áá¯á¶áá±á¬ááºáá±á¬á¡áááºážá¡ááŒá áºáá»á¬ážááŸááááºá slave ááẠá¡á á¯á¡ááœá²á·á áá¯á¶ááŸááºáááºáááºáá±áá»áááºá¡ááœááºáž áááºáá±á¬ááºááŸá¯áá»á¬áž ááá±ážáá±á¬ááºáá« (ááá¯á·) á ááºáá áºáá¯áááºážááŸá master ááŸáá·áº á¡áááºážá¡ááŒá áºáá»á¬ážá¡ááœáẠá á áºáááŒá áºá á±áááºá
node ááŸá áºáá¯ááœááºá á¡ááŸá¬ážá¡ááœááºážááᯠáááºážáá¶ááá¯ááºááŸá¯ááẠáá áºááŒáá¯ááºáááºáááºáž áá°ážáá°ááŒááºážááŒáá·áºáᬠáá°áá®áá±á¬ááŒá±á¬áá·áºá slave á áá»ááŸá¯á¶ážááŸá¯ááẠmaster á áááºááá·áºááŸá¯ááᯠáŠážáááºááœá¬ážá á±áááºááŒá áºáááºá
áááºáá±ááŒááẠáá»ááºááœááºááŒááºážá
áááºáá± áá»ááºááœááºááŒááºáž (á¡áááŒá±á¬áẠáááááá¬) Tuchanka1 á¡á á¯á¡áá±ážá¡ááœááºáᬠá ááºážá á¬ážáááºááŒá áºááŒá®áž á¡ááŒá¬ážá¡áá¬áá»á¬ážá¡á¬ážáá¯á¶ážááŸáá·áº áááºážááẠáá°áá®áá±á¬áá¬ááºáááºážááŒá áºáá«áááºá áááºáá±áá¡á±á¬ááºááŒááºáá«á á¡á á¯á¡ááœá²á·ááœá²á·á ááºážáá¯á¶ááœáẠáááºááá·áºá¡áá¬á០ááŒá±á¬ááºážáá²áááºááá¯ááºáá«á á¡áá¬á¡á¬ážáá¯á¶ážááẠááááºá¡ááá¯ááºážááẠáááºáááºáá¯ááºáá±á¬ááºááœá¬ážáá«áááºá ááá¯á·áá±á¬áº á¡áááŒá±á¬ááºááŒááºáž 2 áá¯ááœáẠ3 áá¯ááŒá áºáá¬áááºááŒá áºááŒá®ážá ááá¯á·ááŒá±á¬áá·áº áá±á¬ááºáááºááœá²áá»ááŸá¯á¶ážááŸá¯áá»á¬ážááẠá¡á á¯á¡ááœá²á·á¡ááœáẠá¡áááºá¡áá¹ááá¬ááºááŒá áºá á±áá«áááºá á¡áá±ážáááŒá®áž ááŒááºááŠážáááºá
Tuchanka1 ááŒááºážáááºááŒááºážá
Tuchanka1 á¡ááœáẠáá±áá¬á ááºáá¬áá áºáá¯á០áá»ááºááœááºááŒááºážá áá«ááá¯ááẠááá»ááá±á¶ áá¯ááááá±áá¬á ááºáá¬ááŸá áááºážááá²ááᯠáá¯ááááá±áá¬ááá¯á· áá±á¬ááºážáá»áááºá ááá¯ááœááºá ááááºáá»áœááºááẠáá¬á áá¬á¡ááŒá áºááá¯á· ááŒá±á¬ááºážáá²ááœá¬ážáááºá ááááºá¡áá±ááŸáá·áºá áá¬á áá¬ááŸá áºáŠážá áá¯á¶ážááẠáá°áá®áá±á¬áá¬áá¬ááœááºá¡áá¯ááºáá¯ááºááŒááŒá®áž áááºážááá¯á·á float IP ááŸá áºáá¯á áá¯á¶ážááẠáááºážááá¯á·á¡á¬áž ááœáŸááºááŒááŒáááºá
Tuchanka2 (ááá¹ááááº)
ááœá²á·á ááºážáá¯á¶ááŸá¬
node ááŸá áºáá¯á ááá¹ááááºáá¯á¶á á¶á ááááºááẠááŠážáááºážááœáẠá¡áá¯ááºáá¯ááºáááºá áá¯áááááœáẠáá»áœááºááŒá áºáááºá ááŸá áºáá¯áá¯á¶ážááẠáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááá¯ááºááẠ(áá»áœááºááẠáááºáááºáá¬ááŒá áºáááº) ááá¯á·ááŒá±á¬áá·áº ááŸá áºáá¯áá¯á¶ážááᯠfloat IP ááŒáá·áº ááœáŸááºááŒáááº- krogan2 ááẠáá¬á áá¬ááŒá áºááŒá®áž krogan2s1 ááẠáá»áœááºááŒá áºáááºá ááááºááŸáá·áº áá»áœááºááŸá áºáŠážá áá¯á¶ážááẠá¡ááŒá áºááᯠáá¶ááá¯ááºáááºááŸáááŒáááá·áºáááºá
node ááŸá áºáá¯áááŒá áºáááºááœááºá ááŒááºáá±á¬ááºááŸá¯áááºáá¶ááá¯ááºááŸá¯ááẠááŒáá¯ááºáá°áá°ážáá°ááŒááºážáá»áá¯ážááŒáá·áºáᬠááŒá áºááá¯ááºáááºá á¡ááŒá±á¬ááºážááŸá¬á á¡ááŒá±á¬ááºážááŸá¬ synchronous áá°ážáá°ááŒááºážááŒáá·áºá slave ááá»áá¯á¶ážááŸá¯ááẠmaster ááááºááá·áºááœá¬ážá á±áááºá
Tuchanka2 ááŒááºážáááºááŒááºážá
áá±áá¬á ááºáá¬áá áºáá¯áá»ááºááœááºáá»áŸáẠááá»ááá±á¶ áá¯ááááá áºáá¯ááá¯áá²áá±ážáááºá áá áºáá¯áááºážáá±á¬ á¡áá¯ááºáá¯ááºáá±á¬ áá±áá¬á ááºáá¬ááœááºá áá¬á áá¬ááᯠááŒáŸáá·áºáááºáááºááŒá áºááŒá®ážá float IP ááŸá áºáá¯á áá¯á¶ážááẠáááºážá¡á¬áž ááœáŸááºááŒáá«áááº- áá¬á áá¬ááŸáá·áº áá»áœááºá áá¯ááºáá«áááºá á¥ááá¬ááᯠmaster ááŸáá·áº slave float IP ááá¯á·á០áá»áááºáááºááŸá¯áá»á¬ážááŸáá·áº áá±á¬ááºážááá¯ááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá áºááŒáá¯ááºáááºáááºáá¶áááºá¡ááœáẠáá¯á¶áá±á¬ááºáá±á¬á¡áááºážá¡ááŒá áºáá»á¬áž (áá»áááºáááºááŸá¯ááá·áºáááºáá»ááºáá»á¬ážá á áááºááŒáá·áº) áá«áááºááá·áºáá¯á¶á á¶ááŒáá·áº ááœá²á·á ááºážááá«áááºá ááá¯ááá¯áááºááŸá¬á áá¯á¶ááŸááºáááºáááºáá±áá»áááºááœáẠáááºážááẠáá¯á¶áá±á¬ááºáá±á¬ ááá·áºáááºáá»ááºááŸáááá·áºáááºá
Tuchanka4 (áá»áœááºáá»á¬ážá áœá¬)
ááœá²á·á ááºážáá¯á¶ááŸá¬
á¡á áœááºážáá±á¬ááºáá±ááŒá®á Read-only Requests á¡áá»á¬ážá¡ááŒá¬ážááᯠáááºáá¶áááŸáááá·áº áá±áá¬áá±á·á áºáá»á¬áž ááŸááá«áááºá Tuchanka4 ááẠá€áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠááá¯ááºááœááºááẠáá»áœáẠáá¯á¶ážáŠáž ááá¯á·ááá¯áẠááá¯á·áááºááá¯á ááŸááá±á¬ááºážááŸáááá¯ááºáá±á¬áºáááºáž ááá»á¬ážááœááºážáá±ážáá«á áá»á±ážáá»áœááºá¡áá±á¡ááœáẠá¡ááœááºáá»á¬ážáááŒáá·áºá áááºážááẠá¡áááºá¡á±á¬ááºáá¯á¶áá°ááŒááºážá áá áºááᯠáá®ááœááºááẠááá¯á¡ááºáááºááŒá áºáááºá á¡áááá·áºáá¯á¶ážá¡ááŒá±á¡áá±ááœáẠ(áá¯á¶ááœááº) áá±áá¬á ááºáá¬ááŸá áºáá¯áá áºáá¯á á®ááœáẠPostgreSQL á á¶ááá°áá¬áá áºáá¯á á®áá«ááŸááá±á¬ áá¬áá¬ááŸá áºáá¯ááŸááááºá
á€á¡á á®á¡á á¥áºááá±á¬ááºáááºá¡ááºá¹áá«áááºáá áºáá¯ááŸá¬ synchronous replication áá áºáá¯ááᯠá á¯á ááºážááá¯ááºáá±ááŒá®ááŒá áºáááºá áááºážááᯠáá¬á áá¬áá²á·ááá¯á· áá°áá®áá±á¬áá±áá¬á ááºáá¬ááŸá áá¯á¶á á¶áá°áá áºáá¯ááẠááŒá áºááá¯ááºáá»áŸáẠá¡ááŒá¬ážáá±áá¬á ááºáá¬ááá¯á· áá¯á¶áá°áá°ážááẠá á®á ááºáá¬ážáááºá ááááºááŸáá·áº áá»áœááºáá áºáŠážá á®ááᯠfloat IP ááŒáá·áº ááœáŸááºááŒáááºá áá¶áá±á¬ááºážáá±á¬ááºáá áœá¬á áá»áœááºáá»á¬ážá¡ááŒá¬áž áá±á¬ááºážááá¯ááŸá¯áá»á¬ážááᯠáá áºáááºážáááºážááŸáá·áº áááºáá»ááºáá®ááẠááá¯á¡ááºáá«áááá·áºáááºá sql ááá±á¬ááºá á®á¥ááá¬á áá±á¬ááºáááºáááºááŸá ááá°áá®áá±á¬ áá±á¬ááºáááºáá»á¬ážááẠááá°áá®áá±á¬á¡áá»áá¯ážá¡á á¬ážáá»á¬áž ááá¯á¡ááºááá¯ááºáááºá sql ááá±á¬ááºá á®ááŸáá·áº client developer áá»á¬ážáᬠááá¯á¡ááºáááºáá»á¬ážááᯠáááá«áááºá á€áá¯ááºáá±á¬ááºáá»ááºááᯠááŒááºá daemon ááŸááŒá áºá á± client library (connection pool) á áááºááá¯á·ááŒáá·áº á¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáá«áááºá áá«ááœá±á¡á¬ážáá¯á¶ážáᬠfailover database cluster (failover SQL ááá±á¬ááºá á® áá±á¬ááºáááºá¡ááŸá¬ážááᯠáááºážáá¶ááá¯ááºááŸá¯ááŸáá·áºá¡áá° ááœááºáááºá áœá¬ á¡áá±á¬ááºá¡áááºáá±á¬áºááá¯ááºáááº)á
Tuchanka4 ááŒááºážáááºááŒááºážá
áá±áá¬á ááºáá¬áá áºáᯠ(ááá¯ááá¯áááºááŸá¬á áá¬áá¬ááŸá áºáá¯) áá»ááºááœááºáá«áá áá¯áááá¡ááœáẠáááºáá±áá¶áá²áá»á¬ážá ááááºá¡áá±ááŒáá·áºá áá¯ááááá±áá¬á ááºáá¬ááœáẠáá¬áá¬ááŸá áºáá¯áááºáááºáá±áááº- áá áºáá¯ááẠáá¬á áá¬áá áºáá¯áá¯ááºáá±á¬ááºáá±ááŒá®ážá áá¬á áá¬ááẠáááºážááᯠfloat IP ááœáŸááºááŒáá±ááẠ(áááºááŸá¯áá±ážáá±á¬ááºážááá¯ááŸá¯áá»á¬ážááá¯áááºáá¶áááŸááááºá¡ááœááº)á áá¯ááááá¬áá¬ááœáẠsynchronous replication ááŒáá·áºáááºáááºáá±áá±á¬ slave ááŸáááŒá®áž slave float IPs ááŸáá áºáá¯ááẠáááºážááá¯ááœáŸááºááŒááẠ(áááºáááº-áá®ážááá·áºáá±á¬ááºážááá¯ááŸá¯áá»á¬ážá¡ááœááº)á
ááááá¯á¶ážáááááŒá¯áááá·áºá¡áá»ááºááŸá¬ slave float IP áá»á¬ážá¡á¬ážáá¯á¶ážááẠá¡áá¯ááºááá¬ážáá»á¬ážááá¯ááºáá±á¬áºáááºáž áá áºáá¯áá¬ááŒá áºáááºá á¡á²áá«ááᯠááŸááºááŸááºáááºááẠáá¯ááºáá±á¬ááºááá¯á· ááá¯á¡ááºáá«áááá·áºáááºá sql ááá±á¬ááºá á® áá±á¬ááºážááá¯áá»ááºá¡á¬ážáá¯á¶ážááᯠáá áºáá¯áááºážáá±á¬áá»ááºááŸá float IP ááá¯á· ááŒááºááœáŸááºážáááºá á¡áááºá sql ááá±á¬ááºá á® ááá¯ááºáá«á ááá¯á·áá±á¬áẠáá»áááºáááºááŸá¯ URL ááœáẠáá±á¬áºáá¬áá»á¬ážááŒáá·áº ááá¯ááºážááŒá¬ážáá¬ážáá±á¬ float IP slaves á¡á¬ážáá¯á¶ážááᯠá á¬áááºážááŒá¯á á¯ááá¯ááºáá«áááºá á€ááá á¹á ááœááºá¡áá° libpq áá»áááºáááºááŸá¯ááẠááááá¯á¶ážá¡áá¯ááºáá¯ááºáá±á¬ IP ááá¯á·ááŒá áºáááºááŒá áºááŒá®áž áááºážááᯠá¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŸá¯á áá áºááœáẠáá¯ááºáá±á¬ááºáááºá á¥ááá¬á JDBCá á¡ááŒá¬ážá á¬ááŒáá·áºááá¯ááºáá»á¬ážááœáẠá€á¡áá¬ááẠá¡áá¯ááºáááŒá áºáá² ááá¯á¡ááºáá«áááºá sql ááá±á¬ááºá á®. áá»á±ážáá»áœááºáá»á¬ážá¡ááœáẠfloat IP áá»á¬ážááᯠáá¬áá¬áá áºáá¯áá±á«áºááœáẠáá áºááŒáá¯ááºáááºáááºážáááºááŒááºážáááŒá¯ááẠáá¬ážááŒá áºáá¬ážáá±á¬ááŒá±á¬áá·áº áááºážááá¯á·áá²ááŸáá»á¬ážá áœá¬ááᯠáá¯ááºáá±á¬ááºáá±áá«á slave server áá»á¬ážááŒá¬ážááœáẠáááºážááá¯á·ááᯠá¡áá®á¡áá»áŸááœá²áá±áá±ážááá¯ááºááẠáá¯ááºáá±á¬ááºáááŒááºážááŒá áºáá«áááºá
áá¯áááá¡áá»ááº- áá±áá¬á ááºáᬠáá»áá¯á·ááœááºážááŸá¯ááŒá áºá ááºááœááºáááºá synchronous áá°ážáá°ááŸá¯ááᯠááááºážááááºážáá¬ážáááºááŒá áºáááºá áá¯ááá áá»áá¯á·ááœááºážáá»ááºáá áºáᯠááŒá áºáá±á«áºáá«áá ááá¯ááá¯áááºááŸá¬á áá»ááºáá±áá¬á ááºáá¬ááŸá áá¬áá¬ááŸá áºáá¯á០áá áºáá¯ááẠáá»ááºááœááºáá«ááááºá á¡á á¯á¡áá±ážááẠáááºáá±á¬ááºááŸá¯áá»á¬áž áá±ážáá±á¬ááºááŒááºážááᯠáááºááá·áºááœá¬ážáááºááŒá áºááŒá®ážá áááºážááẠáááááááºááᯠá¡áááºááŒá¯áá±ážáá¬ážááá·áº áááááááºááŒá¯áá¬ážáá±á¬ ááœáŸá²ááŒá±á¬ááºážááŸá¯áá»á¬ážá¡á¬ážáá¯á¶ážá á¡áá»ááºá¡áááºáá»á¬ážááᯠáááºáááºááááºážááááºážáá¬ážáááºááŒá áºáá«áááºá (áá¯ááááá¡á±á¬ááºááŒááºáá«á áá¯á¶ážááŸá¯á¶ážááŸá¯á¡áá»ááºá¡áááºáá»á¬áž ááŸááááºááá¯ááºáá«á)
Tuchanka3 (áá±áá¬á ááºáᬠá áá¯)
ááœá²á·á ááºážáá¯á¶ááŸá¬
áááºážááẠá¡ááŒáá·áºá¡ááá¯ááºáá±á¬ááºááá¯ááºáá±á¬ áá±áá¬á ááºáᬠáá¯á¶ážáá¯ááŸáááá·áº á¡ááŒá±á¡áá±á¡ááœáẠá¡á á¯á¡áá±ážáá áºáá¯ááŒá áºááŒá®áž áá áºáá¯á á®ááœáẠá¡ááŒáá·áºá¡ááá¯ááºáá±á¬ááºááá¯ááºáá±á¬ áá±áá¬áá±á·á áºáá¬áá¬áá áºáá¯ááŸááááºá áá«ááá¯ááẠá¡áááŒá±á¬áẠáááááᬠáááá¯á¡ááºáá«á áá±áá¬á ááºáá¬áá áºáá¯ááẠááááºáá áºáŠážá០áááºáááºážááŒá áºááŒá®áž áá»ááºááŸá áºáá¯ááŸá¬ áá»áœááºáá»á¬ážááŒáá·áº áááºáááºážááŒá áºáááºá áá°ážáá°áá¯á¶ááẠáá áºááŒáá¯ááºáááºážááŒá áºáááºá ááá¯ááá¯áááºááŸá¬ ANY (slave1á slave2) áá¯ááá¯ááºááá·áºááá¯ááºáááºá ááá¯ááá¯áááºááŸá¬á áááááááºááá¯áááºáá¶ááŒá®ážáá±á¬áá»áœááºááŸááááá¯á¶ážáá¯á¶á·ááŒááºáá±á¬á¡áá«ááœáẠclient ááŸá¡áááºááŒá¯áá»ááºááá¯áááºáá¶áááŸááááºááŒá áºáááºá á¡áááºážá¡ááŒá áºáá»á¬ážááᯠmaster á¡ááœáẠfloat IP áá áºáá¯ááŸáá·áº slaves á¡ááœáẠááŸá áºáá¯ááᯠááœáŸááºááŒáá«áááºá Tuchanka4 ááŸáá·áºááá°áá²á float IP áá¯á¶ážáá¯á áá¯á¶ážááẠá¡ááŸá¬ážáá¶ááá¯ááºáááºááŸááááºá áááºáááº-áá®ážááá·áº SQL áá±ážááœááºážáá»á¬ážááᯠáááºáá»ááºáá®á á±ááẠáááºáá¯á¶ážááá¯ááºáááºá sql ááá±á¬ááºá á® (áá®ážááŒá¬ážá¡ááŸá¬ážá¡ááœááºážáá¶ááá¯ááºáááºááŒáá·áº) ááá¯á·ááá¯áẠslave float IP áá áºáá¯ááᯠclient áá áºáááºááá¯á· áá±ážááŒá®áž áá»ááºáá áºáááºááᯠáá¯ááááá áºáá¯ááá¯á· áááºááŸááºáá±ážáá«á
Tuchanka3 ááŒááºážáááºááŒááºážá
áá±áá¬á ááºáá¬áá áºáᯠáá»ááºááœááºáá«á ááŸá áºáá¯áá»ááºáá±áá«áááºá áá áºáá¯áááºážááœááºá master á០master ááŸáá·áº float IP ááᯠââááŒáŸáá·áºáááºááŒá®áž áá¯áááááœáẠ- slave ááŸáá·áº slave float IP áá»á¬áž (á¥ááá¬ááœáẠslave float IP ááŸá áºáá¯áá¯á¶ážá០áá»áááºáááºááŸá¯á¡á¬ážáá¯á¶ážááᯠáááºáá¶áááºá¡ááœáẠá¡áááºážá¡ááŒá áºááŸá áºáááŸáááááº)á ááááºáá»á¬ážááŸáá·áº áá»áœááºáá»á¬ážááŒá¬áž áááºáá°áááºáá»áŸ áááºáá°áá»áááºá ááá¯á·á¡ááŒááºá áá±áá¬á ááºáá¬ááŸá áºáᯠ(áááºážááá¯á·ááᯠáá áºááŒáá¯ááºááẠááá»ááºáá®ážáá«á) áá»ááºáá®ážááœá¬ážááá·áºá¡áá«ááœáẠá¡á á¯á¡ááœá²á·ááẠáááááŒá¯ááŒá®áž á¡áááºááŒá¯áá¬ážáá±á¬ ááœá±áá±ážááœá±áá°áá»á¬ážááá¯ááºáᬠá¡áá»ááºá¡áááºáá»á¬ážááᯠááááºážáááºážáá«áááºá
ááá¯ááºááœá²á·á ááºážáá¯á¶ááŸáá·áº ááŒáá·áºáá»ááºááŒááºážááá¯ááºáᬠá¡áá±ážá áááºáá±á¬áºááŒáá»ááºááá«áááºááẠáá¯á¶ážááŒááºáá²á·áááºá áá á¬ážáá»ááºáá°ááá¯ááºáž README ááœáẠáááºááŸá¯ááá¯ááºáá«áááºá áá»áœááºá¯ááºááẠá¡ááá¯á¡áá»á±á¬áẠá ááºážáááºááŒááºážá áá±á¬áºááŒáá»ááºáá»áŸáᬠááŒá áºáá«áááºá
á¡ááá¯á¡áá»á±á¬ááºá ááºážáááºááŸá¯á áá áº
á¡áá»áá¯ážáá»áá¯ážáá±á¬ áá»áá¯á·ááœááºážáá»ááºáá»á¬ážááᯠá¡áá¯áá°ááŒááºážááŒáá·áº á¡á
á¯á¡ááœá²á·áá»á¬ážá á¡ááŸá¬ážá¡ááœááºážáá¶ááá¯ááºáááºááᯠá
ááºážáááºáááºá¡ááœáẠá¡ááá¯á¡áá»á±á¬ááºá
ááºážáááºááŸá¯á
áá
áºááᯠáááºáá®ážáá¬ážáááºá áá¬ááºááœáŸááºážááŒáá·áº á
áááºáá²á·áááºá test/failure
. Script ááẠáááºá
ááºážáááºááá¯áá±á¬ á¡á
á¯á¡á
ááºážáá»á¬ážá áá¶áá«ááºáá»á¬ážááᯠááá·áºáááºáá»ááºáá»á¬ážá¡ááŒá
Ạáá°ááá¯ááºáááºá á¥ááá¬á¡á¬ážááŒáá·áº ဠcommand ááá¯:
test/failure 2 3
áá¯áááááŸáá·áº ááááá¡á
á¯ááá¯á·ááá¯áᬠá
ááºážáááºáááºááŒá
áºáááºá ááá·áºáááºáá»ááºáá»á¬ážááᯠááááºááŸááºáá«áá á¡á
á¯á¡áá±ážá¡á¬ážáá¯á¶ážááᯠá
ááºážáááºáááºááŒá
áºáááºá á¡á
á¯á¡áá±ážá¡á¬ážáá¯á¶ážááᯠá¡ááŒáá¯ááºá
ááºážáááºááŒá®áž ááááºááᯠtmux á¡ááá·áºááœáẠááŒááá¬ážáááºá Tmux ááẠáá®ážááŒá¬áž tmux áá¬áá¬ááᯠá¡áá¯á¶ážááŒá¯áá±á¬ááŒá±á¬áá·áº script ááᯠáá°áááºáž tmux á¡á±á¬ááºááœáẠáá¯ááºáá±á¬ááºááá¯ááºááŒá®áž nested tmux ááᯠááŒá
áºáá±á«áºá
á±áá«áááºá áááºážááá¯ážááŒá®ážáá
áºáá¯ááŸáá·áº áá±ážáááºáá±á¬áá±á¬áá·áºááŒáá·áº terminal ááá¯á¡áá¯á¶ážááŒá¯ááẠá¡ááŒá¶ááŒá¯ááá¯áá«áááºá á
ááºážáááºááŒááºážáá
áááºáá®á áá¬ááºááœáŸááºážááŒá®ážáá¯á¶ážáá»áááºááœáẠáá»áŸááºáá
áºááŒááºá
ááºáá»á¬ážá¡á¬ážáá¯á¶ážááᯠáá»áŸááºáá
áºááŒááºáá¯á¶á¡ááŒá
ẠááŒááºááŒá±á¬ááºážáá¬ážáááºá setup
.
á ááºážáááºáá±ááá·áº á¡á á¯á¡áá±ážá¡áá±á¡ááœááºá¡á terminal ááᯠáá±á¬áºáá¶áá»á¬ážá¡ááŒá Ạááá¯ááºážááŒá¬ážáá¬ážáááºá áá¯á¶ááŸááºá¡á¬ážááŒáá·áº (á ááááºááŸá±á¬á·ááœááº) áá±ážáá¯ááŸááááºá Tuchanka2 áááá°áá¬ááᯠá¡áá¯á¶ážááŒá¯á áá±á¬áºáá¶áá»á¬ážá á¡ááŒá±á¬ááºážá¡áá¬áá»á¬ážááᯠáá±á¬áºááŒáá«áááºá áááºáá¬ážááŒááºáá¬ááºáá¯á¶ááŸá á¡ááá·áºáá»á¬ážááᯠáá¶áá«ááºáááºáá¬ážáááº-
- á
ááºážáááºá
á¬áááºážááá¬ážáá»á¬ážááᯠá€áá±áá¬ááœáẠááŒááá¬ážáááºá áá±á¬áºáá¶áá»á¬áž-
- áá¡á±á¬ááºááŒááºááŒááºáž - á¡ááŸá¬ážááá¯á¡áá¯áá°ááá·áºá ááºážáááºááŸá¯ (áá¬ááºááœáŸááºážááœááºáá¯ááºáá±á¬ááºááŸá¯) áá¡áááºá
- áá¯á¶á·ááŒááºááŸá¯ â á¡á á¯á¡áá±ážááẠáááºážááá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠááŒááºáááºáááŸáááá·áºáá¬áá¡ááœááºáž á áá¹ááá·áºááá¯ááºážá¡ááœááºáž ááááºážáááºá¹áá»á¬ááá¯ááºáᬠáá»ááºážáá»áŸá¡áá»áááºá áááºážááᯠáá¬ááºááœáŸááºážáá¡á á០á¡á á¯á¡áá±ážá áááºážááá¯ááºáá±á¬ááºááá¯ááºá áœááºážááᯠááŒááºáááºááá°ááŒá®áž áááºáá±á¬ááºááŸá¯áá»á¬ážááᯠáááºáááºáá±ážááá¯ááºááá·áºá¡áá»áááºá¡áá á¡ááŸá¬ážáá áºáá¯ááᯠá¡áá¯áá°áᬠááá¯ááºážáá¬áááºá á¡áá»áááºááẠá¡ááœááºááá¯áá«áááºá á¥ááá¬á ááŒá±á¬ááºá áá¹ááá·áº (áááºážááẠáá»áœááºá¡áá»á¬ážá¡ááŒá¬áž (Tuchanka3 ááŸáá·áº Tuchanka4) ááŒáá·áº á¡á á¯á¡áá±ážááœáẠááŒá áºáá»ááºáá±áááº)á ááá¯ááá¯áááºááŸá¬ á¡ááŸá¬ážááẠáááŒáá¯ááºáááºáááºáž áá»áœááºáá±á«áºá ááŸááá±ááŒá®áž á áœááºážáá±á¬ááºáááºááᯠáááºááá·áºáááºážááŸáá·áºáá»áŸ áááááá¯ááºá á±áá²á·áá«á cluster state ááá¯ááºáá»á¬ážá
- ááœá±ááẠ- áááºááá¯ážááá»á¶á·ááŸá¶á·ááŸá¯ (áááá»ááŸá¯) ááá¯ááŒááááºá áá¯á¶á·ááŒááºááŸá¯ á á¶ááœá±áááºáááºážáááºážááᯠá¡áá¯á¶ážááŒá¯.
- áá±ááœáẠ- áá®á á áºáá±ážááŸá¯ááᯠáááºááŸá áºááŒáááºáá¯ááºáá²á·áá²á
- ááá¯áá±á¬ááºážáá±á¬ ááŸááºáááºážáá áºáá¯ááẠááá·áºá¡á¬áž áááºááŸááá¯ááºáá±á¬ááºáá±ááá·áº á¡á á¯á¡áá±ážááᯠá¡áá²ááŒááºááá¯ááºá á±áá«áááºá áááºáá«áááºáá« (á ááºážáááºááŸá¯) áá¶áá«ááºá á¡áá»áááºáá¶ááááºááŸáá·áº áá¯ááºáá±á¬ááºáá»ááºá¡áááºááá¯á·ááᯠááŒááá¬ážáááºá ááŒá¬ááŒáá·áºááœááºážááŒááºáž (> 5 áááá áº) ááẠááŒá¿áá¬áá áºáá¯ááᯠáá±á¬áºááŒáááºá
- ááŸáá¯á¶áž (ááŸáá¯á¶ážáá¬áž) - áááºááŸáá¡áá»áááºá á áœááºážáá±á¬ááºáááºáá¡ááŒááºá¡á¬áá¯á¶á¡áá²ááŒááºááŸá¯á¡ááœáẠááᬠáááºááŸáá¡áá»áááºááᯠfloat IP áá¬á áá¬áá¯á¶ážááŒá®áž áááºážáááá¬ážááœáẠá¡áááºáááŒááºáá±ážáá¬ážáááºá á¡á±á¬ááºááŒááºáá«áá ááááºááᯠá€á¡ááá·áºááœáẠááŒááá«áááºá
- ááá¯áẠ(pulse) - ááááºá áá¬ááºááœáŸááºážááŒáá·áº ááŸááºáááºážáááºáá¬ážááá·áº âáááºááŸáá¡áá»áááºâ ááŸáá¯á¶áž to master, ááá¯ááŸáááºáá«á áá»áœáẠáááºážá float IP ááŸáááá·áºá áá»áœááºá á áœááºážáá±á¬ááºáááºááᯠá¡ááŒááºá¡á¬áá¯á¶ááŸáá·áº áá¯á¶áá°áá°ážáá»ááá¯ááºá á±ááẠááá·áºá¡á¬áž ááœáá·áºááŒá¯áááºá Tuchanka1 ááœáẠfloat IP áá«áá±á¬áá»áœááºáá»á¬ážáááŸááá« (áááºáá±á¬ááºááŸá¯áá±ážáá±á¬áá»áœááºáá»á¬ážáááŸááá«)á ááá¯á·áá±á¬áºá¥ááá¬ááŸá áºáᯠ(DBs) ááŸááááºá ááá¯á·ááŒá±á¬áá·áºáááºážááá¯á€áá±áá¬ááœááºááŒááááºááá¯ááºáá«á ááá¯ááºááŸáá·áº ááŸáá¯á¶áž áá¯áááá¥ááá¬á
- utility ááᯠá¡áá¯á¶ážááŒá¯á á¡á
á¯ááá¯ááºáá»ááºážáá¬áá±ážááᯠá
á±á¬áá·áºááŒáá·áºááŒááºážá
pcs mon
. áááºáá±á¬ááºáá¯á¶á node áá»á¬ážáá áºáá»áŸá±á¬áẠá¡áááºážá¡ááŒá áºáá»á¬áž ááŒáá·áºááŒá°ážááŒááºážááŸáá·áº á¡ááŒá¬ážá¡áá¯á¶ážáááºáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááᯠááŒááááºá - á¡á á¯á¡áá±ážááŸá virtual machine áá áºáá¯á á®á០á áá áºá á±á¬áá·áºááŒáá·áºááŒááºážááᯠá€áá±áá¬ááœáẠááŒááá¬ážáááºá á¡á á¯á¡áá±ážááœáẠvirtual machines áááºáá»áŸááŸááááºá¡áá±á«áº áá°áááºá ááá¯ááá¯á·áá±á¬ á¡ááá·áºáá»á¬áž ááá¯áá»á¬ážááá¯ááºáááºá ááááºááŸá áºáᯠCPU Load (virtual machines ááœáẠáááá¯áááºáᬠááŸá áºáá¯áá«ááŸááááº)á virtual machine nameá System Load áá« (áá»ááºážáá»áŸá¡á¬ážááŒáá·áº 5á 10 ááŸáá·áº 15 áááá áºááẠááá¯áá±áá±á¬ááŒá±á¬áá·áº Load Average áᯠá¡áááºááœááºáááº)á áá±áá¬ááŸáá·áº ááŸááºáá¬ááºááœá²áá±ááŸá¯ááᯠá á®áá¶áá±á¬ááºááœááºááŒááºážá
- á ááºážáááºáá¯ááºáá±á¬ááºáá±ááá·áº áá¬ááºááœáŸááºážáááŒá±áá¬áá±á¬ááºá áá»áá¯á·ááœááºážáá»ááºáá áºáᯠ- áááºáááºááŸá¯áá¯ááºááááºááŒááºáá±á¬ááºááŒááºáž ááá¯á·ááá¯áẠá¡áá¯á¶ážáá²á·á á±á¬áá·áºááá¯ááºážááŒááºážáá¶ááᬠ- á€á¡ááŒá¯á¡áá°á¡ááœáẠá¡ááŒá±á¬ááºážáááºážááᯠá€áá±áá¬ááœáẠáááºááœá±á·ááá¯ááºáá«áááºá
á ááºážáááºááŒááºážááᯠá¡ááá·áºááŸá áºááá·áºááŒáá·áº áá±á¬ááºááœááºáááºá áŠážá áœá¬á script ááẠá ááºážáááºááŸá¯á¡áá»áá¯ážá¡á á¬ážá¡á¬ážáá¯á¶ážááᯠááŒááºáááºážááŒá®áž á€á ááºážáááºááŸá¯ááᯠá¡áá¯á¶ážááŒá¯ááẠvirtual machine ááᯠáá»áááºážááœá±ážáá»ááºáááºá ááá¯á·áá±á¬áẠá ááºážáááºááŸá¯á á¡áá¯á¶ážáááŸá á ááºáááºážááᯠáá¯ááºáá±á¬ááºááŒá®áž áá áºááŒáááºá á®ááœáẠvirtual machines ááŸáá·áº á¡ááŸá¬ážáá»á¬ážááᯠáá»áááºážááœá±ážáá»ááºáááºá á ááºážáááºááŒááºáž script (á¡á±á¬ááºááŒá±á¡ááá·áº) ááᯠáá¯ááºáááẠáááºá á²ááŒááºáž ááá¯á·ááá¯áẠáá áºá á¯á¶áá áºáá¯ááᯠá á±á¬áá·áºááŒááºážá á¡áá¯á¶ážáá²á· ááœááºážáááºáá áºáᯠ(áá¯ááºáá±á¬ááºáá»ááºáá áºáá¯á¡ááœáẠ5 áááá Ạáá¯ááºáá±á¬ááºáá»áááºá áááºážááᯠáá²ááœááºá ááœáẠááŒááºááœá±á·ááá¯ááºáááº) á€á¡á á¯á¡áá±ážááŸá á ááºážáááºááŸá¯á¡áá»áá¯á· áá¡á±á¬ááºááŒááºááŒá±á¬ááºáž ááœáŸááºááŒáá«áááºá
á ááºážáááºááŸá¯áá áºáá¯á á®ááœáẠá¡á±á¬ááºáá«áá¯ááºáá±á¬ááºáá»ááºáá»á¬áž áá«áááºáá«áááºá
- á¡ááŸá¬ážááᯠá¡áá¯áá°ááá·áº áá¯ááºáá±á¬ááºáá»ááºááᯠá áááºáá«á
- á¡ááá·áºááŒá áºááŒá®áá¬áž? â á¡á á¯á¡áá±ážááᯠááŒááºáááºááá°ááẠ(áááºáá±á¬ááºááŸá¯á¡á¬ážáá¯á¶ážááᯠáá¶á·ááá¯ážáá±ážááá·áºá¡áá«)á
- á¡á á¯ááá¯áẠááŒááºáááºááá°áá±áž á¡áá»áááºáá¯ááºáá¯á¶ážááŸá¯ááᯠááŒááẠ(áá¯á¶á·ááŒááºááŸá¯).
- fix - á¡á á¯á¡áá±ážááᯠ"ááŒá¯ááŒááºáá±áááº" ááá¯á·áá±á¬áẠáááºážááẠá¡ááŒáá·áºá¡ááááºáááºááŸá¯á¡ááŒá±á¡áá±ááá¯á· ááŒááºááœá¬ážááá·áºááŒá®áž áá±á¬ááºáá¬ááá·áº áá»áœááºááœááºážáá»ááºáá»á¬ážá¡ááœáẠá¡áááºááá·áºááŒá áºááá·áºáááºá
á€áááºááŸá¬ áááºážááá¯á·áá¯ááºáá±á¬ááºááá·áºá¡áá¬áá»á¬ážááᯠáá±á¬áºááŒáá»ááºáá«ááŸááá±á¬ á ááºážáááºááŸá¯á á¬áááºážáá áºáá¯ááŒá áºáááºá
- ForkBomb- áááºáááºážáá¯á¶ážááᯠá¡áá¯á¶ážááŒá¯á "ááŸááºáá¬ááºáááŸááá±á¬" áááºáá®ážáááºá
- OutOfSpaceáá¬á·ááºáááá¯ááºá ááŒáá·áºáá±áááºá áá«áá±ááá·áº á ááºážáááºááŸá¯áᬠáá¯á¶ááá¹áá¬ááºáá¬ááŸáááŒá®ážá á ááºážáááºáá±á ááºá¡ááœááºáž áááºáá®ážáá¬ážáá²á· á¡áá±ážááá«áá±á¬áááºáá²á·á Hard drive ááŒáá·áºááœá¬ážáá²á·á¡áá« PostgreSQL áᬠáá»á¬ážáá±á¬á¡á¬ážááŒáá·áº áá»ááºááœááºáá±á·áááŸááá«áá°ážá
- Postgres-Kill: PostgreSQL ááᯠcommand ááŒáá·áºáááºáááºá
killall -KILL postgres
. - Postgres-áááºáá«á: PostgreSQL á¡áááá·áºááᯠááœá²áá¬ážáááºá
killall -STOP postgres
. - ááœááºážááŒá¶áá¯ááºáž: á¡áááá·áºááŒáá·áº virtual machine ááᯠ"de-energizes"
VBoxManage controlvm "вОÑÑÑалка" poweroff
. - reset: á¡áááá·áºááŒáá·áº virtual machine ááᯠoverload áá¯ááºáááºá
VBoxManage controlvm "вОÑÑÑалка" reset
. - SBD-STOP: á¡áááá·áºááŒáá·áº SBD áááºááá¯ážááᯠáááºááá¯ááºážáááºá
killall -STOP sbd
. - á¡ááŒá®ážááááºááá¯ááºáááº: SSH ááŸáááá·áº virtual machine ááá¯á· á¡áááá·áºáá±ážáááºá
systemctl poweroff
á á áá ẠááẠáá±á¬ááºážááœááºá áœá¬ ááááºááœá¬ážááẠá - ááá·áºááºááŒá¯ááºáá«á: network isolation, command
VBoxManage controlvm "вОÑÑÑалка" setlinkstate1 off
.
á ᶠtmux command "kill-window" ááᯠá¡áá¯á¶ážááŒá¯á á ááºážáááºááŒááºáž ááŒá®ážááŒá±á¬ááºááŒááºáž Ctrl-b &ááá¯á·ááá¯áẠ"detach-client" á¡áááá·áº Ctrl-b d: á€á¡áá»ááºááœáẠá ááºážáááºááŸá¯ááŒá®ážáá¯á¶ážáááºá tmux ááááºáááºá virtual machines áá»á¬ážááᯠááááºáá¬ážáááºá
á ááºážáááºáá±á ááºá¡ááœááºáž ááŒá¿áá¬áá»á¬ážááᯠáá±á¬áºáá¯ááºáá²á·áááºá
-
áá®á¡áá»áááºááŸá¬ á á±á¬áá·áºááŒáá·áºááœá±áž áááºááá¯áž sbd á á±á¬áá·áºááŒáá·áºáá±áá±á¬ áááºááá¯ážááœááºáá»á¬ážááᯠáááºááá·áºááẠáá¯ááºáá±á¬ááºáá±á¬áºáááºáž áááºážááá¯á·ááᯠá¡á±ážáá²ááŒááºážáááŒá¯áá«á ááááºá¡áá±ááŒáá·áº á¡á±ážáá²ááŒááºážááá¯á· áŠážáááºáá±á¬ áá»áá¯á·ááœááºážáá»ááºáá»á¬ážáá¬ááŒá áºáááºá Corosync О pacemakeráá«áá±ááá·áº áááœá²áá¬ážáá°ážá sbd... á á áºáá±ážááẠCorosync ááŸáááŒá®ážáá¬áž
PR#83 (GitHub ááœáẠsbd) , áá»ááºááá¯áááºáá¶áá²á·áááºá áá¬á áá¬. áá°ááá¯á·á (PR#83 ááœááº) Pacemaker á¡ááœáẠá¡áá¬ážáá°áá áºáá¯áá¯ááŸááááºáᯠááááá±ážáá²á·áááºá áá»áœááºá¯ááºáá»áŸá±á¬áºááá·áºáá«áááºá RedHat á áá¯ááºáááºá ááá¯á·áá±á¬áº ááá¯áá²á·ááá¯á·áá±á¬ âáá»áœááºááœááºážáá»ááºáá»á¬ážâ ááẠááŸááºážáááá¯ááºááŒá®áž á¥ááá¬á¡á¬ážááŒáá·áºá á¡áá¯á¡áá±á¬ááºááŒáá·áº á¡ááœááºááá° á¡áá¯áá°ááá¯ááºáááºákillall -STOP corosync
áá«áá±ááá·áº áááºááœá±á·ááááŸá¬ áááºáá±á¬á·á០ááá¯á¶ááŒá áºáá°ážá -
У pacemaker áá¬ážááŸááºážá¡ááœáẠCentOS 7 áááŸááºáááẠáááºááŸááºáááºá sync_timeout Ñ á¡áááŒá±á¬áẠáááááá¬, ááááºá¡áá±ááŒáá·áº
á¡áááºá node áá áºáá¯ááŸáá¡á±á¬ááºááŒááºáá«áá ááŒá áºááá¯ááºááŒá±á¡áá»áá¯á·ááŸáá·áºá¡áá° áá¯ááá node áááºáááºáž ááŒááºáááºá áááºáááºá ááááºá ááœáŸá±á·ááá¯ááºážáááºá ááŒá®ážááœá¬ážááŸá¯ááŒáá·áº áá¯ááááºá sync_timeout Ñ á¡áááŒá±á¬áẠáááááᬠááŒáá·áºáá»ááºá ááºá¡ááœááºáž (áá¬ááºááœáŸááºážááœááºsetup/setup1
) á€ááŒááºáááºáá»ááºááᯠdeveloper áá»á¬ážá áááºááá¶áá«á pacemakeráááºážá¡á á¬ážá á€á¡áá»áááºááœááºááŸá¯ááᯠá¡ááá¯á¡áá»á±á¬ááºááœááºáá»ááºááá·áº (áááºááŸááºááá¬ážáá±á¬ á¡áá¬áááºá¡áá»áá¯á·ááœááº) á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶á¡á¬áž ááŒááºáááºáá®ááá¯ááºážáá±ážááœá²áááºáᯠáááááŒá¯áá²á·áááºá -
á¡áááºá database configuration á áááºááŸááºáá«áááºá
LC_MESSAGES
(á á¬áá¬ážáááºáá±á·ááºá»áá»á¬áž) áá°áá®áá¯ááºááᯠáá¯á¶ážááá¯ááºáááºá á¥ááá¬áru_RU.UTF-8
ááá¯á·áá±á¬áẠstartup ááœáẠáá±ááŒááºáá±á¬áº áá±ááá¹áá UTF-8 ááá¯ááºááá·áº áááºáááºážáá»ááºááœááºá á¡áá»ááºážááŸá®ážáá±á¬ áááºáááºážáá»ááºááœáẠááŒá±á¬áá« (á€áá±áá¬ááœáẠá¡áá»á áºáá¬ááºáááºáž+pgsqlms(paf) ááŒá±ážáááºá áá±ááŒááºáá±á¬áº), á¡ááá¯áá«ááŸááºáááºážááœáẠUTF-8 á á¬áá¯á¶ážáá»á¬ážá¡á á¬áž áá±ážááœááºážá¡ááŸááºá¡áá¬ážáá»á¬ážáá«ááŸááááºá . PostgreSQL developer áá»á¬ážááẠá€ááá á¹á ááœáẠáá¬áá¯ááºááááºááᯠááá±á¬ááá°áá«á áááºáááºááẠááá¯á¡ááºáá«áááºáLC_MESSAGES=en_US.UTF-8
database instance áá áºáá¯ááᯠconfigure (creating) áá¯ááºáá²á·á¡áá«á -
wal_receiver_timeout ááá¯áááºááŸááºáá¬ážáá«á (áá°áááºážá¡á¬ážááŒáá·áºáááºážááẠ60s ááŒá áºáááº)á ááá¯á·áá±á¬áẠtuchanka3 ááŸáá·áº tuchanka4 á¡á á¯á¡áá±ážááŸá master á¡ááœáẠPostgreSQL-STOP á ááºážáááºááŸá¯á¡ááœááºáž
áá°ážáá°ááŒááºážááẠáá¬á áá¬á¡áá áºááŸáá·áº ááŒááºáááºáá»áááºáááºááŒááºáž áááŸááá«á . áá°ážáá°ááŒááºážááœáẠáá áºááŒáá¯ááºáááºážáá¯ááºáá±á¬ááºáá±á¬ááŒá±á¬áá·áº áá»áœááºááẠáááºááœá¬ážáááºáá¬áá ááááºá¡áá áºáááºážááŒá áºáááºá PostgreSQL ááᯠconfigure áá¯ááºáá±á¬á¡áá« wal_receiver_timeout=0 ááᯠáááºááŸááºááŒááºážááŒáá·áº áá¯ááºáá±á¬ááºáááºá -
áá¶áááºáá¶áá«ááœáẠForkBomb á ááºážáááºááŸá¯ááœáẠPostgreSQL ááœáẠáá¯á¶áá°ááœá¬ážááŒááºáž á¡á±ážáá²ááœá¬ážáááºááᯠáá¶áááºáá¶áá« áá»áœááºá¯áẠááœá±á·ááŸááá²á·áááºá
ForkBomb ááŒá®ážáá±á¬ááºá áá áºáá«áá áºáᶠáá»áœááºáá»á¬ážááẠááááºá¡áá áºááŸáá·áº ááŒááºáááºáá»áááºáááºááá¯ááºáááºááá¯ááºáá±á . áá°áá»ááºážáá¬áá¯á¶áá°ááœá¬ážááŸá¯ááŒá±á¬áá·áº áá¬á áá¬á¡á±ážáá²áá±ááá·áº tuchanka3 ááŸáá·áº tuchanka4 á¡á á¯á¡áá±ážáá»á¬ážááœááºáᬠáááºážááᯠáá»áœááºá¯ááºááŒá¯á¶ááœá±á·áá²á·ááááºá (á)áá¬áá®ááá·áºááŒá¬ááŒá®ážáá±á¬áẠááŒá¿áá¬á áá°á·á¡ááá¯ááᯠáá»á±á¬ááºááœá¬ážáááºá áá«ááᯠááŒááºááá¯á· áá±á¬ááºááẠáá¯áá±ááááœá± ááá¯á¡ááºáááºá áá±á¬áá«ááá¹ááá¬áá»á¬ážááẠááááºáá¬ááºááŸáá·áº áááºáá°áááºá ááá¯á·áá±á¬áº áá°áá®áá±á¬á¡áá»áá¯ážáááºáá»á¬ážááŒáá·áº ááŒá áºááœá¬ážáááºá
Krogan ááŸááá¯ááºáá¬ážáá±á¬áá¯á¶
source: www.habr.com