Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Записки IT спСциалиста

ВСхничСский Π±Π»ΠΎΠ³ спСциалистов ООО»Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡ»

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ кластСр Π½Π΅ являСтся отказоустойчивым, Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π΅Π³ΠΎ устройство ΠΈ схСму Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π‘Ρ€Π°Π·Ρƒ ΡƒΡ‚ΠΎΡ‡Π½ΠΈΠΌ, Ρ‡Ρ‚ΠΎ кластСры ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для обСспСчСния отказоустойчивости, Ρ‚Π°ΠΊΠΆΠ΅ кластСрныС схСмы ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ для балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈΠ»ΠΈ наращивания Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ мощности. Однако Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π° ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎ высокодоступных кластСрах.

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠ°Ρ схСма кластСра содСрТит ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π΄Π²Π° ΡƒΠ·Π»Π° ΠΈ ΠΎΠ±Ρ‰Π΅Π΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, связанныС ΠΌΠ΅ΠΆΠ΄Ρƒ собой нСсколькими сСтСвыми соСдинСниями.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСрВо-ΠΏΠ΅Ρ€Π²Ρ‹Ρ… это слуТСбная ΡΠ΅Ρ‚ΡŒ кластСра для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ сигнала «ΠΏΡƒΠ»ΡŒΡΠ°» (heartbeat), ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ кластСр слСдит Π·Π° состояниСм своих ΡƒΠ·Π»ΠΎΠ² (Π½Π° схСмС ΠΏΠΎΠΊΠ°Π·Π°Π½Π° красным), ΡΠ΅Ρ‚ΡŒ хранСния Π΄Π°Π½Π½Ρ‹Ρ… (SAN, синяя), Π² Π½Π΅Π΄ΠΎΡ€ΠΎΠ³ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ… это Ρ‡Π°Ρ‰Π΅ всСго iSCSI Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Ethernet-ΡΠ΅Ρ‚ΡŒ, Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈ FibreChanell ΠΈΠ»ΠΈ ΠΈΠ½Ρ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ. Для обслуТивания ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² кластСр Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΡΠ΅Ρ‚ΡŒ.

По схСмС Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΡƒΠ·Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ-пассивный ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ-Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ. Π’ ΠΏΠ΅Ρ€Π²ΠΎΠΌ случаС всС клиСнтскиС запросы ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡƒΠ·Π»ΠΎΠ², Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΡƒΠ·Π΅Π» вступаСт Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π΅ ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ. Π’Ρ‚ΠΎΡ€ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ прСдусматриваСт ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ клиСнтских запросов ΠΎΠ±ΠΎΠΈΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ, ΠΏΡ€ΠΈ этом Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒ балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ рСсурсы, ΠΏΡƒΡ‚Π΅ΠΌ добавлСния Π½ΠΎΠ²Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ² кластСра. Π’ случаС ΠΎΡ‚ΠΊΠ°Π·Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡƒΠ·Π»ΠΎΠ² клиСнтскиС запросы ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠ΅ΡΡ Π½ΠΎΠ΄Ρ‹.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый ΠΊΠ»Π°ΡΡ‚Π΅Ρ€ΠΠ΅Π»ΡŒΠ·Ρ Π½Π΅ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ отказоустойчивый кластСр Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Π΄Π²ΡƒΡ… Π½ΠΎΠ΄Π°Ρ…, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π² качСствС SAN Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅. НапримСр, StarWind Virtual SAN, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаСт Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ iSCSI Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° Π±Π°Π·Π΅ Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… дисков ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡƒΠ·Π»ΠΎΠ². Π­Ρ‚ΠΎ позволяСт ΡΠ½ΠΈΠ·ΠΈΡ‚ΡŒ Π·Π°Ρ‚Ρ€Π°Ρ‚Ρ‹ Π½Π° созданиС ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ отказоустойчивого Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°, Π½ΠΎ Π² Ρ‚ΠΎΠΆΠ΅ врСмя ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ сСти ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ кластСра, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ записи Π½Π° диск всС измСнСния Ρ‚ΡƒΡ‚-ΠΆΠ΅ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

ПослС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ‹ создадитС кластСр, ΠΎΠ½ появится Π² сСтСвом ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ хост со своим ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΈ IP-адрСсом. ПослС Ρ‡Π΅Π³ΠΎ Π½Π°ΠΌ потрСбуСтся Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ Π½Π° Π½Π΅ΠΌ высокодоступныС Ρ€ΠΎΠ»ΠΈ. Π­Ρ‚ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ„Π°ΠΉΠ»ΠΎΠ²Ρ‹Π΅ сСрвСра, SQL ΠΈΠ»ΠΈ Exchange, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΠ½Ρ‹Π΅, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ ΠΊΠ»Π°ΡΡ‚Π΅Ρ€ΠΈΠ·Π°Ρ†ΠΈΡŽ, прилоТСния. КаТдая отказоустойчивая Ρ€ΠΎΠ»ΡŒ кластСра Ρ‚Π°ΠΊΠΆΠ΅ появляСтся Π² сСти Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ хоста, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ происходит ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². ΠŸΡ€ΠΈ этом ΠΊΠ»ΠΈΠ΅Π½Ρ‚ понятия Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡƒΠ·Π΅Π» выполняСт Π΅Π³ΠΎ запрос, Π² случаС ΠΎΡ‚ΠΊΠ°Π·Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·-Π·Π° Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· строя ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡƒΠ·Π»ΠΎΠ², Π΅ΠΌΡƒ потрСбуСтся всСго лишь ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ запрос ΠΊ сСрвису.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСрВ настоящСС врСмя кластСра всС Ρ‡Π°Ρ‰Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ для систСм Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, Π² этом случаС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ администратором ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ, с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ ΠΈΡ… Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… рСсурсов. Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΊΠΈ ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ΡΡ доступныС ΡƒΠ·Π»Ρ‹ Π² порядкС убывания ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°. Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ попадания рСсурсоСмких Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин Π½Π° слабыС ΡƒΠ·Π»Ρ‹. Π’ случаС ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡƒΠ·Π»ΠΎΠ² кластСра всС Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° Π½Π΅ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² ΠΆΠΈΠ²ΠΎΠΉ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°ΡŽΡ‚ΡΡ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΡƒΠ·Π»Ρ‹ Π±Π΅Π· остановки ΠΈΡ… Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΈΠ»ΠΈ с постановкой Π½Π° ΠΏΠ°ΡƒΠ·Ρƒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

ΠŸΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π΅ ΡƒΠ·Π»Π° всС Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ²ΡˆΠΈΠ΅ΡΡ Π½Π° Π½Π΅ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡ‰Π΅Π½Ρ‹ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΡ… ΡƒΠ·Π»Π°Ρ…, согласно выставлСнного ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Π’ Π½Π°ΡˆΠΈΡ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π»Π°Ρ… ΠΌΡ‹ рассмотрим ΠΏΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ отказоустойчивого кластСра Π½Π° Π±Π°Π·Π΅ Hyper-V.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΠ±Π·ΠΎΡ€ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ΠΎΠ² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ отказоустойчивых кластСров: Stratus, VMware, VMmanager Cloud

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Π•ΡΡ‚ΡŒ разновидности бизнСса, Π³Π΄Π΅ ΠΏΠ΅Ρ€Π΅Ρ€Ρ‹Π²Ρ‹ Π² прСдоставлСнии сСрвиса нСдопустимы. НапримСр, Ссли Ρƒ сотового ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° ΠΈΠ·-Π·Π° ΠΏΠΎΠ»ΠΎΠΌΠΊΠΈ сСрвСра остановится биллинговая систСма, Π°Π±ΠΎΠ½Π΅Π½Ρ‚Ρ‹ останутся Π±Π΅Π· связи. ΠžΡ‚ осознания Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… послСдствий этого события Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρ€Π΅Π·ΠΎΠ½Π½ΠΎΠ΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΡΡ‚Ρ€Π°Ρ…ΠΎΠ²Π°Ρ‚ΡŒΡΡ.

ΠœΡ‹ расскаТСм ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΡ‚ΡŒ способы Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ сбоСв сСрвСров ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ ΠΏΡ€ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΈ VMmanager Cloud: ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для создания кластСра высокой доступности.

ΠŸΡ€Π΅Π΄ΠΈΡΠ»ΠΎΠ²ΠΈΠ΅

Π’ области Π·Π°Ρ‰ΠΈΡ‚Ρ‹ ΠΎΡ‚ сбоСв Π½Π° кластСрах тСрминология Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚Π΅ различаСтся ΠΎΡ‚ сайта ΠΊ сайту. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡƒΡ‚Π°Π½ΠΈΡ†Ρ‹, ΠΌΡ‹ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡ΠΈΠΌ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΠΈ опрСдСлСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² этой ΡΡ‚Π°Ρ‚ΡŒΠ΅.

На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд самый ΠΏΡ€ΠΈΠ²Π»Π΅ΠΊΠ°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ для бизнСса Ρ‚ΠΎΡ‚, ΠΊΠΎΠ³Π΄Π° Π² случаС сбоя обслуТиваниС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Π½Π΅ прСрываСтся, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ кластСр Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ доступности. Π‘Π΅Π· ΠšΠΠ” Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π² Π·Π°Π΄Π°Ρ‡Π°Ρ… ΡƒΠΆΠ΅ упомянутого Π±ΠΈΠ»Π»ΠΈΠ½Π³Π° Π°Π±ΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² ΠΈ ΠΏΡ€ΠΈ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½Ρ‹Ρ… производствСнных процСссов. Однако наряду с ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‡Π΅Ρ€Ρ‚Π°ΠΌΠΈ Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° Π΅ΡΡ‚ΡŒ ΠΈ β€œΠΏΠΎΠ΄Π²ΠΎΠ΄Π½Ρ‹Π΅ камни”. О Π½ΠΈΡ… ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Π΄Π΅Π» ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Continuous availability / нСпрСрывная Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ

БСспСрСбойноС обслуТиваниС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² случаС наличия Π² любой ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚ΠΎΡ‡Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ сСрвСра (физичСского ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ), Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½ сСрвис. Если ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ копию ΡƒΠΆΠ΅ послС ΠΎΡ‚ΠΊΠ°Π·Π° оборудования, Ρ‚ΠΎ Π½Π° это потрСбуСтся врСмя, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π±ΠΎΠΉ Π² прСдоставлСнии услуги. ΠšΡ€ΠΎΠΌΠ΅ этого, послС ΠΏΠΎΠ»ΠΎΠΌΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ содСрТимоС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ памяти с ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΠΎΠΉ ΠΌΠ°ΡˆΠΈΠ½Ρ‹, Π° Π·Π½Π°Ρ‡ΠΈΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΠ²ΡˆΠ°ΡΡΡ Ρ‚Π°ΠΌ информация Π±ΡƒΠ΄Π΅Ρ‚ потСряна.
Для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ CA сущСствуСт Π΄Π²Π° способа: Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹ΠΉ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ. РасскаТСм ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π½ΠΈΡ… Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹ΠΉ способ.
На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΡΡ‚Π°Ρ‚ΡŒΠΈ самый популярный инструмСнт для развёртывания кластСра Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ доступности β€” vSphere ΠΎΡ‚ VMware. ВСхнология обСспСчСния Continuous Availability Π² этом ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ β€œFault Tolerance”.

Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ способа Π΄Π°Π½Π½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ ограничСния Π² использовании. ΠŸΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΠΈΠΌ основныС:

ΠœΡ‹ Π½Π΅ стали Ρ€Π°ΡΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Π½ΠΎΠ΄: состав ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡ‚ΡƒΡŽΡ‰ΠΈΡ… Π² сСрвСрах всСгда зависит ΠΎΡ‚ Π·Π°Π΄Π°Ρ‡ кластСра. Π‘Π΅Ρ‚Π΅Π²ΠΎΠ΅ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΆΠ΅ смысла Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚: Π²ΠΎ всСх случаях Π½Π°Π±ΠΎΡ€ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΌ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Π΄Π°Π½Π½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒΡΡ: ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒ Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΉ.

Π‘Ρ‚ΠΎΠΈΡ‚ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ ΠΈ ΠΎ Ρ‚Π΅Ρ… ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π°Ρ…, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»Π°ΡΡŒ.

Π•ΡΡ‚ΡŒ Remus Π½Π° Π±Π°Π·Π΅ Xen, бСсплатноС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ ΠΌΠΈΠΊΡ€ΠΎΡΠ½ΡΠΏΡˆΠΎΡ‚ΠΎΠ². К соТалСнию, докумСнтация Π΄Π°Π²Π½ΠΎ Π½Π΅ обновлялась; Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, установка описана для Ubuntu 12.10, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π΅Π½Π° Π² 2014 Π³ΠΎΠ΄Ρƒ. И ΠΊΠ°ΠΊ Π½ΠΈ странно, Π΄Π°ΠΆΠ΅ Π“ΡƒΠ³Π» Π½Π΅ Π½Π°ΡˆΡ‘Π» Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ, ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠ²ΡˆΠ΅ΠΉ Remus Π² своСй Π΄Π΅ΡΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π»ΠΈΡΡŒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚ΠΊΠΈ QEMU с Ρ†Π΅Π»ΡŒΡŽ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания continuous availability кластСра. На ΠΌΠΎΠΌΠ΅Π½Ρ‚ написания ΡΡ‚Π°Ρ‚ΡŒΠΈ сущСствуСт Π΄Π²Π° Ρ‚Π°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ β€” Kemari, ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ с ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ исходным ΠΊΠΎΠ΄ΠΎΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Ρ€ΡƒΠΊΠΎΠ²ΠΎΠ΄ΠΈΡ‚ Yoshiaki Tamura. ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚ΡΡ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ ΠΆΠΈΠ²ΠΎΠΉ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ QEMU. Однако Ρ‚ΠΎΡ‚ Ρ„Π°ΠΊΡ‚, Ρ‡Ρ‚ΠΎ послСдний ΠΊΠΎΠΌΠΌΠΈΡ‚ Π±Ρ‹Π» сдСлан Π² Ρ„Π΅Π²Ρ€Π°Π»Π΅ 2011 Π³ΠΎΠ΄Π° Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ скорСС всСго Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° зашла Π² Ρ‚ΡƒΠΏΠΈΠΊ ΠΈ Π½Π΅ возобновится.

Π’Ρ‚ΠΎΡ€ΠΎΠΉ β€” Micro Checkpointing, основанный Michael Hines, Ρ‚ΠΎΠΆΠ΅ open source. К соТалСнию, ΡƒΠΆΠ΅ Π³ΠΎΠ΄ Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π΅Ρ‚ Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ активности. ΠŸΠΎΡ…ΠΎΠΆΠ΅, Ρ‡Ρ‚ΠΎ ситуация слоТилась Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ Kemari.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ continuous availability Π½Π° Π±Π°Π·Π΅ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ KVM Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π΅Ρ‚.

Π˜Ρ‚Π°ΠΊ, ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ нСсмотря Π½Π° прСимущСства систСм Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ доступности, Π΅ΡΡ‚ΡŒ Π½Π΅ΠΌΠ°Π»ΠΎ трудностСй ΠΏΡ€ΠΈ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΠΈ ΠΈ эксплуатации Ρ‚Π°ΠΊΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ. Однако ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ ситуации, ΠΊΠΎΠ³Π΄Π° ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ трСбуСтся, Π½ΠΎ Π½Π΅Ρ‚ Тёстких Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ нСпрСрывности сСрвиса. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ кластСры высокой доступности, ΠšΠ’Π”.

High availability / высокая Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ

Π’ контСкстС ΠšΠ’Π” ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ обСспСчиваСтся Π·Π° счёт автоматичСского опрСдСлСния ΠΎΡ‚ΠΊΠ°Π·Π° оборудования ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ запуска сСрвиса Π½Π° исправном ΡƒΠ·Π»Π΅ кластСра.

Π’ ΠšΠ’Π” Π½Π΅ выполняСтся синхронизация Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Π½Π° Π½ΠΎΠ΄Π°Ρ… процСссов ΠΈ Π½Π΅ всСгда выполняСтся синхронизация Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… дисков машин. Π‘Ρ‚Π°Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ ΡƒΠ·Π»Π°ΠΌΠΈ носитСли Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π½Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ нСзависимом Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° сСтСвом Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Π°: Π² случаС ΠΎΡ‚ΠΊΠ°Π·Π° Π½ΠΎΠ΄Ρ‹ ΠΏΡ€ΠΎΠΏΠ°Π΄Ρ‘Ρ‚ связь с Π½Π΅ΠΉ, Π° Π·Π½Π°Ρ‡ΠΈΡ‚, Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ возмоТности ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π½Π° Π΅Ρ‘ Π½Π°ΠΊΠΎΠΏΠΈΡ‚Π΅Π»Π΅. ЕстСствСнно, Ρ‡Ρ‚ΠΎ Π‘Π₯Π” Ρ‚ΠΎΠΆΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ отказоустойчивым, ΠΈΠ½Π°Ρ‡Π΅ ΠšΠ’Π” Π½Π΅ получится ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, кластСр высокой доступности дСлится Π½Π° Π΄Π²Π° подкластСра:

VMmanager Cloud

НашС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ VMmanager Cloud ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ QEMU-KVM. ΠœΡ‹ сдСлали Π²Ρ‹Π±ΠΎΡ€ Π² ΠΏΠΎΠ»ΡŒΠ·Ρƒ этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ разрабатываСтся ΠΈ поддСрТиваСтся, Π° Ρ‚Π°ΠΊΠΆΠ΅ позволяСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π»ΡŽΠ±ΡƒΡŽ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΌΠ°ΡˆΠΈΠ½Ρƒ. Π’ качСствС инструмСнта для выявлСния ΠΎΡ‚ΠΊΠ°Π·ΠΎΠ² Π² кластСрС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Corosync. Если Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· строя ΠΎΠ΄ΠΈΠ½ ΠΈΠ· сСрвСров, VMmanager ΠΏΠΎΠΎΡ‡Π΅Ρ€Ρ‘Π΄Π½ΠΎ распрСдСляСт Ρ€Π°Π±ΠΎΡ‚Π°Π²ΡˆΠΈΠ΅ Π½Π° Π½Ρ‘ΠΌ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ ΠΏΠΎ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΌΡΡ Π½ΠΎΠ΄Π°ΠΌ.

Π’ ΡƒΠΏΡ€ΠΎΡ‰Ρ‘Π½Π½ΠΎΠΉ Ρ„ΠΎΡ€ΠΌΠ΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Ρ‚Π°ΠΊΠΎΠΉ:

ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠ΅ Π²Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько Π½ΠΎΠ΄ ΠΏΠΎΠ΄ Π°Π²Π°Ρ€ΠΈΠΉΠ½Ρ‹Π΅ ситуации ΠΈ Π½Π΅ Ρ€Π°Π·Π²Ρ‘Ρ€Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π½ΠΈΡ… Π’Πœ Π² ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ ΡˆΡ‚Π°Ρ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Π½Π° β€œΠΆΠΈΠ²Ρ‹Ρ…β€ Π½ΠΎΠ΄Π°Ρ… Π² кластСрС Π½Π΅ Ρ…Π²Π°Ρ‚Π°Π΅Ρ‚ рСсурсов, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ всС Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ с β€œΡƒΠΌΠ΅Ρ€ΡˆΠ΅ΠΉβ€. Π’ случаС с ΠΎΠ΄Π½ΠΈΠΌ запасным сСрвСром схСма рСзСрвирования носит Π½Π°Π·Π²Π°Π½ΠΈΠ΅ β€œN+1”.

Рассмотрим ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ схСмам ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ VMmanager Cloud Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Π»ΠΈ кластСры высокой доступности.

FirstByte

Компания FirstByte Π½Π°Ρ‡Π°Π»Π° ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΉ хостинг Π² Ρ„Π΅Π²Ρ€Π°Π»Π΅ 2016 Π³ΠΎΠ΄Π°. Π˜Π·Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ кластСр Ρ€Π°Π±ΠΎΡ‚Π°Π» ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ OpenStack. Однако отсутствиС доступных спСциалистов ΠΏΠΎ этой систСмС (ΠΊΠ°ΠΊ ΠΏΠΎ Π½Π°Π»ΠΈΡ‡ΠΈΡŽ Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎ Ρ†Π΅Π½Π΅) ΠΏΠΎΠ±ΡƒΠ΄ΠΈΠ»ΠΎ ΠΊ поиску Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. К Π½ΠΎΠ²ΠΎΠΌΡƒ инструмСнту для управлСния ΠšΠ’Π” ΠΏΡ€Π΅Π΄ΡŠΡΠ²Π»ΡΠ»ΠΈΡΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ трСбования:

ΠžΡ‚Π»ΠΈΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‡Π΅Ρ€Ρ‚Ρ‹ кластСра:

Данная конфигурация ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для хостинга сайтов с высокой ΠΏΠΎΡΠ΅Ρ‰Π°Π΅ΠΌΠΎΡΡ‚ΡŒΡŽ, для размСщСния ΠΈΠ³Ρ€ΠΎΠ²Ρ‹Ρ… сСрвСров ΠΈ Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… с Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ ΠΎΡ‚ срСднСй Π΄ΠΎ высокой.

FirstVDS

Компания FirstVDS прСдоставляСт услуги отказоустойчивого хостинга, запуск ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Π° состоялся Π² сСнтябрС 2015 Π³ΠΎΠ΄Π°.

К использованию VMmanager Cloud компания ΠΏΡ€ΠΈΡˆΠ»Π° ΠΈΠ· ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… сообраТСний:

Π’ случаС ΠΎΠ±Ρ‰Π΅Π³ΠΎ ΠΎΡ‚ΠΊΠ°Π·Π° Infiniband-сСти связь ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ дисков Π’Πœ ΠΈ Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ сСрвСрами выполняСтся Ρ‡Π΅Ρ€Π΅Π· Ethernet-ΡΠ΅Ρ‚ΡŒ, которая Ρ€Π°Π·Π²Ρ‘Ρ€Π½ΡƒΡ‚Π° Π½Π° ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠΈ Juniper. β€œΠŸΠΎΠ΄Ρ…Π²Π°Ρ‚β€ происходит автоматичСски.

Благодаря высокой скорости взаимодСйствия с Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ Ρ‚Π°ΠΊΠΎΠΉ кластСр ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для размСщСния сайтов со свСрхвысокой ΠΏΠΎΡΠ΅Ρ‰Π°Π΅ΠΌΠΎΡΡ‚ΡŒΡŽ, видСохостинга с ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²Ρ‹ΠΌ воспроизвСдСниСм ΠΊΠΎΠ½Ρ‚Π΅Π½Ρ‚Π°, Π° Ρ‚Π°ΠΊΠΆΠ΅ для выполнСния ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с большими ΠΎΠ±ΡŠΡ‘ΠΌΠ°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Π­ΠΏΠΈΠ»ΠΎΠ³

ΠŸΠΎΠ΄Π²Π΅Π΄Ρ‘ΠΌ ΠΈΡ‚ΠΎΠ³ ΡΡ‚Π°Ρ‚ΡŒΠΈ. Если каТдая сСкунда простоя сСрвиса приносит Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΡƒΠ±Ρ‹Ρ‚ΠΊΠΈ β€” Π½Π΅ ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· кластСра Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠΉ доступности.

Однако Ссли ΠΎΠ±ΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΡΡ‚Π²Π° ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΏΠΎΠ΄ΠΎΠΆΠ΄Π°Ρ‚ΡŒ 5 ΠΌΠΈΠ½ΡƒΡ‚ ΠΏΠΎΠΊΠ° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΌΠ°ΡˆΠΈΠ½Ρ‹ Ρ€Π°Π·Π²ΠΎΡ€Π°Ρ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ Π½ΠΎΠ΄Π΅, ΠΌΠΎΠΆΠ½ΠΎ Π²Π·Π³Π»ΡΠ½ΡƒΡ‚ΡŒ Π² сторону ΠšΠ’Π”. Π­Ρ‚ΠΎ даст экономию Π² стоимости Π»ΠΈΡ†Π΅Π½Π·ΠΈΠΉ ΠΈ оборудования.

ΠšΡ€ΠΎΠΌΠ΅ этого Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π΅ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ СдинствСнноС срСдство ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ отказоустойчивости β€” ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ² Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ сСрвСров, Π½Π΅ Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ ΠΈ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠ°Π½Π°Π»Ρ‹ доступа Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, элСктропитаниС. Всё Ρ‡Ρ‚ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ β€” Ρ€Π΅Π·Π΅Ρ€Π²ΠΈΡ€ΡƒΠΉΡ‚Π΅. Π’Π°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ€Ρ‹ ΠΈΡΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ Π΅Π΄ΠΈΠ½ΡƒΡŽ Ρ‚ΠΎΡ‡ΠΊΡƒ ΠΎΡ‚ΠΊΠ°Π·Π°, Ρ‚ΠΎΠ½ΠΊΠΎΠ΅ мСсто, ΠΈΠ·-Π·Π° нСисправности Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ вся систСма. ΠŸΡ€ΠΈΠ½ΡΠ² всС Π²Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹Π΅ ΠΌΠ΅Ρ€Ρ‹, Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ отказоустойчивый кластСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ вывСсти ΠΈΠ· строя.

Если Π²Ρ‹ Ρ€Π΅ΡˆΠΈΠ»ΠΈ, Ρ‡Ρ‚ΠΎ для Π²Π°ΡˆΠΈΡ… Π·Π°Π΄Π°Ρ‡ большС ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ схСма высокой доступности ΠΈ Π²Ρ‹Π±Ρ€Π°Π»ΠΈ VMmanager Cloud ΠΊΠ°ΠΊ инструмСнт для Π΅Ρ‘ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊ вашим услугам инструкция ΠΏΠΎ установкС ΠΈ докумСнтация, которая ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с систСмой. Π–Π΅Π»Π°Π΅ΠΌ Π²Π°ΠΌ бСспСрСбойной Ρ€Π°Π±ΠΎΡ‚Ρ‹!

P. S. Если Ρƒ вас Π² ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ Π΅ΡΡ‚ΡŒ Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½Ρ‹Π΅ CA-сСрвСры β€” Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅, поТалуйста, Π² коммСнтариях ΠΊΡ‚ΠΎ Π²Ρ‹ ΠΈ для Ρ‡Π΅Π³ΠΎ Π²Ρ‹ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅. Нам Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ интСрСсно ΡƒΡΠ»Ρ‹ΡˆΠ°Ρ‚ΡŒ для ΠΊΠ°ΠΊΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² использованиС Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΠ΅ экономичСски цСлСсообразно πŸ™‚

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²Ρ‹ΠΉ кластСр для балансировки Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ

ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Допустим, ваш ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ вырос Π΄ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ², ΠΊΠΎΠ³Π΄Π° ΠΎΠ΄ΠΈΠ½ сСрвСр Π½Π΅ справляСтся с Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ, Π° возмоТностСй для Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ роста рСсурсов ΡƒΠΆΠ΅ Π½Π΅Ρ‚.

Π’ этом случаС дальнСйшСС Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ инфраструктуры ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ происходит Π·Π° счСт увСличСния числа ΠΎΠ΄Π½ΠΎΡ‚ΠΈΠΏΠ½Ρ‹Ρ… сСрвСров с распрСдСлСниСм Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ Π½ΠΈΠΌΠΈ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ позволяСт Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡƒ с рСсурсами, Π½ΠΎ ΠΈ добавляСт надСТности ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ β€” ΠΏΡ€ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄Π΅ ΠΈΠ· строя ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² Π΅Π³ΠΎ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ Π² Ρ†Π΅Π»ΠΎΠΌ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π°Ρ€ΡƒΡˆΠ΅Π½Π°.

Π‘ΠΎΠ»ΡŒΡˆΡƒΡŽ Ρ€ΠΎΠ»ΡŒ Π² этой схСмС ΠΈΠ³Ρ€Π°Π΅Ρ‚ балансировщик β€” систСма, которая занимаСтся распрСдСлСниСм запросов/Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ°. На этапС Π΅Π΅ проСктирования Π²Π°ΠΆΠ½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ трСбования:

ЀактичСски, это описаниС кластСра, ΡƒΠ·Π»Π°ΠΌΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡΠ²Π»ΡΡŽΡ‚ΡΡ сСрвСры-балансСры.

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ…ΠΎΡ‚ΠΈΠΌ ΠΏΠΎΠ΄Π΅Π»ΠΈΡ‚ΡŒΡΡ Ρ€Π΅Ρ†Π΅ΠΏΡ‚ΠΎΠΌ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ кластСра, простого ΠΈ Π½Π΅ΠΏΡ€ΠΈΡ…ΠΎΡ‚Π»ΠΈΠ²ΠΎΠ³ΠΎ ΠΊ рСсурсам, ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ примСняСм Π² собствСнной инфраструктурС для балансировки запросов ΠΊ сСрвСрам нашСй ΠΏΠ°Π½Π΅Π»ΠΈ управлСния, Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅ΠΌΡƒ DNS сСрвСру, кластСру Galera ΠΈ Ρ€Π°Π·Π½ΠΎΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ микросСрвисам.

Договоримся ΠΎ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Ρ…:

β€” Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹, входящиС Π² состав кластСра, Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΡƒΠ·Π»Π°ΠΌΠΈ ΠΈΠ»ΠΈ балансСрами.
β€” ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌΠΈ сСрвСрами Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ хосты, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ проксируСтся Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Ρ‡Π΅Ρ€Π΅Π· кластСр.
β€” Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ IP Π±ΡƒΠ΄Π΅ΠΌ Π½Π°Π·Ρ‹Π²Π°Ρ‚ΡŒ адрСс, β€œΠΏΠ»Π°Π²Π°ΡŽΡ‰ΠΈΠΉβ€ ΠΌΠ΅ΠΆΠ΄Ρƒ всСми ΡƒΠ·Π»Π°ΠΌΠΈ, ΠΈ Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° сСрвисов Π² DNS.

Π§Ρ‚ΠΎ потрСбуСтся:

β€” Для настройки кластСра потрСбуСтся ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π΄Π²Π° сСрвСра (ΠΈΠ»ΠΈ Π²ΠΈΡ€Ρ‚.ΠΌΠ°ΡˆΠΈΠ½Ρ‹) с двумя сСтСвыми интСрфСйсами Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ.
β€” ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ интСрфСйс Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для связи с внСшним ΠΌΠΈΡ€ΠΎΠΌ. Π—Π΄Π΅ΡΡŒ Π±ΡƒΠ΄ΡƒΡ‚ настроСны Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ IP адрСса.
β€” Π’Ρ‚ΠΎΡ€ΠΎΠΉ интСрфСйс Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ слуТСбный Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, для общСния ΡƒΠ·Π»ΠΎΠ² Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π—Π΄Π΅ΡΡŒ Π±ΡƒΠ΄Π΅Ρ‚ настроСн адрСс ΠΈΠ· ΠΏΡ€ΠΈΠ²Π°Ρ‚Π½ΠΎΠΉ (β€œΡΠ΅Ρ€ΠΎΠΉβ€) сСти 172.16.0.0/24.
Π’Ρ‚ΠΎΡ€Ρ‹Π΅ интСрфСйсы ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· ΡƒΠ·Π»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ Π² ΠΎΠ΄Π½ΠΎΠΌ сСгмСнтС сСти.

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ:

VRRP, Virtual Router Redundancy Protocol β€” Π² контСкстС этой ΡΡ‚Π°Ρ‚ΡŒΠΈ, рСализация «ΠΏΠ»Π°Π²Π°ΡŽΡ‰Π΅Π³ΠΎ» ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ кластСра Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ IP адрСса. Π’ ΠΎΠ΄ΠΈΠ½ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Ρ‚Π°ΠΊΠΎΠΉ адрСс ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ поднят Π½Π° ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ ΠΎΠ΄Π½ΠΎΠΌ ΡƒΠ·Π»Π΅, ΠΈΠΌΠ΅Π½ΡƒΠ΅ΠΌΠΎΠΌ MASTER. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΡƒΠ·Π΅Π» называСтся BACKUP. Оба ΡƒΠ·Π»Π° постоянно ΠΎΠ±ΠΌΠ΅Π½ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌΠΈ heartbeat сообщСниями. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π½Π΅ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Ρ‚Π°ΠΊΠΈΡ… сообщСний Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π·Π°Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΊΠΎΠ² Π΄Π°Π΅Ρ‚ основания для пСрСназначСния Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ IP Π½Π° β€œΠΆΠΈΠ²ΠΎΠΉβ€ сСрвСр. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь.

LVS, Linux Virtual Server β€” ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ балансировки Π½Π° транспортном/сСансовом ΡƒΡ€ΠΎΠ²Π½Π΅, встроСнный Π² ядро Linux Π² Π²ΠΈΠ΄Π΅ модуля IPVS. Π₯ΠΎΡ€ΠΎΡˆΠ΅Π΅ описаниС возмоТностСй LVS ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ здСсь ΠΈ здСсь.
Π‘ΡƒΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сводится ΠΊ ΡƒΠΊΠ°Π·Π°Π½ΠΈΡŽ Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ опрСдСлСнная ΠΏΠ°Ρ€Π° β€œIP + порт” ΠΈ ΠΎΠ½Π° являСтся Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΌ сСрвСром. Для этой ΠΏΠ°Ρ€Ρ‹ Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‚ΡΡ адрСса Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Ρ… сСрвСров, отвСтствСнных Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ запросов, задаСтся Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ балансировки, Π° Ρ‚Π°ΠΊΠΆΠ΅ Ρ€Π΅ΠΆΠΈΠΌ пСрСнаправлСния запросов.

Π’ нашСй систСмС ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Nginx ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΡ‡Π½ΠΎΠ΅ Π·Π²Π΅Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ LVS ΠΈ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌΠΈ сСрвСрами, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ. Nginx Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΠ·Π»Π΅.

Для настроСк VRRP ΠΈ взаимодСйствия с IPVS Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π΅ΠΌΠΎΠ½ Keepalived, написанный Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Linux Virtual Server.

ΠšΠžΠΠ¦Π•ΠŸΠ¦Π˜Π―

БистСма Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ собой связку ΠΈΠ· Π΄Π²ΡƒΡ… нСзависимых Π΄Ρ€ΡƒΠ³ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³Π° Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ²-балансСров, ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½Π΅Π½Π½Ρ‹Ρ… Π² кластСр срСдствами Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ LVS ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»Π° VRRP.

Π’ΠΎΡ‡ΠΊΠΎΠΉ Π²Ρ…ΠΎΠ΄Π° для Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π±ΡƒΠ΄Π΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ IP адрСс, поднятый Π»ΠΈΠ±ΠΎ Π½Π° ΠΎΠ΄Π½ΠΎΠΌ, Π»ΠΈΠ±ΠΎ Π½Π° Π²Ρ‚ΠΎΡ€ΠΎΠΌ ΡƒΠ·Π»Π΅.

ΠŸΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ запросы LVS пСрСнаправляСт ΠΊ ΠΎΠ΄Π½ΠΎΠΌΡƒ ΠΈΠ· Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… экзСмпляров Nginx β€” Π»ΠΎΠΊΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ ΠΈΠ»ΠΈ Π½Π° сосСднСм ΡƒΠ·Π»Π΅. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ позволяСт Ρ€Π°Π²Π½ΠΎΠΌΠ΅Ρ€Π½ΠΎ Ρ€Π°Π·ΠΌΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ запросы ΠΌΠ΅ΠΆΠ΄Ρƒ всСми ΡƒΠ·Π»Π°ΠΌΠΈ кластСра, Ρ‚.Π΅. Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ рСсурсы ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ балансСра.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Π Π°Π±ΠΎΡ‚Π° Nginx Π·Π°ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² проксировании запросов Π½Π° ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹Π΅ сСрвСра. Начиная с вСрсии 1.9.13 доступны Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ проксирования Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ транспортных ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² tcp ΠΈ udp.

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ vhost/stream Π±ΡƒΠ΄Π΅Ρ‚ настроСн ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ запросы ΠΊΠ°ΠΊ Ρ‡Π΅Ρ€Π΅Π· слуТСбный интСрфСйс с сосСднСго балансСра Ρ‚Π°ΠΊ ΠΈ ΠΏΠΎΡΡ‚ΡƒΠΏΠ°ΡŽΡ‰ΠΈΠ΅ Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ IP. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Π΄Π°ΠΆΠ΅ Π² Ρ‚ΠΎΠΌ случаС, Ссли Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ IP адрСс физичСски Π½Π΅ поднят Π½Π° Π΄Π°Π½Π½ΠΎΠΌ балансСрС (Keepalived Π½Π°Π·Π½Π°Ρ‡ΠΈΠ» сСрвСру Ρ€ΠΎΠ»ΡŒ BACKUP).

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, схСма хоТдСния Ρ‚Ρ€Π°Ρ„ΠΈΠΊΠ° Π² зависимости ΠΎΡ‚ состояния балансСра (MASTER ΠΈΠ»ΠΈ BACKUP) выглядит Ρ‚Π°ΠΊ:

Π Π•ΠΠ›Π˜Π—ΠΠ¦Π˜Π―:

Π’ качСствС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ систСмы Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Debian Jessie с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌΠΈ backports рСпозиториями.

Установим Π½Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΡƒΠ·Π΅Π»-балансСр ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ кластСра ПО ΠΈ сдСлаСм нСсколько общСсистСмных настроСк:

На интСрфСйсС eth1 настроим адрСса ΠΈΠ· сСрой сСти 172.16.0.0/24 :

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ IP адрСс ΠΏΡ€ΠΎΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ Π½Π° интСрфСйсС eth0 Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. Π­Ρ‚ΠΎ сдСлаСт Keepalived.

Π’ Ρ„Π°ΠΉΠ» /etc/sysctl.d/local.conf Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρ‹:

ΠŸΠ΅Ρ€Π²Π°Ρ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠ»ΡƒΡˆΠ°Ρ‚ΡŒ IP, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ подняты локально (это Π½ΡƒΠΆΠ½ΠΎ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Nginx). Вторая Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Π·Π°Ρ‰ΠΈΡ‚Ρƒ ΠΎΡ‚ DDoS Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ балансировщика IPVS (ΠΏΡ€ΠΈ Π½Π΅Ρ…Π²Π°Ρ‚ΠΊΠ΅ памяти ΠΏΠΎΠ΄ Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ сСссий начнётся автоматичСскоС Π²Ρ‹Ρ‡ΠΈΡ‰Π΅Π½ΠΈΠ΅ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… записСй). Π’Ρ€Π΅Ρ‚ΡŒΡ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅Ρ€ conntrack Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹.

Π’ /etc/modules Π²ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ модуля IPVS ΠΏΡ€ΠΈ стартС систСмы:

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ conn_tab_bits опрСдСляСт Ρ€Π°Π·ΠΌΠ΅Ρ€ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ с соСдинСниями. Π•Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ являСтся ΡΡ‚Π΅ΠΏΠ΅Π½ΡŒΡŽ Π΄Π²ΠΎΠΉΠΊΠΈ. Максимально допустимоС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ β€” 20.

ΠšΡΡ‚Π°Ρ‚ΠΈ, Ссли ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ Π΄ΠΎ старта Keepalived, послСдний Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΡΠ΅Π³Ρ„ΠΎΠ»Ρ‚ΠΈΡ‚ΡŒΡΡ.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ ΠΎΠ±Π° ΡƒΠ·Π»Π°-балансСра. Π’Π°ΠΊ ΠΌΡ‹ убСдимся, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈ стартС вся конфигурация ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ поднимСтся.

ΠžΠ±Ρ‰ΠΈΠ΅ настройки Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹. Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠΈΠ΅ дСйствия Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π² контСкстС Π΄Π²ΡƒΡ… Π·Π°Π΄Π°Ρ‡:

Π’Π²ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅:

НачнСм с ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ Nginx.

Π”ΠΎΠ±Π°Π²ΠΈΠΌ описаниС сСкции stream Π² /etc/nginx/nginx.conf :

И создадим ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³:

Настройки для Π²Π΅Π±-сСрвСров Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Ρ„Π°ΠΉΠ» /etc/nginx/sites-enabled/web_servers.conf

Настройки для DNS-сСрвСров Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Ρ„Π°ΠΉΠ» /etc/nginx/stream-enabled/dns_servers.conf

Π”Π°Π»Π΅Π΅ остаСтся ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Keepalived (VRRP + LVS). Π­Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Π½Π°ΠΌ потрСбуСтся Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ скрипт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ ΡƒΠ·Π»Π°-балансСра ΠΌΠ΅ΠΆΠ΄Ρƒ состояниями MASTER/BACKUP.

ΠŸΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π΅ Π² состояниС MASTER, скрипт удаляСт это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ.

Настройки LVS для Π³Ρ€ΡƒΠΏΠΏΡ‹ Π²Π΅Π±-сСрвСров:

Настройки LVS для Π³Ρ€ΡƒΠΏΠΏΡ‹ DNS-сСрвСров:

Π’ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΠΌ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ Nginx ΠΈ Keepalived:

Π’Π•Π‘Π’Π˜Π ΠžΠ’ΠΠΠ˜Π•:

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ ΠΊΠ°ΠΊ балансировщик распрСдСляСт запросы ΠΊ ΠΊΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ сСрвСрам. Для этого Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΈΠ· Π²Π΅Π±-сСрвСров создадим index.php с ΠΊΠ°ΠΊΠΈΠΌ-Π½ΠΈΠ±ΡƒΠ΄ΡŒ простым содСрТимым:

И сдСлаСм нСсколько запросов ΠΏΠΎ http ΠΊ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌΡƒ IP 192.168.0.100 :

Если Π² процСссС выполнСния этого Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° статистику Ρ€Π°Π±ΠΎΡ‚Ρ‹ LVS (Π½Π° MASTER ΡƒΠ·Π»Π΅), Ρ‚ΠΎ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½Ρƒ:

Π—Π΄Π΅ΡΡŒ Π²ΠΈΠ΄Π½ΠΎ ΠΊΠ°ΠΊ происходит распрСдСлСниС запросов ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ кластСра: Π΅ΡΡ‚ΡŒ Π΄Π²Π° Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… соСдинСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΈ 6 ΡƒΠΆΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹Ρ… соСдинСний.

Бтатистику ΠΏΠΎ всС соСдинСниям, проходящим Ρ‡Π΅Ρ€Π΅Π· LVS, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ‚Π°ΠΊ:

Π—Π΄Π΅ΡΡŒ, соотвСтствСнно, Π²ΠΈΠ΄ΠΈΠΌ Ρ‚ΠΎ ΠΆΠ΅ самоС: 2 Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… ΠΈ 6 Π½Π΅Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ соСдинСний.

ΠŸΠžΠ‘Π›Π•Π‘Π›ΠžΠ’Π˜Π•:

ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ Π½Π°ΠΌΠΈ конфигурация ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡΠ»ΡƒΠΆΠΈΡ‚ΡŒ ΠΎΡ‚ΠΏΡ€Π°Π²Π½Ρ‹ΠΌ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠΌ для проСктирования частного Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ со своими трСбованиями ΠΈ особСнностями.

Если Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ»ΠΈ вопросы ΠΏΠΎ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ показалось спорным β€” поТалуйста, оставляйтС свои ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ, Π±ΡƒΠ΄Π΅ΠΌ Ρ€Π°Π΄Ρ‹ ΠΎΠ±ΡΡƒΠ΄ΠΈΡ‚ΡŒ.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Ρ€Π°Π±ΠΎΡ‚Ρ‹ отказоустойчивых кластСров

ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²Ρ‹ΠΉ кластСр (кластСр высокой доступности, h igh availability cluster, HA-кластСр ) β€” Π³Ρ€ΡƒΠΏΠΏΠ° сСрвСров, Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰Π°Ρ минимальноС врСмя простоя Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Ρ… машин (Π’Πœ). ΠžΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²Ρ‹Π΅ кластСры ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ сСрвСров Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, хранСния Π²Π°ΠΆΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Ρ€Π°Π±ΠΎΡ‚Ρ‹ бизнСс-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’ случаС, Ссли ΠΎΠ΄ΠΈΠ½ ΠΈΠ· сСрвСров (ΡƒΠ·Π»ΠΎΠ²) кластСра потСрял связь с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ, VMmanager запустит процСсс Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ восстановлСния β€” Ρ€Π΅Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ Π’Πœ:

ΠŸΡ€ΠΎΡ†Π΅ΡΡ Ρ€Π΅Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ ΠΏΡ€ΠΎΡ…ΠΎΠ΄ΠΈΡ‚ автоматичСски Π±Π΅Π· участия администратора.

ВрСбования ΠΊ отказоустойчивому кластСру

Π’ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ VMmanager Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ отказоустойчивый кластСр ΠΏΡ€ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… условиях:

Π›ΠΎΠ³ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ сСрвисы

Для управлСния отказоустойчивым кластСром VMmanager ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚:

ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° запускаСт сСрвис ha-agent Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡƒΠ·Π»Π΅ кластСра. БСрвисы ha-agent Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΡƒΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ собой с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ПО Corosync. Алгоритмы Corosync Π½Π°Π·Π½Π°Ρ‡Π°ΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· сСрвисов ha-agent мастСром. Π’ дальнСйшСм ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° взаимодСйствуСт Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с этим сСрвисом с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ hawatch.

ΠŸΡ€ΠΎΠ΄Π΅Π΄ΡƒΡ€Π° Π²Ρ‹Π±ΠΎΡ€Π° мастСра

Π’Ρ‹Π±ΠΎΡ€ мастСра происходит Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ситуациях:

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ мастСра ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· ΡƒΠ·Π»ΠΎΠ²-Π²Ρ‹Π±ΠΎΡ€Ρ‰ΠΈΠΊΠΎΠ² с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° рассчитываСт свой ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ ΠΈ сообщаСт Π΅Π³ΠΎ ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ участникам кластСра. ΠœΠ°ΡΡ‚Π΅Ρ€ΠΎΠΌ назначаСтся ΡƒΠ·Π΅Π» с самым большим ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ. ПослС назначСния мастСра кластСр Π½Π°Ρ‡Π½Ρ‘Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ отказоустойчивости.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π²Ρ‹Π±ΠΎΡ€Π° Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 15 сСкунд.

Бтатусы ΡƒΠ·Π»ΠΎΠ² кластСра

Π’ отказоустойчивом кластСрС ΡƒΠ·Π»Ρ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ статусы:

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Π‘Ρ…Π΅ΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Ρ‹ HA-кластСра

Network storage β€” сСтСвоС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ кластСра

Management network β€” ΡΠ΅Ρ‚ΡŒ управлСния ΡƒΠ·Π»Π°ΠΌΠΈ кластСра

Case1 β€” ΠΏΡ€ΠΈΠΌΠ΅Ρ€ статуса «ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡ ΠΏΠΎ сСти»

Case2 β€” ΠΏΡ€ΠΈΠΌΠ΅Ρ€ статуса «ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡ ΠΏΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Ρƒ»

Case3 β€” ΠΏΡ€ΠΈΠΌΠ΅Ρ€ статуса «ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΎΡ‚ΠΊΠ°Π·»

ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ статуса ΡƒΠ·Π»Π°

БСрвис ha-agent считаСт ΡƒΠ·Π΅Π» ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Ρ‘Π½Π½Ρ‹ΠΌ, Ссли ΡƒΠ·Π΅Π» потСрял связь с Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ ΡƒΠ·Π»Π°ΠΌΠΈ кластСра ΠΈ/ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Ρ‘Π½Π½Ρ‹ΠΌ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° связи проводится с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΎΠ² Corosync. Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ·Π»Ρ‹ кластСра Π·Π°ΠΏΠΈΡΡ‹Π²Π°ΡŽΡ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ своём статусС Π² Ρ„Π°ΠΉΠ» Π½Π° сСрвСрС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π°. ОбновлСниС статуса происходит ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π² Ρ‚Ρ€ΠΈ сСкунды. Если информация ΠΎ статусС Π½Π΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½Π°, мастСр ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ ΡƒΠ·Π΅Π» ΠΊΠ°ΠΊ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Ρ‘Π½Π½Ρ‹ΠΉ.

Π‘Ρ€Π΅Π΄Π½Π΅Π΅ врСмя опрСдСлСния Π½Π΅Ρ€Π°Π±ΠΎΡ‡Π΅Π³ΠΎ статуса β€” ΠΎΡ‚ 15 Π΄ΠΎ 60 сСкунд.

Π’ настройках отказоустойчивости ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΎΡ‡Π½Ρ‹ΠΉ IP-адрСс. ΠŸΡ€ΠΈ ΠΏΠΎΡ‚Π΅Ρ€Π΅ связи с кластСром ΡƒΠ·Π΅Π» ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ этого IP-адрСса с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ping:

Если ΡƒΠ·Π΅Π» рСгулярно тСряСт связь ΠΏΠΎ сСти Π½Π° срок ΠΌΠ΅Π½Π΅Π΅ 15 сСкунд, ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ статус «ΡΠ΅Ρ‚ΡŒ Π½Π΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Π°». ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ€Π΅Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ Π² этом случаС Π½Π΅ проводится.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ восстановлСния

Когда ΡƒΠ·Π΅Π» кластСра опрСдСляСтся ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΠ°Π·Π°Π²ΡˆΠΈΠΉ, сСрвис ha-agent Π½Π° ΡƒΠ·Π»Π΅:

Когда мастСр ΠΏΠΎΠ»ΡƒΡ‡Π°Π΅Ρ‚ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎΠ± ΠΎΡ‚ΠΊΠ°Π·Π΅ ΡƒΠ·Π»Π° ΠΈΠ»ΠΈ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ опрСдСляСт ΡƒΠ·Π΅Π» ΠΊΠ°ΠΊ ΠΎΡ‚ΠΊΠ°Π·Π°Π²ΡˆΠΈΠΉ, запускаСтся ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ€Π΅Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ Π’Πœ. ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ Ρ€Π΅Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ Π’Πœ зависит ΠΎΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² запуска β€” Ρ‡Π΅ΠΌ Π²Ρ‹ΡˆΠ΅ Ρƒ Π’Πœ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π°, Ρ‚Π΅ΠΌ Ρ€Π°Π½ΡŒΡˆΠ΅ ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ пСрСнСсСна. ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Ρ€Π΅Π»ΠΎΠΊΠ°Ρ†ΠΈΠΈ запускаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Ρ‚Π΅Ρ… Π’Πœ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Π½Ρ‹ Π² настройках отказоустойчивости.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ отказоустойчивого кластСра

Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ отказоустойчивый кластСр:

НастройтС сСтСвоС Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅.

Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ сСрвСр ΠΌΠ΅Ρ‚Π°Π΄Π°Π½Π½Ρ‹Ρ… (MDS) Π½Π° ΡƒΠ·Π»Π΅ Ceph:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠšΠ»Π°ΡΡ‚Π΅Ρ€ для отказоустойчивости

МСня Π·ΠΎΠ²ΡƒΡ‚ ДСнис Π ΠΎΠΆΠΊΠΎΠ², я Ρ€Π°Π±ΠΎΡ‚Π°ΡŽ Π² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ «ГазинформсСрвис». Π£Ρ‡Π°ΡΡ‚Π²ΡƒΡŽ Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π΅ ΠΏΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π‘Π£Π‘Π” Jatoba. ΠœΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ свою Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π‘Π£Π‘Π” Π½Π° основС PostgreSQL – Ρ„ΠΎΡ€ΠΊ с Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΌΠΈ Π½Π°ΠΌ Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ.

Π‘Π£Π‘Π” Jatoba появилась Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ нашСго ΠΌΠ½ΠΎΠ³ΠΎΠ»Π΅Ρ‚Π½Π΅Π³ΠΎ ΠΎΠΏΡ‹Ρ‚Π° ΠΏΠΎ Π²Π½Π΅Π΄Ρ€Π΅Π½ΠΈΡŽ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΌ обСспСчСнии – Ρƒ нас Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с PostgreSQL ΠΈ MS SQL, Π½ΠΎ ΠΈ с Oracle, ΠΊΠ°ΠΊ с большой ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ Π‘Π£Π‘Π”, которая Π΄ΠΎΠ»Π³ΠΎΠ΅ врСмя являлась стандартом.

PostgreSQL, ΠΊΠ°ΠΊ Ρ‚Ρ€Π΅Π½Π΄ послСдних Π»Π΅Ρ‚, Π·Π°Ρ‚Ρ€ΠΎΠ½ΡƒΠ» нас Π½Π°ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ сильно, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π½Π°Ρ‡Π°Π»ΠΈ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Π½Π° Π΅Π³ΠΎ основС свою Π‘Π£Π‘Π”. ΠœΡ‹ Π½Π΅ просто ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Π½ΠΎ ΠΈ ковыряСмся Π²Π½ΡƒΡ‚Ρ€ΠΈ, Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π‘Π£Π‘Π” Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра ΠΈ дописываСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, которая Π½Π°ΠΌ Π½ΡƒΠΆΠ½Π°, Π½Π° языкС C.

Наша компания Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚Ρ‹, Π³Π΄Π΅ Π‘Π£Π‘Π” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅, ΠΈ ΠΌΡ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π»ΠΈ ряд Π·Π°Π΄Π°Ρ‡ ΠΏΠΎ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ² с иностранных Π‘Π£Π‘Π” Π½Π° PostgreSQL ΠΈ отСчСствСнныС Π‘Π£Π‘Π”. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΎΠΏΡ‹Ρ‚ ΠΌΠΈΠ³Ρ€Π°Ρ†ΠΈΠΈ Ρƒ нас большой – это ΡƒΠΆΠ΅ многолСтняя история.

Π‘Π½Π°Ρ‡Π°Π»Π° Π±ΡƒΠ΄Π΅Ρ‚ тСория – ΠΌΡ‹ вспомним ΠΈ ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΠΌ знания ΠΏΠΎ кластСризации, ΠΏΡ€ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π½Π°Ρ‚ΡŒ ΠΎ кластСрах ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для Ρ‚ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ ΠΈΠ½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

ΠŸΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ тСхничСскиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ для PostgreSQL, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΈΠ·ΠΎΠ±Ρ€Π΅Ρ‚Π°Ρ‚ΡŒ вСлосипСд ΠΈ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ сдСлал ΡƒΠΆΠ΅ ΠΊΡ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ.

РасскаТу ΠΎ ΠΏΠ°Ρ€Π΅ Π³Ρ€Π°Π±Π»Π΅ΠΉ, с ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‚ΠΎΠ»ΠΊΠ½ΡƒΡ‚ΡŒΡΡ Π² процСссС настройки.

БосрСдоточимся Π½Π° вопросС ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ доступности Π‘Π£Π‘Π”

Π§Ρ‚ΠΎ касаСтся отказоустойчивости, Ρ‚ΠΎ этот вопрос ΠΎΡ‡Π΅Π½ΡŒ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ ΠΈ Π³Π»ΡƒΠ±ΠΎΠΊΠΈΠΉ, поэтому с самого Π½Π°Ρ‡Π°Π»ΠΎ Π½Π°Π΄ΠΎ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ:

Π΅ΡΡ‚ΡŒ High Availability – высокая Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ;

ΠΈ Π΅ΡΡ‚ΡŒ Disaster Recovery – ΠΊΠ°ΠΊ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ систСму Π² случаС сбоСв. Бюда входят бэкапы, Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Ρ‹ восстановлСния ΠΈ Ρ‚.Π΄. – это Π±ΠΎΠ»Π΅Π΅ ΡˆΠΈΡ€ΠΎΠΊΠΈΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½, Ρ‡Π΅ΠΌ высокая Π΄ΠΎΡΡ‚ΡƒΠΏΠ½ΠΎΡΡ‚ΡŒ.

ΠœΡ‹ сСгодня Π½Π΅ Π±ΡƒΠ΄Π΅ΠΌ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎ disaster recovery, ΠΌΡ‹ обсудим Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ Ρ€Π°Π·Π΄Π΅Π» – High Availability.

Π‘ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния высокой доступности ΠΌΡ‹ сосрСдоточимся Π½Π° аспСктС Π‘Π£Π‘Π”. ΠŸΡ€ΠΎΠ±Π΅ΠΆΠΈΠΌΡΡ ΠΏΠΎ Π²Π΅Ρ€Ρ…Π°ΠΌ ΠΈ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ, Π²ΡΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ доступности, ΠΈ ΠΊΠ°ΠΊΠΈΠ΅ Π΅ΡΡ‚ΡŒ Π½ΡŽΠ°Π½ΡΡ‹.

Π’ΠΈΠ΄Ρ‹ кластСров

НачнСм с Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ кластСр ΠΈ Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½ Π½ΡƒΠΆΠ΅Π½?

БСйчас вопрос создания кластСра для отказоустойчивости Π½Π΅ Ρ‚Π°ΠΊ Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½, ΠΊΠ°ΠΊ 10 Π»Π΅Ρ‚ Π½Π°Π·Π°Π΄. БСйчас ΠΈ ΠΆΠ΅Π»Π΅Π·ΠΎ ΡƒΠΆΠ΅ стало ΠΌΠΎΡ‰Π½Π΅Π΅ ΠΈ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Π΅Π΅, ΠΈ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠ΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ отказоустойчивости Π΄Ρ€ΡƒΠ³ΠΈΠ΅, ΠΈ систСмы Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΏΠΎΡ‡Ρ‚ΠΈ Π²Π΅Π·Π΄Π΅ – ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² обСспСчСния Ρ€Π°Π·Π½ΠΎΠ³ΠΎ Ρ€ΠΎΠ΄Π° отказоустойчивости достаточноС количСство.

Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅, кластСр – это Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ»ΠΈ распрСдСлСнной систСмы, которая состоит ΠΈΠ· Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… связанных ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ². Π­Ρ‚ΠΈ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ вмСстС, ΠΊΠ°ΠΊ Π΅Π΄ΠΈΠ½Ρ‹ΠΉ рСсурс – ΠΈΠΌΠ΅Π½Π½ΠΎ это ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π³Ρ€ΡƒΠΏΠΏΡƒ ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€ΠΎΠ² кластСром.

Π‘Π°ΠΌΠΈ кластСры Π±Ρ‹Π²Π°ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅:

отказоустойчивыС кластСры – это ΠΈ Π΅ΡΡ‚ΡŒ кластСры высокой доступности (High-availability clusters, HA, кластСры высокой доступности);

кластСры с балансировкой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² зависимости ΠΎΡ‚ настроСк ΡƒΠΌΠ΅ΡŽΡ‚ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π²Ρ…ΠΎΠ΄ΡΡ‰ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ (входящих ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²) Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ сСрвСра (Load balancing clusters);

Π²Ρ‹Ρ‡ΠΈΡΠ»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ кластСры (High performance computing clusters, HPC);

систСмы распрСдСлСнных вычислСний.

Π”Π²Π° послСдних Ρ€Π°Π·Π΄Π΅Π»Π° нашСй Ρ‚Π΅ΠΌΡ‹ совсСм Π½Π΅ ΠΊΠ°ΡΠ°ΡŽΡ‚ΡΡ, Π½ΠΎ Π² стандартной классификации ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚.

Π’ΠΈΠΏΡ‹ отказоустойчивых кластСров

Π•ΡΡ‚ΡŒ Ρ‚Ρ€ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° обСспСчСния отказоустойчивости, Ρ‚Ρ€ΠΈ Ρ‚ΠΈΠΏΠ° отказоустойчивых кластСров:

с Ρ…ΠΎΠ»ΠΎΠ΄Π½Ρ‹ΠΌ Ρ€Π΅Π·Π΅Ρ€Π²ΠΎΠΌ ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ/пассивный (master\slave). Активный ΡƒΠ·Π΅Π» выполняСт запросы, Π° пассивный ΠΆΠ΄Π΅Ρ‚ Π΅Π³ΠΎ ΠΎΡ‚ΠΊΠ°Π·Π° ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Π² Ρ€Π°Π±ΠΎΡ‚Ρƒ, ΠΊΠΎΠ³Π΄Π° Ρ‚Π°ΠΊΠΎΠ²ΠΎΠΉ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚. ΠŸΡ€ΠΈΠΌΠ΅Ρ€ – Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Π΅ сСтСвыС соСдинСния, Π² частности, Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΡΠ²ΡΠ·ΡƒΡŽΡ‰Π΅Π³ΠΎ Π΄Π΅Ρ€Π΅Π²Π°. НапримСр, связка DRBD ΠΈ HeartBeat /Corosync. Π₯отя ΠΌΠ½ΠΎΠ³ΠΈΠ΅ говорят, Ρ‡Ρ‚ΠΎ это Π½Π΅ ΠΏΡ€ΠΎ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ, Π½ΠΎ это самый распространСнный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚. Если Ρƒ вас всС ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСно, ΠΈΠΌΠ΅Π½Π½ΠΎ master\slave-конфигурация позволяСт с ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΌ простоСм ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ обслуТиваниС ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ².

с горячим Ρ€Π΅Π·Π΅Ρ€Π²ΠΎΠΌ ΠΈΠ»ΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ/Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ (master\master) – ΠΊΠΎΠ³Π΄Π° всС сСрвСра Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² систСмС Ρ€Π°Π²Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ, всС ΡƒΠ·Π»Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ запросы, Π² случаС ΠΎΡ‚ΠΊΠ°Π·Π° ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° пСрСраспрСдСляСтся ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΡΡ‚Π°Π²ΡˆΠΈΠΌΠΈΡΡ. Π’ΠΎ Π΅ΡΡ‚ΡŒ кластСр распрСдСлСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ с ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΎΠΉ пСрСраспрСдСлСния запросов ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π΅. ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ – практичСски всС кластСрныС Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Microsoft Cluster Server ΠΈΠ»ΠΈ OpenSource-ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ OpenMosix. Π­Ρ‚Π° конфигурация ΠΈΠΌΠ΅Π΅Ρ‚ свои ΠΏΠ»ΡŽΡΡ‹ ΠΈ свои минусы, для Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… инсталляций Π‘Π£Π‘Π” ΠΎΠ½Π° Π²ΠΎΠΎΠ±Ρ‰Π΅ нСдоступна. Но Ρ‚Π°ΠΊΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ рСзСрвирования сущСствуСт, ΠΈ я ΠΏΠΎΡ‚ΠΎΠΌ расскаТу, Π³Π΄Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ Π² PostgreSQL Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΡ‚ΡŒ ΠΈ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ.

с ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½ΠΎΠΉ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒΡŽ, ΠΊΠΎΠ³Π΄Π° ΠΌΡ‹ спускаСмся Π½Π° ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ RAID ΠΈΠ»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅ΠΌ ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π½Π° Π°ΠΏΠΏΠ°Ρ€Π°Ρ‚Π½ΠΎΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅. ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ΡΡ Π² случаС, ΠΊΠΎΠ³Π΄Π° простаиваниС систСмы нСдопустимо. ВсС ΡƒΠ·Π»Ρ‹ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ запрос (Π»ΠΈΠ±ΠΎ части Π΅Π³ΠΎ, Π½ΠΎ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ достиТим ΠΈ ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ°Π·Π΅ любого ΡƒΠ·Π»Π°), ΠΈΠ· Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² бСрСтся любой. НСобходимо Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ€Π°Π·Π½Ρ‹Ρ… ΡƒΠ·Π»ΠΎΠ² всСгда Π±ΡƒΠ΄ΡƒΡ‚ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ (Π»ΠΈΠ±ΠΎ различия Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎ Π½Π΅ ΠΏΠΎΠ²Π»ΠΈΡΡŽΡ‚ Π½Π° Π΄Π°Π»ΡŒΠ½Π΅ΠΉΡˆΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ). ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ – RAID ΠΈ Triple modular redundancy. К самой Π‘Π£Π‘Π” это ΠΈΠΌΠ΅Π΅Ρ‚ опосрСдованноС ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΠ΅, Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Π²ΠΈΠ΄ классификации срСди Ρ‚ΠΈΠΏΠΎΠ² кластСров присутствуСт.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

И послСдний тСорСтичСский ΠΌΠΎΠΌΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΏΠΎΠΌΡΠ½ΡƒΡ‚ΡŒ – Π² Ρ€Π°Π·Π½Ρ‹Ρ… сСмСйствах Π‘Π£Π‘Π” Π΅ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ различия Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… Π²ΠΈΠ΄ΠΎΠ² кластСров ΠΏΠΎ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ ΠΈ использованию рСсурсов.

Shared nothing – конфигурация, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· сСрвСров Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ сам ΠΏΠΎ сСбС, Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ сСрвСра Π΅ΡΡ‚ΡŒ собствСнный дисковый рСсурс, Π³Π΄Π΅ ΠΎΠ½ Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎ Π²Π΅Π΄Π΅Ρ‚ всС, Ρ‡Ρ‚ΠΎ Π΅ΠΌΡƒ Π½ΡƒΠΆΠ½ΠΎ. Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ собой Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ дСлят, Π½ΠΎ ΠΎΠ½ΠΈ ΡƒΠΌΠ΅ΡŽΡ‚ ΠΌΠ΅ΠΆΠ΄Ρƒ собой ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΉ схСмС Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ, пСрСдавая Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ.

Shared disk – конфигурация, ΠΊΠΎΠ³Π΄Π° нСсколько ΡƒΠ·Π»ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ΄Π½ΠΈΠΌ диском ΠΈ ΡƒΠΌΠ΅ΡŽΡ‚ консистСнтно ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° этом дискС.

Shared memory – конфигурация, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ ΡˆΠ°Ρ€ΠΈΡ‚ΡŒ ΠΏΠ°ΠΌΡΡ‚ΡŒ ΠΈ процСссоры. Π­Ρ‚ΠΎ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎ Π² MS SQL ΠΈ PostgreSQL, Π½ΠΎ Π² ΠΎΠ±Ρ‰Π΅ΠΉ классификации этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ кластСра Ρ‚ΠΎΠΆΠ΅ присутствуСт.

Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, Π΅ΡΡ‚ΡŒ систСмы с Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΈ Π½Π΅Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ рСсурсов, ΠΊΠΎΠ³Π΄Π° рСсурс (Π² частности, дисковая подсистСма) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΌ сСрвСрС Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎ ΠΈΠ»ΠΈ Π½Π΅Π°Π²Ρ‚ΠΎΠ½ΠΎΠΌΠ½ΠΎ.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ кластСризации Π² MS SQL Server

Π― Π½Π΅ Π±ΡƒΠ΄Ρƒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈ, Π½Π΅ Π±ΡƒΠ΄Ρƒ ΡƒΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Π±ΠΈΡ‚Π²Ρƒ MS SQL ΠΈ PostgreSQL – я сначала напомню, ΠΊΠ°ΠΊΠΈΠ΅ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ кластСризации Π΅ΡΡ‚ΡŒ Π² Microsoft SQL Server ΠΈ ΠΏΠΎΡ‚ΠΎΠΌ Π±ΡƒΠ΄Π΅ΠΌ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎ PostgreSQL.

Π’Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅, Π² Ρ…ΠΎΠ΄Π΅ Π΄ΠΎΠΊΠ»Π°Π΄Π° ΠΌΡ‹ рассмотрим ΠΎΠ±Π΅ эти систСмы с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния основных аспСктов. А ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΠΈ Π²Ρ‹ сами смоТСтС провСсти. И Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΌΡ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ это ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Напомню, Ρ‡Ρ‚ΠΎ основныС ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ обСспСчСния отказоустойчивости Π² кластСрС Π‘Π£Π‘Π” MS SQL – это Microsoft Windows Server Failover Clustering (WSFC) ΠΈ тСхнология AlwaysOn.

ВСхнология AlwaysOn прСдставляСт собой ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ нСпосрСдствСнно Π² ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΡƒΡŽ систСму Π³ΠΈΠ±ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ обСспСчиваСт высокий ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ доступности ΠΈ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎΠ³ΠΎ восстановлСния.

AlwaysOn ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ‚Ρ€ΠΈ основных Ρ€Π΅ΠΆΠΈΠΌΠ° доступности:

ПослСдний Ρ€Π΅ΠΆΠΈΠΌ Π½Π°ΠΌ совсСм Π½Π΅ интСрСсСн, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ Π½Π΅ Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅, Π½ΠΎ асинхронная ΠΈ синхронная фиксация – это ΠΏΡ€ΠΎ нас.

Π—Π΄Π΅ΡΡŒ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ нюанс Π² Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ кластСризации: Ρ‡Π΅ΠΌ эти Π΄Π²Π° Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΌΠ΅ΠΆΠ΄Ρƒ собой – ΠΏΡ€ΠΈΡ‡Π΅ΠΌ, ΠΎΠ½ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ ΠΊΠ°ΠΊ Π² сСмСйствС MS SQL, Ρ‚Π°ΠΊ ΠΈ Π² PostgreSQL.

Asynchronous-commit mode (асинхронная фиксация) – это Ρ€Π΅ΠΆΠΈΠΌ, ΠΊΠΎΠ³Π΄Π° пСрвичная Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° фиксируСт Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Π½Π΅ оТидая подтвСрТдСния Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ вторичная Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° записала ΠΆΡƒΡ€Π½Π°Π» Π½Π° диск. ΠŸΡ€ΠΈ этом каТдая вторичная Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ асинхронной фиксации – Π΅ΠΉ пСрСдаСтся информация, ΠΈ ΡƒΠΆΠ΅ Π½Π΅Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ происходит дальшС. ВмСсто оТидания запись ΠΆΡƒΡ€Π½Π°Π»Π° сразу помСщаСтся Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½ΠΎΠΉ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ, ΠΈ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ отправляСтся ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π“Π»Π°Π²Π½ΠΎΠ΅, Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΊ сСбС ΠΈ Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΎΠΈΠ½Ρ„ΠΎΡ€ΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ сСрвСр ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ транзакция Π±Ρ‹Π»Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°. Π—Π° счСт этого пСрвичная Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠ΅Ρ‚ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΡƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² Π±Π°Π·Π°Ρ… Π΄Π°Π½Π½Ρ‹Ρ…-получатСлях, Π½ΠΎ позволяСт ΠΈΠΌ Π½Π΅ ΡƒΡΠΏΠ΅Π²Π°Ρ‚ΡŒ Π·Π° Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…-источниками, Ρ‡Ρ‚ΠΎ создаСт риск Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΉ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Π΄Π°Π½Π½Ρ‹Ρ….

Synchronous-commit mode (синхронная фиксация) – это Ρ€Π΅ΠΆΠΈΠΌ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ Ρ„ΠΈΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, пСрвичная Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° ΠΆΠ΄Π΅Ρ‚, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вторичная Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΠ»Π°, Ρ‡Ρ‚ΠΎ запись ΠΆΡƒΡ€Π½Π°Π»Π° Π½Π° диск Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π°. Π’ этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΎΠΆΠΈΠ΄Π°Π½ΠΈΠ΅, ΠΈ Ρ‚Π°ΠΉΠΌΠΈΠ½Π³ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π±ΡƒΠ΄ΡƒΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ. Но послС синхронизации Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…-получатСля с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…-источником зафиксированныС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Ρ‹.

Π‘ ΠΎΠ΄Π½ΠΎΠΉ стороны, ΠΏΡ€ΠΈ асинхронной фиксации Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΡ‚ΡŒ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ, Π½ΠΎ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, Ссли Ρƒ вас Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ΅ транзакция Π½Π΅ Π±Ρ‹Π»Π° ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π°, Ρ‚ΠΎ Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ эти Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли Ρƒ вас останутся ΠΆΡƒΡ€Π½Π°Π»Ρ‹ с основного сСрвСра. Π­Ρ‚ΠΎ ΠΈ Π΅ΡΡ‚ΡŒ нюанс использования ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° асинхронной Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ – Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ скорости Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ, Π½ΠΎ Π΅ΡΡ‚ΡŒ риски.

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ 1Π‘ – это систСма с высокой Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, ΠΌΡ‹, с ΠΎΠ΄Π½ΠΎΠΉ стороны, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ асинхронный Ρ€Π΅ΠΆΠΈΠΌ, Π½ΠΎ с Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, это зависит ΠΎΡ‚ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΈ Ρ‚ΠΎΠ³ΠΎ, насколько Ρ‚Π°ΠΉΠΌΠΈΠ½Π³ΠΈ ΠΈ Π»Π°Π³ΠΈ Π² Ρ†Π΅Π»ΠΎΠΌ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

ΠŸΡ€ΠΈ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ кластСра Π½Π° нСсколько ΡƒΠ·Π»ΠΎΠ² Ρƒ нас Π΅ΡΡ‚ΡŒ понятиС Β«Π“Ρ€ΡƒΠΏΠΏΠ° доступности» – это Π³Ρ€ΡƒΠΏΠΏΠ° Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ…, для ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΎΡ‚ΠΊΠ°Π·Π° выполняСтся ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Π“Ρ€ΡƒΠΏΠΏΡƒ доступности для чтСния ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Π’ этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ наши Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° read-only, сниТая Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ с основной мастСр-Π±Π°Π·Ρ‹, позволяя Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² Π½Π° Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½Ρ‹Π΅ Π±Π°Π·Ρ‹. ΠŸΡ€ΠΈ этом основной ΠΏΠ΅Ρ€Π²ΠΈΡ‡Π½Ρ‹ΠΉ ΡƒΠ·Π΅Π» – СдинствСнный, ΠΊΡ‚ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ read/write.

Π—Π΄Π΅ΡΡŒ вопрос отказоустойчивости Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π΅Π½, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅ΠΌ для распрСдСлСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.

ΠΡŽΠ°Π½ΡΡ‹ ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ кластСра отказоустойчивости Π² MS SQL Server

Π•Ρ‰Π΅ Ρ€Π°Π· ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΠΌ основныС Π½ΡŽΠ°Π½ΡΡ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ кластСра отказоустойчивости Π² SQL Server.

Π Π΅ΠΆΠΈΠΌ доступности – свойство ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ. Он опрСдСляСт, ΠΆΠ΄Π΅Ρ‚ Π»ΠΈ пСрвичная Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° ΠΏΠ΅Ρ€Π΅Π΄ фиксациСй Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΎΠΉ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ΅ записались Π² ΠΆΡƒΡ€Π½Π°Π» Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π° диск.

Π“Ρ€ΡƒΠΏΠΏΡ‹ доступности AlwaysOn ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π΄Π²Π° Ρ€Π΅ΠΆΠΈΠΌΠ°: Ρ€Π΅ΠΆΠΈΠΌ синхронной ΠΈ асинхронной фиксации.

Π’ этих Π΄Π²ΡƒΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… доступности Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ограничСния:

ΠŸΡ€ΠΈ асинхронной фиксации Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ рСсурс Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ здСсь ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ потСря Π΄Π°Π½Π½Ρ‹Ρ… – ΠΈΠ·-Π·Π° Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ основной сСрвСр Π½Π΅ успСл ΡΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊΡƒΡŽ-Ρ‚ΠΎ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΌΡƒ.

Π’ синхронном commit mode ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ рСсурс Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΊΠ°ΠΊ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ρ‚Π°ΠΊ ΠΈ автоматичСски. ΠŸΡ€ΠΈ этом Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ практичСски ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ Π΄Π°Π½Π½Ρ‹Ρ…. ΠŸΠΎΡ‚Π΅Ρ€Ρ Π΄Π°Π½Π½Ρ‹Ρ… здСсь практичСски Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π°, хотя ΠΈΠ·-Π·Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… тСхничСских нюансов ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡ‚Π΅Ρ€ΠΈ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… сСрвСрах.

Π’Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ экзСмпляры отказоустойчивого кластСра MS SQL Server Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ автоматичСский ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ рСсурс с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ Π³Ρ€ΡƒΠΏΠΏ доступности, поэтому любая Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ° доступности, размСщСнная Π² Π½ΠΈΡ…, Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ настроСна для ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄Π° Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ рСсурс Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΡ‹ кластСризации Π² PostgreSQL

Π’ PostgreSQL Π·ΠΎΠΎΠΏΠ°Ρ€ΠΊ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ для кластСризации Π³ΠΎΡ€Π°Π·Π΄ΠΎ большС – сначала ΠΌΡ‹ ΠΏΡ€ΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ тСхничСскиС Π½ΡŽΠ°Π½ΡΡ‹, Π° Π² ΠΊΠΎΠ½Ρ†Π΅ ΠΎΠ±ΠΎΠ±Ρ‰ΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρƒ нас Π΅ΡΡ‚ΡŒ.

ЛогичСская рСпликация

Π’ PostgreSQL Π΅ΡΡ‚ΡŒ логичСская ΠΈ физичСская Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

НачнСм с логичСской Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

ΠŸΠ»ΡŽΡΡ‹ логичСской Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

ЛогичСская рСпликация ΡƒΠΌΠ΅Π΅Ρ‚ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ вСрсиями ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°ΠΌΠΈ PostgreSQL. Π•Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² случаС, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΎΠ΄Π½ΠΎΠ³ΠΎ комплСкса ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Ρ€Π°Π·Π½Ρ‹Π΅ вСрсии Postgres, ΠΈ Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ постСпСнно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π°ΠΏΠ³Ρ€Π΅ΠΉΠ΄. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях логичСская рСпликация позволяСт постСпСнно ΠΎΠ±Π½ΠΎΠ²Π»ΡΡ‚ΡŒ вСрсии ΠΈ Π΄ΠΎΠΉΡ‚ΠΈ Π΄ΠΎ Π½ΡƒΠΆΠ½ΠΎΠΉ.

МоТно Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ всю Π‘Π£Π‘Π”, Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вас ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚. НапримСр, ΠΈΠ½ΠΎΠ³Π΄Π° ΠΆΡƒΡ€Π½Π°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ какая-Ρ‚ΠΎ отладочная информация ΡΠ²Π»ΡΡŽΡ‚ΡΡ для систСмы ΠΈΠ·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹ΠΌΠΈ, ΠΈΡ… ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Ρ€Π΅ΠΏΠ»ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Π’ этих случаях Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вас ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡŽΡ‚.

Π’Π°ΠΊ ΠΊΠ°ΠΊ 1Π‘ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π² Π‘Π£Π‘Π” ΠΌΠ½ΠΎΠ³ΠΎ динамичСских ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², Ρ‚ΠΎ логичСская рСпликация с Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния 1Π‘ ΠΌΠ΅Π½Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Π°, Ρ‡Π΅ΠΌ физичСская рСпликация, которая Ρ‚Π°ΠΊΠΆΠ΅ присутствуСт для PostgreSQL.

ΠœΠΈΠ½ΡƒΡΡ‹ логичСской Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½Π½ΡƒΡŽ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π΄Π²ΡƒΡ…Ρ„Π°Π·Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΌΠΈΡ‚ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π»ΠΎΠ³ΠΈΠΊΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΎΠ² Π·Π°Ρ‚Ρ€ΡƒΠ΄Π½ΠΈΡ‚Π΅Π»Π΅Π½.

Π’Π°ΠΊΠΆΠ΅ это Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π΄Π°Π΅Ρ‚ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° ЦПУ, поэтому Ссли Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π»ΠΎΠ³ΠΈΡ‡Π΅ΡΠΊΡƒΡŽ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ, Π±ΡƒΠ΄ΡŒΡ‚Π΅ Π³ΠΎΡ‚ΠΎΠ²Ρ‹, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… сСрвСров Π΅Ρ‰Π΅ большС просядСт.

Из ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΏΠΎ логичСской Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ: Pglogical, Slony ΠΈ ΠΌΠ΅Π½Π΅Π΅ извСстныС – Londiste (Skytools) ΠΈ Bucardo.

ЀизичСская рСпликация

ЀизичСская рСпликация Π² сСмСйствС Postgres ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π±ΠΎΠ»Π΅Π΅ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠ»ΡŽΡΡ‹:

ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ Π½Π°ΠΊΠ»Π°Π΄Π½Ρ‹Π΅ расходы Π½Π° использованиС рСсурсов.

Π›Π΅Π³ΠΊΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒ, Π½ΠΎ всС ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ. Иногда для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Π‘Π£Π‘Π” лСгкая настройка – это час Ρ€Π°Π±ΠΎΡ‚Ρ‹, Π° для Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² ΠΏΡ€ΠΈΠΊΠ»Π°Π΄Π½Ρ‹Ρ… систСм это ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ – Π°Π΄. Но ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ логичСской Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ здСсь явно Π±ΡƒΠ΄Π΅Ρ‚ мСньшС Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΠΎΡ‚Ρ€Π°Ρ‡Π΅Π½ΠΎ.

ΠœΠΈΠ½ΡƒΡΡ‹ этого Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ:

всС слСйв-Standby-сСрвСра Π±ΡƒΠ΄ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π½Π° Ρ‡Ρ‚Π΅Π½ΠΈΠ΅. Если Ρƒ вас Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ с двумя read/write, Ρ‚ΠΎ это ΡƒΠΆΠ΅ другая тСхнология.

НС ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ вСрсиями ΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°ΠΌΠΈ ΠΏΠΎ ΠΎΠ±ΠΎΡ€ΡƒΠ΄ΠΎΠ²Π°Π½ΠΈΡŽ, ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½Π°Π΄ΠΎ ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ всС сСрвСра Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π² ΠΎΠ΄Π½ΠΎΠΉ вСрсии. Они ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π² Ρ€Π°Π·Π½Ρ‹Ρ… ΠΌΠΈΠ½ΠΎΡ€Π½Ρ‹Ρ… вСрсиях, Π½ΠΎ ΠΌΠ°ΠΆΠΎΡ€Π½Ρ‹Π΅ вСрсии Ρ‚ΠΎΡ‡Π½ΠΎ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ, ΠΈΠ½Π°Ρ‡Π΅ Π½Π΅ смоТСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ.

Π’Ρ‹ Π½Π΅ смоТСтС ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒΡΡ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ: Π»ΠΈΠ±ΠΎ вся Π‘Π£Π‘Π”, Π»ΠΈΠ±ΠΎ Π½ΠΈΡ‡Π΅Π³ΠΎ.

Π‘Ρ…Π΅ΠΌΠ° физичСской Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π² PostgreSQL

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚ эти ограничСния?

Π’ PostgreSQL Ρƒ нас Π΅ΡΡ‚ΡŒ основная Primary Node – мастСр-Π±Π°Π·Π°, которая Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° read/write. Она ΠΏΠΈΡˆΠ΅Ρ‚ ΠΆΡƒΡ€Π½Π°Π» прСдзаписи – Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΡ‹Π΅ WAL-Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТат ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΡƒΡŽ Π‘Π£Π‘Π” Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ, ΠΈ нСсут Π² сСбС ΠΆΡƒΡ€Π½Π°Π» Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ. Благодаря этим WAL-Ρ„Π°ΠΉΠ»Π°ΠΌ ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ слСйв-Π±Π°Π·Ρ‹ (Standby Node)/

Standby Node Π½Π° PostgreSQL ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· WAL-Ρ„Π°ΠΉΠ»ΠΎΠ², обновляя свои Π΄Π°Π½Π½Ρ‹Π΅ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС, Ρ‚Π΅ΠΌ самым проводя Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ.

ΠœΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ ΠΏΠΎΡ…ΠΎΠΆΠΈΠΉ, ΠΎΠ½ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² PostgreSQL, Π½ΠΎ здСсь ΠΎΠ½ ΠΎΠΏΠ΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΡƒΡ€Π½Π°Π»Π°ΠΌΠΈ прСдзаписи (WAL-Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ).

Π’ PostgreSQL Π½Π°Π΄ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ запись ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² ΠΆΡƒΡ€Π½Π°Π» прСдзаписи, Π° Π·Π°Ρ‚Π΅ΠΌ Π² Ρ„Π°ΠΉΠ» Π΄Π°Π½Π½Ρ‹Ρ…. Π­Ρ‚ΠΎ позволяСт ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ.

Π’Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ PostgreSQL

Π’ PostgreSQL Π΅ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ:

синхронная ΠΈ асинхронная рСпликация;

One-directional ΠΈ Bi-directional.

Bi-directional Π² PostgreSQL – это Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ кластСризации с горячим Ρ€Π΅Π·Π΅Ρ€Π²ΠΎΠΌ master/master. Π­Ρ‚ΠΎ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΈΠΌ извСстно, тСхнология Π½Π΅ Ρ‚Π°ΠΊ ΡˆΠΈΡ€ΠΎΠΊΠΎ распространСна. Для этого Π΅ΡΡ‚ΡŒ свои ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹, Π½ΠΎ Ρ‚Π°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°Ρ‡Π΅ ΠΎΠ½Π° сущСствуСт.

Бинхронная ΠΈ асинхронная Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π·Π½Π°ΠΊΠΎΠΌΡ‹ ΠΏΠΎΡ‡Ρ‚ΠΈ всСм.

Каскадная рСпликация – это ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ с ΠΎΠ΄Π½ΠΎΠΉ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠΈ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‰Π΅ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Π°ΠΊ Π΄Π°Π»Π΅Π΅. Часто Π½Π° мастСр Π² высоконагруТСнных систСмах нСльзя ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ нСсколько слСйвов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Π°ΠΌ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ΡŒ ΠΎΠ±ΡΠ»ΡƒΠΆΠΈΠ²Π°Ρ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ read-only, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΎΡ‚ ΠΊΠ°Π½Π°Π» мастСр-Π±Π°Π·Ρ‹ ΠΊ ΠΌΠ½ΠΎΠ³ΠΈΠΌ слСйвам Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒΡΡ ΠΈΠ·-Π·Π° дублирования ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ слСйва.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ ΠΈΠ½ΠΎΠ³Π΄Π° Π² высоконагруТСнных систСмах цСлСсообразно ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ слСйв, Π° с Π½Π΅Π³ΠΎ – Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠ΅. Π—Π΄Π΅ΡΡŒ Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΈ Π°ΠΊΡ‚ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ, Π½Π°Π΄ΠΎ это ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΈ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, слСйв со слСйва Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Ρ‚Π°ΠΊ ΠΆΠ΅ Π°ΠΊΡ‚ΡƒΠ°Π»Π΅Π½, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ слСйв, Π½ΠΎ это позволяСт Ρ€Π°Π·Π³Ρ€ΡƒΠΆΠ°Ρ‚ΡŒ ΠΊΠ°Π½Π°Π»Ρ‹ ΠΈ основной мастСр, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Ρ„Π°ΠΊΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ Π½Π°Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ°Π½Π°Π»Ρ‹, Π½ΠΎ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ рСсурсы – Π²Ρ‹Π΄Π΅Π»Π΅Π½ΠΈΠ΅ памяти ΠΈ Ρ‚.Π΄., Ρ‡Ρ‚ΠΎ Π½Π΅Π³Π°Ρ‚ΠΈΠ²Π½ΠΎ влияСт Π½Π° Ρ€Π°Π±ΠΎΡ‚Ρƒ ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π°.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ кластСра master/slave Π½Π° PostgreSQL

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ Π² сСмСйствС Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… PostgreSQL, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡŽ master/slave – кластСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ для отказоустойчивости.

Π’ ΠΏΠ΅Ρ€Π²ΡƒΡŽ ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ мастСр – ΠΌΡ‹ всСгда Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ с мастСра, нСльзя просто Ρ€Π°Π·Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒ слСйв ΠΈ ΡΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС Π½Π° слСйвС.

Для получСния слСйва Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΡƒΡŽ бэкап-копию Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ мастСра. Π­Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, ΠΎΠ½Π° Π½Π° ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π΅ всСгда Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ приятна. Π’ любом случаС, Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ шагом послС настройки мастСра Π²Π°ΠΌ придСтся Π΄Π΅Π»Π°Ρ‚ΡŒ слСйв-копию.

ΠŸΠΎΡ‚ΠΎΠΌ эту слСйв-standby-копию Π½ΡƒΠΆΠ½ΠΎ Π΄ΠΎΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎΠΉ настройки, Ссли Π²Ρ‹ запускаСтС слСйв-Π±Π°Π·Ρƒ, Ρ‚ΠΎ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° Π΄ΠΎΠ½Π°ΠΊΠ°Ρ‚Π° WAL-Ρ„Π°ΠΉΠ»ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠ΄Ρ‚ΠΈ стандартно.

Π’Ρ‹ это ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, посмотрСв стандартныС вьюшки ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ мСроприятия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ я ΠΏΠΎΠΊΠ°ΠΆΡƒ Ρ‡ΡƒΡ‚ΡŒ ΠΏΠΎΠ·ΠΆΠ΅.

ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ MASTER server

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Для конфигурирования мастСр-сСрвСра Π² ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΌ порядкС Π½ΡƒΠΆΠ½ΠΎ:

Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· Π½Π΅Π³ΠΎ Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ запросом:
CREATE ROLE replica WITH LOGIN REPLICATION PASSWORD ‘…’;
НСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ этот шаг я Π½Π°Π·Π²Π°Π» ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ, Π΅Π³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π΅ Π΄Π΅Π»Π°Ρ‚ΡŒ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартного ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ PostgreSQL. Но я ΡΡ‡ΠΈΡ‚Π°ΡŽ, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Π²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ, Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ°Ρ€ΠΎΠ»ΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ здСсь ΠΈΠ΄Π΅Ρ‚ Ρ€Π΅Ρ‡ΡŒ ΠΎ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя Π‘Π£Π‘Π”. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ этого ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для Π΅Π³ΠΎ доступа ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ, Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½Π΅Π³ΠΎ, прСдустановлСнного Π² PostgreSQL ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π² Π‘Π£Π‘Π” всСгда присутствуСт. Мои Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ – создавайтС ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ для конфигурирования Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹Ρ… сСрвСров.

Π’ postgresql.conf ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ wal_level ΠΈ количСство процСссов ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ max_wal_senders:
wal_level=hot_standby
max_wal_senders > 0

Π’ pg_hba.conf ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΡ‹ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ создали, Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅:
host replication username client_addr/mask authtype
Π’ качСствС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Π»ΡƒΡ‡ΡˆΠ΅ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ md5:
host replication replica 192.168.1.0/32 md5
НСльзя ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ trust, Ρ…ΠΎΡ‚ΡŒ это ΠΈ ΡƒΠΏΡ€ΠΎΡ‰Π°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρƒ. ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ слСйв-сСрвСр – это Π²Ρ‚ΠΎΡ€ΠΎΠΉ сСрвСр, для Π½Π΅Π³ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ сСтСвоС взаимодСйствиС, поэтому Π΄Π°ΠΆΠ΅ Ссли сСрвСры Ρƒ вас Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ сСгмСнтС сСти, всС-Ρ‚Π°ΠΊΠΈ цСлСсообразно ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡŽ.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΊΠΎΠΏΠΈΠΈ Π‘Π”

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

ИспользованиС этой ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ сводится ΠΊ Ρ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π²Π²ΠΎΠ΄ΠΈΡ‚Π΅ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈ ΠΆΠ΄Π΅Ρ‚Π΅, ΠΊΠΎΠ³Π΄Π° ΠΆΠ΅ Ρƒ вас Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΌ сСрвСрС создаСтся полная копия Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π½Π°Ρ‡Π°Π»Π° создания бэкапа.

Но Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ этой ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Ρ‚Ρ€ΡƒΠ΄ΠΎΠ΅ΠΌΠΊΠΎ ΠΈ Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ часов – Ρƒ нас Π±Ρ‹Π»ΠΈ случаи, ΠΊΠΎΠ³Π΄Π° созданиС ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ слСйва Π·Π°Π½ΠΈΠΌΠ°Π»ΠΎ дСсятки часов. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ сначала стоит ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊ это ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

НапримСр, ΠΌΠΎΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π°Ρ€Ρ…ΠΈΠ²Π°Ρ†ΠΈΡŽ, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ самого Ρ„Π°ΠΉΠ»Π° ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠ΅ΠΌΡ‹ – для этого ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΈΠ· ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм Linux:

Lbzip2 – bzip2-сТатиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ Π°Ρ€Ρ…ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² нСсколько ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ² с использованиСм Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ядСр, Ссли Π½ΡƒΠΆΠ½ΠΎ Π·Π°ΠΏΠ°ΠΊΠΎΠ²Π°Ρ‚ΡŒ быстрСС (Π°Π½Π°Π»ΠΎΠ³ΠΈ: pbzip2, pigz);

Ionice – Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠ° класса ΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° для ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ° Π²Π²ΠΎΠ΄Π°-Π²Ρ‹Π²ΠΎΠ΄Π° (Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ nice для Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° процСссов для CPU ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‰ΠΈΠΊΠ°);

pv – ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅ΠΌ объСм ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Ρ‡Π΅Ρ€Π΅Π· pipe ΠΈ Ρ‚.ΠΎ. ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ для ограничСния объСма ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Π΅ΠΌΡ‹Ρ… Π΄Π°Π½Π½Ρ‹Ρ… Π² Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ (Π°Π½Π°Π»ΠΎΠ³ β€” throttle);

tar – ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° архивирования, Π½ΡƒΠΆΠ½Π° для Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ†Π΅Π»Π΅ΠΉ ΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ сТатиС bzip2/gzip;

tee – Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ с stdin c записью Π² stdout ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ„Π°ΠΉΠ»Ρ‹ (являСтся Ρ‡Π°ΡΡ‚ΡŒΡŽ coreutils);

gpg – ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ‚ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅ бэкапа Π½Π° слСйв-сСрвСра.

Π’Π΅, ΠΊΡ‚ΠΎ Π·Π½Π°ΠΊΠΎΠΌ с Linux, эти ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ Π·Π½Π°ΡŽΡ‚. Π’ сСмСйствС Windows этот Π½Π°Π±ΠΎΡ€ ограничиваСтся, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ – всС зависит ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Π² ΠΊΠ°ΠΊΠΎΠΌ контСкстС Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Π“Ρ€Π°Π±Π»ΠΈ ΠΏΡ€ΠΈ использовании стандартной ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ pg_basebackup.

НС Π·Π°Π±Ρ‹Π²Π°ΠΉΡ‚Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΌ Ρ„Π°ΠΉΠ»Π΅ postgresql.conf ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… я рассказывал:
wal_level=hot_standby
max_wal_senders > 0

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ создания бэкапа ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ.

Ни Π² ΠΊΠΎΠ΅ΠΌ случаС Π½Π΅ ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π΅ Π½Π° Linux для ускорСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ PostgreSQL Π² настройках fsync = off. Π­Ρ‚ΠΎ извСстныС Π³Ρ€Π°Π±Π»ΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ ΠΎΡ‚Π½ΠΎΡˆΠ΅Π½ΠΈΡ ΠΊ pg_basebackup, Π½ΠΎ люди ΠΈΠ½ΠΎΠ³Π΄Π° ΠΌΠ΅Π½ΡΡŽΡ‚ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€, ΠΏΠΎΡ‚ΠΎΠΌ Π² ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ‚ΠΈΠ²Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ нСприятная ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½ΡΠΈΡΡ‚Π΅Π½Ρ‚Π½ΠΎΡΡ‚ΡŒ Π±Π°Π·Ρ‹ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ бэкапа – ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ история.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

ВсС ΠΌΡ‹ Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ pg_basebackup Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ особСнно быстро. Π•Π΅ плюс Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° Π²Ρ…ΠΎΠ΄ΠΈΡ‚ Π² дистрибутив PostgreSQL ΠΈ развиваСтся ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ… – всС Π½ΠΎΠ²ΡˆΠ΅ΡΡ‚Π²Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΡΠ²Π»ΡΡŽΡ‚ΡΡ Π² Π‘Π£Π‘Π”, Ρ‚Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ΡΡ Π² pg_basebackup. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅, ΠΎΠ½Π° Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ качСствСнно протСстирована для соотвСтствия Π½ΠΎΠ²Ρ‹ΠΌ возмоТностям PostgreSQL. Но ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° ΡƒΠΆΠ΅ Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ новая, ΠΎΡ‚ΡΡŽΠ΄Π° Π΅Π΅ минусы Π² ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ.

Для создания слСйва ΠΈ бэкапа ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ pg_basebackup, Π΅ΡΡ‚ΡŒ ΠΈ совсСм простой Π²Π°Ρ€ΠΈΠ°Π½Ρ‚:

Π·Π°Ρ‚Π΅ΠΌ пСрСнСсти Ρ„Π°ΠΉΠ»Ρ‹ Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ копию Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ОБ;

ΠΏΠΎΡ‚ΠΎΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ pg_stop_backup();

ΠΈ Π΄ΠΎΠ½Π°ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ Ρ‚Π΅ WAL-Ρ„Π°ΠΉΠ»Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±Ρ‹Π»ΠΈ созданы Π² процСссС.

ΠŸΠΎΠ΄Ρ‡Π΅Ρ€ΠΊΠ½Ρƒ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ просто Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ слСйв-Π±Π°Π·Ρƒ, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π²Ρ‹ это сдСлаСтС – это вашС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

ΠšΡ€ΠΎΠΌΠ΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ pg_basebackup для создания бэкапов Π΅ΡΡ‚ΡŒ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ pg_probackup, wal-g (ext wal-e), barman, PGBACKREST.

МногиС Π·Π½Π°ΡŽΡ‚ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ pg_probackup – Π΅Π΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΈ Π²Ρ‹ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ наши отСчСствСнныС ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ΠΈΠ· Postgres Professional.

Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° wal-g слоТнСС, ΠΎΠ½Π° ΡƒΠΌΠ΅Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с ΠΎΠ±Π»Π°Ρ‡Π½Ρ‹ΠΌΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ – Ρ‚Π°ΠΌ Π΄Ρ€ΡƒΠ³ΠΎΠΉ тСхнологичСский стСк. ΠŸΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²Π΅Π½Π½ΠΈΠΊΠΎΠΌ этой ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π±Ρ‹Π»Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° wal-e, Π΅Π΅ Ρ€Π°Π·Π²ΠΈΡ‚ΠΈΠ΅ ΠΏΠΎΠ΄Ρ…Π²Π°Ρ‚ΠΈΠ»ΠΈ наши отСчСствСнныС ΠΊΠΎΠ»Π»Π΅Π³ΠΈ ΠΈΠ· ЯндСкса ΠΈ сдСлали Π½ΠΎΠ²ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅.

Π•ΡΡ‚ΡŒ Π΅Ρ‰Π΅ PGBACKREST.

И Π΅ΡΡ‚ΡŒ barman – ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° со своим синтаксисом, плюсами ΠΈ минусами.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· вновь созданных ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ бэкап, ΠΈΠ½ΠΎΠ³Π΄Π° это Ρ‚ΠΎΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ.

Как Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Ρ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Postgre, Π²Ρ‹ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ pg_basebackup вас Π½Π΅ устраиваСт, Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ большСС. ΠœΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠ³ΡƒΠ³Π»ΠΈΡ‚ΡŒ, ΠΏΠΎΠΈΠ·ΡƒΡ‡Π°Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ для бэкапов.

Донастройка STANDBY

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

ПослСдний этап – донастройка STANDBY-Π±Π°Π·Ρ‹. Π’Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ конфигурирования Π² мастСрС ΠΈ Π½Π° слСйвС ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚.

Π’ мастСрС Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ стСндбай сСрвСр:
hot_standby = on

На слСйвС Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ standby_mode:
standby_mode = on

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ wal_receiver_timeout влияСт Π½Π° Ρ‚ΠΎ, Ρ‡Π΅Ρ€Π΅Π· ΠΊΠ°ΠΊΠΎΠΉ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ для ΠΏΡ€ΠΈΠ΅ΠΌΠ° WAL-Ρ„Π°ΠΉΠ»ΠΎΠ² ΡƒΠΆΠ΅ истСк.

Π’ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Postgre эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Ρ…ΠΎΡ€ΠΎΡˆΠΎ расписаны, ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ самыС интСрСсныС я ΡƒΠΊΠ°Π·Π°Π» Π½Π° слайдС.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ слСйв Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚?

К соТалСнию, Π² PostgreSQL Π½Π΅Ρ‚ инструмСнтов с графичСским интСрфСйсом ΠΏΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ состояния кластСра, Π½ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ:

Π² Ρ‚ΠΎΠΌ Π»ΠΈ Ρƒ вас Ρ€Π΅ΠΆΠΈΠΌΠ΅ восстановлСния находится Π±Π°Π·Π°:
select pg_is_in_recovery();

ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ статистику со standby Ρ‡Π΅Ρ€Π΅Π· Π²ΡŒΡŽΡ…Ρƒ pg_stat_replication:
select * from pg_stat_replication ;

ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ процСссов wal sender ΠΈ wal receiver Π² Linux – эти процСссы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° мастСрС ΠΈ слСйвС, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ Π΄ΠΎΠ½Π°ΠΊΠ°Ρ‚ WAL-Ρ„Π°ΠΉΠ»ΠΎΠ², ΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… я Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»:
ps auxf

Π­Ρ‚ΠΎ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ диагностичСский ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ слСйв Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ.

Π’ ΠΆΡƒΡ€Π½Π°Π»Π΅ событий ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ошибки, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡Π΅, Ρ‚Π°ΠΊ ΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠΈ – это Ρ‚ΠΎΠΆΠ΅ ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ.

Как Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ поднятиС кластСра

ВсС слоТно, ΠΊΡƒΡ‡Π° нСпонятных ΠΊΠΎΠΌΠ°Π½Π΄ – Π·Π°Ρ‡Π΅ΠΌ это Π·Π½Π°Ρ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ Ρ€ΡƒΠΊΠ°ΠΌΠΈ? НСуТСли Π½Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ обСспСчат ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ FAILOVER, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½ΡƒΡŽ ΠΎΡ‚ΠΊΠ°Π·ΠΎΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΠΎΡΡ‚ΡŒ – автоматичСски ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΡƒΡŽ Π±Π°Π·Ρƒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½Π° стала мастСром. НС Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΡΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρ‹ Π² случаС Π½Π΅ΠΏΠΎΠ»Π°Π΄ΠΎΠΊ ΠΌΠΎΠ³Π»ΠΈ спокойно ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π’ ΠΊΠΎΡ€ΠΎΠ±ΠΎΡ‡Π½ΠΎΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ PostgreSQL Ρ‚Π°ΠΊΠΎΠ³ΠΎ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠ° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π½Π΅Ρ‚, Π½ΠΎ Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ позволяСт это Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Ρ‹Π²Π°Ρ‚ΡŒ.

FAILOVER – это стандартная ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, которая Π² PostgreSQL закрываСтся Π½Π΅ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Π½Π΅ двумя Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ распространСнными Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΠΌΠΈ, ΠΏΠΎ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ ΠΌΡ‹ сСйчас пробСТимся.

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ ΠΈΠ΄ΡƒΡ‚ для Linux-like, поэтому провСряйтС, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ это Π½Π° Windows ΠΈ смоТСтС Π»ΠΈ Π²Ρ‹ это ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² своСй инфраструктурС.

Битуация со SPLITBRAIN Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π΅ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠΉ, ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ, поэтому Π½Π΅ΠΏΠ»ΠΎΡ…ΠΎ Π±Ρ‹ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡŽ, насколько Ρ‚Π°ΠΌ всС Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΏΡ€ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½ΠΎ.

Π”Π°Π²Π°ΠΉΡ‚Π΅ посмотрим, ΠΊΠ°ΠΊΠΈΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Ρƒ нас ΠΏΡ€ΠΈΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‚.

PGPOOL-II

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Начну Π½Π΅ с самого ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎΠ³ΠΎ ΠΈ популярного – скаТу ΠΏΡ€ΠΎ PGPOOL-II.

Π­Ρ‚ΠΎ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Π°Ρ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, которая Π·Π°Π±ΠΈΡ€Π°Π΅Ρ‚ Π½Π° сСбя входящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΠΈ, контролируя сСрвСра Π² кластСрС, опрСдСляСт, ΠΊΡƒΠ΄Π° этот Ρ‚Ρ€Π°Ρ„ΠΈΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ.

Π­Ρ‚ΠΎΡ‚ инструмСнт ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Ρ€ΠΎΠ»ΠΈ:

Connection Pooling – Π·Π°Π±ΠΈΡ€Π°Ρ‚ΡŒ вСсь входящий Ρ‚Ρ€Π°Ρ„ΠΈΠΊ, ΠΏΡ€ΠΈ этом Π½Π΅ контролируСтся количСство соСдинСний Π½Π° Π‘Π£Π‘Π”.

Replication – ΠΎΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ. Π’ΠΎ, Ρ‡Ρ‚ΠΎ я Π²Π°ΠΌ рассказывал ΠΏΡ€ΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ создания Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π² PostgreSQL, ΠΎΠ½ ΡƒΠΌΠ΅Π΅Ρ‚ Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ сам ΠΈ прСднастроСнныС скрипты для выполнСния Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ.

Load Balancing – ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ балансировку Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° read-only ΡƒΠ·Π»Π°Ρ…. Если Π²Ρ‹ Π·Π½Π°Π΅Ρ‚Π΅, Ρ‡Ρ‚ΠΎ для ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ SQL-ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° ΡƒΠ·Π»Ρ‹ read-only, ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³-Ρ„Π°ΠΉΠ»Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ. Π₯отя для 1Π‘ это Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ нСпросто, Π½ΠΎ такая функция Ρƒ Π½Π΅Π³ΠΎ Π΅ΡΡ‚ΡŒ.

Limiting Exceeding Connections – позволяСт ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Ρ‚ΡŒ использованиС памяти, прСдполагая использованиС кэша.

Π­Ρ‚ΠΎ Π½Π΅ простой FAILOVER. это ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°, которая позволяСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с большим Π½Π°Π±ΠΎΡ€ΠΎΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Π£ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ PGPOOL-II Π΅ΡΡ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ, достаточно скромный интСрфСйс – это PGPOOL ADMIN.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ этим Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ ΠΈ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ, сколько сСрвСров Ρƒ вас Π΅ΡΡ‚ΡŒ. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ, ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ статистику ΠΈ Ρ‚.Π΄.

Π”Π°ΠΆΠ΅ Ссли PGPOOL-II ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π» автоматичСскиС Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ эти Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Ρ‚ΡƒΡ‚ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ.

Плюс Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π΅ здСсь ΠΌΠΎΠΆΠ΅Ρ‚Π΅.

Patroni

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

ΠŸΡ€ΠΎ Patroni сСгодня Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ Π΄ΠΎΠΊΠ»Π°Π΄Π΅ рассказал Π‘Π΅ΠΌΠ΅Π½ Π’Ρ€ΠΎΡˆΠΊΠΈΠ½.

Π­Ρ‚ΠΎ ΠΎΡ‚Π»ΠΈΡ‡Π½ΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ΄ Linux, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ строится Π½Π° ZooKeeper, etcd ΠΈ Consul. Π’ Windows Π²Π°ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ слоТно Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

ΠŸΠΎΠΌΠ½ΠΈΡ‚Π΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ссли Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅ кластСр, Ρ‚ΠΎ Patroni Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° Ρƒ вас Π΅ΡΡ‚ΡŒ сСрвСры Π½Π° Linux.

CITUSDATA

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ для PostgreSQL Citus Data ΠΏΠΎΠΏΠ°Π»ΠΎ Π² ΠΌΠΎΠΉ Π΄ΠΎΠΊΠ»Π°Π΄ Π½Π΅ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ это Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ для High Availability, Π° ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° PostgreSQL Ρ…ΠΎΡ€ΠΎΡˆΠ΅Π΅ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ – Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π°Π·Π°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡˆΠ°Ρ€Π΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ Citusdata Π² поставку PostgreSQL для 1Π‘ Π½Π΅ Π²Ρ…ΠΎΠ΄ΠΈΡ‚, Π½ΠΎ Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Ρ€Π΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ€Π°Π·Π½Ρ‹ΠΌΠΈ Π±Π°Π·Π°ΠΌΠΈ, оставив ΠΈΡ… Π½Π° read/write, Ρ‚ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ Π² сСмСйствС PostgreSQL Π΅ΡΡ‚ΡŒ.

Pgbouncer ΠΈ HaProxy

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Π“ΠΎΡ‚ΠΎΠ²Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Pgbouncer ΠΈ HaProxy Π½ΡƒΠΆΠ½Ρ‹ Π½Π΅ для Ρ‚ΠΎΠ³ΠΎ, Π½Π΅ для обСспСчСния отказоустойчивости ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ FAILOVER. Π­Ρ‚ΠΈ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½ΡƒΠΆΠ½Ρ‹, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°ΡΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Ρ‚ΡŒ экономию рСсурсов Π½Π° сСрвСрах PostgreSQL Π² связи с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ PostgreSQL – это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ процСсс с Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ рСсурсами Π½Π° сСрвСрС PostgreSQL.

Если Ρƒ вас ΠΌΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ², Π½Π° сСрвСрС это становится ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ. Когда ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ² большС 1000, Ρ€Π΅Π°Π»ΡŒΠ½ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠ½ΠΎΠΌΠΈΡ‚ΡŒ ΠΈ взаимодСйствиС ΠΌΠ΅ΠΆΠ΄Ρƒ этими процСссами становится ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΎΠΉ для самой Π‘Π£Π‘Π”.

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ, Ссли Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅Ρ‚ стандартного ΠΏΡƒΠ»ΠΈΠ½Π³Π°, приходится Π΄ΡƒΠΌΠ°Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΏΡƒΠ»ΠΈΠ½Π³ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π£ нас Π΅ΡΡ‚ΡŒ ΠΎΠΏΡ‹Ρ‚ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Pgbouncer ΠΈ HaProxy. HaProxy Π·Π°ΠΌΠ΅Ρ‡Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π‘Π£Π‘Π” – с Π΅Π³ΠΎ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π°ΠΊΠΆΠ΅ достаточно Ρ…ΠΎΡ€ΠΎΡˆΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠ΅Ρ€Π΅Π½Π°ΡΡ‚Ρ€Π°ΠΈΠ²Π°Ρ‚ΡŒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ TCP.

Но эти Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎΠΏΡΡ‚ΡŒ ΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Linux, Π° Π²ΠΎΡ‚ Π² Windows ΠΎΠ½ΠΈ Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚. ΠœΡ‹ Π΄Π°ΠΆΠ΅ ΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Π»ΠΈ ΠΈΡ… ΠΏΠ΅Ρ€Π΅ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Windows, Π½ΠΎ это оказалось слишком слоТно ΠΈ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΠ»ΠΈΡΡŒ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ.

Bi-Directional Replication

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Bi-Directional Replication – интСрСсная Ρ„ΠΈΡ‡Π°. Π’Π° самая функция, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹, выполняя ΠΎΠ΄Π½Ρƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΡŽ, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΠ±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ ΠΎΠ½Π° ΠΏΠΎΠΏΠ°Π»Π° Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½Ρ‹ΠΉ сСрвСр.

Π—Π΄Π΅ΡΡŒ ΠΈΠ΄Π΅Ρ‚ использованиС Π΄Π²ΡƒΡ…-Ρ‚Ρ€Π΅Ρ… сСрвСров Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ read/write.

Выглядит это ΡˆΠΈΠΊΠ°Ρ€Π½ΠΎ – ΠΊΠΎΠ³Π΄Π° Ρƒ вас ΠΌΠ½ΠΎΠ³ΠΎ сСрвСров. ΠΎΠ½ΠΈ всС Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π½Π° read/write, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ с Π»ΡŽΠ±Ρ‹ΠΌ ΠΈΠ· Π½ΠΈΡ….

Но здСсь Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΊ ΠΈ Π² MS SQL Server, здСсь Ρƒ вас Π±ΡƒΠ΄ΡƒΡ‚ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΡ€ΠΈ синхронизации Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π’Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€Π΄ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΈΠ΅ Π½Π° Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΌ сСрвСрС, Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС этого транзакция становится Π·Π°ΠΊΠΎΠΌΠΌΠΈΡ‡Π΅Π½Π½ΠΎΠΉ – это Ρ‚Π° ΠΌΠ½ΠΎΠ³ΠΎΡ„Π°Π·Π½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π²ΠΎ всСх Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ… master/master.

Π’ бСсплатных вСрсиях PostgreSQL ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Bi-Directional Replication Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΠΉΡ‚ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² ΠΎΡ‡Π΅Π½ΡŒ Π΄Ρ€Π΅Π²Π½ΠΈΡ… вСрсиях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ Π½Π΅ смоТСтС ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для 1Π‘.

Но такая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΅ΡΡ‚ΡŒ Π² ΠΏΠ»Π°Ρ‚Π½Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡΡ… отСчСствСнных ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»Π΅ΠΉ – Postgres Pro multimaster extension, Postgres XL, Postgres-XC.

Π’ Bucardo такая Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ‚ΠΎΠΆΠ΅ Π΅ΡΡ‚ΡŒ. И иностранный Π²Π΅Π½Π΄ΠΎΡ€ 2ndQuadrant Π² Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΈ BDR Ρ‚ΠΎΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ Bi-Directional Replication для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ кластСрных сСрвСров Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ master/master.

МоТно Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΡŽ для сСрвСров большС 3-5? Наш ΠΎΠΏΡ‹Ρ‚ ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ вряд Π»ΠΈ. ΠœΡ‹ использовали для Π΄Π²ΡƒΡ… сСрвСров с Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ. Π›Π°Π³ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ – ΠΌΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ, Ρƒ вас Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ практичСски Π΄Π²Π° мастСра. Но ΠΏΡ€ΠΈ этом Π±ΡƒΠ΄ΡƒΡ‚ Π΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ ограничСния, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅ΡΡ‚ΡŒ Π½Π° физичСской Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

По этой ΠΈ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Ρ€Π°Π±ΠΎΡ‚ΠΎΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡ‚ΡŒ этой Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, Π½Π° наш взгляд, ΠΏΠΎΠ΄ вопросом.

Jatoba

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

Π’ Π‘Π£Π‘Π” Jatoba Π½Π°ΠΌΠΈ написан ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π°Π³Π΅Π½Ρ‚, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ. Он ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€ΡƒΠ΅Ρ‚, Ρ‡Ρ‚ΠΎ с Π½ΠΈΠΌ происходит, ΠΈ автоматичСски ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΡƒΠ΄Π° ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ.

Π­Ρ‚ΠΎ позволяСт ΠΈΠ·Π±Π°Π²ΠΈΡ‚ΡŒ администратора ΠΎΡ‚ принятия Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ – наши ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ Π΄Π΅Π»Π°ΡŽΡ‚ это автоматичСски.

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ PostgreSQL для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с WSFC

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр. Π€ΠΎΡ‚ΠΎ Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ отказоустойчивый кластСр

МоТно Π»ΠΈ Π½Π° Windows PostgreSQL ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊ WSFC Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ MS SQL Server?

Π”Π°, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π² Windows Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ слуТбу PostgreSQL Server Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΎΠ±Ρ‹Ρ‡Π½ΡƒΡŽ слуТбу MS SQL Server.

Π’Π°ΠΌ Π΅ΡΡ‚ΡŒ нюанс, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ автоматичСски статус ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚, плюс Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ скрипты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ Π‘Π£Π‘Π” ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ слСйв, мастСр – ΠΏΠΎΠΌΠΎΠ³Π°Ρ‚ΡŒ кластСру WSFC ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΡ€Π° ΠΌΠΈΠ³Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ.

Π£ нас Ρ‚Π°ΠΊΠΈΠ΅ скрипты Π΅ΡΡ‚ΡŒ. Если ΠΊΠΎΠ³ΠΎ-Ρ‚ΠΎ интСрСсуСт, ΠΊΠ°ΠΊ это Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ – ΠΏΠΈΡˆΠΈΡ‚Π΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ. Π― скаТу, ΠΊΠ°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π½Π° Windows кластСр WSFC с PostgreSQL любой ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ – Π΄Π°ΠΆΠ΅ с Postgres Pro Enterprise Π·Π°Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚.

Данная ΡΡ‚Π°Ρ‚ΡŒΡ написана ΠΏΠΎ ΠΈΡ‚ΠΎΠ³Π°ΠΌ Π΄ΠΎΠΊΠ»Π°Π΄Π° (Π²ΠΈΠ΄Π΅ΠΎ), ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Π½Π½ΠΎΠ³ΠΎ Π½Π° ΠΎΠ½Π»Π°ΠΉΠ½-ΠΌΠΈΡ‚Π°ΠΏΠ΅ «PostgreSQL VS Microsoft SQL». Π‘ΠΎΠ»ΡŒΡˆΠ΅ статСй ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ здСсь.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *