๋ฌธ์ œ ํ•ด๊ฒฐ

๋ฌธ์ œ ํ•ด๊ฒฐ

๋””์Šคํฌ ์žฅ์• 

๋””์Šคํฌ ์žฅ์• (์˜ค๋ฅ˜)๋Š” ๋””์Šคํฌ ์Šคํ† ๋ฆฌ์ง€ ๊ณ„์ธต์˜ ๋ฌผ๋ฆฌ์  ์—ฐ๊ฒฐ ๋‹จ์ž์˜ ๋‹จ์„  ์ด ์™ธ์—๋„ ๋ฏธ๋””์–ด ํŒŒ์†, ๋ฐฐ๋“œ ์„นํ„ฐ, SCSI ์˜ค๋ฅ˜ ๋“ฑ ์–˜๊ธฐ์น˜ ์•Š์€ ์žฅ์• ๋กœ ์ธํ•ด ๋””์Šคํฌ I/O ์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒƒ ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์žฅ์•  ๋“ค์€ ์ผ์‹œ์ ์œผ๋กœ ๋ฐœ์ƒํ–ˆ๋‹ค๊ฐ€ ์ •์ƒํ™” ๋˜๊ธฐ๋„ ํ•˜๊ณ  ์˜๊ตฌ์  ์žฅ์• ๋กœ ์ด์–ด์ง€๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. bsr ์—์„  ์ด๋Ÿฌํ•œ ์žฅ์• ๋ฅผ ์ผ์‹œ์  ์žฅ์• ์™€ ์˜๊ตฌ์  ์žฅ์•  ์œ ํ˜•์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ  ์œ ํ˜•์— ๋”ฐ๋ผ ์˜ค๋ฅ˜๋ฅผ ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

์ผ์‹œ์  ์žฅ์• ๋Š” ์Šคํ† ๋ฆฌ์ง€ ๊ณ„์ธต์—์„œ ์–ด๋–ค ์ด์œ ๋กœ ์ธํ•ด ์˜ค๋ฅ˜๊ฐ€ ์ž ์‹œ ๋ฐœ์ƒ ํ–ˆ๋‹ค๊ฐ€ ๋‹ค์‹œ ์ •์ƒํ™”๋˜๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ์—๋Š” ๋””์Šคํฌ ๊ต์ฒด๊ฐ€ ํ•„์š”ํ•œ ์ •๋„์˜ ์‹ฌ๊ฐํ•œ ์ƒํ™ฉ์ด ์•„๋‹ˆ๋ฏ€๋กœ ๋˜๋„๋ก์ด๋ฉด ์„œ๋น„์Šค ์šด์˜์„ ์ง€์†ํ•˜๋ฉด์„œ ๊ธฐ ๋ฐœ์ƒ๋œ ์—๋Ÿฌ์— ๋Œ€ํ•ด์„œ๋งŒ ๋ณ„๋„๋กœ ํ•ด์†Œํ•˜๊ณ  ๋ณต์ œ๋Š” ๊ณ„์† ์šด์˜๋˜๋„๋ก ํ•˜๋Š”๊ฒŒ ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.ย ์ฆ‰ ์ผ์‹œ์  ์˜ค๋ฅ˜ ์ƒํ™ฉ์—์„œ๋Š”ย I/O ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๋ธ”๋ก ์˜์—ญ์„ out-of-sync ๋กœ ๊ธฐ๋กํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ์ƒ์œ„ ๊ณ„์ธต์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ƒ์œ„ ํŒŒ์ผ์‹œ์Šคํ…œ์€ ํ•ด๋‹น ๋ธ”๋ก์œผ๋กœ I/O ๋ฅผ ์žฌ์‹œ๋„ ํ•˜๊ณ  ์žฌ์‹œ๋„๋œ I/O ๊ฐ€ ์„ฑ๊ณตํ•˜๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ OOS ๊ฐ€ ํ•ด์†Œ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฐœ์ƒํ–ˆ๋˜ ์˜ค๋ฅ˜๊ฐ€ ์žฌ์‹œ๋„๋ฅผ ํ†ตํ•ด ๊ธˆ๋ฐฉ ํ•ด์†Œ๋˜๋ฉด ์ผ์‹œ์  ์˜ค๋ฅ˜๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์žฌ ์‹œ๋„๋ฅผ ๊ณ„์† ํ•ด๋„ I/O ์˜ค๋ฅ˜๊ฐ€ ํ•ด์†Œ๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ์—” ์ด๊ฒƒ์„ ์˜๊ตฌ์ ์ธ ์˜ค๋ฅ˜๊ฐ€ ๊ฐ„์ฃผํ•˜๊ณ  ๋””์Šคํฌ ์ƒํƒœ๋ฅผ ๋ถ„๋ฆฌ(detach)ํ•˜์—ฌ ๋ณต์ œ๊ฐ€ ์ค‘๋‹จ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์˜๊ตฌ์ ์ธ ๋””์Šคํฌ ์˜ค๋ฅ˜๋Š” ๋””์Šคํฌ ๊ต์ฒด ๋“ฑ ๋””์Šคํฌ ์žฅ์• ์— ๋Œ€ํ•œ ์กฐ์น˜๊ฐ€ ํ•„์š”ํ•œ ์ƒํ™ฉ์œผ๋กœ ์ „์ฒด ์žฌ๊ตฌ์„ฑ์˜ ์ ˆ์ฐจ๋ฅผ ํ†ตํ•ด ๋ณต๊ตฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

I/O ์—๋Ÿฌย ์ฒ˜๋ฆฌ ์ •์ฑ…์€ ๋ฆฌ์†Œ์Šค <disk> ์„น์…˜์˜ on-io-error ์˜ต์…˜์„ ํ†ตํ•ด ์„ค์ • ๋ฉ๋‹ˆ๋‹ค.

resource <resource> { ย ย disk { ย ย ย ย on-io-errorย <strategy>; max-passthrough-count 100; ย ย ย ย ... ย ย } ย ย ... }

ํ•ด๋‹น ์˜ต์…˜์„ <common> ์„น์…˜์— ์ •์˜ํ•œ๋‹ค๋ฉดย ๋ชจ๋“  ๋ฆฌ์†Œ์Šค์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

<strategy>๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์„ธ ๊ฐ€์ง€ ์˜ต์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • passthrough on-io-error์˜ย ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ํ•˜์œ„๊ณ„์ธต์˜ I/O ์˜ค๋ฅ˜๋ฅผ ์ƒ์œ„ ๊ณ„์ธต์— ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. I/O ์˜ค๋ฅ˜๋Š” Primary ๋…ธ๋“œ์ผ ๊ฒฝ์šฐ ๋งˆ์šดํŠธ ๋œ ํŒŒ์ผ์‹œ์Šคํ…œ์œผ๋กœ ๋ณด๋‚ด๊ณ , Secondary ๋…ธ๋“œ์—์„œ๋Š” Primary ๋…ธ๋“œ๋กœ ์“ฐ๊ธฐ ๊ฒฐ๊ณผ๋ฅผ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ (๋ณต์ œ ์—ฐ๊ฒฐ์ด ์—†์„ ๊ฒฝ์šฐ)๋ฌด์‹œ ๋ฉ๋‹ˆ๋‹ค.ย ์ด๋•Œ ๋””์Šคํฌ ์ƒํƒœ๋Š” ํ˜„ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๋ฉฐย ํ•ด๋‹น ์—๋Ÿฌ๋ธ”๋Ÿญ์— ๋Œ€ํ•ด OOS๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. I/O ์˜ค๋ฅ˜๋Š” ์ƒ์œ„์— ์˜ํ•ด ์žฌ์‹œ๋„ ๋˜์–ด ์ •์ƒ ์ฒ˜๋ฆฌ๋˜๊ฑฐ๋‚˜ ๋‹ค์‹œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์žฌ์‹œ๋„๊ฐ€ ๋˜์–ด๋„ ์˜ค๋ฅ˜๊ฐ€ ์ง€์†๋˜๋ฉด ๋‹ค์Œ์˜ detach ์ •์ฑ…์— ์˜ํ•ด ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

    • max-passthrough-count ํŒจ์Šค์Šค๋ฃจ๋ฅผ ๋ฌดํ•œ์ • ํ•  ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค. ์ผ์ • ์ˆ˜ ์ด์ƒ ํŒจ์Šค์Šค๋ฃจ๊ฐ€ ๋ฐ˜๋ณต๋  ๊ฒฝ์šฐ ์˜๊ตฌ์  ๋””์Šคํฌ ์žฅ์• ๋กœ ๊ฐ„์ฃผํ•ด์•ผ ํ•˜๊ณ  ์—ฌ๊ธฐ์˜ ์ž„๊ณ„์ ์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  • detach ํ•˜์œ„๊ณ„์ธต์˜ I/O ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด, ๋…ธ๋“œ๋Š” ์žฅ์น˜๋ฅผ ๋ณต์ œ๋ณผ๋ฅจ์œผ๋กœ๋ถ€ํ„ฐ ๋ถ„๋ฆฌ(detach)์‹œํ‚ค๊ณ  diskless ์ƒํƒœ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

  • call-local-io-error. ๋กœ์ปฌ I/O ์—๋Ÿฌ ํ•ธ๋“ค๋Ÿฌ๋กœ ์ •์˜๋œ ๋ช…๋ น์„ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ local-io-error <cmd> ๊ฐ€ ๋ฆฌ์†Œ์Šค์˜ <handlers> ์„น์…˜์— ์ •์˜๋˜์–ด ์žˆ์–ด์•ผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.ย local-io-error ํ˜ธ์ถœ ๋ช…๋ น ๋˜๋Š” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ย I/O ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ์ „์ ์œผ๋กœ ์‚ฌ์šฉ์ž์˜ ๊ฒฐ์ •์— ๋งก๊น๋‹ˆ๋‹ค.

์—๋Ÿฌ์ฒ˜๋ฆฌ ์ •์ฑ…์€ ๋ฆฌ์†Œ์Šค๊ฐ€ ์šด์˜์ค‘์ด๋”๋ผ๋„ adjust ๋ช…๋ น์„ ํ†ตํ•ด ์‹ค์‹œ๊ฐ„ ์ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

passthrough ์ •์ฑ…์˜ ํŠน์ง•

bsr ์€ ํ•˜์œ„์˜ SCSI ์Šคํ† ๋ฆฌ์ง€ ๊ณ„์ธต์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋“ค์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๋™์•ˆ ๋””์Šคํฌ ์žฅ์•  ์ •์ฑ…์œผ๋กœ ์ œ๊ณตํ•ด ์™”๋˜ detach ์ •์ฑ…์€ ์„œ๋น„์Šค ์šด์˜๊ด€์ ์—์„  ๋ณต์ œ๊ฐ€ ํŠน์ • ์‹œ์ ์— ์ผ๋ฐฉ์ ์œผ๋กœ ์ค‘๋‹จ๋˜๋Š” ์ •์ฑ…์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ์‚ฌํ›„ ๋ณต๊ตฌ๋„ ์–ด๋ ต๊ณ  ์„œ๋น„์Šค ์šด์˜ ์ง€์† ์ธก๋ฉด์—์„œ๋„ ๋ถˆ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

ํŒจ์Šค์Šค๋ฃจ ์ •์ฑ…์€ I/O ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ํ•ด๋‹น ๋ธ”๋Ÿญ์— ๋Œ€ํ•ด์„œ OOS ๋ฅผ ๊ธฐ๋กํ•˜๊ณ  ์‹คํŒจ๋œ I/Oย ๊ฒฐ๊ณผ๋ฅผ ํŒŒ์ผ์‹œ์Šคํ…œ์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ ํŒŒ์ผ์‹œ์Šคํ…œ์ด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๋ธ”๋Ÿญ์— ๋Œ€ํ•ด ๋‹ค์‹œ ์“ฐ๊ธฐํ•˜์—ฌ ์ด๋ฅผ ํ†ตํ•ด OOS๋ฅผ ํ•ด์†Œํ•œ๋‹ค๋ฉด ์ด๋Š” ์ผ์‹œ์ ์ธ ๋””์Šคํฌ ๊ณ„์ธต์˜ ์—๋Ÿฌ๋ฅผ ํŒŒ์ผ์‹œ์Šคํ…œ ์Šค์Šค๋กœ ๊ทน๋ณตํ•˜๋„๋ก ์œ ๋„ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋น„๋ก ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ๋™์ž‘ ํŠน์„ฑ์— ๋”ฐ๋ผ ์™„์ „ํžˆ OOS๊ฐ€ ํ•ด์†Œ๋˜์ง€ ๋ชปํ•œ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ์ผ๋ถ€ ๋‚จ๊ฒจ์ง„ OOS ๋Š” ์—ฐ๊ฒฐ ์žฌ์‹œ๋„ ๋“ฑ์„ ํ†ตํ•ด ์žฌ๋™๊ธฐํ™” ํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŒจ์Šค์Šค๋ฃจ ์ •์ฑ…์€ ์—๋Ÿฌ ๋ธ”๋Ÿญ์„ FS๊ฐ€ ์Šค์Šค๋กœ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜ ๋™๊ธฐํ™”๋ฅผ ํ†ตํ•ด ํ•ด์†Œํ•˜๋„๋ก ์œ ๋„ํ•˜๊ณ , ๋””์Šคํฌ I/O ์— ์ผ์‹œ์  ๋ฌธ์ œ๊ฐ€ ์žˆ๋”๋ผ๋„ ๊ธฐ๋ณธ์ ์ธ ์„œ๋น„์Šค ์šด์˜์„ ์ง€์†ํ•˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

์ผ์‹œ์  ์žฅ์•  ์ฒ˜๋ฆฌ

I/O ์—๋Ÿฌ ์ •์ฑ…์„ ํŒจ์Šค์Šค๋ฃจ(passthough)๋กœ ์„ค์ •ํ•  ๊ฒฝ์šฐ I/O ์—๋Ÿฌ์˜ ๊ฒฐ๊ณผ๋Š” ํŒŒ์ผ์‹œ์Šคํ…œ์œผ๋กœ ์ „๋‹ฌ๋˜๊ณ ย bsr ์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ I/O ๋ธ”๋Ÿญ์„ OOS๋กœ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.ย ์ด๋Ÿฌํ•œ OOS๋Š” I/O ์—๋Ÿฌ๊ฐ€ ์ผ์‹œ์ ์ด์—ˆ๋‹ค๋ฉด ํŒŒ์ผ์‹œ์Šคํ…œ์— ์˜ํ•ด ์žฌ ์‹œ๋„ ๋˜์–ด ์Šค์Šค๋กœ ํ•ด์†Œ๋˜๊ฑฐ๋‚˜, ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ๋ณต์ œ ์žฌ์—ฐ๊ฒฐ์„ ํ†ตํ•ด ์žฌ๋™๊ธฐํ™”๋ฅผ ์œ ๋„ํ•˜์—ฌ ํ•ด๋‹น OOS ์˜์—ญ์„ ํ•ด์†Œํ•ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ OOS๋ฅผ ํ•ด์†Œํ•˜๋Š” ๋™๊ธฐํ™”์˜ ๋ฐฉํ–ฅ์ด๋‚˜ ์ ˆ์ฒด ์—ฌ๋ถ€ ๋“ฑ์˜ ์šด์˜์€ ๊ด€๋ฆฌ์ž ๋˜๋Š” HA ์šด์˜ ๋กœ์ง์— ๋งก๊น๋‹ˆ๋‹ค.ย 

๋””์Šคํฌ ์˜ค๋ฅ˜ ์ •์ฑ…์„ detach ์ •์ฑ…์œผ๋กœ ํ•˜์—ฌ ๋ฆฌ์†Œ์Šค ๋ถ„๋ฆฌ๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜๋„ ์žˆ์œผ๋‚˜ ์ž๋™๋ถ„๋ฆฌ(detach) ์ •์ฑ… ๋ณด๋‹ค๋Š” passthrough ์ •์ฑ…์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. passthrough ์ •์ฑ…์ด ๋””์Šคํฌ์˜ ์ผ์‹œ์  ์˜ค๋ฅ˜์— ๋Šฅ๋™์ ์œผ๋กœ ๋Œ€์ฒ˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋งŒํผ ์„œ๋น„์Šค ์šด์˜ ์ธก๋ฉด์—์„œ ๋ณด๋‹ค ๋” ํ•ฉ๋‹นํ•ฉ๋‹ˆ๋‹ค.

bsr ์€ I/O ์˜ค๋ฅ˜๊ฐ€ ์ผ์‹œ์ ์ธ์ง€ ๋˜๋Š” ์˜๊ตฌ์ ์ธ์ง€ ํŒ๋‹จํ•  ์ˆ˜ ์—†์œผ๋ฉฐ ์„นํ„ฐ ๋‹จ์œ„์˜ I/O ์˜ค๋ฅ˜ ์ถ”์  ๋“ฑ์˜ ๊ตฌ์ฒด์ ์ธ ์˜ค๋ฅ˜ ํ†ต๊ณ„๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ํ•ด๋‹น ์žฅ์น˜์— ๋Œ€ํ•œ I/O ์—๋Ÿฌ ๋ฐœ์ƒ ํšŒ์ˆ˜ ์ •๋ณด๋งŒ ๊ฐ„์งํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์ธ ์ •๋ณด๋Š” ์•Œ ์ˆ˜ ์—†์ง€๋งŒ bsradm status์˜ I/O ์—๋Ÿฌ ํšŒ์ˆ˜๋ฅผ ํ† ๋Œ€๋กœ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ์ •๋„๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ผ์‹œ์  ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค๋ฉด status์— ๋ณด์—ฌ์ง€๋Š” io error ์™€ oos ๋Š” ๋‹ค์†Œ๊ฐ„์˜ ์–‘๋งŒ ๊ธฐ๋ก๋˜์–ด ์žˆ์„ ๊ฒƒ์ด๋ฉฐ ์‹œ๊ฐ„์ด ์ง€๋‚˜๋„ ๊ทธ ์–‘์€ ์ฆ๊ฐ€ํ•˜์ง€ ์•Š์„ ๊ฒƒ ์ž…๋‹ˆ๋‹ค.

์˜๊ตฌ์  ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

์ผ์‹œ์ ์œผ๋กœ I/O ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜์—ฌ ๋‹ค์†Œ๊ฐ„์˜ OOS๊ฐ€ ๊ธฐ๋ก๋˜๋Š” ์ƒํ™ฉ์„ ์ œ์™ธํ•œ ๋ชจ๋“  ๋””์Šคํฌ ์˜ค๋ฅ˜ ์ƒํ™ฉ์„ ์˜๊ตฌ์  ์˜ค๋ฅ˜ ์ƒํƒœ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.

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

๋””์Šคํฌ ๊ต์ฒด

๋‹ค์Œ๊ณผ ๊ฐ™์ดย ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์žฌ์ƒ์„ฑํ•˜๊ณ , ๋ฆฌ์†Œ์Šค๋ฅผ ๋‹ค์‹œ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•˜๋‹ค๋ฉด ๋ช…์‹œ์ ์œผ๋กœ ๋™๊ธฐํ™” ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ „์ฒด๋™๊ธฐํ™”๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

C:\Program Files\bsr\bin>bsradm down <resource> ย ย  C:\Program Files\bsr\bin>bsradm create-md <resource> v08 Magic number not found Writing meta data... initialising activity log NOT initializing bitmap New bsr meta data block sucessfully created. ย  ย  C:\Program Files\bsr\bin>bsradm up <resource> C:\Program Files\bsr\bin>bsradm invalidate <resource>

๊ธฐํƒ€

๋””์Šคํฌ ์ฝ๊ธฐ ์˜ค๋ฅ˜, ๋ฉ”ํƒ€๋””์Šคํฌ I/O ์˜ค๋ฅ˜์— ๋Œ€ํ•ด์„  ์ž๋™ ๋ถ„๋ฆฌ(detach) ์ •์ฑ…์ด ์ ์šฉ๋˜๊ณ  ๋ณต์ œ๋ฅผ ์ค‘๋‹จํ•ฉ๋‹ˆ๋‹ค. ์ค‘๋‹จ๋œ ๋ฆฌ์†Œ์Šค๋Š” ์žฌ๊ตฌ์„ฑ์„ ํ†ตํ•ด์„œ๋งŒ ๋ณต๊ตฌ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋…ธ๋“œ ์žฅ์• 

ํ•˜๋“œ์›จ์–ด์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒ๋˜๊ฑฐ๋‚˜ ๋˜๋Š” ์ˆ˜๋™์ ์ธ ๊ฐœ์ž…์œผ๋กœ ์ธํ•˜์—ฌ ๋…ธ๋“œ๊ฐ€ ๋‹ค์šด๋˜๋ฉด ์ƒ๋Œ€ํŽธ ๋…ธ๋“œ๋Š” ์ƒํ™ฉ์„ ๊ฐ์ง€ํ•˜๊ณ  ์—ฐ๊ฒฐ ์ƒํƒœ๋ฅผย Connecting ์œผ๋กœ ์ „ํ™˜ํ•˜๊ณ  ์ƒ๋Œ€ ๋…ธ๋“œ๊ฐ€ ๋‹ค์‹œ ๋‚˜ํƒ€๋‚  ๋•Œ๊นŒ์ง€ disconnected ๋ชจ๋“œ ์ƒํƒœ๋กœ ๋Œ€๊ธฐํ•ฉ๋‹ˆ๋‹ค.ย  ๋…ธ๋“œ ์žฅ์• ๋Š” ๋ณดํ†ต ์ž๋™๋ณต๊ตฌ๋˜๋Š” ์ผ์‹œ์  ์žฅ์• ๋กœ ์ทจ๊ธ‰๋˜์ง€๋งŒ ์˜๊ตฌ์  ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ์ˆ˜์ž‘์—…์œผ๋กœ ๋ณต๊ตฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Secondary ์˜ ์ผ์‹œ์  ์žฅ์• 

ํƒ€๊นƒ ์ธก์ด ๋‹ค์šด๋ฌ์„ ๊ฒฝ์šฐ ์†Œ์Šค ์ธก์€ disconnected ๋ชจ๋“œ๋กœ ์šด์˜์„ ์ง€์†ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ธ”๋ก์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์€ ์ƒ๋Œ€ ๋…ธ๋“œ๋กœ ๋ณต์ œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ ๋ณ€๊ฒฝ๋˜๊ณ  ์žˆ๋Š” ๋ธ”๋ก์— ๋Œ€ํ•œ ์ •๋ณด๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์ €์žฅํ•˜์—ฌ ์ถ”ํ›„ ์ƒ๋Œ€ ๋…ธ๋“œ๊ฐ€ ๋ณต๊ตฌ๋  ์‹œ ๋ณ€๊ฒฝ ๋œ ๋ธ”๋Ÿญ์— ๋Œ€ํ•ด ๋™๊ธฐํ™” ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋Œ€๊ธฐ ํ•ฉ๋‹ˆ๋‹ค.

Primary ์˜ ์ผ์‹œ์  ์žฅ์• 

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

์†Œ์Šค ์ธก์ด ๋‹ค์šด๋ฌ์„ ๊ฒฝ์šฐ HA ๋Š” ์šฐ์„  ์ ˆ์ฒด ์—ฌ๋ถ€๋ฅผ ๊ฒฐ์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ ˆ์ฒด ์—ฌ๋ถ€์— ๋”ฐ๋ผ ์ถ”ํ›„ ์†Œ์Šค ๋…ธ๋“œ๊ฐ€ ๋ณต๊ตฌ๋˜์–ด ํด๋Ÿฌ์Šคํ„ฐ์— ํ•ฉ๋ฅ˜ ๋˜์—ˆ์„ ๋•Œ ์–ด๋А ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋™๊ธฐํ™” ํ•  ์ง€๊ฐ€ ํŒ๊ฐ€๋ฆ„ ๋ฉ๋‹ˆ๋‹ค.

  • ์ ˆ์ฒด๋ฅผ ํ•˜๋ฉด ๋Œ€๊ธฐ๋…ธ๋“œ ์˜€๋˜ ๋…ธ๋“œ๊ฐ€ ์ƒˆ๋กœ์šด ์†Œ์Šค ๋…ธ๋“œ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ์ ˆ์ฒด๋ฅผ ํ•˜์ง€ ์•Š๊ณ  ๋Œ€๊ธฐํ•  ๊ฒฝ์šฐ ์›๋ž˜ ์†Œ์Šค ๋…ธ๋“œ์˜€๋˜ ๋…ธ๋“œ๊ฐ€ ๋™๊ธฐํ™” ์†Œ์Šค๋…ธ๋“œ์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

Primary ๋…ธ๋“œ ์žฅ์• ์˜ ๊ฒฝ์šฐย AL ์„ ํ†ตํ•œ ํŠน๋ณ„ํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ๋ธ”๋ก ๋””๋ฐ”์ด์Šค์˜ ์ •ํ•ฉ์„ฑ์„ ๋งž์ถ”๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด์™€ ๊ด€๋ จํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ย ์•กํ‹ฐ๋น„ํ‹ฐ ๋กœ๊ทธ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์˜๊ตฌ์  ์žฅ์• 

์˜๊ตฌ์ ์ด๊ฑฐ๋‚˜ ๋ณต๊ตฌ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•œ ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ, ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ ํ•˜๋“œ์›จ์–ด๋ฅผ ์œ ์‚ฌํ•œ ์„ฑ๋Šฅ ๋ฐ ๋””์Šคํฌ ์šฉ๋Ÿ‰์˜ ํ•˜๋“œ์›จ์–ด๋กœ ๊ต์ฒดํ•ฉ๋‹ˆ๋‹ค.

ํƒ€๊นƒ์—์„œ ๊ธฐ์กด ๋ณด๋‹ค ์ž‘์€ ์šฉ๋Ÿ‰์˜ ๋””์Šคํฌ๋กœ ๊ต์ฒดํ•  ๊ฒฝ์šฐ ๋ณต์ œ ์—ฐ๊ฒฐ์ด ๊ฑฐ๋ถ€๋˜๋ฏ€๋กœ ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ ์‹œ์Šคํ…œ๊ณผ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.

  • bsr์„ ์„ค์น˜ํ•˜๊ณ , ๋™์ž‘ํ•˜๊ณ  ์žˆ๋Š” ๋…ธ๋“œ์˜ /etc/bsr.d/ ์•„๋ž˜์— ์žˆ๋Š” ํŒŒ์ผ๋“ค๊ณผ /etc/bsr.conf๋ฅผ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฆฌ์†Œ์Šค ์žฌ๊ตฌ์„ฑย ์— ๋งž๊ฒŒ ์žฌ ๊ตฌ์„ฑํ•˜๊ณ , ๋ฆฌ์†Œ์Šค๋ฅผ ๊ธฐ๋™ํ•˜๊ณ  ์ดˆ๊ธฐ ๋™๊ธฐํ™”๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋งŒ์ผ Primary ๊ฐ€ ์ด๋ฏธ ๋™์ž‘ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์—ฐ๊ฒฐ๋˜๋ฉด์„œ ์ž๋™์œผ๋กœ ๋™๊ธฐํ™”๊ฐ€ ์‹œ์ž‘๋˜๋ฏ€๋กœ ์ˆ˜๋™์œผ๋กœ ๋™๊ธฐํ™”๋ฅผ ํ•  ํ•„์š”๋Š” ์—†์Šต๋‹ˆ๋‹ค.

์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ

์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ๋™์ž‘ ์„ค์ •

bsr ์€ ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์„ ๊ฐ์ง€ํ•˜๋ฉด ์ž๋™์œผ๋กœ ์šด์˜์ž์—๊ฒŒ ์•Œ๋ฆด ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ๋ฐœ์ƒ ์•Œ๋ฆผ

์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ๋ฐœ์ƒ ์‹œ ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ๊ตฌ์„ฑํ•˜์—ฌ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์ด์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ ์˜ˆ ์ž…๋‹ˆ๋‹ค.

resource <resource> ย ย handlers { ย ย ย ย split-brainย <handler>; ย ย ย ย ... ย ย } ย ย ... }

<handler>๋Š” ์‹œ์Šคํ…œ ์ƒ์—์„œ ์Šคํฌ๋ฆฝํŠธ์™€ ๊ฐ™์€ ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ํ˜•ํƒœ์˜ ๋ชจ๋“ˆ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต ๋ฐฐ์น˜ํŒŒ์ผ์ด๋‚˜ ์‰˜ ์Šคํฌ๋ฆฝํŠธ์™€ ๊ฐ™์€ ์‹คํ–‰ ํ˜•ํƒœ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

์ฃผ์˜ ํ• ์ 

์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ํ•ธ๋“ค๋Ÿฌ์˜ ๋ฆฌํ„ด ๊ฒฐ๊ณผ๋Š” bsr ์ปค๋„ ์—”์ง„๊ณผ ๋™๊ธฐ์ ์œผ๋กœ ์—ฐ๊ณ„๋˜๊ธฐ ๋•Œ๋ฌธ์— ํ•ธ๋“ค๋Ÿฌ์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ๊ฐ€ ๋ฆฌํ„ด๋˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ์ปค๋„ ์—”์ง„์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณต์žกํ•˜์ง€ ์•Š์€ ๋‹จ์ˆœํ•œ ์Šคํฌ๋ฆฝํŠธ๋กœ ๊ตฌ์„ฑํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ํ•ธ๋“ค๋Ÿฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋น„ํ™œ์„ฑํ™” ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค.ย ๋‹ค์Œ ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•ธ๋“ค๋Ÿฌ ์„œ๋น„์Šค๋ฅผ ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

bsrcon /handler_use 1

์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ์ƒํƒœ ํ™•์ธ

์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ์˜ ์ƒํƒœ ์ถœ๋ ฅ ๊ฒฐ๊ณผ ์ž…๋‹ˆ๋‹ค.

C:\Users\Administrator>bsrsetup status r0 --verbose --statistic r0 node-id:0 role:Primary suspended:no write-ordering:drain req-pending:0 volume:0 minor:2 disk:UpToDate size:10467328 read:29847120 written:3029330 al-writes:260 bm-writes:0 upper-pending:0 lower-pending:0 al-suspended:no al-pending-changes:0 al-used:0 accelbuf-used:0 blocked:no D3W2K22BSRAG-002 node-id:1 connection:StandAlone error:split-brain role:Unknown congested:no volume:0 replication:Off peer-disk:DUnknown resync-suspended:no received:0 sent:11803912 out-of-sync:329892 pending:0 unacked:0 D3W2K22BSRAG-003 node-id:2 connection:Connected role:Secondary congested:no volume:0 replication:Established peer-disk:UpToDate resync-suspended:no received:0 sent:16247308 out-of-sync:0 pending:0 unacked:0

ย 

์ˆ˜๋™ ๋ณต๊ตฌ

๋ณต์ œ ์—ฐ๊ฒฐ ๋‹จ์ ˆ ํ›„ ์–‘ ๋…ธ๋“œ๊ฐ€ Primary ์—ญํ• ์ด์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ๊ฐ์ง€ํ–ˆ๋‹ค๋ฉดย ์ƒ๋Œ€ ๋…ธ๋“œ์™€ย ์žฌ ์—ฐ๊ฒฐํ•˜๋Š” ์‹œ์ ์—ย ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ(Split-brain)์œผ๋กœ ํŒ๋‹จํ•˜๊ณ  ์ฆ‰์‹œ ๋ณต์ œ ์—ฐ๊ฒฐ์„ ๋Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋กœ๊ทธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๋ฅผ ๋‚จ๊น๋‹ˆ๋‹ค.

Split-Brain detected, dropping connection!ย 

ํ•˜๋‚˜์˜ ๋…ธ๋“œ์—์„œย ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์ด ๊ฐ์ง€๋˜๋ฉดย ๋ฆฌ์†Œ์Šค๋Š”ย StandAlone ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. ์–‘ ๋…ธ๋“œ๊ฐ€ ๋™์‹œ์—ย ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์„ ๊ฐ์ง€ํ–ˆ๋‹ค๋ฉด ์–‘ ๋…ธ๋“œ ๋ชจ๋‘ StandAlone ์ƒํƒœ๊ฐ€ ๋˜์ง€๋งŒ, ํ•œ ๋…ธ๋“œ์—์„œย ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์„ ๊ฐ์ง€ํ•˜๊ธฐ ์ „์— ์ƒ๋Œ€ ๋…ธ๋“œ๊ฐ€ ์—ฐ๊ฒฐ์„ ๋จผ์ € ๋Š๊ฒŒ ๋˜๋ฉด SB๋ฅผ ๊ฐ์ง€ํ•˜์ง€ ๋ชปํ•œ ์ฑ„ ๋‹จ์ง€ Connecting ์ƒํƒœ๋กœ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์„ ๋ณต๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„  ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธย ์ž๋™ ๋ณต๊ตฌ ๊ตฌ์„ฑ์ด ๋˜์–ด ์žˆ์ง€ ์•Š๋Š” ํ•œ, ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ๊ธฐํ•  ๋…ธ๋“œ(victim)๋ฅผ ๋จผ์ € ์„ ํƒํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ ˆ์ฐจ๋ฅผ ํ†ตํ•ด ์ˆ˜๋™์œผ๋กœ ๋ณต๊ตฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € ์–‘ ๋…ธ๋“œ์—์„œ ๋‹ค์Œ์˜ ๋ช…๋ น์„ ํ†ตํ•ด StandAlone ์ƒํƒœ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

bsradm disconnect <resource>

ํ๊ธฐํ•  ๋…ธ๋“œ(victim)์—์„œ ์•„๋ž˜ ๋ช…๋ น์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.ย 

bsradm secondary <resource> bsradm connect --discard-my-data <resource>

์šด์˜ ๋…ธ๋“œ(survivor) ์—์„œ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ๊ฐ€ ์ด๋ฏธ Connecting ์ƒํƒœ์˜€๋‹ค๋ฉด ์ž๋™์œผ๋กœ ์—ฐ๊ฒฐ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ๋‹จ๊ณ„๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

bsradm connect <resource>

์ •์ƒ์ ์œผ๋กœ ์—ฐ๊ฒฐ๋˜๋ฉดย victim์˜ ๋ณต์ œ ์ƒํƒœ๋Š” ์ฆ‰์‹œ SyncTarget์œผ๋กœ ๋ณ€๊ฒฝ๋˜๊ณ , ๋…ธ๋“œ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์ ๋“ค์ด survivor ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋™๊ธฐํ™” ๋ฉ๋‹ˆ๋‹ค.

์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์˜ ํ๊ธฐ ๋…ธ๋“œ(victim)์˜ ๋ฐ์ดํ„ฐ๋Š” ์ „์ฒด ๋””๋ฐ”์ด์Šค ์ฐจ์›์—์„œ ๋™๊ธฐํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‹จ์ง€ victim์˜ ์ˆ˜์ •์‚ฌํ•ญ์„ ๋กค๋ฐฑํ•˜๊ณ , ๋ชจ๋“  ์ˆ˜์ •์‚ฌํ•ญ์— ๋Œ€ํ•ดย ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธย survivor์—์„œ victim๋…ธ๋“œ๋กœ ์ „ํŒŒ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰ ๋ณ€๊ฒฝ ๋ถ„์— ๋Œ€ํ•ด์„œ๋งŒ ๋™๊ธฐํ™”๊ฐ€ ์ด๋ฃจ์–ด ์ง‘๋‹ˆ๋‹ค.

์žฌ๋™๊ธฐํ™”๊ฐ€ ์™„๋ฃŒ๋˜๋ฉดย ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์€ ํ•ด๊ฒฐ๋œ ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜๋ฉฐ, ๋‘ ๋…ธ๋“œ๋Š” ๋‹ค์‹œย ์™„์ „ํžˆ ์ผ์น˜๋œ ์ด์ค‘ํ™” ๋ณต์ œ ์ €์žฅ ์‹œ์Šคํ…œ์œผ๋กœ ๋ณต๊ตฌ๋ฉ๋‹ˆ๋‹ค.ย 

๋‹ค์ค‘ ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ

1:N ๋ณต์ œ ํ™˜๊ฒฝ์—์„  ๋…ธ๋“œ๋“ค ๊ฐ„์˜ ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์ด ๋‹ค์ค‘์œผ๋กœ ๋ฐœ์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ย 

์˜ˆ๋ฅผ ๋“ค์–ด A-B-C ์˜ 1:2 ๋ณต์ œ ๊ตฌ์„ฑ์˜ ๊ฒฝ์šฐ ๊ฐ ๋…ธ๋“œ์˜ ์—ฐ๊ฒฐ์„ ๋‹จ์ ˆํ•˜๊ณ  ๋ชจ๋“  ๋…ธ๋“œ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์Šน๊ฒฉ ํ›„ย ๋ณผ๋ฅจ์— I/O ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ›„ ๊ฐ ๋…ธ๋“œ๋ฅผ ๊ฐ•๋“ฑํ•˜์—ฌ ์žฌ ์—ฐ๊ฒฐํ•˜๋ฉด ๊ฐ๊ฐ์˜ ๋…ธ๋“œ๊ฐ„์— ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์ด ๋ฐœ์ƒ๋ฉ๋‹ˆ๋‹ค. ์ด ๋•Œ ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์€ A-B ๋…ธ๋“œ๊ฐ„, B-C ๋…ธ๋“œ๊ฐ„์— ๋˜๋Š” A-C ๋…ธ๋“œ ๊ฐ„์˜ ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ์ƒํ™ฉ์ด๋ฉฐ ํด๋Ÿฌ์Šคํ„ฐ ๋‚ด ๋…ธ๋“œ๊ฐ„์˜ SB๊ฐ€ ๋‹ค์ค‘์œผ๋กœ ๋ฐœ์ƒ๋œ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ ๋‹ค์ค‘ SB์˜ ํ•ด๊ฒฐ์€ ๋…ธ๋“œ๋“ค ๊ฐ„์˜ ๊ฐœ๋ณ„ ์—ฐ๊ฒฐ ๊ธฐ์ค€์œผ๋กœ ๋‹ค์Œ์˜ ์ ˆ์ฐจ์— ๋”ฐ๋ผ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • Survival ๋…ธ๋“œ์™€ Victim ๋…ธ๋“œ๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ  ๋ชจ๋“  ๋…ธ๋“œ์—์„œ disconnect ํ•˜์—ฌ StandAlone ์ƒํƒœ๋ฅผ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

  • SB๊ฐ€ ๋ฐœ์ƒํ•œ ๋…ธ๋“œ๊ฐ„์— SB๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

    • Survival ๋…ธ๋“œ๋Š”ย bsrsetup connect [resource]ย [victim node-id] ๋ช…๋ น์„ ํ†ตํ•ด Connecting ์ƒํƒœ๋กœ ์ง„์ž…

    • Victim ๋…ธ๋“œ๋Š”ย bsrsetup connect [resource]ย [survival node-id]ย --discard-my-data ๋ช…๋ น์„ ํ†ตํ•ด SB ํ•ด๊ฒฐ

  • SB๊ฐ€ ํ•ด๊ฒฐ๋˜๊ณ  ๋‚˜๋ฉด ์—ฐ๊ฒฐ์ด ๋˜์ง€ ์•Š์€ Victim ๋…ธ๋“œ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ๋ณต์›ํ•ฉ๋‹ˆ๋‹ค.ย bsrsetup connect [resource]ย [victim node-id]

    • SB ๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ ์—ฐ๊ฒฐ์„ ๋ณต์›ํ•˜๋Š” ๋„์ค‘ 2์ฐจ SB๊ฐ€ ๋ฐœ์ƒ๋  ๊ฒฝ์šฐ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ ์œ„์™€ ๋™์ผํ•œ ์ ˆ์ฐจ๋กœ SB๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์ž๋™ย ๋ณต๊ตฌ

์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์ด ๋ฐœ์ƒํ•˜๋ฉด ๊ด€๋ฆฌ์ž์—๊ฒŒ๋Š”ย ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ์ˆ˜๋™ ๋ณต๊ตฌ(Manual split brain recovery)๊ฐ€ ๊ถŒ์žฅ๋˜์ง€๋งŒ, ๊ฒฝ์šฐ์— ๋”ฐ๋ผ์„œ๋Š” ๊ทธ ๊ณผ์ •์„ ์ž๋™ํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

bsr์€ ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์„ ์ž๋™ ๋ณต๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๋ช‡ ๊ฐ€์ง€ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • Younger Primary ๋…ธ๋“œ์˜ ์ˆ˜์ •๋ถ„ ํ๊ธฐ:ย ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ดย ๋‹ค์‹œ ๋ณต๊ตฌย ๋˜๊ณ  ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์ด ๊ฐ์ง€๋˜๋ฉด, ์ตœ๊ทผ Primary ์—ญํ• ๋กœ ์ „ํ™˜ํ•œ ๋…ธ๋“œ์˜ ์ˆ˜์ •๋ถ„์„ ํ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

  • Older Primary ๋…ธ๋“œ์˜ ์ˆ˜์ •๋ถ„ ํ๊ธฐ: ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ดย ๋‹ค์‹œ ๋ณต๊ตฌย ๋˜๊ณ  ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์ด ๊ฐ์ง€๋˜๋ฉด, ์ฒ˜์Œ Primaryย ์—ญํ• ์„ ๊ฐ€์กŒ๋˜ ๋…ธ๋“œ์˜ ์ˆ˜์ •๋ถ„์„ ํ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

  • ์ˆ˜์ • ๋‚ด์šฉ์ด ์ ์€ Primary ๋ฐ์ดํ„ฐ ํ๊ธฐ - ์–‘์ชฝ ๋…ธ๋“œ์—์„œ ์ˆ˜์ • ๋‚ด์šฉ์ด ๋” ์ ์€ ์ชฝ ๋…ธ๋“œ๋ฅผ ํ™•์ธํ•˜์—ฌ ๊ทธ ๋…ธ๋“œ์˜ ๋‚ด์šฉ์„ ํ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

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

์ž๋™ ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ๋ณต๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ง€ ์—ฌ๋ถ€๋Š” ๋Œ€์ฒด๋กœ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด bsr์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ์—ฐ๊ด€๋œ ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์›น ์‘์šฉํ”„๋กœ๊ทธ๋žจ์—์„œ๋Š” ํ๊ธฐ ํ•ด์•ผํ•  ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ๊ฑฐ์˜ ์—†์–ด์„œ ์ž๋™ ๋ณต๊ตฌ๊ฐ€ ๊ดœ์ฐฎ์€ ์ˆ˜๋‹จ์ด ๋  ์ˆ˜ ์žˆ์ง€๋งŒย ๋ฐ˜๋Œ€๋กœ ๊ธˆ์œต ๋ฐ์ดํ„ฐ ์ฒ˜๋Ÿผ ๊ทธ ์–ด๋– ํ•œ ๋ฐ์ดํ„ฐ๋ผ๋„ ํ•จ๋ถ€๋กœ ํ๊ธฐ๊ฐ€ ํž˜๋“  ์„ฑ๊ฒฉ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ™˜๊ฒฝ์—์„œ๋Š” ์‚ฌ๋žŒ์ด ์ง์ ‘ ์ˆ˜๋™ ๋ณต๊ตฌ๋ฅผ ํ•ด์•ผ ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ž๋™ ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ๋ณต๊ตฌ๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ธฐ ์ „์— ์‘์šฉํ”„๋กœ๊ทธ๋žจ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ์‹ ์ค‘ํ•˜๊ฒŒ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ž๋™ ๋ณต๊ตฌ ์ •์ฑ…

์ž๋™ split-brain ๋ณต๊ตฌ ์ •์ฑ…์„ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” bsr์ด ์ œ๊ณตํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๊ตฌ์„ฑ ์˜ต์…˜์„ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. bsr์€ SB ๊ฐ์ง€ ์‹œ Primary๋กœ ์žˆ์—ˆ๋˜ ๋…ธ๋“œ์˜ ์ˆ˜์— ๋”ฐ๋ผ ๋ณต๊ตฌ ์ •์ฑ…์„ ๊ตฌ๋ถ„ํ•˜๊ณ , ์ด์— ๋Œ€ํ•œ ์ž๋™ ๋ณต๊ตฌ ์ •์ฑ…์€ ๋ฆฌ์†Œ์Šค์˜ <net> ์„น์…˜์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

after-sb-0pri. SB๊ฐ€ ๋ฐœ์ƒ๋œ ์‹œ์ ์—, ์–ด๋–ค ๋…ธ๋“œ๋„ Primary ์—ญํ• ์— ์žˆ์ง€ ์•Š์€ ์ƒํ™ฉ์œผ๋กœ ๋ณต๊ตฌ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.ย 

  • disconnectย : ์ž๋™์œผ๋กœ ๋ณต๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ๋œ SB ํ•ธ๋“ค๋Ÿฌ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , disconnected ๋ชจ๋“œ๋ฅผ ์ง€์†ํ•ฉ๋‹ˆ๋‹ค.

  • discard-younger-primaryย : ๋งˆ์ง€๋ง‰์œผ๋กœ Primary ์—ญํ• ์„ ํ–ˆ๋‹ค๊ณ  ์ถ”์ •๋˜๋Š” ๋…ธ๋“œ์—์„œ ์ˆ˜์ •์‚ฌํ•ญ์„ ์ทจ์†Œํ•˜๊ณ  ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค. younger primary๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์—†๋‹ค๋ฉดย discard-zero-changes,ย discard-least-changes ์ˆœ์„œ๋กœ ๋™์ž‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.ย 

  • discard-least-changesย : ์ตœ์†Œ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•œ ๋…ธ๋“œ์—์„œย ์ˆ˜์ •์‚ฌํ•ญ์„ ์ทจ์†Œํ•˜๊ณ  ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค.

  • discard-zero-changesย : ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์€ ๋…ธ๋“œ๊ฐ€ ์žˆ๋‹ค๋ฉด, ๋‹ค๋ฅธ ๋…ธ๋“œ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

after-sb-1pri.ย SB๊ฐ€ ๋ฐœ์ƒ๋œ ์‹œ์ ์—, ํ•˜๋‚˜์˜ ๋…ธ๋“œ๊ฐ€ Primary ์—ญํ• ์— ์žˆ๋Š”ย ์ƒํ™ฉ์œผ๋กœ ๋ณต๊ตฌ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.ย 

  • disconnectย :ย ์ž๋™์œผ๋กœ ๋ณต๊ตฌํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ๋œ SB ํ•ธ๋“ค๋Ÿฌ ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ด๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , disconnected ๋ชจ๋“œ๋ฅผ ์ง€์†ํ•ฉ๋‹ˆ๋‹ค.

  • consensusย : SB victim์ด ์„ ํƒ๋  ์ˆ˜ ์žˆ๋‹ค๋ฉด ์ž๋™์œผ๋กœ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด,ย disconnect์ฒ˜๋Ÿผ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.

  • call-pri-lost-after-sbย :ย SB victim์ด ์„ ํƒ๋  ์ˆ˜ ์žˆ๋‹ค๋ฉด, victim ๋…ธ๋“œ์—์„œย pri-lost-after-sb ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ์ด ํ•ธ๋“ค๋Ÿฌ๋Š” <handlers> ์„น์…˜์— ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•˜๊ณ , ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋…ธ๋“œ๊ฐ€ ๊ฐ•์ œ๋กœ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค.

  • discard-secondaryย : ํ˜„์žฌ Secondary ์—ญํ• ์— ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ SB victim์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

after-sb-2pri.ย SB๊ฐ€ ๋ฐœ๊ฒฌ๋œ ์‹œ์ ์— ์–‘ ๋…ธ๋“œ์—์„œ Primary ์—ญํ• ์— ์žˆ๋Š” ์ƒํ™ฉ์œผ๋กœ,ย ๋ณต๊ตฌ ๋ฐฉ๋ฒ•์€ disconnect ๋ฅผ ํ†ตํ•œ ์ˆ˜๋™ ๋ณต๊ตฌ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ํŒŒ์ผ ์ž‘์„ฑ ์˜ˆ์‹œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

resource <resource> { ย ย ย ย handlers { ย ย ย ย ย ย ย ย split-brainย "C:/Tools/script/split-brain.bat"; ย ย ย ย ย ย ย ย ... ย ย ย ย } ย ย ย ย net { ย ย ย ย ย ย ย ย after-sb-0pri discard-zero-changes; ย ย ย ย ย ย ย ย after-sb-1pri discard-secondary; ย ย ย ย ย ย ย ย ... ย ย ย ย } ย ย ย ย ... }

SB ํ•ธ๋“ค๋Ÿฌ์˜ ๋ฐฐ์น˜ ํŒŒ์ผ ๊ตฌ์„ฑ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ๋“ค์€ ์ ˆ๋Œ€ ๊ฒฝ๋กœ๋กœ ๊ธฐ์ˆ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ย 

SB ํ•ด๊ฒฐ(๋ณต๊ตฌ) ๋™๊ธฐํ™” ์ค‘ ์žฌ ์—ฐ๊ฒฐ์ด ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๋‹ค์‹œ SB ๋ฐœ์ƒ ์ƒํ™ฉ์œผ๋กœ ๋Œ์•„๊ฐ‘๋‹ˆ๋‹ค. SB ํ•ด๊ฒฐ์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์•„์„œ ์•„์ง์€ ์–‘์ธก ๋…ธ๋“œ๊ฐ€ SB ์ƒํƒœ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

bsr 1.7 ์ดํ›„ ๋ถ€ํ„ฐ๋Š” ์ด ๋ถ€๋ถ„์„ ๋ณ€๊ฒฝํ•˜์—ฌ ํ•œ ๋ฒˆ SB ํ•ด๊ฒฐ์ด ์‹œ๋„๋˜๋ฉด ์žฌ ์—ฐ๊ฒฐ์ด ๋˜๋”๋ผ๋„ ์ดํ›„ SB ํ•ด๊ฒฐ์ด ์™„๋ฃŒ๋  ๋•Œ ๊นŒ์ง€ SB ํ•ด๊ฒฐ์„ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

ย 

์žฅ์น˜ ์ฐธ์กฐ ์˜ค๋ฅ˜

bsr ์€ ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฐฑํ‚น ๋””๋ฐ”์ด์Šค์— ๋Œ€ํ•œ ์ฐธ์กฐ ํšŒ์ˆ˜๋ฅผ ์œ ์ง€ ํ•ฉ๋‹ˆ๋‹ค. ์ฐธ์กฐ ํšŒ์ˆ˜๋Š” ํŠน์ • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žฅ์น˜๋ฅผ ์—ด์—ˆ์„ ๋•Œ ์ฆ๊ฐ€ํ•˜๊ณ  ๋‹ซ์œผ๋ฉด ๊ฐ์†Œ๋˜๋Š”๋ฐ ์ด๋ฅผ ํ†ตํ•ด ์žฅ์น˜์— ๋Œ€ํ•œ ์ƒ๋ช…์ฃผ๊ธฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๋ฆฌ์†Œ์Šค๋ฅผ ์ •๋ฆฌํ•˜๋Š” ์‹œ์ ์— ํŠน์ • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žฅ์น˜ ๋ณผ๋ฅจ์„ ๋” ์ด์ƒ ์ฐธ์กฐํ•˜์ง€ ์•Š๋„๋ก ๊ฐ•์ œํ•ฉ๋‹ˆ๋‹ค.

bsr ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์ดˆ๊ธฐ ๋˜๋Š” ์žฅ์น˜๋ฅผ umount ํ•˜๋Š” ๊ณผ์ •์—์„œ ์ฐธ์กฐํšŒ์ˆ˜๊ฐ€ 0 ์ด ์•„๋‹ ๊ฒฝ์šฐ์— ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ์žฅ์น˜๋ฅผ ์—ด์—ˆ๋‹ค๊ฐ€ ๋‹ซ์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— bsr ์€ ์ด๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ์˜ค๋ฅ˜๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

ย 

  • ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ ์˜ค๋ฅ˜

bsr ๋ฆฌ์†Œ์Šค์˜ backing device ๋ฅผ ์–ด๋–ค ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜๋กœ ์žฅ์น˜ attach์— ์‹คํŒจํ•˜๊ฒŒ ๋  ๊ฒƒ ์ž…๋‹ˆ๋‹ค. 16 ์˜ค๋ฅ˜ ์ฝ”๋“œ๋Š” EBUSY ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

[open_backing_dev] [DRIVER:140] bsr_erro<3> bsr bsr0/0 bsr0: Failed to open("/dev/sdb1") backing device with -16

ย 

  • down ์˜ค๋ฅ˜

๋ฆฌ์†Œ์Šค down ์‹œ์ ์— ์žฅ์น˜์— ๋Œ€ํ•œ ์ฐธ์กฐํšŒ์ˆ˜๊ฐ€ 0์ด ์•„๋‹ˆ๋ผ๋ฉด down ์€ ์‹คํŒจ ํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋กœ๊ทธ๊ฐ€ ์ถœ๋ ฅ ๋ฉ๋‹ˆ๋‹ค.

bsr volume(r0) Secondary failed (error=0: State change failed: (-12) Device is held open by someone

ย 

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด bsr ๋ณผ๋ฅจ์„ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ํŒŒ์•…ํ•˜์—ฌ ํ•ด๋‹น ๋ชจ๋“ˆ์„ ๊ฐ•์ œ ์ค‘๋‹จ(fuser -ck) ์‹œํ‚ค๋Š” ๋“ฑ ๋ณผ๋ฅจ์— ๋Œ€ํ•œ ์ฐธ์กฐํšŒ์ˆ˜๊ฐ€ ๊ฐ์†Œ ๋˜๋„๋ก ์กฐ์น˜ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, Ubuntu 20.04 ์ด์ƒ์—์„œ multipath-tools(0.8.3)๋Š” multipath.conf ์— ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด bsr ์žฅ์น˜์— ๋Œ€ํ•œ ์ฐธ์กฐ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด multipath-tools ๋กœ ์ธํ•ด bsr ๋ณผ๋ฅจ์ด ์ง€์†์ ์œผ๋กœ ์ฐธ์กฐ๋˜์–ด down ์„ ํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

blacklist { devnode "^(sd)[a-z]" devnode "^(bsr)[0-9]" }

ย 

์ œํ’ˆ ์‚ญ์ œ ์‹คํŒจ

์ œํ’ˆ ์‚ญ์ œ๊ฐ€ ์‹คํŒจํ•œ ๊ฒฝ์šฐ ๋‹ค์Œ ์ˆœ์„œ์— ๋”ฐ๋ผ ์ˆ˜๋™์œผ๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์ปค๋„๋ชจ๋“ˆ ์‚ญ์ œ

    1. bsrvflt.sys ์‚ญ์ œ

      1. HKLM, System\CurrentControlSet\Control\Class\{71A27CDD-812A-11D0-BEC7-08002BE2092F} ์˜ UpperFilters ํ‚ค์˜ ๊ฐ’ ๋‚ด์šฉ ์ค‘ bsrvflt ๋ฌธ์ž์—ด ์ œ๊ฑฐ ํ›„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ์ €์žฅ

      2. HKLM, System\CurrentControlSet\Services\bsrvflt ํ‚ค ์‚ญ์ œ

    2. bsrfsflt.sys ์‚ญ์ œ

      1. HKLM, System\CurrentControlSet\Services\bsrfsflt ํ‚ค ์‚ญ์ œ

  2. ์‘์šฉ ์„œ๋น„์Šค ์‚ญ์ œ

    1. sc stop bsr

    2. sc delete bsr

  3. ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์‚ญ์ œ

    1. BSR_PATH, CYGWIN ์‹œ์Šคํ…œ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ์‚ญ์ œ

  4. Program Files\bsr ๊ฒฝ๋กœ์— ์„ค์น˜๋œ ํŒŒ์ผ๋“ค ์‚ญ์ œ

  5. ๋ฆฌ๋ถ€ํŒ…

ย