PostgreSQL ๋ฐ Pacemaker๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋ธ๋ง

์†Œ๊ฐœ

์–ผ๋งˆ ์ „ ์ €๋Š” ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ์ž„๋ฌด๋ฅผ ๋งก์•˜์Šต๋‹ˆ๋‹ค. PostgreSQL, ํ•œ ๋„์‹œ ๋‚ด์—์„œ ๊ด‘์„ฌ์œ ๋กœ ์—ฐ๊ฒฐ๋œ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ ์šด์˜๋˜๋ฉฐ, ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ์žฅ์• (์˜ˆ: ์ •์ „)๋ฅผ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฒฐํ•จ์„ฑ์„ ๋‹ด๋‹นํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋งฅ๋ฐ• ์กฐ์ • ์žฅ์น˜์ด๋Š” ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ ์ƒ์„ฑ์„ ์œ„ํ•œ RedHat์˜ ๊ณต์‹ ์†”๋ฃจ์…˜์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. RedHat์ด ์ด๋ฅผ ์ง€์›ํ•˜๊ณ  ์ด ์†”๋ฃจ์…˜์ด ๋ฒ”์šฉ(๋ชจ๋“ˆ์‹)์ด๊ธฐ ๋•Œ๋ฌธ์— ์ข‹์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ‘œ์ค€ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์š”๊ตฌ์— ๋งž๊ฒŒ ์ƒ์„ฑํ•˜์—ฌ PostgreSQL๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋‹ค๋ฅธ ์„œ๋น„์Šค์˜ ๋‚ด๊ฒฐํ•จ์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ๊ฒฐ์ •์€ ํ•ฉ๋ฆฌ์ ์ธ ์งˆ๋ฌธ์„ ์ œ๊ธฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์–ผ๋งˆ๋‚˜ ๋‚ด๊ฒฐํ•จ์„ฑ์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด๋ฅผ ์กฐ์‚ฌํ•˜๊ธฐ ์œ„ํ•ด ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ์˜ ๋‹ค์–‘ํ•œ ์žฅ์• ๋ฅผ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜๊ณ , ์„œ๋น„์Šค๊ฐ€ ๋ณต์›๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ณ , ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ ๋…ธ๋“œ๋ฅผ ๋ณต๊ตฌํ•˜๊ณ , ๋ฃจํ”„์—์„œ ํ…Œ์ŠคํŠธ๋ฅผ ๊ณ„์†ํ•˜๋Š” ํ…Œ์ŠคํŠธ ๋ฒค์น˜๋ฅผ ๊ฐœ๋ฐœํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์ ํŠธ๋Š” ์›๋ž˜ hapgsql์ด๋ผ๊ณ  ๋ถˆ๋ ธ๋Š”๋ฐ, ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด์„œ ๋ชจ์Œ์ด ํ•˜๋‚˜๋งŒ ์žˆ๋Š” ์ด๋ฆ„์ด ์ง€๋ฃจํ•ด์กŒ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๋‚˜๋Š” ๋‚ด๊ฒฐํ•จ์„ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(๋ฐ ์ด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” ์œ ๋™ IP)๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ์Šต๋‹ˆ๋‹ค. ํฌ๋กœ ๊ฐ„ (๋ชจ๋“  ์ค‘์š”ํ•œ ๊ธฐ๊ด€์ด ๋ณต์ œ๋˜๋Š” ์ปดํ“จํ„ฐ ๊ฒŒ์ž„์˜ ์บ๋ฆญํ„ฐ), ๋…ธ๋“œ, ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ ํ”„๋กœ์ ํŠธ ์ž์ฒด๋Š” ํˆฌ์ฐฌ์นด (ํฌ๋กœ๊ฑด์ด ์‚ฌ๋Š” ํ–‰์„ฑ)

์ด์ œ ๊ฒฝ์˜์ง„์ด ํ—ˆ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. MIT ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ์˜คํ”ˆ ์†Œ์Šค ์ปค๋ฎค๋‹ˆํ‹ฐ์— ํ”„๋กœ์ ํŠธ๋ฅผ ๊ณต๊ฐœํ•ฉ๋‹ˆ๋‹ค.. README๋Š” ๊ณง ์˜์–ด๋กœ ๋ฒˆ์—ญ๋  ์˜ˆ์ •์ด๋ฉฐ(์ฃผ์š” ์†Œ๋น„์ž๋Š” Pacemaker ๋ฐ PostgreSQL ๊ฐœ๋ฐœ์ž๊ฐ€ ๋  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋ฏ€๋กœ) README์˜ ์˜› ๋Ÿฌ์‹œ์•„์–ด ๋ฒ„์ „(์ผ๋ถ€)์„ ์ด ๊ธฐ์‚ฌ์˜ ํ˜•์‹์œผ๋กœ ์ œ์‹œํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

PostgreSQL ๋ฐ Pacemaker๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋ธ๋ง

ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์— ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค. ๋ฒ„์ถ”์–ผ. ์ด 12๊ฐœ์˜ ๊ฐ€์ƒ ๋จธ์‹ (์ด 36GiB)์ด ๋ฐฐํฌ๋˜์–ด 4๊ฐœ์˜ ๋‚ด๊ฒฐํ•จ์„ฑ ํด๋Ÿฌ์Šคํ„ฐ(๋‹ค์–‘ํ•œ ์˜ต์…˜)๋ฅผ ํ˜•์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ฒ˜์Œ ๋‘ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ์œ„์น˜ํ•œ ๋‘ ๊ฐœ์˜ PostgreSQL ์„œ๋ฒ„์™€ ๊ณตํ†ต ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ชฉ๊ฒฉ์ž c ์ฟผ๋Ÿผ ์žฅ์น˜ (์„ธ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ์ €๋ ดํ•œ ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ํ˜ธ์ŠคํŒ…), ๋ถˆํ™•์‹ค์„ฑ์„ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. 50 % / 50 %, ์ •๋‹น ์ค‘ ํ•˜๋‚˜์— ํˆฌํ‘œํ•ฉ๋‹ˆ๋‹ค. XNUMX๊ฐœ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ์„ธ ๋ฒˆ์งธ ํด๋Ÿฌ์Šคํ„ฐ: ๋งˆ์Šคํ„ฐ XNUMX๊ฐœ, ์Šฌ๋ ˆ์ด๋ธŒ XNUMX๊ฐœ, ์ฟผ๋Ÿผ ์žฅ์น˜. ๋„ค ๋ฒˆ์งธ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋‹น XNUMX๊ฐœ์”ฉ ์ด XNUMX๊ฐœ์˜ PostgreSQL ์„œ๋ฒ„๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ๋งˆ์Šคํ„ฐ์ด๊ณ  ๋‚˜๋จธ์ง€๋Š” ๋ณต์ œ๋ณธ์ด๋ฉฐ ๋ชฉ๊ฒฉ์ž c ์ฟผ๋Ÿผ ์žฅ์น˜. ๋„ค ๋ฒˆ์งธ๋Š” ๋‘ ๋Œ€์˜ ์„œ๋ฒ„ ๋˜๋Š” ํ•œ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ์žฅ์• ๋ฅผ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด ์†”๋ฃจ์…˜์„ ๋” ๋งŽ์€ ์ˆ˜์˜ ๋ณต์ œ๋ณธ์œผ๋กœ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ •ํ™•ํ•œ ์‹œ๊ฐ„ ์„œ๋น„์Šค ntpd ๋˜ํ•œ ๋‚ด๊ฒฐํ•จ์„ฑ์„ ์œ„ํ•ด ์žฌ๊ตฌ์„ฑ๋˜์—ˆ์ง€๋งŒ ๋ฉ”์„œ๋“œ ์ž์ฒด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ntpd (๊ณ ์•„ ๋ชจ๋“œ). ๊ณต์œ ์„œ๋ฒ„ ๋ชฉ๊ฒฉ์ž ์ค‘์•™ NTP ์„œ๋ฒ„ ์—ญํ• ์„ ํ•˜๋ฉฐ ์‹œ๊ฐ„์„ ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ์— ๋ถ„๋ฐฐํ•˜์—ฌ ๋ชจ๋“  ์„œ๋ฒ„๋ฅผ ์„œ๋กœ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ์— ๋ชฉ๊ฒฉ์ž ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฑฐ๋‚˜ ๊ฒฉ๋ฆฌ๋˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ์„œ๋ฒ„ ์ค‘ ํ•˜๋‚˜(ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด)๊ฐ€ ์‹œ๊ฐ„์„ ๋ถ„๋ฐฐํ•˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋ณด์กฐ ์บ์‹ฑ HTTP ํ”„๋ก์‹œ ๋˜ํ•œ ๋ชฉ๊ฒฉ์ž, ๋„์›€์„ ๋ฐ›์•„ ๋‹ค๋ฅธ ๊ฐ€์ƒ ๋จธ์‹ ์ด Yum ์ €์žฅ์†Œ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์ •ํ™•ํ•œ ์‹œ๊ฐ„, ํ”„๋ก์‹œ ๋“ฑ์˜ ์„œ๋น„์Šค๋Š” ์ „์šฉ ์„œ๋ฒ„์—์„œ ํ˜ธ์ŠคํŒ…๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์ง€๋งŒ, ๋ถ€์Šค์—์„œ๋Š” ํ˜ธ์ŠคํŒ…๋ฉ๋‹ˆ๋‹ค. ๋ชฉ๊ฒฉ์ž ๋‹จ์ง€ ๊ฐ€์ƒ ๋จธ์‹  ์ˆ˜์™€ ๊ณต๊ฐ„์„ ์ ˆ์•ฝํ•˜๊ธฐ ์œ„ํ•ด์„œ์ž…๋‹ˆ๋‹ค.

๋ฒ„์ „

v0. VirtualBox 7์—์„œ CentOS 11 ๋ฐ PostgreSQL 6.1๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์กฐ

๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ์œ„์น˜ํ•˜๋„๋ก ์„ค๊ณ„๋˜์–ด ํ•˜๋‚˜์˜ ํ‰๋ฉด ๋„คํŠธ์›Œํฌ๋กœ ๊ฒฐํ•ฉ๋˜๋ฉฐ ๋‹จ์ผ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ์žฅ์•  ๋˜๋Š” ๋„คํŠธ์›Œํฌ ๊ฒฉ๋ฆฌ๋ฅผ ๊ฒฌ๋ŽŒ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๊ฐ€๋Šฅํ•œ ์— ๋Œ€ํ•œ ๋ณดํ˜ธ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ ๋ถ„ํ•  ๋‡Œ ํ‘œ์ค€ ์‹ฌ์žฅ๋ฐ•๋™๊ธฐ ๊ธฐ์ˆ ์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์Šคํ† ๋‹ˆ์Šค (๋จธ๋ฆฌ์— ์žˆ๋Š” ๋‹ค๋ฅธ ๋…ธ๋“œ๋ฅผ ์ด๋ผ) ๋˜๋Š” ํŽœ์‹ฑ. ๋ณธ์งˆ: ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋…ธ๋“œ๊ฐ€ ์ผ๋ถ€ ๋…ธ๋“œ์— ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๊ณ  ์˜์‹ฌํ•˜๊ธฐ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์‘๋‹ตํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ์ž˜๋ชป ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ IPMI ๋˜๋Š” UPS ์ œ์–ด ์นด๋“œ์™€ ๊ฐ™์€ "์™ธ๋ถ€" ์žฅ์น˜๋ฅผ ํ†ตํ•ด ๊ฐ•์ œ๋กœ ํ•ด๋‹น ๋…ธ๋“œ๋ฅผ ๋•๋‹ˆ๋‹ค. . ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ๋‹จ์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ IPMI ๋˜๋Š” UPS ์„œ๋ฒ„๊ฐ€ ๊ณ„์† ์ž‘๋™ํ•˜๋Š” ๊ฒฝ์šฐ์—๋งŒ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—์„œ๋Š” ์ „์ฒด ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ(์˜ˆ: ์ •์ „) ํ›จ์”ฌ ๋” ์‹ฌ๊ฐํ•œ ์žฅ์• ๋กœ๋ถ€ํ„ฐ ๋ณดํ˜ธํ•  ๊ณ„ํš์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๋Ÿฌํ•œ ๊ฑฐ์ ˆ๋กœ ์ธํ•ด ๋ชจ๋“  ๊ฒƒ์ด ๋Œ๋กœ ๋งŒ๋“ -์žฅ์น˜(IPMI, UPS ๋“ฑ)๋„ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋Œ€์‹ , ์ด ์‹œ์Šคํ…œ์€ ์ •์กฑ์ˆ˜๋ผ๋Š” ๊ฐœ๋…์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋…ธ๋“œ์—๋Š” ์Œ์„ฑ์ด ์žˆ์œผ๋ฉฐ, ์ „์ฒด ๋…ธ๋“œ์˜ ์ ˆ๋ฐ˜ ์ด์ƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๋…ธ๋“œ๋งŒ์ด ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด "๋ฐ˜ + 1"์˜ ์–‘์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ •์กฑ์ˆ˜. ์ฟผ๋Ÿผ์— ๋„๋‹ฌํ•˜์ง€ ๋ชปํ•œ ๊ฒฝ์šฐ ๋…ธ๋“œ๋Š” ๋„คํŠธ์›Œํฌ ๊ฒฉ๋ฆฌ ์ƒํƒœ์— ์žˆ๋‹ค๊ณ  ๊ฒฐ์ •ํ•˜๊ณ  ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๋ฅผ ๊บผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒŒ ๋ฐ”๋กœ ๊ทธ๊ฑฐ์•ผ ๋ถ„ํ•  ๋ธŒ๋ ˆ์ธ ๋ณดํ˜ธ. ์ด ๋™์ž‘์„ ๋‹ด๋‹นํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉด ์˜ˆ๋ฅผ ๋“ค์–ด IPMI ๊ธฐ๋ฐ˜ ๊ฐ์‹œ ์žฅ์น˜๊ฐ€ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋…ธ๋“œ ์ˆ˜๊ฐ€ ์ง์ˆ˜์ธ ๊ฒฝ์šฐ(๋‘ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ํด๋Ÿฌ์Šคํ„ฐ) ์†Œ์œ„ ๋ถˆํ™•์‹ค์„ฑ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 50 % / 50 % (XNUMX๋Œ€ XNUMX) ๋„คํŠธ์›Œํฌ ๊ฒฉ๋ฆฌ๋กœ ์ธํ•ด ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ •ํ™•ํžˆ ์ ˆ๋ฐ˜์œผ๋กœ ๋ถ„ํ• ๋˜๋Š” ๊ฒฝ์šฐ. ๋”ฐ๋ผ์„œ ์ง์ˆ˜ ๊ฐœ์˜ ๋…ธ๋“œ์— ๋Œ€ํ•ด ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์ฟผ๋Ÿผ ์žฅ์น˜ ์„ธ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ๊ฐ€์žฅ ์ €๋ ดํ•œ ๊ฐ€์ƒ ๋จธ์‹ ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊นŒ๋‹ค๋กญ์ง€ ์•Š์€ ๋ฐ๋ชฌ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Š” ์ž์‹ ์ด ๋ณธ ์„ธ๊ทธ๋จผํŠธ ์ค‘ ํ•˜๋‚˜์— ํˆฌํ‘œํ•˜์—ฌ 50%/50% ๋ถˆํ™•์‹ค์„ฑ์„ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ์ฟผ๋Ÿผ ์žฅ์น˜๊ฐ€ ์‹คํ–‰๋  ์„œ๋ฒ„์˜ ์ด๋ฆ„์„ ์ง€์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ชฉ๊ฒฉ์ž (repmgr์˜ ์šฉ์–ด๊ฐ€ ๋งˆ์Œ์— ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค.)

์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒฐํ•จ์ด ์žˆ๋Š” ์„œ๋ฒ„์—์„œ ์ •์ƒ ์„œ๋ฒ„๋กœ ๋˜๋Š” ์‹œ์Šคํ…œ ๊ด€๋ฆฌ์ž์˜ ๋ช…๋ น์— ๋”ฐ๋ผ ๋ฆฌ์†Œ์Šค๋ฅผ ํ•œ ๊ณณ์—์„œ ๋‹ค๋ฅธ ๊ณณ์œผ๋กœ ์ด๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ•„์š”ํ•œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์–ด๋””์— ์žˆ๋Š”์ง€(์–ด๋””์— ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋Š”์ง€) ์•Œ ์ˆ˜ ์žˆ๋„๋ก ์œ ๋™ IP (๋ถ€๋™ IP). ์ด๋Š” Pacemaker๊ฐ€ ๋…ธ๋“œ ์ฃผ์œ„๋ฅผ ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” IP์ž…๋‹ˆ๋‹ค(๋ชจ๋“  ๊ฒƒ์ด ํ”Œ๋žซ ๋„คํŠธ์›Œํฌ์— ์žˆ์Œ). ๊ฐ๊ฐ์€ ๋ฆฌ์†Œ์Šค(์„œ๋น„์Šค)๋ฅผ ์ƒ์ง•ํ•˜๋ฉฐ ์ด ์„œ๋น„์Šค(์ด ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋Š” ์œ„์น˜์— ์œ„์น˜ํ•ฉ๋‹ˆ๋‹ค.

Tuchanka1(์••์ถ• ํšŒ๋กœ)

๊ตฌ์กฐ

PostgreSQL ๋ฐ Pacemaker๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋ธ๋ง

์šฐ๋ฆฌ๋Š” ๋กœ๋“œ๊ฐ€ ์ ์€ ์†Œ๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋งŽ๊ธฐ ๋•Œ๋ฌธ์— ์ฝ๊ธฐ ์ „์šฉ ํŠธ๋žœ์žญ์…˜์„ ์œ„ํ•ด ์ƒ์‹œ ๋Œ€๊ธฐ ๋ชจ๋“œ์—์„œ ์ „์šฉ ์Šฌ๋ ˆ์ด๋ธŒ ์„œ๋ฒ„๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์ด ์ˆ˜์ต์„ฑ์ด ์—†๋‹ค๋Š” ๊ฒƒ์ด ์•„์ด๋””์–ด์˜€์Šต๋‹ˆ๋‹ค(์ด๋Ÿฌํ•œ ๋ฆฌ์†Œ์Šค ๋‚ญ๋น„๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์Œ).

๊ฐ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—๋Š” ํ•˜๋‚˜์˜ ์„œ๋ฒ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์„œ๋ฒ„์—๋Š” ๋‘ ๊ฐœ์˜ PostgreSQL ์ธ์Šคํ„ด์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(PostgreSQL ์šฉ์–ด๋กœ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๋ผ๊ณ  ๋ถ€๋ฅด์ง€๋งŒ ํ˜ผ๋™์„ ํ”ผํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์œ ์‚ฌํ•˜๊ฒŒ ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ Pacemaker ํด๋Ÿฌ์Šคํ„ฐ ํด๋Ÿฌ์Šคํ„ฐ๋งŒ ํ˜ธ์ถœํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค). ํ•˜๋‚˜์˜ ์ธ์Šคํ„ด์Šค๋Š” ๋งˆ์Šคํ„ฐ ๋ชจ๋“œ์—์„œ ์ž‘๋™ํ•˜๋ฉฐ ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋งŒ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค(์œ ๋™ IP๋งŒ ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋กœ ์—ฐ๊ฒฐ๋จ). ๋‘ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค๋Š” ๋‘ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ์Šฌ๋ ˆ์ด๋ธŒ๋กœ ์ž‘๋™ํ•˜๋ฉฐ ๋งˆ์Šคํ„ฐ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ์—๋งŒ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ธ์Šคํ„ด์Šค ๋‘ ๊ฐœ ์ค‘ ํ•˜๋‚˜(๋งˆ์Šคํ„ฐ)๋งŒ์ด ์„œ๋น„์Šค๋ฅผ ์ œ๊ณต(์š”์ฒญ ์ˆ˜ํ–‰)ํ•˜๋ฏ€๋กœ ๋ชจ๋“  ์„œ๋ฒ„ ๋ฆฌ์†Œ์Šค๋Š” ๋งˆ์Šคํ„ฐ์— ์ตœ์ ํ™”๋˜์–ด ์žˆ์ง€๋งŒ(๋ฉ”๋ชจ๋ฆฌ๋Š” shared_buffers ์บ์‹œ ๋“ฑ์— ํ• ๋‹น๋จ) ๋‘ ๋ฒˆ์งธ ์ธ์Šคํ„ด์Šค๋Š” ๋˜ํ•œ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์ค‘ ํ•˜๋‚˜์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•ด ์ถฉ๋ถ„ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค(ํŒŒ์ผ ์‹œ์Šคํ…œ ์บ์‹œ๋ฅผ ํ†ตํ•œ ์ฐจ์„ ์ฑ… ์šด์˜์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ ). ์Šฌ๋ ˆ์ด๋ธŒ๋Š” ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ž‘๋™ํ•˜๋Š” ๋™์•ˆ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ(์ฝ๊ธฐ ์ „์šฉ ์š”์ฒญ์„ ์ˆ˜ํ–‰ํ•˜์ง€ ์•Š์Œ) ๋™์ผํ•œ ์‹œ์Šคํ…œ์˜ ๋งˆ์Šคํ„ฐ์™€ ๋ฆฌ์†Œ์Šค ์ „์Ÿ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‘ ๋…ธ๋“œ์˜ ๊ฒฝ์šฐ ๋‚ด๊ฒฐํ•จ์„ฑ์€ ๋น„๋™๊ธฐ ๋ณต์ œ์—์„œ๋งŒ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋™๊ธฐ ๋ณต์ œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์Šฌ๋ ˆ์ด๋ธŒ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋งˆ์Šคํ„ฐ๊ฐ€ ์ค‘์ง€๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋ชฉ๊ฒฉํ•˜์ง€ ๋ชปํ•จ

PostgreSQL ๋ฐ Pacemaker๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋ธ๋ง

๋ชฉ๊ฒฉํ•˜์ง€ ๋ชปํ•จ(์ฟผ๋Ÿผ ์žฅ์น˜) ๋‚˜๋Š” Tuchanka1 ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•ด์„œ๋งŒ ๊ณ ๋ คํ•  ๊ฒƒ์ด๋ฉฐ ๋‹ค๋ฅธ ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ์™€ ๋™์ผํ•œ ์ด์•ผ๊ธฐ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ์‹œ๊ฐ€ ์‹คํŒจํ•˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์กฐ์—๋Š” ์•„๋ฌด ๊ฒƒ๋„ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์œผ๋ฉฐ ๋ชจ๋“  ๊ฒƒ์ด ์ด์ „๊ณผ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๊ณ„์† ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ฟผ๋Ÿผ์€ 2๊ฐœ ์ค‘ 3๊ฐœ๊ฐ€ ๋˜๋ฏ€๋กœ ์ดํ›„์— ๋ฐœ์ƒํ•˜๋Š” ๋ชจ๋“  ์˜ค๋ฅ˜๋Š” ํด๋Ÿฌ์Šคํ„ฐ์— ์น˜๋ช…์ ์ž…๋‹ˆ๋‹ค. ์—ฌ์ „ํžˆ ๊ธด๊ธ‰ํ•˜๊ฒŒ ์ˆ˜์ •ํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

ํˆฌ์ฐฌ์นด1 ๊ฑฐ์ ˆ

PostgreSQL ๋ฐ Pacemaker๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋ธ๋ง

Tuchanka1์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์ค‘ ํ•˜๋‚˜์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋ชฉ๊ฒฉ์ž ๋‘ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ๋‘ ๋ฒˆ์งธ ๋…ธ๋“œ์— ํˆฌํ‘œํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๊ณณ์—์„œ ์ด์ „ ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ๋งˆ์Šคํ„ฐ๋กœ ๋ฐ”๋€Œ๊ณ  ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‘ ๋งˆ์Šคํ„ฐ๊ฐ€ ๋ชจ๋‘ ๋™์ผํ•œ ์„œ๋ฒ„์—์„œ ์ž‘์—…ํ•˜๊ณ  ๋‘ ๋ถ€๋™ IP๊ฐ€ ๋ชจ๋‘ ์ด๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

ํˆฌ์ฐฌ์นด2(ํด๋ž˜์‹)

๊ตฌ์กฐ

PostgreSQL ๋ฐ Pacemaker๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋ธ๋ง

๋‘ ๋…ธ๋“œ์˜ ๊ณ ์ „์ ์ธ ๊ตฌ์„ฑ. ๋งˆ์Šคํ„ฐ๋Š” ํ•˜๋‚˜์—์„œ ์ž‘์—…ํ•˜๊ณ  ์Šฌ๋ ˆ์ด๋ธŒ๋Š” ๋‘ ๋ฒˆ์งธ์—์„œ ์ž‘์—…ํ•ฉ๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ์š”์ฒญ์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ(์Šฌ๋ ˆ์ด๋ธŒ๋Š” ์ฝ๊ธฐ ์ „์šฉ) ๋‘˜ ๋‹ค ๋ถ€๋™ IP๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. krogan2๋Š” ๋งˆ์Šคํ„ฐ์ด๊ณ  krogan2s1์€ ์Šฌ๋ ˆ์ด๋ธŒ์ž…๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ์™€ ์Šฌ๋ ˆ์ด๋ธŒ ๋ชจ๋‘ ๋‚ด๊ฒฐํ•จ์„ฑ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

๋…ธ๋“œ๊ฐ€ XNUMX๊ฐœ์ธ ๊ฒฝ์šฐ ๋น„๋™๊ธฐ ๋ณต์ œ์—์„œ๋งŒ ๋‚ด๊ฒฐํ•จ์„ฑ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋™๊ธฐ ๋ณต์ œ์—์„œ๋Š” ์Šฌ๋ ˆ์ด๋ธŒ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋งˆ์Šคํ„ฐ๊ฐ€ ์ค‘์ง€๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

ํˆฌ์ฐฌ์นด2 ๊ฑฐ์ ˆ

PostgreSQL ๋ฐ Pacemaker๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋ธ๋ง

๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์ค‘ ํ•˜๋‚˜์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ๋ชฉ๊ฒฉ์ž ๋‘ ๋ฒˆ์งธ์— ํˆฌํ‘œํ•˜์„ธ์š”. ์ž‘๋™ํ•˜๋Š” ์œ ์ผํ•œ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ๋Š” ๋งˆ์Šคํ„ฐ๊ฐ€ ์ƒ์„ฑ๋˜๊ณ  ๋‘ ๋ถ€๋™ IP ๋ชจ๋‘ ๋งˆ์Šคํ„ฐ์™€ ์Šฌ๋ ˆ์ด๋ธŒ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์ธ์Šคํ„ด์Šค๋Š” ๋งˆ์Šคํ„ฐ ๋ฐ ์Šฌ๋ ˆ์ด๋ธŒ ๋ถ€๋™ IP์˜ ๋ชจ๋“  ์—ฐ๊ฒฐ๊ณผ ์š”์ฒญ์„ ๋™์‹œ์— ์ˆ˜๋ฝํ•  ์ˆ˜ ์žˆ๋Š” ์ถฉ๋ถ„ํ•œ ๋ฆฌ์†Œ์Šค(์—ฐ๊ฒฐ ์ œํ•œ ๋“ฑ)๋ฅผ ๊ฐ–๋„๋ก ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์ •์ƒ ์ž‘๋™ ์ค‘์—๋Š” ์ถฉ๋ถ„ํ•œ ํ•œ๋„ ๊ณต๊ธ‰์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Tuchanka4 (๋งŽ์€ ๋…ธ์˜ˆ)

๊ตฌ์กฐ

PostgreSQL ๋ฐ Pacemaker๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋ธ๋ง

์ด๋ฏธ ๋˜ ๋‹ค๋ฅธ ๊ทน๋‹จ์ž…๋‹ˆ๋‹ค. ์ฝ๊ธฐ ์ „์šฉ ์š”์ฒญ์„ ๋งŽ์ด ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค(๊ณ ๋ถ€ํ•˜ ์‚ฌ์ดํŠธ์˜ ์ผ๋ฐ˜์ ์ธ ๊ฒฝ์šฐ). Tuchanka4๋Š” ์ด๋Ÿฌํ•œ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด XNUMX๋ช… ์ด์ƒ์˜ ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์—ฌ์ „ํžˆ ๋„ˆ๋ฌด ๋งŽ์ง€๋Š” ์•Š์€ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ์Šฌ๋ ˆ์ด๋ธŒ ์ˆ˜๊ฐ€ ๋งค์šฐ ๋งŽ์œผ๋ฉด ๊ณ„์ธต์  ๋ณต์ œ ์‹œ์Šคํ…œ์„ ๊ฐœ๋ฐœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ตœ์†Œํ•œ์˜ ๊ฒฝ์šฐ(๊ทธ๋ฆผ ์ฐธ์กฐ) ๋‘ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—๋Š” ๊ฐ๊ฐ PostgreSQL ์ธ์Šคํ„ด์Šค๊ฐ€ ์žˆ๋Š” ๋‘ ๊ฐœ์˜ ์„œ๋ฒ„๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ฒด๊ณ„์˜ ๋˜ ๋‹ค๋ฅธ ํŠน์ง•์€ ํ•˜๋‚˜์˜ ๋™๊ธฐ ๋ณต์ œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ด๋ฏธ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ์™€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ๋ณต์ œ๋ณธ์ด ์•„๋‹Œ ๊ฐ€๋Šฅํ•˜๋ฉด ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋กœ ๋ณต์ œํ•˜๋„๋ก ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋งˆ์Šคํ„ฐ์™€ ๊ฐ ์Šฌ๋ ˆ์ด๋ธŒ๋Š” ๋ถ€๋™ IP๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๋‹คํ–‰์Šค๋Ÿฝ๊ฒŒ๋„ ์Šฌ๋ ˆ์ด๋ธŒ ๊ฐ„์— ์š”์ฒญ์˜ ๊ท ํ˜•์„ ์–ด๋–ป๊ฒŒ๋“  ์œ ์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. SQL ํ”„๋ก์‹œ, ์˜ˆ๋ฅผ ๋“ค์–ด ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ. ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ํด๋ผ์ด์–ธํŠธ์—๋Š” ๋‹ค์–‘ํ•œ ์œ ํ˜•์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SQL ํ”„๋ก์‹œ, ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ์ž๋งŒ์ด ๋ˆ„๊ฐ€ ๋ฌด์—‡์ด ํ•„์š”ํ•œ์ง€ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ์™ธ๋ถ€ ๋ฐ๋ชฌ์ด๋‚˜ ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(์—ฐ๊ฒฐ ํ’€) ๋“ฑ์„ ํ†ตํ•ด ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ชจ๋“  ๊ฒƒ์€ ์žฅ์•  ์กฐ์น˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํด๋Ÿฌ์Šคํ„ฐ(failover SQL ํ”„๋ก์‹œ ํด๋ผ์ด์–ธํŠธ ๋‚ด๊ฒฐํ•จ์„ฑ๊ณผ ํ•จ๊ป˜ ๋…๋ฆฝ์ ์œผ๋กœ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํˆฌ์ฐฌ์นด4 ๊ฑฐ์ ˆ

PostgreSQL ๋ฐ Pacemaker๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋ธ๋ง

ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ(์ฆ‰, ๋‘ ๊ฐœ์˜ ์„œ๋ฒ„)๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๋‘ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ๋Œ€ํ•œ ์ฆ์ธ ํˆฌํ‘œ๊ฐ€ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‘ ๋ฒˆ์งธ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—์„œ๋Š” ๋‘ ๊ฐœ์˜ ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ๋งˆ์Šคํ„ฐ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋งˆ์Šคํ„ฐ ๋ถ€๋™ IP๋Š” ์ด๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค(์ฝ๊ธฐ-์“ฐ๊ธฐ ์š”์ฒญ ์ˆ˜์‹ ์šฉ). ๋‘ ๋ฒˆ์งธ ์„œ๋ฒ„์—๋Š” ๋™๊ธฐ์‹ ๋ณต์ œ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ์žˆ๊ณ  ์Šฌ๋ ˆ์ด๋ธŒ ๋ถ€๋™ IP ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ด๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค(์ฝ๊ธฐ ์ „์šฉ ์š”์ฒญ์˜ ๊ฒฝ์šฐ).

๊ฐ€์žฅ ๋จผ์ € ์ฃผ๋ชฉํ•ด์•ผ ํ•  ์ ์€ ๋ชจ๋“  ์Šฌ๋ ˆ์ด๋ธŒ ํ”Œ๋กœํŠธ IP๊ฐ€ ์ž‘์—…์ž๊ฐ€ ๋˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  ํ•˜๋‚˜๋งŒ ์ž‘์—…์ž๊ฐ€ ๋œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋‹ค์Œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. SQL ํ”„๋ก์‹œ ๋ชจ๋“  ์š”์ฒญ์„ ๋‚จ์€ ์œ ์ผํ•œ ๋ถ€๋™ IP๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋งŒ์•ฝ์— SQL ํ”„๋ก์‹œ ์•„๋‹ˆ์š”, ์—ฐ๊ฒฐ URL์—์„œ ์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ ๋ชจ๋“  ์œ ๋™ IP ์Šฌ๋ ˆ์ด๋ธŒ๋ฅผ ๋‚˜์—ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ์—๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์—ฐ๊ฒฐ์€ ์ฒซ ๋ฒˆ์งธ ์ž‘๋™ IP์— ์ด๋ฃจ์–ด์ง€๋ฉฐ ์ด๋Š” ์ž๋™ ํ…Œ์ŠคํŠธ ์‹œ์Šคํ…œ์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ์•„๋งˆ๋„ JDBC์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ๋Š” ์ด๊ฒƒ์ด ์ž‘๋™ํ•˜์ง€ ์•Š์œผ๋ฉฐ ํ•„์š”ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. SQL ํ”„๋ก์‹œ. ์ด๋Š” ์Šฌ๋ ˆ์ด๋ธŒ์— ๋Œ€ํ•œ ๋ถ€๋™ IP๊ฐ€ ํ•œ ์„œ๋ฒ„์—์„œ ๋™์‹œ์— ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ์„ ๊ธˆ์ง€ํ•˜์—ฌ ์—ฌ๋Ÿฌ ๋Œ€๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ์Šฌ๋ ˆ์ด๋ธŒ ์„œ๋ฒ„ ๊ฐ„์— ๊ณ ๋ฅด๊ฒŒ ๋ถ„์‚ฐ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

๋‘˜์งธ: ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๋™๊ธฐ์‹ ๋ณต์ œ๊ฐ€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  XNUMX์ฐจ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„, ์ฆ‰ ๋‚˜๋จธ์ง€ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์˜ ๋‘ ์„œ๋ฒ„ ์ค‘ ํ•˜๋‚˜์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ์„œ๋น„์Šค ์ œ๊ณต์„ ์ค‘๋‹จํ•˜๋”๋ผ๋„ ์ปค๋ฐ‹ ํ™•์ธ์„ ์ œ๊ณตํ•œ ๋ชจ๋“  ์ปค๋ฐ‹๋œ ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๊ณ„์† ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. (XNUMX์ฐจ ๊ณ ์žฅ์‹œ ์†์‹ค์ •๋ณด๋Š” ์—†์Šต๋‹ˆ๋‹ค.)

Tuchanka3(๋ฐ์ดํ„ฐ ์„ผํ„ฐ 3๊ฐœ)

๊ตฌ์กฐ

PostgreSQL ๋ฐ Pacemaker๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋ธ๋ง

์ด๋Š” ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ์„ธ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๊ฐ€ ์žˆ๊ณ  ๊ฐ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—๋Š” ์™„๋ฒฝํ•˜๊ฒŒ ์ž‘๋™ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„œ๋ฒ„๊ฐ€ ์žˆ๋Š” ์ƒํ™ฉ์„ ์œ„ํ•œ ํด๋Ÿฌ์Šคํ„ฐ์ž…๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์ฟผ๋Ÿผ ์žฅ์น˜ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ•œ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—๋Š” ๋งˆ์Šคํ„ฐ๊ฐ€ ๋ฐฐ์น˜๋˜๊ณ , ๋‚˜๋จธ์ง€ ๋‘ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์—๋Š” ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ๋ฐฐ์น˜๋ฉ๋‹ˆ๋‹ค. ๋ณต์ œ๋Š” ๋™๊ธฐ์‹์ด๋ฉฐ ANY(slave1,slave2)๋ฅผ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ํด๋ผ์ด์–ธํŠธ๋Š” ์Šฌ๋ ˆ์ด๋ธŒ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์ปค๋ฐ‹์„ ์ˆ˜๋ฝํ–ˆ๋‹ค๊ณ  ์ฒ˜์Œ์œผ๋กœ ์‘๋‹ตํ•  ๋•Œ ์ปค๋ฐ‹ ํ™•์ธ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค๋Š” ๋งˆ์Šคํ„ฐ์šฉ ๋ถ€๋™ IP 4๊ฐœ, ์Šฌ๋ ˆ์ด๋ธŒ์šฉ ๋ถ€๋™ IP XNUMX๊ฐœ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. TuchankaXNUMX์™€ ๋‹ฌ๋ฆฌ ์„ธ ๊ฐœ์˜ ๋ถ€๋™ IP๋Š” ๋ชจ๋‘ ๋‚ด๊ฒฐํ•จ์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฝ๊ธฐ ์ „์šฉ SQL ์ฟผ๋ฆฌ์˜ ๊ท ํ˜•์„ ๋งž์ถ”๋ ค๋ฉด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. SQL ํ”„๋ก์‹œ (๋ณ„๋„์˜ ๋‚ด๊ฒฐํ•จ์„ฑ ํฌํ•จ) ๋˜๋Š” ํ•˜๋‚˜์˜ ์Šฌ๋ ˆ์ด๋ธŒ ๋ถ€๋™ IP๋ฅผ ํด๋ผ์ด์–ธํŠธ์˜ ์ ˆ๋ฐ˜์— ํ• ๋‹นํ•˜๊ณ  ๋‚˜๋จธ์ง€ ์ ˆ๋ฐ˜์„ ๋‘ ๋ฒˆ์งธ์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

ํˆฌ์ฐฌ์นด3 ๊ฑฐ์ ˆ

PostgreSQL ๋ฐ Pacemaker๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋ธ๋ง

๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์ค‘ ํ•˜๋‚˜์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋‘ ๊ฐœ๊ฐ€ ๋‚จ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜๋Š” ๋งˆ์Šคํ„ฐ์˜ ๋งˆ์Šคํ„ฐ ๋ฐ ๋ถ€๋™ IP๊ฐ€ ๋ฐœ์ƒํ•˜๊ณ , ๋‘ ๋ฒˆ์งธ๋Š” ์Šฌ๋ ˆ์ด๋ธŒ ๋ฐ ๋‘ ์Šฌ๋ ˆ์ด๋ธŒ ๋ถ€๋™ IP๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค(์ธ์Šคํ„ด์Šค๋Š” ๋‘ ์Šฌ๋ ˆ์ด๋ธŒ ๋ถ€๋™ IP์˜ ๋ชจ๋“  ์—ฐ๊ฒฐ์„ ์ˆ˜๋ฝํ•˜๋ ค๋ฉด ์ด์ค‘ ๋ฆฌ์†Œ์Šค ์˜ˆ์•ฝ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค). ๋งˆ์Šคํ„ฐ์™€ ์Šฌ๋ ˆ์ด๋ธŒ ๊ฐ„์˜ ๋™๊ธฐ์‹ ๋ณต์ œ. ๋˜ํ•œ ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋‘ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๊ฐ€ ํŒŒ๊ดด๋˜๋Š” ๊ฒฝ์šฐ(๋™์‹œ์— ํŒŒ๊ดด๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ) ์ปค๋ฐ‹๋˜๊ณ  ํ™•์ธ๋œ ํŠธ๋žœ์žญ์…˜์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค(์ •๋ณด ์†์‹ค ์—†์Œ).

ํŒŒ์ผ ๊ตฌ์กฐ์™€ ๋ฐฐํฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ํฌํ•จํ•˜์ง€ ์•Š๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋†€๊ณ  ์‹ถ์€ ์‚ฌ๋žŒ์€ ๋ˆ„๊ตฌ๋‚˜ README์—์„œ ๋ชจ๋“  ๋‚ด์šฉ์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋‹จ์ง€ ์ž๋™ํ™”๋œ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ์ œ๊ณตํ•  ๋ฟ์ž…๋‹ˆ๋‹ค.

์ž๋™ ํ…Œ์ŠคํŠธ ์‹œ์Šคํ…œ

๋‹ค์–‘ํ•œ ๊ฒฐํ•จ์„ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋‚ด๊ฒฐํ•จ์„ฑ์„ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•ด ์ž๋™ ํ…Œ์ŠคํŠธ ์‹œ์Šคํ…œ์ด ์ƒ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•ด ์‹คํ–‰๋จ test/failure. ์Šคํฌ๋ฆฝํŠธ๋Š” ํ…Œ์ŠคํŠธํ•˜๋ ค๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์ˆ˜๋ฅผ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ ๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

test/failure 2 3

๋‘ ๋ฒˆ์งธ์™€ ์„ธ ๋ฒˆ์งธ ํด๋Ÿฌ์Šคํ„ฐ๋งŒ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ํ…Œ์ŠคํŠธ๋ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๋ณ‘๋ ฌ๋กœ ํ…Œ์ŠคํŠธ๋˜๋ฉฐ ๊ฒฐ๊ณผ๋Š” tmux ํŒจ๋„์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. Tmux๋Š” ์ „์šฉ tmux ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ๊ธฐ๋ณธ tmux์—์„œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ค‘์ฒฉ๋œ tmux๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํฐ ์ฐฝ๊ณผ ์ž‘์€ ๊ธ€๊ผด๋กœ ํ„ฐ๋ฏธ๋„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์— ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ๋ชจ๋“  ๊ฐ€์ƒ ๋จธ์‹ ์ด ์Šค๋ƒ…์ƒท์œผ๋กœ ๋กค๋ฐฑ๋ฉ๋‹ˆ๋‹ค. setup.

PostgreSQL ๋ฐ Pacemaker๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋ธ๋ง

ํ„ฐ๋ฏธ๋„์€ ํ…Œ์ŠคํŠธ ์ค‘์ธ ํด๋Ÿฌ์Šคํ„ฐ ์ˆ˜์— ๋”ฐ๋ผ ์—ด๋กœ ๋‚˜๋ˆ„์–ด์ง€๋ฉฐ, ๊ธฐ๋ณธ์ ์œผ๋กœ(์Šคํฌ๋ฆฐ์ƒท์—์„œ๋Š”) 2๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ํˆฌ์ฐฌ์นดXNUMX๋ฅผ ์˜ˆ์‹œ๋กœ ์นผ๋Ÿผ์˜ ๋‚ด์šฉ์„ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์Šคํฌ๋ฆฐ์ƒท์˜ ํŒจ๋„์—๋Š” ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ํ…Œ์ŠคํŠธ ํ†ต๊ณ„๊ฐ€ ์—ฌ๊ธฐ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ์—ด:
    • ์‹คํŒจ โ€” ๊ฒฐํ•จ์„ ์—๋ฎฌ๋ ˆ์ดํŠธํ•˜๋Š” ํ…Œ์ŠคํŠธ(์Šคํฌ๋ฆฝํŠธ์˜ ํ•จ์ˆ˜) ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.
    • ๋ฐ˜์‘ โ€” ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๊ธฐ๋Šฅ์„ ๋ณต๊ตฌํ•˜๋Š” ๋™์•ˆ์˜ ์‚ฐ์ˆ  ํ‰๊ท  ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋ฅผ ์—๋ฎฌ๋ ˆ์ด์…˜ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ ์‹œ์ž‘๋ถ€ํ„ฐ ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๊ธฐ๋Šฅ์„ ๋ณต์›ํ•˜๊ณ  ์„œ๋น„์Šค๋ฅผ ๊ณ„์† ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ์ˆœ๊ฐ„๊นŒ์ง€ ์ธก์ •๋ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„์ด ๋งค์šฐ ์งง์€ ๊ฒฝ์šฐ(์˜ˆ: 3์ดˆ(์—ฌ๋Ÿฌ ์Šฌ๋ ˆ์ด๋ธŒ(Tuchanka4 ๋ฐ TuchankaXNUMX)๊ฐ€ ์žˆ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋ฐœ์ƒ)) ์ด๋Š” ๊ฒฐํ•จ์ด ๋น„๋™๊ธฐ ์Šฌ๋ ˆ์ด๋ธŒ์— ์žˆ์—ˆ๊ณ  ์–ด๋–ค ์‹์œผ๋กœ๋“  ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์•˜์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ์Šค์œ„์น˜.
    • ์ผํƒˆ โ€” ๊ฐ’์˜ ํ™•์‚ฐ(์ •ํ™•๋„)์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜์‘ ํ‘œ์ค€ํŽธ์ฐจ๋ฒ•์„ ์‚ฌ์šฉํ•œ๋‹ค.
    • ๊ณ„์‚ฐ โ€” ์ด ํ…Œ์ŠคํŠธ๊ฐ€ ์ˆ˜ํ–‰๋œ ํšŸ์ˆ˜์ž…๋‹ˆ๋‹ค.
  2. ์งง์€ ๋กœ๊ทธ๋ฅผ ํ†ตํ•ด ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ํ˜„์žฌ ์ˆ˜ํ–‰ ์ค‘์ธ ์ž‘์—…์„ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ณต(ํ…Œ์ŠคํŠธ) ๋ฒˆํ˜ธ, ํƒ€์ž„์Šคํƒฌํ”„ ๋ฐ ์ž‘์—… ์ด๋ฆ„์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋„ˆ๋ฌด ์˜ค๋ž˜ ์‹คํ–‰(> 5๋ถ„)ํ•˜๋ฉด ๋ฌธ์ œ๊ฐ€ ์žˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  3. ์‹ฌ์žฅ (ํ•˜ํŠธ) - ํ˜„์žฌ ์‹œ๊ฐ„. ์„ฑ๋Šฅ์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ‰๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ ์ฃผ์ธ ํ˜„์žฌ ์‹œ๊ฐ„์€ float IP ๋งˆ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์— ์ง€์†์ ์œผ๋กœ ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค. ์„ฑ๊ณตํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ์ด ํŒจ๋„์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  4. ๋น„ํŠธ (ํŽ„์Šค) - ์ด์ „์— ์Šคํฌ๋ฆฝํŠธ์— ์˜ํ•ด ๊ธฐ๋ก๋œ "ํ˜„์žฌ ์‹œ๊ฐ„" ์‹ฌ์žฅ ๋งˆ์Šคํ„ฐํ•˜๋ ค๋ฉด ์ง€๊ธˆ๋ถ€ํ„ฐ ์ฝ์–ด๋ณด์„ธ์š” ๋…ธ์˜ˆ ๋ถ€๋™ IP๋ฅผ ํ†ตํ•ด. ์Šฌ๋ ˆ์ด๋ธŒ ๋ฐ ๋ณต์ œ ์„ฑ๋Šฅ์„ ์‹œ๊ฐ์ ์œผ๋กœ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Tuchanka1์—๋Š” ๋ถ€๋™ IP๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ์—†์ง€๋งŒ(์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ์Šฌ๋ ˆ์ด๋ธŒ ์—†์Œ) ์ธ์Šคํ„ด์Šค(DB)๊ฐ€ ๋‘ ๊ฐœ์ด๋ฏ€๋กœ ์—ฌ๊ธฐ์— ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋น„ํŠธ๊ณผ ์‹ฌ์žฅ ๋‘ ๋ฒˆ์งธ ์‚ฌ๋ก€.
  5. ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ ๋ชจ๋‹ˆํ„ฐ๋ง pcs mon. ๊ตฌ์กฐ, ๋…ธ๋“œ ๊ฐ„ ๋ฆฌ์†Œ์Šค ๋ถ„ํฌ ๋ฐ ๊ธฐํƒ€ ์œ ์šฉํ•œ ์ •๋ณด๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.
  6. ํด๋Ÿฌ์Šคํ„ฐ์— ์žˆ๋Š” ๊ฐ ๊ฐ€์ƒ ๋จธ์‹ ์˜ ์‹œ์Šคํ…œ ๋ชจ๋‹ˆํ„ฐ๋ง์ด ์—ฌ๊ธฐ์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ์— ์žˆ๋Š” ๊ฐ€์ƒ ๋จธ์‹  ์ˆ˜์— ๋”ฐ๋ผ ์ด๋Ÿฌํ•œ ํŒจ๋„์ด ๋” ๋งŽ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ๊ทธ๋ž˜ํ”„ CPU๋กœ๋“œ (๊ฐ€์ƒ ๋จธ์‹ ์—๋Š” XNUMX๊ฐœ์˜ ํ”„๋กœ์„ธ์„œ๊ฐ€ ์žˆ์Œ), ๊ฐ€์ƒ ๋จธ์‹  ์ด๋ฆ„, ์‹œ์Šคํ…œ๋กœ๋“œ (5๋ถ„, 10๋ถ„, 15๋ถ„์— ๊ฑธ์ณ ํ‰๊ท ์ด ๊ณ„์‚ฐ๋˜๋ฏ€๋กœ ๋กœ๋“œ ํ‰๊ท ์ด๋ผ๊ณ  ํ•จ), ๋ฐ์ดํ„ฐ ๋ฐ ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  7. ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์Šคํฌ๋ฆฝํŠธ์˜ ์ถ”์ ์ž…๋‹ˆ๋‹ค. ์˜ค์ž‘๋™์ด ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ(๊ฐ‘์ž๊ธฐ ์ž‘๋™์ด ์ค‘๋‹จ๋˜๊ฑฐ๋‚˜ ๋์—†๋Š” ๋Œ€๊ธฐ ์ฃผ๊ธฐ๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ) ์—ฌ๊ธฐ์—์„œ ์ด๋Ÿฌํ•œ ๋™์ž‘์˜ ์ด์œ ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ๋Š” ๋‘ ๋‹จ๊ณ„๋กœ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ๋จผ์ € ์Šคํฌ๋ฆฝํŠธ๋Š” ๋ชจ๋“  ์œ ํ˜•์˜ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์น˜๋ฉฐ ์ด ํ…Œ์ŠคํŠธ๋ฅผ ์ ์šฉํ•  ๊ฐ€์ƒ ๋จธ์‹ ์„ ๋ฌด์ž‘์œ„๋กœ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ๋์—†๋Š” ํ…Œ์ŠคํŠธ ์ฃผ๊ธฐ๊ฐ€ ์ˆ˜ํ–‰๋˜๊ณ  ๋งค๋ฒˆ ๊ฐ€์ƒ ๋จธ์‹ ๊ณผ ์˜ค๋ฅ˜๊ฐ€ ๋ฌด์ž‘์œ„๋กœ ์„ ํƒ๋ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ(ํ•˜๋‹จ ํŒจ๋„)๊ฐ€ ๊ฐ‘์ž๊ธฐ ์ข…๋ฃŒ๋˜๊ฑฐ๋‚˜ ๋ฌด์–ธ๊ฐ€๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋์—†๋Š” ๋ฃจํ”„(ํ•œ ์ž‘์—…์— ๋Œ€ํ•œ ์‹คํ–‰ ์‹œ๊ฐ„ > 5๋ถ„, ์ด๋Š” ์ถ”์ ์—์„œ ๋ณผ ์ˆ˜ ์žˆ์Œ)๋Š” ์ด ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ผ๋ถ€ ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ–ˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๊ฐ ํ…Œ์ŠคํŠธ๋Š” ๋‹ค์Œ ์ž‘์—…์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  1. ์˜ค๋ฅ˜๋ฅผ ์—๋ฎฌ๋ ˆ์ดํŠธํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
  2. ์ค€๋น„๊ฐ€ ๋˜์…จ์Šต๋‹ˆ๊นŒ? โ€” ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋ณต์›๋˜๊ธฐ๋ฅผ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค(๋ชจ๋“  ์„œ๋น„์Šค๊ฐ€ ์ œ๊ณต๋  ๋•Œ).
  3. ํด๋Ÿฌ์Šคํ„ฐ ๋ณต๊ตฌ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค(๋ฐ˜์‘).
  4. ์ˆ˜์ • โ€” ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ "๋ณต๊ตฌ"๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ํ›„์—๋Š” ์™„์ „ํ•œ ์ž‘๋™ ์ƒํƒœ๋กœ ๋Œ์•„๊ฐ€์„œ ๋‹ค์Œ ์˜ค์ž‘๋™์— ๋Œ€๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์— ๋Œ€ํ•œ ์„ค๋ช…์ด ํฌํ•จ๋œ ํ…Œ์ŠคํŠธ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค.

  • ํฌํฌ๋ฐค: ํฌํฌ ํญํƒ„์„ ์‚ฌ์šฉํ•˜์—ฌ "๋ฉ”๋ชจ๋ฆฌ ๋ถ€์กฑ"์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณต๊ฐ„์™ธ: ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ๊ฐ€ ๊ฐ€๋“ ์ฐผ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ…Œ์ŠคํŠธ๋Š” ๋‹ค์†Œ ์ƒ์ง•์ ์ž…๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ์ค‘์— ์ƒ์„ฑ๋˜๋Š” ๋กœ๋“œ๊ฐ€ ๋ฏธ๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์— PostgreSQL์€ ์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋“œ ๋“œ๋ผ์ด๋ธŒ๊ฐ€ ๊ฐ€๋“ ์ฐจ๋„ ์‹คํŒจํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ํฌ์ŠคํŠธ๊ทธ๋ ˆ์Šค-KILL: ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ PostgreSQL์„ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. killall -KILL postgres.
  • ํฌ์ŠคํŠธ๊ทธ๋ ˆ์Šค-STOP: PostgreSQL ๋ช…๋ น์ด ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค. killall -STOP postgres.
  • ์ „์› ๋„๊ธฐ: ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ƒ ๋จธ์‹ ์˜ ์ „์›์„ "๋น„ํ™œ์„ฑํ™”"ํ•ฉ๋‹ˆ๋‹ค. VBoxManage controlvm "ะฒะธั€ั‚ัƒะฐะปะบะฐ" poweroff.
  • ๋‹ค์‹œ ์“ฐ๊ธฐ: ๋‹ค์Œ ๋ช…๋ น์œผ๋กœ ๊ฐ€์ƒ ๋จธ์‹ ์„ ์˜ค๋ฒ„๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. VBoxManage controlvm "ะฒะธั€ั‚ัƒะฐะปะบะฐ" reset.
  • SBD-์ •์ง€: ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ SBD ์•…๋งˆ๋ฅผ ์ •์ง€ํ•ฉ๋‹ˆ๋‹ค. killall -STOP sbd.
  • ์ผ์‹œ ํœด์—…: SSH๋ฅผ ํ†ตํ•ด ๊ฐ€์ƒ ๋จธ์‹ ์— ๋ช…๋ น์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค. systemctl poweroff, ์‹œ์Šคํ…œ์ด ์ •์ƒ์ ์œผ๋กœ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค.
  • ํ’€๋ฆฌ๋‹ค: ๋„คํŠธ์›Œํฌ ๊ฒฉ๋ฆฌ, ๋ช…๋ น VBoxManage controlvm "ะฒะธั€ั‚ัƒะฐะปะบะฐ" setlinkstate1 off.

ํ‘œ์ค€ tmux ๋ช…๋ น "kill-window"๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ ์™„๋ฃŒ Ctrl-b &๋˜๋Š” "detach-client" ๋ช…๋ น Ctrl-b d: ์ด ์‹œ์ ์—์„œ ํ…Œ์ŠคํŠธ๊ฐ€ ์ข…๋ฃŒ๋˜๊ณ  tmux๊ฐ€ ๋‹ซํžˆ๊ณ  ๊ฐ€์ƒ ๋จธ์‹ ์ด ๊บผ์ง‘๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ์ค‘ ํ™•์ธ๋œ ๋ฌธ์ œ

  • ํ˜„์žฌ ๊ฐ์‹œ๊ฒฌ ์•…๋งˆ SBD ๊ด€์ฐฐ๋œ ๋ฐ๋ชฌ์„ ์ค‘์ง€ํ•˜๋Š” ๋ฐ ์ž‘๋™ํ•˜์ง€๋งŒ ๋™๊ฒฐํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋™๊ฒฐ๋กœ๋งŒ ์ด์–ด์ง€๋Š” ๊ฒฐํ•จ ์ฝ”๋กœ์‹ฑํฌ ะธ ๋งฅ๋ฐ• ์กฐ์ • ์žฅ์น˜, ํ•˜์ง€๋งŒ ๋งค๋‹ฌ๋ฆฌ์ง€๋Š” ์•Š์Œ sbd. ํ™•์ธ์šฉ ์ฝ”๋กœ์‹ฑํฌ ์ด๋ฏธ์žˆ๋‹ค PR#83 (GitHub์—์„œ sbd), ์Šค๋ ˆ๋“œ์— ์Šน์ธ๋จ ์„์‚ฌ. ๊ทธ๋“ค์€ (PR#83์—์„œ) Pacemaker์—๋„ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์ด ์žˆ์„ ๊ฒƒ์ด๋ผ๊ณ  ์•ฝ์†ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ ˆ๋“œํ–‡ xnumx ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ "์˜ค์ž‘๋™"์€ ์ถ”์ธก์— ๋ถˆ๊ณผํ•˜๋ฉฐ ์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ์„ ์‚ฌ์šฉํ•˜์—ฌ ์‰ฝ๊ฒŒ ์ธ์œ„์ ์œผ๋กœ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. killall -STOP corosync, ํ•˜์ง€๋งŒ ์‹ค์ƒํ™œ์—์„œ๋Š” ์ ˆ๋Œ€ ๋งŒ๋‚˜์ง€ ๋งˆ์„ธ์š”.

  • ะฃ ๋งฅ๋ฐ• ์กฐ์ • ์žฅ์น˜ ๋ฒ„์ „์—์„œ๋Š” 7 CentOS์— ์ž˜๋ชป ์„ค์ •๋จ sync_timeout ัƒ ์ฟผ๋Ÿผ ์žฅ์น˜, ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ•œ ๋…ธ๋“œ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋‘ ๋ฒˆ์งธ ๋…ธ๋“œ๋„ ์žฌ๋ถ€ํŒ…๋  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค., ๋งˆ์Šคํ„ฐ๊ฐ€ ์ด๋™ํ•ด์•ผํ–ˆ๋˜ ๊ณณ์ž…๋‹ˆ๋‹ค. ํ™•๋Œ€๋กœ ์น˜๋ฃŒ๋จ sync_timeout ัƒ ์ฟผ๋Ÿผ ์žฅ์น˜ ๋ฐฐํฌ ์ค‘(์Šคํฌ๋ฆฝํŠธ์—์„œ setup/setup1). ์ด ์ˆ˜์ •์•ˆ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์Šน์ธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋งฅ๋ฐ• ์กฐ์ • ์žฅ์น˜๋Œ€์‹  ๊ทธ๋“ค์€ ์ด ์ œํ•œ ์‹œ๊ฐ„์ด ์ž๋™์œผ๋กœ ๊ณ„์‚ฐ๋˜๋Š” ๋ฐฉ์‹์œผ๋กœ(๋ฏธ๋ž˜ ๋ถˆํŠน์ • ์‹œ์ ) ์ธํ”„๋ผ๋ฅผ ์žฌ์„ค๊ณ„ํ•˜๊ฒ ๋‹ค๊ณ  ์•ฝ์†ํ–ˆ์Šต๋‹ˆ๋‹ค.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ์—์„œ ๋‹ค์Œ์„ ์ง€์ •ํ•˜๋Š” ๊ฒฝ์šฐ LC_MESSAGES (๋ฌธ์ž ๋ฉ”์‹œ์ง€) ์œ ๋‹ˆ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ru_RU.UTF-8, ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‹œ์ž‘ ์‹œ ํฌ์ŠคํŠธ ๊ทธ๋ ˆ์Šค ๋กœ์ผ€์ผ์ด UTF-8์ด ์•„๋‹Œ ํ™˜๊ฒฝ, ์˜ˆ๋ฅผ ๋“ค์–ด ๋นˆ ํ™˜๊ฒฝ(์—ฌ๊ธฐ์„œ๋Š” ํŽ˜์ด์Šค ๋ฉ”์ด์ปค+pgsqlms(paf) ์‹คํ–‰ ํฌ์ŠคํŠธ ๊ทธ๋ ˆ์Šค), ์ €๊ฒƒ ๋กœ๊ทธ์—๋Š” UTF-8 ๋ฌธ์ž ๋Œ€์‹  ๋ฌผ์Œํ‘œ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.. PostgreSQL ๊ฐœ๋ฐœ์ž๋“ค์€ ์ด ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ• ์ง€์— ๋Œ€ํ•ด ํ•ฉ์˜ํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๋น„์šฉ์ด ๋งŽ์ด ๋“ค๊ณ  ์„ค์น˜ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค LC_MESSAGES=en_US.UTF-8 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค๋ฅผ ๊ตฌ์„ฑ(์ƒ์„ฑ)ํ•  ๋•Œ.

  • wal_receiver_timeout์ด ์„ค์ •๋œ ๊ฒฝ์šฐ(๊ธฐ๋ณธ์ ์œผ๋กœ 60์ดˆ) tuchanka3 ๋ฐ tuchanka4 ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋งˆ์Šคํ„ฐ์—์„œ PostgreSQL-STOP ํ…Œ์ŠคํŠธ ์ค‘์— ๋ณต์ œ๊ฐ€ ์ƒˆ ๋งˆ์Šคํ„ฐ์— ๋‹ค์‹œ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.. ๋ณต์ œ๋Š” ๋™๊ธฐ์‹์ด๋ฏ€๋กœ ์Šฌ๋ ˆ์ด๋ธŒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ƒˆ ๋งˆ์Šคํ„ฐ๋„ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค. PostgreSQL์„ ๊ตฌ์„ฑํ•  ๋•Œ wal_receiver_timeout=0์„ ์„ค์ •ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์„ธ์š”.

  • ๊ฐ€๋” ForkBomb ํ…Œ์ŠคํŠธ์—์„œ PostgreSQL์˜ ๋ณต์ œ๊ฐ€ ์ค‘๋‹จ๋˜๋Š” ๊ฒƒ์„ ๊ด€์ฐฐํ–ˆ์Šต๋‹ˆ๋‹ค(๋ฉ”๋ชจ๋ฆฌ ์˜ค๋ฒ„ํ”Œ๋กœ). ForkBomb ์ดํ›„ ๋•Œ๋•Œ๋กœ ์Šฌ๋ ˆ์ด๋ธŒ๊ฐ€ ์ƒˆ ๋งˆ์Šคํ„ฐ์— ๋‹ค์‹œ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.. ๋™๊ธฐ ๋ณต์ œ๋กœ ์ธํ•ด ๋งˆ์Šคํ„ฐ๊ฐ€ ์ •์ง€๋œ tuchanka3 ๋ฐ tuchanka4 ํด๋Ÿฌ์Šคํ„ฐ์—์„œ๋งŒ ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ๋Š” ์˜ค๋žœ ์‹œ๊ฐ„(์•ฝ XNUMX์‹œ๊ฐ„) ํ›„์— ์ €์ ˆ๋กœ ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ๋ฐ”๋กœ์žก๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋” ๋งŽ์€ ์—ฐ๊ตฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ฆ์ƒ์€ ์ด์ „ ๋ฒ„๊ทธ์™€ ์œ ์‚ฌํ•˜๋ฉฐ ๋‹ค๋ฅธ ์›์ธ์œผ๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜์ง€๋งŒ ๊ฒฐ๊ณผ๋Š” ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

ํฌ๋กœ๊ฑด์—์„œ ์ฐ์€ ์‚ฌ์ง„ ์ทจํ–ฅ์ด ๋…ํŠน ์˜ˆ์ˆ  ์ €์ž์˜ ํ—ˆ๋ฝ์„ ๋ฐ›์•„:

PostgreSQL ๋ฐ Pacemaker๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์žฅ์•  ์กฐ์น˜ ํด๋Ÿฌ์Šคํ„ฐ ๋ชจ๋ธ๋ง

์ถœ์ฒ˜ : habr.com

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€