๊ตฌ์„ฑํŒŒ์ผ

๊ฐœ์š”

bsr์€ ๋กœ์ปฌ ๋…ธ๋“œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ชจ๋“  ๋‹ค๋ฅธ ๋…ธ๋“œ๋กœ ๋ณต์ œํ•˜๋Š” ๋ธ”๋ก ์žฅ์น˜๋ฅผ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์‹ค์ œ ๋ฐ์ดํ„ฐ ๋ฐ ์ด์™€ ๊ด€๋ จํ•œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋Š” ๊ฐ ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ์˜ "์ผ๋ฐ˜"๋ธ”๋ก ์žฅ์น˜ ๋ณผ๋ฅจ์— (์ผ๋ฐ˜์ ์œผ๋กœ ์™ธ๋ถ€๋ฉ”ํƒ€์ผ ๊ฒฝ์šฐ)๊ฐœ๋ณ„์ ์œผ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ๋ณต์ œ ๋ธ”๋ก ์žฅ์น˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ /dev/bsr<minor>ํ˜•์‹์œผ๋กœ ๋ช…๋ช…ํ•˜๊ฑฐ๋‚˜ ๋˜๋Š” ์žฅ์น˜์˜ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ(๋ ˆํ„ฐ)๋กœ ์ง์ ‘ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค ๋‹น ํ•˜๋‚˜ ์ด์ƒ์˜ ์žฅ์น˜๋“ค์ด ๊ทธ๋ฃนํ™” ๋˜๊ณ  ๊ฐ๊ฐ์˜ ์žฅ์น˜๋“ค์„ ๋ณ‘๋ ฌ์ ์œผ๋กœ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค ๋‚ด๋ถ€์˜ ์žฅ์น˜๋ฅผ volume์œผ๋กœ ์ง€์ •ํ•˜๋ฉฐ ๋‘ ๊ฐœ ์ด์ƒ์˜ ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ๊ฐ„์— ๋ฆฌ์†Œ์Šค๋ฅผ ๋ณต์ œ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ ๊ฐ„ ์—ฐ๊ฒฐ์€ ์ง€์  ๊ฐ„ ๋งํฌ์ด๋ฉฐ TCP ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. bsr์€ ๊ตฌ์„ฑํŒŒ์ผ์„ ์ดํ•ดํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๊ธฐ๋ณธ ๊ตฌ์„ฑ์š”์†Œ bsradm ๊ณผ ์ €์ˆ˜์ค€์˜ ๊ตฌ์„ฑ์š”์†Œ bsrsetup, bsrmeta, bsrcon์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์ธ bsr ๊ตฌ์„ฑ์€ /etc/bsr.conf ๋ฐ ์—ฌ๊ธฐ์— ํฌํ•จ ๋œ ์ถ”๊ฐ€ ํŒŒ์ผ๋“ค(์ผ๋ฐ˜์ ์œผ๋กœ global_common.conf ๋ฐ /etc ๊ฒฝ๋กœ์˜ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  * .res ํŒŒ์ผ)๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต ๊ฐ ๋ฆฌ์†Œ์Šค๋ฅผ etc/bsr.d/. ๊ฒฝ๋กœ์—์„œ ๋ณ„๋„์˜ * .res ํŒŒ์ผ๋“ค๋กœ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ํŒŒ์ผ์€ ๊ฐ ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ๊ฐ€ ์ „์ฒด ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ์˜ ๋™์ผํ•œ ์‚ฌ๋ณธ์„ ํฌํ•จํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋•Œ๋กœ๋Š” ๋…ธ๋“œ ๋ณ„๋กœ ๊ฐ๊ธฐ ๋‹ค๋ฅธ ๊ตฌ์„ฑํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ๊ฐ€์ ธ์•ผ ํ•  ์ˆ˜๋„ ์žˆ์–ด์„œ ์ ˆ๋Œ€์ ์ธ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

resource r0 { net { protocol C; } disk { resync-rate 10M; c-plan-ahead 0; resync-ratio "1:1"; } on alice { volume 0 { device e minor 2; disk e; meta-disk f; } address 10.1.1.31:7789; node-id 0; } on bob { volume 0 { disk e; meta-disk f; } address 10.1.1.32:7789; node-id 1; } }

์ด ์˜ˆ์—์„œ๋Š” e ๋ ˆํ„ฐ์˜ ๋ณผ๋ฅจ์„ ๋‹จ์ผ ๋ณต์ œ ์žฅ์น˜๊ฐ€ ํฌํ•จ ๋œ ๋ฆฌ์†Œ์Šค r0๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฆฌ์†Œ์Šค๋Š” ๊ฐ๊ฐ IPv4 ์ฃผ์†Œ 10.1.1.31 ๋ฐ 10.1.1.32์™€ ๋…ธ๋“œ ์‹๋ณ„์ž 0 ๋ฐ 1์„ ๊ฐ€์ง„ ํ˜ธ์ŠคํŠธ alice ๋ฐ bob ๊ฐ„์˜ ๋ณต์ œ๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์‹ค์ œ ๋ฐ์ดํ„ฐ๋Š” e ๋ณผ๋ฅจ์ด์ง€๋งŒ ๋ฐ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋Š” f ๋ณผ๋ฅจ์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค. ํ˜ธ์ŠคํŠธ ๊ฐ„ ์—ฐ๊ฒฐ์—๋Š” ํ”„๋กœํ† ์ฝœ C๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ํ˜•์‹

๊ตฌ์„ฑ ํŒŒ์ผ์€ ์„น์…˜์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ์„น์…˜ ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์„น์…˜๊ณผ ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ์„น์…˜์€ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ‚ค์›Œ๋“œ, ์„น์…˜ ์ด๋ฆ„, ์—ฌ๋Š” ์ค‘๊ด„ํ˜ธ(โ€œ{โ€), ์„น์…˜์˜ ๋‚ด์šฉ, ๋‹ซ๋Š” ์ค‘๊ด„ํ˜ธ(โ€œ}โ€)๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์„น์…˜ ๋‚ด์˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ‚ค์›Œ๋“œ์™€ ๊ทธ ๋’ค์— ํ•˜๋‚˜ ์ด์ƒ์˜ ํ‚ค์›Œ๋“œ ๋˜๋Š” ๊ฐ’, ์„ธ๋ฏธ์ฝœ๋ก (โ€œ;โ€)์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋งค๊ฐœ ๋ณ€์ˆ˜ ๊ฐ’์—๋Š” ์ผ๋ฐ˜ ์ˆซ์ž๋ฅผ ์ง€์ •ํ•  ๋•Œ ์ ์šฉ๋˜๋Š” ๊ธฐ๋ณธ ์Šค์ผ€์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค (์˜ˆ : Kilo). ์ด๋Ÿฌํ•œ ๊ธฐ๋ณธ ์Šค์ผ€์ผ์€ ์ ‘๋ฏธ์‚ฌ (์˜ˆ : M์˜ ๊ฒฝ์šฐ Mega)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์žฌ์ •์˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ณตํ†ต ์ ‘๋ฏธ์‚ฌ๋Š” K = 2 ^ 10 = 1024, M = 1024 K ๋ฐ G = 1024 M์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค.

์ฃผ์„์€ ํ•ด์‹œ ๊ธฐํ˜ธ(โ€œ#โ€)๋กœ ์‹œ์ž‘ํ•˜์—ฌ ์ค„ ๋๊นŒ์ง€ ์ธ์‹๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์„น์…˜ ์•ž์— ํ‚ค์›Œ๋“œ skip ์„ ๋ถ™์ด๋ฉด ํ•ด๋‹น ์„น์…˜๊ณผ ๋ชจ๋“  ํ•˜์œ„ ์„น์…˜์ด ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. include โ€œํŒŒ์ผ ํŒจํ„ด โ€œ๋ฌธ์— ์ถ”๊ฐ€ ํŒŒ์ผ์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํŒŒ์ผ ํŒจํ„ด์—์„œ ์ง€์›๋˜๋Š” ํ‘œํ˜„์‹์€ glob(7)์„ ์ฐธ์กฐํ•˜์„ธ์š”). include ๋ฌธ์€ ์„น์…˜ ์™ธ๋ถ€์—์„œ๋งŒ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„น์…˜์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค. ๋“ค์—ฌ ์“ฐ๊ธฐ ๋œ ์„น์…˜์ด ํ•˜์œ„ ์„น์…˜ ์ž…๋‹ˆ๋‹ค.

global common [disk] [handlers] [net] [options] [startup] resource options on options volume disk [disk] floating connection path net volume peer-device-options [peer-device-options] connection-mesh net [disk] handlers [net] stacked-on-top-of startup

์œ„์—์„œ ๋Œ€๊ด„ํ˜ธ ์•ˆ์˜ ์„น์…˜์€ ๊ตฌ์„ฑ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์— ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค. common ์„น์…˜์˜ ๋‚ด์šฉ์€ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค ๋˜๋Š” on ๋‚ด์˜ ๋””์Šคํฌ ์„น์…˜์€ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์˜ ๋ชจ๋“  ๋ณผ๋ฅจ์— ์ ์šฉ๋˜๋ฉฐ, ๋ฆฌ์†Œ์Šค ์„น์…˜ ๋‚ด๋ถ€์˜ net ์„น์…˜์€ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์˜ ๋ชจ๋“  ์—ฐ๊ฒฐ์— ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ resource, connection ๋˜๋Š” volume ์— ๋Œ€ํ•ด ๋™์ผํ•œ ์˜ต์…˜์ด ๋ฐ˜๋ณต๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณด๋‹ค ๊ตฌ์ฒด์ ์ธ ์˜ต์…˜์€ resource, connection, on ๋˜๋Š” volume ์„น์…˜์—์„œ ์žฌ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. peer-device ์˜ต์…˜์€ resync-ratio, resync-rate, c-plan-ahead, c-delay-target, c-fill-target, c-max-rate ๋ฐ c-min-rate ๋กœ ์ •์˜๋˜๋ฉฐ ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ์œ„ํ•ด ๋ชจ๋“  disk ์„น์…˜์—์„œ๋„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ๋“ค์€ ๋ชจ๋“  ๊ด€๋ จ ์—ฐ๊ฒฐ๋กœ ์ƒ์†๋ฉ๋‹ˆ๋‹ค. connection ์„น์…˜์— ๋ถ€์—ฌ ๋œ ๊ฒฝ์šฐ ํ•ด๋‹น connection์˜ ๋ชจ๋“  ๋ณผ๋ฅจ์— ์ƒ์†๋ฉ๋‹ˆ๋‹ค. "peer-device-options"์„น์…˜์€ "disk"ํ‚ค์›Œ๋“œ๋กœ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

ย 

์„น์…˜

global

์ „์—ญ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์˜ ๋ชจ๋“  ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๊ตฌ์„ฑ์—์„œ ํ•˜๋‚˜์˜ global ์„น์…˜๋งŒ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

ย 

dialog-refreshย time

bsr ์ดˆ๊ธฐํ™” ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์žฅ์น˜๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค๋ฅธ ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ ๋Œ€๊ธฐ์™€ ๊ด€๋ จ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ init ์Šคํฌ๋ฆฝํŠธ๋Š” ๋‚จ์€ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋Œ€ํ™” ์ƒ์ž ์ƒˆ๋กœ ๊ณ ์นจ์€ ํ•ด๋‹น ์นด์šดํŠธ ๋‹ค์šด ์—…๋ฐ์ดํŠธ ์‚ฌ์ด์˜ ์‹œ๊ฐ„ (์ดˆ)์„ ์ •์˜ํ•˜๊ณ  ๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค. ๊ฐ’์ด 0์ด๋ฉด ์นด์šดํŠธ ๋‹ค์šด์ด ๊บผ์ง‘๋‹ˆ๋‹ค.

disable-ip-verification

์ผ๋ฐ˜์ ์œผ๋กœ bsr์€ ๊ตฌ์„ฑ์˜ IP ์ฃผ์†Œ๊ฐ€ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. disable-ip-verification ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋Ÿฌํ•œ ๊ฒ€์‚ฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

usage-countย {yes | no | ask}

์‚ฌ์šฉ ํ†ต๊ณ„๋ฅผ ์ทจํ•ฉํ•˜๋Š” ๊ธฐ๋Šฅ์ด์ง€๋งŒ bsr ์—์„œ๋Š” ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

hostname hostname-alias

ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์˜ ๋ณ„์นญ์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์ •ํ•œ hostname-alias ๋ฅผ on ์„น์…˜์˜ hostname ์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

ย 

common

์ด ์„น์…˜์—๋Š” ๊ฐ disk, handler, network, options ๋ฐ startup ์„น์…˜์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋“ค์€ ์ด ์„น์…˜์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ƒ์†ํ•ฉ๋‹ˆ๋‹ค.

startup

์ด ์„น์…˜์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์‹œ์Šคํ…œ ์‹œ์ž‘์‹œ bsr init ์Šคํฌ๋ฆฝํŠธ์—์„œ bsr์˜ ๋™์ž‘์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์‹œ์Šคํ…œ์ด ์‹œ์ž‘๋˜์–ด bsr ์ด ์‹คํ–‰๋˜๊ณ  ๋‚œ ํ›„์—” ๋”์ด์ƒ ์•„๋ฌด๋Ÿฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ ์ด ์„น์…˜์˜ ์†์„ฑ๋“ค์€ ํ•˜์œ„ ํ˜ธํ™˜์„ ์œ„ํ•ด ์กด์žฌํ•˜๋ฉฐ bsr์—์„  ๋Œ€๋ถ€๋ถ„ ํ๊ธฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

degr-wfc-timeoutย timeoutย 

ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ๋‹จ์ผ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ์‹œ์Šคํ…œ์ด ๋‹ค์šด ๋  ๋•Œ ๋ชจ๋“  ํ”ผ์–ด๊ฐ€ ์—ฐ๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ wfc-timeout๋ณด๋‹ค ์ž‘์€ ๊ฐ’์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” ๋ฆฌ๋ถ€ํŒ… ์ „์— ๋„๋‹ฌ ํ•  ์ˆ˜์—†๋Š” ํ”ผ์–ด๊ฐ€ ๋ฆฌ๋ถ€ํŒ… ํ›„์— ๋„๋‹ฌ ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์ ์œผ๋ฏ€๋กœ ๋Œ€๊ธฐํ•˜๋Š” ๊ฒƒ์ด ๋„์›€์ด๋˜์ง€ ์•Š๋Š”๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ์ดˆ๊ณผ๋Š” ์ดˆ ๋‹จ์œ„๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 0์ด๋ฉฐ ๋ฌดํ•œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. bsr์—์„  ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

outdated-wfc-timeoutย timeout

์‹œ์Šคํ…œ์ด ๋‹ค์šด ๋  ๋•Œ ๋ชจ๋“  ํ”ผ์–ด๊ฐ€ outdated ์ด๋ฉด ๋ชจ๋“  ํ”ผ์–ด๊ฐ€ ์—ฐ๊ฒฐ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ wfc-timeout๋ณด๋‹ค ์ž‘์€ ๊ฐ’์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ outdated ํ”ผ์–ด๋Š” ๊ทธ ๋™์•ˆ Primary ๋…ธ๋“œ๊ฐ€ ๋  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ด์ „์— ์กด์žฌ ํ–ˆ๋˜ ๋…ธ๋“œ ๋งŒํผ ๊ธฐ๋‹ค๋ฆด ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ์ดˆ๊ณผ๋Š” ์ดˆ ๋‹จ์œ„๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 0์ด๋ฉฐ ๋ฌดํ•œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. bsr์—์„  ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

stacked-timeouts

์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

wait-after-sb

์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ์ƒํ™ฉ์ด ๊ฐ์ง€ ๋œ ๊ฒฝ์šฐ์—๋„ bsr์ด init ์Šคํฌ๋ฆฝํŠธ์—์„œ ๊ณ„์† ๋Œ€๊ธฐํ•˜๋„๋ก ํ•˜์—ฌ ๋…ธ๋“œ๊ฐ€ ์„œ๋กœ ์—ฐ๊ฒฐ์„ ๊ฑฐ๋ถ€ํ•˜๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

wfc-timeoutย timeout

๋ชจ๋“  ํ”ผ์–ด๊ฐ€ ์—ฐ๊ฒฐ๋  ๋•Œ๊นŒ์ง€ init ์Šคํฌ๋ฆฝํŠธ๊ฐ€ ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„์„ ์ •์˜ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ๊ด€๋ฆฌ ํ•  ์ˆ˜ ์—†๋Š” ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž์™€ ๊ฒฐํ•ฉํ•˜์—ฌ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ๊ด€๋ฆฌ์ž๊ฐ€ ์‹œ์ž‘๋˜๋ฉด ๋ฆฌ์†Œ์Šค๊ฐ€ ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ž…๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ์ดˆ๊ณผ๋Š” ์ดˆ ๋‹จ์œ„๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐ’์€ 0์ด๋ฉฐ ๋ฌดํ•œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. bsr์—์„  ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ย 

ย 

resource

ย 

resourceย [name]

๋ฆฌ์†Œ์Šค๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ๊ฐœ ์ด์ƒ์˜ ์„น์…˜๊ณผ ํ•˜๋‚˜ ์ด์ƒ์˜ connection ์„น์…˜์ด ์žˆ์Šต๋‹ˆ๋‹ค.

options

๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์˜ ๋ชจ๋“  ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

ย 

auto-promoteย bool-value

์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

cpu-maskย cpu-mask

์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

on-no-data-accessibleย policy

์š”์ฒญ ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋กœ์ปฌ์—์„œ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ(์˜ˆ : ๋ชจ๋“  ๋””์Šคํฌ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ) I/O ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. bsr ์—์„  ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

peer-ack-windowย value

๊ฐ ๋…ธ๋“œ์™€ ๊ฐ ์žฅ์น˜์—์„œ bsr์€ ๊ฐ ํ”ผ์–ด ์žฅ์น˜์— ๋Œ€ํ•œ ๋กœ์ปฌ ๋ฐ์ดํ„ฐ์™€ ์›๊ฒฉ ๋ฐ์ดํ„ฐ์˜ ์ฐจ์ด์ ์— ๋Œ€ํ•œ ๋น„ํŠธ๋งต์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹จ์ผ ์žฅ์น˜๊ฐ€ ์žˆ๋Š” 3๋…ธ๋“œ ์„ค์ •(๋…ธ๋“œ A, B, C)์—์„œ ๋ชจ๋“  ๋…ธ๋“œ๋Š” ๊ฐ ํ”ผ์–ด์— ๋Œ€ํ•ด ํ•˜๋‚˜์˜ ๋น„ํŠธ๋งต์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ๊ฐ€ ์“ฐ๊ธฐ ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด ์“ฐ๊ธฐ ๋…ธ๋“œ์— ๋Œ€ํ•œ ๋น„ํŠธ๋งต์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ ๋‹ค๋ฅธ ๋…ธ๋“œ๋“ค ๊ฐ„์˜ ๋น„ํŠธ๋งต์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์“ฐ๊ธฐ ์š”์ฒญ์ด ๋…ธ๋“œ A์—์„œ B์™€ C๋กœ ์ „ํŒŒ ๋  ๋•Œ ๋…ธ๋“œ B์™€ C๋Š” ๋…ธ๋“œ A์™€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ ๋‘˜ ๋‹ค ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๋Š” ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์œผ๋กœ, ์“ฐ๊ธฐ ๋…ธ๋“œ๋Š” ๋•Œ๋•Œ๋กœ peer-ack ํŒจํ‚ท์„ ํ”ผ์–ด๋กœ ๋ณด๋‚ด ์„œ๋กœ์—๊ฒŒ ์–ด๋–ค ์ƒํƒœ์ธ์ง€ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. peer-ack-window ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” peer-ack ํŒจํ‚ท์„ ๋ณด๋‚ด๊ธฐ ์ „์— Primary ๋…ธ๋“œ๊ฐ€ ์ „์†กํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์–‘์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์ด ๋‚ฎ์œผ๋ฉด ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์ด ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์ด ํฌ๋ฉด ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์€ ์ค„์–ด๋“ค์ง€ ๋งŒ Secondary ๋…ธ๋“œ์˜ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋น„๋Š” ์ฆ๊ฐ€ํ•˜๊ณ  Primary ๋…ธ๋“œ ์žฅ์•  ํ›„ Secondary ๋…ธ๋“œ ๊ฐ„์˜ ์žฌ ๋™๊ธฐํ™” ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง‘๋‹ˆ๋‹ค. ์ฐธ๊ณ ๋กœ peer-ack ํŒจํ‚ท์€ ๋‹ค๋ฅธ ์ด์œ ๋กœ ์ธํ•ด ์ „์†ก ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ : ๋ฉค๋ฒ„์‰ฝ ๋ณ€๊ฒฝ ๋˜๋Š” โ€œpeer-ack-delay ํƒ€์ด๋จธ"์˜ ๋งŒ๋ฃŒ). peer-ack-window์˜ ๊ธฐ๋ณธ ๊ฐ’์€ 2MiB์ด๋ฉฐ, ๊ธฐ๋ณธ ๋‹จ์œ„๋Š” ์„นํ„ฐ์ž…๋‹ˆ๋‹ค.

peer-ack-delayย expiry-time

๋งˆ์ง€๋ง‰์œผ๋กœ ์™„๋ฃŒ๋œ ์“ฐ๊ธฐ ์š”์ฒญ ํ›„์— ๋งŒ๊ธฐ ์‹œ๊ฐ„ ๋™์•ˆ ์ƒˆ๋กœ์šด ์“ฐ๊ธฐ ์š”์ฒญ์ด ๋ฐœํ–‰๋˜์ง€ ์•Š์œผ๋ฉด peer-ack ํŒจํ‚ท์ด ์ „์†ก๋ฉ๋‹ˆ๋‹ค. ํƒ€์ด๋จธ๊ฐ€ ๋งŒ๋ฃŒ๋˜๊ธฐ ์ „์— ์ƒˆ๋กœ์šด ์“ฐ๊ธฐ ์š”์ฒญ์ด ๋ฐœํ–‰๋˜๋ฉด ํƒ€์ด๋จธ๋Š” ๋งŒ๋ฃŒ ์‹œ๊ฐ„์œผ๋กœ ์žฌ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. (์ฐธ๊ณ  : ๋ฉค๋ฒ„์‹ญ ๋ณ€๊ฒฝ ๋˜๋Š” "peer-ack-window"์˜ต์…˜๊ณผ ๊ฐ™์€ ๋‹ค๋ฅธ ์ด์œ ๋กœ peer-ack ํŒจํ‚ท์ด ์ „์†ก ๋  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค) ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์›๊ฒฉ ๋…ธ๋“œ์˜ ์žฌ ๋™๊ธฐํ™” ๋™์ž‘์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”ผ์–ด ๋…ธ๋“œ๋Š” AL ์ต์Šคํ…ํŠธ์—์„œ ์ž ๊ธˆ์„ ํ•ด์ œํ•˜๊ธฐ ์œ„ํ•ด peer-ack ์„ ๋ฐ›์„ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ”ผ์–ด ๊ฐ„์˜ ์žฌ ๋™๊ธฐํ™” ์ž‘์—…์ด ์ด๋Ÿฌํ•œ ์ž ๊ธˆ์„ ๊ธฐ๋‹ค๋ ค์•ผ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. peer-ack-delay์˜ ๊ธฐ๋ณธ ๊ฐ’์€ 100 ๋ฐ€๋ฆฌ ์ดˆ์ด๋ฉฐ ๊ธฐ๋ณธ ๋‹จ์œ„๋Š” ๋ฐ€๋ฆฌ ์ดˆ์ž…๋‹ˆ๋‹ค.

max-req-write-count

๋ฆฌ์†Œ์Šค์— ํ—ˆ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์ฒ˜๋ฆฌ ์ค‘(inflight)์ธ ์“ฐ๊ธฐ I/O ์š”์ฒญ ์ตœ๋Œ€ ํšŒ์ˆ˜ ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐ’์€ 100000 ์ž…๋‹ˆ๋‹ค.

on-req-write-congestion

max-req-write-count ๋ฅผ ๋„˜์–ด์„œ๋Š” ์“ฐ๊ธฐ req ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ํ˜ผ์žก์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  ์ด์— ๋Œ€์‘ํ•˜๊ธฐ ์œ„ํ•œ ์ •์ฑ…์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. disconnect, block ์ •์ฑ…์ด ์žˆ์œผ๋ฉฐ ๊ธฐ๋ณธ disconnect ์ž…๋‹ˆ๋‹ค.

accelbuf-size size

๋น„๋™๊ธฐ ๋ณต์ œ์—์„œ ๋กœ์ปฌ ์“ฐ๊ธฐ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ์œ„ํ•œ ๋ฒ„ํผ ํฌ๊ธฐ ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐ’์€ 10MB ์ž…๋‹ˆ๋‹ค. accelbuf ํ•˜๋‚˜์˜ ๋ฒ„ํผ๋ฅผ ํ• ๋‹นํ•˜๊ณ  ๋ฐœ์ƒ๋œ ์“ฐ๊ธฐ ๋ฒ„ํผ ๊ณต๊ฐ„์œผ๋กœ ๋ถ€ํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์‚ฌํ•˜์—ฌ ์†ก์‹ ๋ฒ„ํผ ์ธก์œผ๋กœ ๋ณต์‚ฌํ•˜๊ธฐ ์ „์— ๋น ๋ฅด๊ฒŒ I/O ๋ฅผ ์™„๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. (bsr 1.7 ์ดํ›„ ์ง€์›)

max-accelbuf-blk-size size

accelbuf ๋ฒ„ํผ์˜ ๋Œ€์ƒ I/O ๋ธ”๋Ÿญ ํฌ๊ธฐ์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐ’์€ 4KB์ด๋ฉฐ 4KB ์ดํ•˜์˜ ์“ฐ๊ธฐ I/O์— ๋Œ€ํ•ด์„œ๋งŒ accelbuf๋ฅผ ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. (bsr 1.7 ์ด ์ง€์›)

persist-role

๋ฆฌ์†Œ์Šค ์—ญํ•  ์œ ์ง€ ์†์„ฑ์ž…๋‹ˆ๋‹ค. yes ์ผ ๊ฒฝ์šฐ ๋ฆฌ์†Œ์Šค๊ฐ€ ์žฌ์‹œ์ž‘๋˜๋Š” ๋ชจ๋“  ์‹œ์ ์— ๋ช…๋ น์ค„์— ์˜ํ•ด ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •๋œ ์—ญํ• ์„ ๊ณ„์† ์œ ์ง€ ํ•ฉ๋‹ˆ๋‹ค. (๊ธฐ๋ณธ๊ฐ’์€ no, bsr 1.7.3 ์ด์ƒ ์ง€์›)

ย 

on

onย host-nameย [...]

ํŠน์ • ํ˜ธ์ŠคํŠธ ๋˜๋Š” ํ˜ธ์ŠคํŠธ ์ง‘ํ•ฉ์— ์žˆ๋Š” ๋ฆฌ์†Œ์Šค์˜ ์†์„ฑ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด IP ์ฃผ์†Œ ์žฅ์•  ์กฐ์น˜์™€ ๊ฐ™์€ ์„ค์ •์—์„œ๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ๋‘ ๊ฐœ ์ด์ƒ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. host-name ์ธ์ˆ˜๋Š” ์‹œ์Šคํ…œ์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„(Linux ์˜ˆ, uname -n)๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋‚˜ ์ด์ƒ์˜ volume ์„น์…˜์„ ํฌํ•จํ•˜๊ฑฐ๋‚˜ ์ƒ์†ํ•ฉ๋‹ˆ๋‹ค. node-id ๋ฐ address ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์ด ์„น์…˜์—์„œ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. device, disk ๋ฐ meta-disk ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์ด ์„น์…˜์— ์ •์˜๋˜๊ฑฐ๋‚˜ ์ด ์„น์…˜์—์„œ ์ƒ์†๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ๊ตฌ์„ฑ ํŒŒ์ผ์—๋Š” ๊ฐ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ On ์„น์…˜์ด 2๊ฐœ ์ด์ƒ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ip ์ฃผ์†Œ ๊ธฐ๋ฐ˜์˜ ๊ตฌ์„ฑ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ floating ์„น์…˜์œผ๋กœ ๋Œ€์ฒดํ•˜์—ฌ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

ย 

addressย [address-family]ย address:ย port

connection ์—”๋“œ ํฌ์ธํŠธ์˜ ์ฃผ์†Œ ํŒจ๋ฐ€๋ฆฌ, ์ฃผ์†Œ ๋ฐ ํฌํŠธ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ์†Œ ์ œํ’ˆ๊ตฐ ipv4, ipv6 ๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ฃผ์†Œ ํŒจ๋ฐ€๋ฆฌ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด "ipv4"๋กœ ์ธ์‹ ๋ฉ๋‹ˆ๋‹ค. ipv6์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์ฃผ์†Œ ๊ณ„์—ด์˜ ๊ฒฝ์šฐ ์ฃผ์†Œ๋Š” IPV4 ์ฃผ์†Œ ํ‘œ๊ธฐ๋ฒ• (์˜ˆ : 1.2.3.4)์œผ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ipv6์˜ ๊ฒฝ์šฐ ์ฃผ์†Œ๋Š” ๊ด„ํ˜ธ๋กœ ๋ฌถ๊ณ  IPv6 ์ฃผ์†Œ ํ‘œ๊ธฐ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค (์˜ˆ : [fd01 : 2345 : 6789 : abcd :: 1]). ํฌํŠธ๋Š” ํ•ญ์ƒ 1์—์„œ 65535 ์‚ฌ์ด์˜ 10์ง„์ˆ˜๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ํ˜ธ์ŠคํŠธ์—์„œ ํฌํŠธ ๋ฒˆํ˜ธ๋Š” ๊ฐ ์ฃผ์†Œ๋งˆ๋‹ค ๊ณ ์œ ํ•ด์•ผ ํ•˜๊ณ  ํฌํŠธ๋ฅผ ๊ณต์œ  ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

node-idย value

ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋…ธ๋“œ์˜ ๊ณ ์œ  ๋…ธ๋“œ ์‹๋ณ„์ž๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋…ธ๋“œ ์‹๋ณ„์ž๋Š” ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์—์„œ ๊ฐœ๋ณ„ ๋…ธ๋“œ๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ์˜ ๋…ธ๋“œ์— ๋น„ํŠธ๋งต ์Šฌ๋กฏ์„ ํ• ๋‹นํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ๊ฐ€ ์ž‘๋™ ์ค‘์ง€ ๋œ ๊ฒฝ์šฐ์—๋งŒ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋…ธ๋“œ ์‹๋ณ„์ž๋ฅผ ์žฌ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์„ฑ ๋ฐ ์žฅ์น˜ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ์˜ ๋…ธ๋“œ ์‹๋ณ„์ž๋Š” ๋ชจ๋“  ํ˜ธ์ŠคํŠธ์—์„œ ์ผ๊ด€๋˜๊ฒŒ ๋ณ€๊ฒฝ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด, bsrmeta dump-md๋กœ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ๋คํ”„ํ•˜๊ณ  ๋น„ํŠธ๋งต ์Šฌ๋กฏ ํ• ๋‹น์„ ์กฐ์ • ํ•œ ๋‹ค์Œ, bsrmeta restore-md๋กœ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธ ํ•˜์‹ญ์‹œ์˜ค. node-id ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ํ•„์ˆ˜์ ์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์˜ ๋ฒ”์œ„๋Š” 0์—์„œ 16์ž…๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐ’์€ ์—†์Šต๋‹ˆ๋‹ค.

options

svc-auto-up

bsr ์„œ๋น„์Šค๊ฐ€ ์‹œ์ž‘๋  ๋•Œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ž๋™์œผ๋กœ ๊ธฐ๋™ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐ’์€ yes ์ž…๋‹ˆ๋‹ค.

svc-auto-down

bsr ์„œ๋น„์Šค๊ฐ€ ์ข…๋ฃŒ๋  ๋•Œ ๋ฆฌ์†Œ์Šค๋ฅผ ์ž๋™์œผ๋กœ ์ค‘์ง€ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐ’์€ yes ์ž…๋‹ˆ๋‹ค.

target-only

yes ์ด๋ฉด ํƒ€๊นƒ ์ „์šฉ ๋…ธ๋“œ๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค. ํƒ€๊นƒ ์ „์šฉ ๋…ธ๋“œ๋Š” ํ•ญ์ƒ ํƒ€๊นƒ์˜ ์—ญํ• ๋งŒ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์†Œ์Šค์—ญํ• ์˜ ์ˆ˜ํ–‰์€ ๊ฑฐ๋ถ€๋ฉ๋‹ˆ๋‹ค. (bsr 1.7.3 ์ด์ƒ)

ย 

volume

volumeย volume-number

๋ฆฌ์†Œ์Šค ๋‚ด์—์„œ ๋ณผ๋ฅจ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค์˜ volume ์„น์…˜๋“ค์— ์žˆ๋Š” ๋ณผ๋ฅจ ๋ฒˆํ˜ธ๋Š” ํ˜ธ์ŠคํŠธ์—์„œ ์–ด๋–ค ์žฅ์น˜๊ฐ€ ๋ณต์ œ ์žฅ์น˜๋ฅผ ๊ตฌ์„ฑํ•˜๋Š”์ง€ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

ย 

device /dev/bsr minor-number

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

diskย {[disk] |ย none}

bsr์ด ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ํ•˜์œ„ ๋ ˆ๋ฒจ ๋ธ”๋ก ์žฅ์น˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์ œ bsr์žฅ์น˜๊ฐ€ ๊ตฌ์„ฑ๋˜์–ด์žˆ๋Š” ๋™์•ˆ ํ•˜์œ„ ์žฅ์น˜๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. dumpe2fs(8) ๋ฐ ์ด์™€ ์œ ์‚ฌํ•œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•œ ์ฝ๊ธฐ ์ „์šฉ ์•ก์„ธ์Šค๋„ ํ—ˆ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํ‚ค์›Œ๋“œ none์€ ํ•˜์œ„ ๋ธ”๋ก ์žฅ์น˜๊ฐ€ ๊ตฌ์„ฑ๋˜์ง€ ์•Š์•˜์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋˜ํ•œ ํ•˜์œ„ ์ˆ˜์ค€ ์žฅ์น˜์˜ ์ƒ์†์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

meta-disk internal,

meta-diskย device,

meta-diskย deviceย [index]

๋ณต์ œ ๋ธ”๋ก ์žฅ์น˜์˜ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š” ์œ„์น˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋Š” ํ•˜์œ„ ์ˆ˜์ค€ ์žฅ์น˜์— ๋ฐ์ดํ„ฐ์™€ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชจ๋‘ ํฌํ•จ๋˜๊ฑฐ๋‚˜ ๋ณ„๋„์˜ ์žฅ์น˜์— ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ index ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ณต์ œ ๋œ ์žฅ์น˜๊ฐ€ ๊ฐ๊ฐ ๋ณ„๋„์˜ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์žฅ์น˜๋ฅผ ๊ณต์œ  ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ธ๋ฑ์Šค๋Š” 128MiB์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฐจ์ง€ํ•˜๋ฉฐ, ์ด๋Š” 2๊ฐœ์˜ ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ๊ฐ€์žˆ๋Š” ์ตœ๋Œ€ 4TiB์˜ ๋ณต์ œ ๋œ ์žฅ์น˜ ํฌ๊ธฐ์— ํ•ด๋‹นํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ณผ๋ฅจํ™•์žฅ ๋“ฑ flexible ํ•œ ๋ฉ”ํƒ€๋ฅผ ์š”๊ตฌํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ์ œ์•ฝ์ด ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์žฅ์น˜๋ฅผ ๊ณต์œ ํ•˜์ง€ ๋ง๊ณ  lvm ๋ณผ๋ฅจ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”์— ๋”ฐ๋ผ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์žฅ์น˜๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜์˜ ์ƒ‰์ธ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด ํ•˜์œ„ ์žฅ์น˜์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ํฌ๊ธฐ๋Š” 36 KiB + (ํ•˜์œ„ ์žฅ์น˜ ํฌ๊ธฐ) / 32K * (๋…ธ๋“œ ์ˆ˜-1)์ž…๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์žฅ์น˜๊ฐ€ ์ด๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ ์ถ”๊ฐ€ ๊ณต๊ฐ„์€ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” "none"์ด์™ธ์˜ "disk"๊ฐ€ ์ง€์ •๋œ ๊ฒฝ์šฐ์— ํ•„์š”ํ•˜๋ฉฐ "disk"๊ฐ€ "none"์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค.

ย 

floating

floatingย [address-family]ย addr:port

on ์„น์…˜๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋Œ€์‹  ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๊ฐ€ floating ์„น์…˜๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. node-id ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ํ•„์š”ํ•˜๊ณ  ์ฃผ์†Œ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์ œ๊ณต๋˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ํ”ผ์–ด์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ์ด ์ƒ์„ฑ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. device, disk ๋ฐ meta-disk ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๋ฐ˜๋“œ์‹œ ์ด ์„น์…˜์—์„œ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ์ƒ์œ„๋กœ๋ถ€ํ„ฐ ์ƒ์†ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ย 

connection

connectionย [name]

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

hostย nameย [addressย [address-family]ย address] [portย port-number]

์—ฐ๊ฒฐ์— ๋Œ€ํ•œ ์—”๋“œํฌ์ธํŠธ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ host ๊ตฌ๋ฌธ์€ ๋ฆฌ์†Œ์Šค์˜ on ์„น์…˜์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ์ •์˜๋˜๋ฉด ์ด ์—”๋“œ ํฌ์ธํŠธ๋Š” on ์„น์…˜์— ์ •์˜ ๋œ ํฌํŠธ ๋Œ€์‹  ์ง€์ •๋œ ํฌํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ connection ์„น์…˜์—๋Š” ์ •ํ™•ํžˆ ๋‘ ๊ฐœ์˜ host ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ host ๋งค๊ฐœ ๋ณ€์ˆ˜ ๋Œ€์‹  connection์— ๋‹ค์ค‘ path ์„น์…˜์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ย 

path

๋‘ ํ˜ธ์ŠคํŠธ ๊ฐ„์˜ path๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์—๋Š” ๋‘ ๊ฐœ์˜ ํ˜ธ์ŠคํŠธ ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

hostย nameย [addressย [address-family]ย address] [portย port-number]

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

ย 

ย 

connection-mesh

์—ฌ๋Ÿฌ ํ˜ธ์ŠคํŠธ๋“ค ๊ฐ„์˜ mesh ์—ฐ๊ฒฐ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์—๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ธ์ˆ˜๋กœ ๊ฐ–๋Š” "hosts"๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ํฌํ•จ๋˜์–ด์•ผํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์€ ๋™์ผํ•œ ๋„คํŠธ์›Œํฌ ์˜ต์…˜์„ ๊ณต์œ ํ•˜๋Š” ๋งŽ์€ ์—ฐ๊ฒฐ์„ ์†์‰ฝ๊ฒŒ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

hostsย nameโ€ฆ

๋ฉ”์‰ฌ์˜ ๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์ด๋ฆ„์€ ์ž์›์˜ on ์„น์…˜์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. on ์„น์…˜์— ์ •์˜ ๋œ ํฌํŠธ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

ย 

disk

๋ณผ๋ฅจ์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์˜ ๋ชจ๋“  ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

al-extentsย extents

bsr์€ ์ตœ๊ทผ ๋””์Šคํฌ ์“ฐ๊ธฐ ์ž‘์—…์„ ๊ทผ๊ฑฐ๋กœ ์“ฐ์—ฌ์ง„(active) ์˜์—ญ๊ณผ ์“ฐ์—ฌ์ง„ ์˜์—ญ์— ์ตœ๊ทผ ๋‹ค์‹œ ์“ฐ์—ฌ์ง„(hot) ์˜์—ญ์— ๋Œ€ํ•ด ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์“ฐ๊ธฐ I/O๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด active ์˜์—ญ์€ ๋””์Šคํฌ์— ์ฆ‰์‹œ ์“ฐ๋ฉด ๋˜์ง€๋งŒ inactive ๋””์Šคํฌ ์˜์—ญ์€ ๋จผ์ € activated ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฌ๊ธฐ์„œ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์“ฐ๊ธฐ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด active ๋””์Šคํฌ ์˜์—ญ์„ activity log ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

activity log์— ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์“ฐ๊ธฐ๋ฅผ ์ €์žฅํ•˜์ง€๋งŒ ์‹คํŒจํ•œ ๋…ธ๋“œ๋ฅผ ๋ณต๊ตฌํ•  ๊ฒฝ์šฐ ์ „์ฒด activity log์— ๋Œ€ํ•ด ๋‹ค์‹œ ๋™๊ธฐํ™” ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ activity log์˜ ํฌ๊ธฐ๋Š” primary ํฌ๋ž˜์‰ฌ ํ›„ ์žฌ ๋™๊ธฐํ™”์— ์–ผ๋งˆ๋‚˜ ์˜ค๋ž˜ ๊ฑธ๋ฆด์ง€, ์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ๋ณต์ œ ๋””์Šคํฌ์˜ ์ผ๊ด€์„ฑ์„ ๋งž์ถœ์ง€์˜ ์ฃผ์š” ์š”์ธ์ด ๋ฉ๋‹ˆ๋‹ค. activity log๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ 4MiB ๋‹จ์œ„ ์„ธ๊ทธ๋จผํŠธ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. al-extents ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ๋™์‹œ์— ํ™œ์„ฑํ™” ํ•  ์ˆ˜์žˆ๋Š” ์„ธ๊ทธ๋จผํŠธ ์ˆ˜๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. al-extents์˜ ๊ธฐ๋ณธ๊ฐ’์€ 6001์ด๋ฉฐ ์ตœ์†Œ 7๊ณผ ์ตœ๋Œ€ 65536์ž…๋‹ˆ๋‹ค. ์žฅ์น˜ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•œ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์œ ํšจํ•œ ์ตœ๋Œ€ ๊ฐ’์ด ๋” ์ž‘์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค (bsrmeta ์ฐธ์กฐ).

์œ ํšจ ์ตœ๋Œ€ ๊ฐ’์€ 919 * (์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์˜จ ๋””์Šคํฌ activity log ๋ง ๋ฒ„ํผ ์˜์—ญ / 4kB -1)์ด๋ฉฐ, ๊ธฐ๋ณธ 32KB ๋ง ๋ฒ„ํผ์—์„œ ์ตœ๋Œ€ 6433 (25GiB ์ด์ƒ์˜ ๋ฐ์ดํ„ฐ ํฌํ•จ)์ด ๋ฉ๋‹ˆ๋‹ค. ๋ฐฑ์—”๋“œ ์Šคํ† ๋ฆฌ์ง€ ๋ฐ ๋ณต์ œ ๋งํฌ๊ฐ€ ์•ฝ 5 ๋ถ„ ์ด๋‚ด์— ์žฌ ๋™๊ธฐํ™” ๋  ์ˆ˜์žˆ๋Š” ์–‘ ์ด๋‚ด์—์„œ activity log์˜ ํฌ๊ธฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค.

al-extents ์˜ ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋ฆฌ์†Œ์Šค ์ค‘์ง€(down)๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

al-updatesย {yes | no}

์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ no ๋กœ ์„ค์ •ํ•˜๋ฉด activity log๋ฅผ ์™„์ „ํžˆ ๋Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค (al-extentsย ๋งค๊ฐœ ๋ณ€์ˆ˜ ์ฐธ์กฐ). ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์“ฐ๊ธฐ๊ฐ€ ๋” ์ ๊ฒŒ ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์“ฐ๊ธฐ ์†๋„๊ฐ€ ๋นจ๋ผ์ง€์ง€๋งŒ, ์‹คํŒจํ•œ ๊ธฐ๋ณธ ๋…ธ๋“œ์˜ ๋ณต๊ตฌ์‹œ ์ „์ฒด ์žฅ์น˜๋ฅผ ์žฌ ๋™๊ธฐํ™”ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. al-updats ์˜ ๊ธฐ๋ณธ๊ฐ’์€ yes ์ž…๋‹ˆ๋‹ค.

ย 

disk-barrier,

disk-flushes,

disk-drain

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

  • disk-flush ๋””์Šคํฌ์— ์“ฐ๊ธฐ I/O ๋ฅผ ์ˆ˜ํ–‰ํ•œ ํ›„ flush ๋ฅผ ๊ฐ•์ œํ•˜์—ฌ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ์— ๊ธฐ๋กํ•˜๋„๋ก ์กฐ์น˜ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋žซํผ ๋˜๋Š” ๋“œ๋ผ์ด๋ฒ„ ๊ณต๊ธ‰ ์—…์ฒด์— ๋”ฐ๋ผ flush ๊ตฌํ˜„์ด ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์ „ ๋ฐฉ์‹์œผ๋กœ๋Š” FUA(Force Unit Access)๋กœ ๋ช…๋ช…๋˜๋Š” ๋””์Šคํฌ ์บ์‰ฌ๋ฅผ ์šฐํšŒํ•˜๋Š” ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ–ˆ์œผ๋‚˜ ์ตœ๊ทผ์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋””์Šคํฌ ์บ์‰ฌ๋ฅผ ๋น„์šฐ๋Š” ์ž‘์—…์„ ํ†ตํ•ด ๋””์Šคํฌ ์“ฐ๊ธฐ๋ฅผ ๋ณด์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์—ˆ์œผ๋‚˜ flush ๋™์ž‘์ด ๊ฐ€๋” ์˜ค๋žœ ์ง€์—ฐ์„ ์ผ์œผํ‚ค๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„์„œ ์ตœ๊ทผ ๋น„ํ™œ์„ฑ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์•ฝ battery backed cache ๊ฐ€ ์—†๋Š” ๋””์Šคํฌ ์žฅ๋น„๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๋ฉด disk-flush ๋ฅผ ํ™œ์„ฑํ™”ํ•ด์„œ ์‚ฌ์šฉํ•˜์„ธ์š”.

  • disk-barrier ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์“ฐ๊ธฐ ์š”์ฒญ์ด ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ๋กœ ๋””์Šคํฌ์— ๊ธฐ๋ก ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. barrier๋Š” barrier ์ด์ „์— ์ œ์ถœ ๋œ ๋ชจ๋“  ์š”์ฒญ์ด ์ดํ›„์— ์ œ์ถœ ๋œ ์š”์ฒญ๋ณด๋‹ค ์•ž์„œ์„œ ๋ชจ๋‘ ๋””์Šคํฌ์— ์š”์ฒญํ•˜๋„๋ก ๋ณด์žฅ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” SCSI ์žฅ์น˜์˜ 'tagged command queuing'๊ณผ SATA ์žฅ์น˜์˜ 'native command queuing'์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ์žฅ์น˜ ๋ฐ ์žฅ์น˜ ์Šคํƒ ๋งŒ์ด ์ด ๋ฐฉ๋ฒ•์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. device mapper (LVM)๋Š” ์ผ๋ถ€ ๊ตฌ์„ฑ์—์„œ๋งŒ barrier๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. disk-barrier์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์‹œ์Šคํ…œ์—์„œ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์‹ค๋˜๊ฑฐ๋‚˜ ์†์ƒ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ์˜ˆ์ „ ๋ฆฌ๋ˆ…์Šค ์ปค๋„์—์„œ๋Š” ์ง€์›ํ–ˆ์ง€๋งŒ linux-2.6.36 (๋˜๋Š” 2.6.32 RHEL6) ์ดํ›„์˜ ์ปค๋„์€ ๋” ์ด์ƒ disk-barrier๊ฐ€ ์ง€์›๋˜๋Š”์ง€ ๊ฐ์ง€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ด์ œ๋˜์–ด ์žˆ์œผ๋ฉฐ ๋ช…์‹œ์ ์œผ๋กœ ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • disk-drain ์“ฐ๊ธฐ ์š”์ฒญ์„ ์ œ์ถœํ•˜๊ธฐ ์ „์— ์š”์ฒญ ํ๊ฐ€ "๋“œ๋ ˆ์ธ"๋  ๋•Œ๊นŒ์ง€ ์ฆ‰, ์š”์ฒญ์ด ์™„๋ฃŒ ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์š”์ฒญ์ด ์™„๋ฃŒ๋  ๋•Œ ๊นŒ์ง€ ์š”์ฒญ๋“ค์ด ๋””์Šคํฌ์—์„œ ์•ˆ์ •์ ์ž„์ด ๋ณด์žฅ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ „์—๋Š” ์ด ์˜ต์…˜์„ ๊ธฐ๋ณธ ํ™œ์„ฑํ™” ํ•˜์˜€์ง€๋งŒ ์ง€๊ธˆ์€ ๋น„ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

disk-timeout

๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ํ•˜์œ„ ์žฅ์น˜์— ์ •์˜๋œ ๋””์Šคํฌ ์‹œ๊ฐ„ ๋‚ด์— I/O ์š”์ฒญ์„ ์™„๋ฃŒํ•˜์ง€ ๋ชปํ•˜๋ฉด bsr์€ ์ด๋ฅผ ์‹คํŒจ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ํ•˜์œ„ ์žฅ์น˜๊ฐ€ detach๋˜๊ณ  ์žฅ์น˜์˜ ๋””์Šคํฌ ์ƒํƒœ๊ฐ€ diskless ์ƒํƒœ๊ฐ€ ๋ฉ๋‹ˆ๋‹ค. bsr์ด ํ•˜๋‚˜ ์ด์ƒ์˜ ํ”ผ์–ด์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๋‹ค๋ฉด ์‹คํŒจํ•œ ์š”์ฒญ์ด ๊ทธ ์ค‘ ํ•˜๋‚˜์— ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์˜ ์‚ฌ์šฉ์€ ํฌ๋ฆฌํ‹ฐ์ปฌํ•˜๋ฉฐ ์ปค๋„ ํŒจ๋‹‰์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์ฒญ์„ Abort ํ•˜๊ณ  ๊ฐ•์ œ๋กœ ๋””์Šคํฌ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ๊ฒƒ์€ ๋” ์ด์ƒ ์š”์ฒญ์„ ์™„๋ฃŒํ•˜์ง€๋„ ์•Š๊ณ  ์˜ค๋ฅ˜๋„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š๊ฒŒ ์™„์ „ํžˆ block๋˜์–ด ์ค‘์ง€๋œ ๋กœ์ปฌ ๋ฐฑ์—… ์žฅ์น˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์กฐ์น˜์ž…๋‹ˆ๋‹ค. ์ด ์ƒํ™ฉ์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋“œ ๋ฆฌ์…‹ ๋ฐ ํŽ˜์ผ ์˜ค๋ฒ„๊ฐ€ ์œ ์ผํ•œ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. disk-timeout์˜ ๊ธฐ๋ณธ๊ฐ’์€ 0์ด๋ฉฐ, ์ด๋Š” ๋ฌดํ•œ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ์ดˆ๊ณผ๋Š” 0.1 ์ดˆ ๋‹จ์œ„๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

md-flushes

๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ ์žฅ์น˜์—์„œ ๋””์Šคํฌ ํ”Œ๋Ÿฌ์‹œ ๋ฐ disk barrier์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. disk-flush ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

on-io-errorย handler

ํ•˜์œ„ ๋ ˆ๋ฒจ ์žฅ์น˜์—์„œ bsr์ด I/O ์˜ค๋ฅ˜์— ๋Œ€์‘ํ•˜๋Š” ๋ฐฉ์‹์„ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ •์ฑ…์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

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

  • call-local-io-error local-io-errorย ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค (ย handlersย ์„น์…˜์„ ์ฐธ๊ณ ํ•˜์„ธ์š”).

  • detach ํ•˜์œ„๋ ˆ๋ฒจ ์žฅ์น˜๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  diskless ์ƒํƒœ๋กœ ์ „ํ™˜ํ•ฉ๋‹ˆ๋‹ค. diskless ์ƒํƒœ์—์„œ๋Š” I/O๊ฐ€ ์ˆ˜ํ–‰๋  ์ˆ˜ ์—†์œผ๋ฉฐ ์ฆ‰์‹œ failover๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

max-passthrough-count

on-io-error ๊ฐ€ ํŒจ์Šค์Šค๋ฃจ ์ •์ฑ…์ผ ๋•Œ, ์ผ์ • ์ˆ˜ ์ด์ƒ ํŒจ์Šค์Šค๋ฃจ๊ฐ€ ๋ฐ˜๋ณต๋  ๊ฒฝ์šฐ ์˜๊ตฌ์  ๋””์Šคํฌ ์žฅ์• ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์˜ ์ž„๊ณ„์ ์„ ์ˆซ์ž๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ๋ˆ…์Šค์—์„œ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ๊ธฐ๋ณธ๊ฐ’์€ 100 ์ž…๋‹ˆ๋‹ค.

ย 

resync-afterย res-name/volume

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

disable-write-same {yes | no}

write same I/O ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋””์Šคํฌ ์žฅ์น˜์˜ ๊ฒฝ์šฐ yes ๋กœ ์„ค์ •ํ•˜์—ฌ bsr ์ด ํ•ด๋‹น I/O์˜ ์œ ํ˜•์„ ์˜ค๋ฅ˜๋กœ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

ย 

peer-device-options

peer-device-options ์„น์…˜ ์ด์ง€๋งŒ disk ํ‚ค์›Œ๋“œ๋กœ ์ด ์„น์…˜์„ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค. (์˜ˆ์ „ ๋ฒ„์ „์—์„œ ์‚ฌ์šฉํ•˜๋˜ ๋ฐฉ์‹์„ ์ทจํ•˜์—ฌ ํ•˜์œ„ ํ˜ธํ™˜์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•จ)

resync-rateย rate

์žฌ ๋™๊ธฐํ™”์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์—ญํญ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. bsr์€ ์žฌ ๋™๊ธฐํ™” ์ค‘์—๋„ ์ผ๋ฐ˜์ ์ธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ I/O๋ฅผ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์žฌ ๋™๊ธฐํ™”๊ฐ€ ๋„ˆ๋ฌด ๋งŽ์€ ๋Œ€์—ญํญ์„ ์ฐจ์ง€ํ•˜๋ฉด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ I/O๊ฐ€ ๋งค์šฐ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฅผ ํ”ผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๊ณ ์ •๋Œ€์—ญ ๋™๊ธฐํ™” ์„ค์ •์—์„œ๋งŒ ์œ ํšจํ•˜๋ฉฐ ๊ฐ€๋ณ€๋Œ€์—ญ ๋™๊ธฐํ™”์ผ ๊ฒฝ์šฐ๋Š” ์žฌ๋™๊ธฐํ™”์˜ ์ดˆ๊ธฐ ์‹œ๋„ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

c-plan-aheadย plan_time

์žฌ ๋™๊ธฐํ™” ์†๋„๋ฅผ ๋™์ ์œผ๋กœ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฉ”์นด๋‹ˆ์ฆ˜์€ c-plan-ahead ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์–‘์ˆ˜ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€ ๋Œ€์—ญํญ์€ c-max-rate ๋งค๊ฐœ ๋ณ€์ˆ˜์— ์˜ํ•ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. c-plan-ahead ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” bsr์ด ์žฌ ๋™๊ธฐํ™” ์†๋„์˜ ๋ณ€ํ™”์— โ€‹โ€‹์–ผ๋งˆ๋‚˜ ๋นจ๋ฆฌ ์ ์‘ํ•˜๋Š” ์ง€๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋ณดํ†ต ๋„คํŠธ์›Œํฌ ์™•๋ณต ์‹œ๊ฐ„(RTT)์˜ 5 ๋ฐฐ ์ด์ƒ์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. c-fill-target์ด ์ •์˜๋˜๋ฉด ๋ฐ์ดํ„ฐ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ์ •์˜ ๋œ ์–‘์˜ ๋ฐ์ดํ„ฐ๋กœ ๋ฒ„ํผ๋ฅผ ์ฑ„์šฐ๋ ค๊ณ  ํ•˜๊ณ  c-delay-target์ด ์ •์˜ ๋œ ๊ฒฝ์šฐ ์ •์˜๋œ ์ง€์—ฐ์„ ๊ฐ–๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. "์ •์ƒ" ๋ฐ์ดํ„ฐ ๊ฒฝ๋กœ์— ๋Œ€ํ•œ c-fill-target์˜ ๊ณตํ†ต ๊ฐ’ ๋ฒ”์œ„๋Š” 4K ~ 100K์ž…๋‹ˆ๋‹ค. drx๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ c-fill-target ๋Œ€์‹  c-delay-target์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋‹ค์†Œ ๊ฐ„์˜ ์ง€์—ฐ๋œ ๋™๊ธฐํ™” ๋ฐ์ดํ„ฐ์˜ ์ „๋‹ฌ์€ DRX ๋ณต์ œ ๋ฒ„ํผ๋ง์— ๋ถ€๋‹ด์„ ๋œ์–ด์ฃผ๊ธด ํ•˜๊ฒ ์ง€๋งŒ ์ ˆ๋Œ€์ ์ธ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. c-delay-target ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” c-fill-target ๋งค๊ฐœ ๋ณ€์ˆ˜๊ฐ€ ์ •์˜๋˜์ง€ ์•Š๊ฑฐ๋‚˜ 0์œผ๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. c-delay-target ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ๋„คํŠธ์›Œํฌ ์™•๋ณต ์‹œ๊ฐ„์˜ 5 ๋ฐฐ ์ด์ƒ์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. c-max-rate ์˜ต์…˜์€ bsr ํ˜ธ์ŠคํŠธ์™€ drx ๋ฅผ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ์‹œ์Šคํ…œ๊ฐ„์— ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋Œ€์—ญํญ ๋˜๋Š” ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋””์Šคํฌ ๋Œ€์—ญํญ์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋“ค์˜ ๊ธฐ๋ณธ ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. c-plan-ahead = 20 (0.1 ์ดˆ ๋‹จ์œ„), c-fill-target = 0 (์„นํ„ฐ ๋‹จ์œ„), c-delay-target = 1 (0.1 ์ดˆ ๋‹จ์œ„) ) ๋ฐ c-max-rate = 102400 (KiB/s ๋‹จ์œ„).

c-min-rateย min_rate

Primary ์ด๊ณ  ๋™๊ธฐํ™” ์†Œ์Šค ์ธ ๋…ธ๋“œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ I/O ์š”์ฒญ๊ณผ ๋™๊ธฐํ™” ์š”์ฒญ์„ ์Šค์ผ€์ค„๋ง ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. c-min-rate ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์žฌ ๋™๊ธฐํ™” I/O์— ์‚ฌ์šฉํ•˜๋Š” ์ตœ์†Œ ๋Œ€์—ญํญ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€ ๋Œ€์—ญํญ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ I/O์˜ ๋ณต์ œ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. c-min-rate ๊ฐ’์ด 0์ด๋ฉด ์žฌ ๋™๊ธฐํ™” I/O ๋Œ€์—ญํญ์— ์ œํ•œ์ด ์—†์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ I/O ์†๋„๊ฐ€ ํฌ๊ฒŒ ๋Š๋ ค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋‚ฎ์€ ์žฌ ๋™๊ธฐํ™” ์†๋„๋ฅผ ์œ„ํ•ด์„œ๋Š” 1 (1 KiB/s) ๊ฐ’์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. c-min-rate์˜ ๊ธฐ๋ณธ๊ฐ’์€ KiB/s ๋‹จ์œ„๋กœ 250 ์ž…๋‹ˆ๋‹ค.

c-max-rateย max_rate

์žฌ ๋™๊ธฐํ™” I/O์— ์‚ฌ์šฉํ•˜๋Š” ์ตœ๋Œ€ ๋Œ€์—ญํญ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. bsr ์€ ๋ณต์ œ ๋Œ€์—ญ๊ณผ ์ ˆ์ถฉํ•˜์—ฌ c-min-rate ์—์„œ c-max-rate ๊นŒ์ง€์˜ ๋™๊ธฐํ™” ๋Œ€์—ญ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

resync-ratio ratio

๋ณต์ œ ์ˆ˜ํ–‰ ์ค‘ ๋™๊ธฐํ™”๊ฐ€ ๋ณ‘ํ–‰ ๋  ๊ฒฝ์šฐ์˜ ๋™๊ธฐํ™” ์ตœ์†Œ ๋Œ€์—ญํญ ๋น„์œจ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์ด ๊ฐ’์ด ๋†’์€ ๋น„์œจ๋กœ ์„ค์ •๋œ๋‹ค๋ฉด ๋ณต์ œ ๋Œ€์—ญ์˜ ๋น„์œจ์ด ์ƒ๋Œ€์ ์œผ๋กœ ๋‚ฎ์•„์ง€๊ณ  ๊ทธ์— ๋”ฐ๋ผ ์‘์šฉ I/O ์˜ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด์— ์œ ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • resync-ratio ์„ค์ •์€ ๋™๊ธฐํ™” ์ตœ์†Œ ๋Œ€์—ญํญ ๋น„์œจ ์ด๋ฏ€๋กœ resync-ratio๋ณด๋‹ค ์‹ค์ œ ๋™๊ธฐํ™” ๋Œ€์—ญ์ด ๋†’์„ ๊ฒฝ์šฐ ๋™๊ธฐํ™” ๋Œ€์—ญ์„ ๋‚ฎ์ถ”์ง€ ์•Š๊ณ  ํ˜„ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

  • resync-ratio ์„ค์ •์œผ๋กœ ์–ป์€ ๋™๊ธฐํ™” ๋Œ€์—ญํญ ๋น„์œจ์˜ ํฌ๊ธฐ๊ฐ€ c-min-rate ์„ค์ •๋ณด๋‹ค ์ž‘๋‹ค๋ฉด c-min-rate๋กœ ๋™๊ธฐํ™” ๋Œ€์—ญํญ์ด ์„ค์ •๋ฉ๋‹ˆ๋‹ค.

  • resync-ratio ์„ค์ •์€ ๋ณต์ œ ์ค‘ ๋™๊ธฐํ™” ์†๋„๊ฐ€ c-min-rate ๋ณด๋‹ค ๋‚ฎ์„ ๋•Œ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

ย 

handlers

ํŠน์ • ์ด๋ฒคํŠธ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ํ˜ธ์ถœ ๋  ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ปค๋„์€ ํ•ธ๋“ค๋Ÿฌ์˜ ์ฒซ ๋ฒˆ์งธ ๋ช…๋ น ์ค„ ์ธ์ˆ˜์—์„œ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์„ ์ „๋‹ฌํ•˜๊ณ  ์ด๋ฒคํŠธ ๋ฌธ๋งฅ์— ๋”ฐ๋ผ ๋‹ค์Œ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ํŠน์ • device์™€ ๊ด€๋ จ๋œ ์ด๋ฒคํŠธ์˜ ๊ฒฝ์šฐ: ์žฅ์น˜์˜ ๋ถ€ ๋ฒˆํ˜ธ๋Š” BSR_MINOR, ์žฅ์น˜์˜ ๋ณผ๋ฅจ ๋ฒˆํ˜ธ๋Š” BSR_VOLUME ์— ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํŠน์ • peer์˜ ํŠน์ • device์™€ ๊ด€๋ จ๋œ ์ด๋ฒคํŠธ์˜ ๊ฒฝ์šฐ: BSR_MY_ADDRESS, BSR_MY_AF, BSR_PEER_ADDRESS ๋ฐ BSR_PEER_AF์— connection ์—”๋“œ ํฌ์ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค; BSR_MINOR์— ์žˆ๋Š” ์žฅ์น˜์˜ ๋กœ์ปฌ ๋ถ€ ๋ฒˆํ˜ธ ๋ฐ BSR_VOLUME์— ์žฅ์น˜์˜ ๋ณผ๋ฅจ ๋ฒˆํ˜ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ํŠน์ • connection๊ณผ ๊ด€๋ จ๋œ ์ด๋ฒคํŠธ์˜ ๊ฒฝ์šฐ: BSR_MY_ADDRESS, BSR_MY_AF, BSR_PEER_ADDRESS ๋ฐ, BSR_PEER_AF์— connection ์—”๋“œ ํฌ์ธํŠธ; ๊ทธ๋ฆฌ๊ณ  ํ•ด๋‹น connection์— ๋Œ€ํ•ด ์ •์˜๋œ ๊ฐ device์˜ ์žฅ์น˜ ๋ถ€ ๋ฒˆํ˜ธ๊ฐ€ BSR_MINOR_volume-number์— ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์žฅ์น˜๋ฅผ ์‹๋ณ„ํ•˜๋Š” ์ด๋ฒคํŠธ์˜ ๊ฒฝ์šฐ ํ•˜์œ„ ์žฅ์น˜๊ฐ€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์œผ๋ฉด ํ•˜์œ„ ์žฅ์น˜์˜ ์žฅ์น˜ ์ด๋ฆ„์ด BSR_BACKING_DEV (๋˜๋Š” BSR_BACKING_DEV_volume-number)๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.

์ด ์„น์…˜์˜ ๋ชจ๋“  ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ๊ฐ ์ด๋ฒคํŠธ์— ๋Œ€ํ•ด ๋‹จ์ผ ํ•ธ๋“ค๋Ÿฌ๋งŒ ์ •์˜ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์•„๋ฌด ์ผ๋„ ์ผ์–ด๋‚˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ย 

after-resync-targetย cmd

์žฌ ๋™๊ธฐํ™”๊ฐ€ ์™„๋ฃŒ ๋  ๋•Œ ๋…ธ๋“œ ์ƒํƒœ๊ฐ€ "Inconsistent"์—์„œ "Consistent"๋กœ ๋ณ€๊ฒฝ๋˜๋ฉด SyncTarget์—์„œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด ํ•ธ๋“ค๋Ÿฌ๋Š” before-resync-target ํ•ธ๋“ค๋Ÿฌ์—์„œ ์ž‘์„ฑ๋œ ์Šค๋ƒ… ์ƒท์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

before-resync-targetย cmd

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

before-resync-sourceย cmd

์žฌ๋™๊ธฐํ™”๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์ „ ๋™๊ธฐํ™” ์†Œ์Šค์—์„œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

out-of-syncย cmd

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

fence-peerย cmd

๋…ธ๋“œ๊ฐ€ ํŠน์ • ํ”ผ์–ด์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์ฐจ๋‹จํ•ด์•ผ ํ•  ๋•Œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ํ•ธ๋“ค๋Ÿฌ๋Š” bsr์ด ํ”ผ์–ด์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•˜๋Š” ๋™์ผํ•œ ํ†ต์‹  ๊ฒฝ๋กœ๋ฅผ ์‚ฌ์šฉํ•ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค.

unfence-peerย cmd

๋…ธ๋“œ๊ฐ€ ๋‹ค๋ฅธ ๋…ธ๋“œ์—์„œ ํŽœ์‹ฑ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ œ๊ฑฐํ•ด์•ผ ํ•  ๋•Œ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

initial-split-brainย cmd

์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ์ƒํƒœ์ž„์„ ๊ฐ์ง€ํ•˜๋ฉด ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค. ์ด ํ•ธ๋“ค๋Ÿฌ๋Š” ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ์ž๋™ ํ•ด๊ฒฐ ์‹œ๋‚˜๋ฆฌ์˜ค์—์„œ๋„ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

local-io-errorย cmd

ํ•˜์œ„ ์žฅ์น˜์—์„œ I/O ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ํ˜ธ์ถœ๋ฉ๋‹ˆ๋‹ค.

pri-lostย cmd

๋กœ์ปฌ ๋…ธ๋“œ๋Š” ํ˜„์žฌ Primary ๋…ธ๋“œ์ด์ง€๋งŒ bsr์ด ๋™๊ธฐํ™” ๋Œ€์ƒ์ด ๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐ๋  ๋•Œ ํ˜ธ์ถœ ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋…ธ๋“œ๋Š” Primary ์—ญํ• ์„ ํฌ๊ธฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

pri-lost-after-sbย cmd

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

split-brainย cmd

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

ย 

net

์—ฐ๊ฒฐ์˜ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์„น์…˜์˜ ๋ชจ๋“  ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

after-sb-0priย policy

์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์ด ๊ฐ์ง€๋˜๊ณ  ๋‘ ๋…ธ๋“œ ์ค‘ ์–ด๋Š ๊ฒƒ๋„ Primary ์—ญํ• ์ด ์•„๋‹ ๊ฒฝ์šฐ์˜ ๋Œ€์‘ ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์€ ํ•ญ์ƒ ๋‘ ๋…ธ๋“œ ์‚ฌ์ด์—์„œ ๊ฒฐ์ •๋˜๋ฉฐ ๋‘ ๋…ธ๋“œ๊ฐ€ ์—ฐ๊ฒฐ๋  ๋•Œ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. ์ •์˜ ๋œ ์ •์ฑ…์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • disconnect ๋‹จ์ˆœํžˆ ์—ฐ๊ฒฐ์„ ๋Š์Šต๋‹ˆ๋‹ค.

  • discard-younger-primary ์ตœ๊ทผ์— Primary๊ฐ€ ๋œ ๋…ธ๋“œ(younger primary)์— ์“ฐ์—ฌ์ง„ ๋ฐ์ดํ„ฐ๋ฅผ ์ทจ์†Œํ•˜๊ณ  ๋˜๋Œ๋ฆฝ๋‹ˆ๋‹ค. younger primary๋ฅผ ํŒ๋‹จํ•  ์ˆ˜ ์—†๋‹ค๋ฉดย discard-zero-changes,ย discard-least-changes ์ˆœ์„œ๋กœ ๋™์ž‘ํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.ย 

  • discard-older-primary ์ฒ˜์Œ Primary ๊ฐ€ ๋ฌ๋˜ ๋…ธ๋“œ(older primary)๋ฅผ ํ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ๋งŒ์ผ ๋‘ ๋…ธ๋“œ๊ฐ€ ๋…๋ฆฝ์ ์œผ๋กœ Primary ๊ฐ€ ๋์—ˆ๋‹ค๋ฉด discard-least-changes ์ •์ฑ…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • discard-zero-changes ํ•˜๋‚˜์˜ ๋…ธ๋“œ์—์„œ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์“ด ๊ฒฝ์šฐ ํ•ด๋‹น ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์žฌ ๋™๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค. ๋‘ ๋…ธ๋“œ๊ฐ€ ๋ชจ๋‘ ๋ฐ์ดํ„ฐ๋ฅผ ์“ด ๊ฒฝ์šฐ ์—ฐ๊ฒฐ์„ ๋Š์Šต๋‹ˆ๋‹ค.

  • discard-least-changes ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์“ด ๋…ธ๋“œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋™๊ธฐํ™” ํ•ฉ๋‹ˆ๋‹ค.

  • discard-node-nodename ๋ช…๋ช…๋œ ๋…ธ๋“œ๋ฅผ ํ•ญ์ƒ ํ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

after-sb-1priย policy

Primary ๋…ธ๋“œ 1 ๊ฐœ์™€ Secondary ๋…ธ๋“œ 1 ๊ฐœ๋กœ ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์ด ๊ฐ์ง€๋˜๋Š” ๊ฒฝ์šฐ ๋Œ€์ฒ˜ ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • disconnect ๋‹จ์ˆœํžˆ ์—ฐ๊ฒฐ์„ ๋Š์Šต๋‹ˆ๋‹ค.

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

  • discard-secondary Secondary ์˜ ๋…ธ๋“œ๋ฅผ ํ๊ธฐํ•ฉ๋‹ˆ๋‹ค.

after-sb-2priย policy

์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ์‹œ๋‚˜๋ฆฌ์˜ค๊ฐ€ ๊ฐ์ง€๋˜๊ณ  ๋‘ ๋…ธ๋“œ๊ฐ€ ๋ชจ๋‘ Primary ์—ญํ• ์„ ํ•˜๋Š” ๊ฒฝ์šฐ ๋Œ€์‘ ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • disconnect ๋‹จ์ˆœํžˆ ์—ฐ๊ฒฐ์„ ๋Š์Šต๋‹ˆ๋‹ค. 2 primary ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์˜ ๊ฒฝ์šฐ disconnect ์ •์ฑ…๋งŒ ์ œ๊ณต๋˜๋ฉฐ ์ˆ˜๋™ ๋ณต๊ตฌ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

allow-two-primaries

bsr ์—์„  ์ด์ค‘ primary ๋ชจ๋“œ๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

connect-intย time

bsrsetup connect๋กœ ๋‘ ๋…ธ๋“œ ๊ฐ„ ์—ฐ๊ฒฐ์ด ๊ตฌ์„ฑ๋˜๋Š” ์ฆ‰์‹œ ์—ฐ๊ฒฐ ์„ค์ •์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์‹คํŒจํ•˜๋ฉด bsr์€ connect-int์ดˆ ๋™์•ˆ ๊ธฐ๋‹ค๋ ธ๋‹ค๊ฐ€ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค. connect-int์˜ ๊ธฐ๋ณธ๊ฐ’์€ 3์ดˆ์ž…๋‹ˆ๋‹ค.

csums-algย hash-algorithm

์ผ๋ฐ˜์ ์œผ๋กœ ๋‘ ๋…ธ๋“œ๊ฐ€ ๋‹ค์‹œ ๋™๊ธฐํ™” ๋˜๋ฉด ๋™๊ธฐํ™” ๋Œ€์ƒ์€ ๋™๊ธฐํ™” ์†Œ์Šค๋กœ๋ถ€ํ„ฐ out-of-sync ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๊ณ  ๋™๊ธฐํ™” ์†Œ์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

๋งŽ์€ ์‚ฌ์šฉ ํŒจํ„ด์—์„œ ๋ณผ ๋•Œ ์ƒ๋‹น์ˆ˜์˜ ๋ธ”๋ก์ด ์‹ค์ œ๋กœ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. csums-alg ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ง€์ •๋˜๋ฉด ๋™๊ธฐํ™”๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ๋•Œ ๋™๊ธฐํ™” ๋Œ€์ƒ๋„ ํ˜„์žฌ ๋ณด์œ ํ•œ ๋ฐ์ดํ„ฐ์˜ ํ•ด์‹œ๋ฅผ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ๋™๊ธฐํ™” ์†Œ์Šค๋Š”์ด ํ•ด์‹œ๋ฅผ ์ž๊ธฐ์˜ ๋ฐ์ดํ„ฐ์™€ ๋น„๊ตํ•ฉ๋‹ˆ๋‹ค. ํ•ด์‹œ๊ฐ€ ๋‹ค๋ฅด๋ฉด ๋™๊ธฐํ™” ๋Œ€์ƒ์— ์ƒˆ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๊ณ  ํ•ด์‹œ๊ฐ€ ๊ฐ™์œผ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๋™์ผํ•˜๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ํ•„์š”ํ•œ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญํญ์ด ์ค„์–ด๋“ค์ง€๋งŒ ๋ฐ˜๋ฉด CPU ์‚ฌ์šฉ๋ฅ ์€ ๋†’์•„์ง€๊ณ  SyncTarget์˜ ์ฝ๊ธฐ I/O๊ฐ€ ์ฆ๊ฐ€ํ•ฉ๋‹ˆ๋‹ค . csums-alg๋Š” ์ปค๋„์ด ์ง€์›ํ•˜๋Š” ๋ณด์•ˆ ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜๋กœ ์„ค์ • ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. /proc/crypto์— ๋‚˜์—ด๋œ shash ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ์ ์œผ๋กœ csums-alg๋Š” ์„ค์ •๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

data-integrity-algย alg

bsr์€ ์ผ๋ฐ˜์ ์œผ๋กœ TCP/IP ํ”„๋กœํ† ์ฝœ์— ๋‚ด์žฅ ๋œ ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๊ฒ€์‚ฌ์— ์˜์กดํ•˜์ง€๋งŒ, ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ๊ตฌ์„ฑ๋œ ๊ฒฝ์šฐ ์ด ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ˆ˜์‹  ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐœ์‹ ์ž๊ฐ€ ๋ณด๋‚ธ ๊ฒƒ๊ณผ ์ผ์น˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์˜ค๋ฅ˜๊ฐ€ ๊ฐ์ง€๋˜๋ฉด bsr์€ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์„ ๋‹ซ๊ณ  ๋‹ค์‹œ ์—ฐ๊ฒฐํ•˜์—ฌ ์žฌ ๋™๊ธฐํ™”๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. data-integrity-alg๋Š” ์ปค๋„์ด ์ง€์›ํ•˜๋Š” ๋ณด์•ˆ ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜๋กœ ์„ค์ • ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. /proc/crypto์— ๋‚˜์—ด๋œ shash ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ๊ธฐ๋ณธ์ ์œผ๋กœ์ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ํ•ด์ œ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ด€๋ จ๋œ CPU ์˜ค๋ฒ„ ํ—ค๋“œ๋กœ ์ธํ•ด ์šด์˜ ํ™˜๊ฒฝ์—์„œ๋Š” ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

fencingย fencing_policy

ํŽœ์‹ฑ์€ ๋‘ ๋…ธ๋“œ๊ฐ€ ์—ฐ๊ฒฐ์ด ๋Š์–ด์ ธ์„œ ๋ชจ๋‘ Primary ๊ฐ€ ๋˜๋Š” ์ƒํ™ฉ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์˜ˆ๋ฐฉ ์กฐ์น˜์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ ์ƒํ™ฉ ์ด๋ผ๊ณ ๋„ ํ•ฉ๋‹ˆ๋‹ค. bsr์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŽœ์‹ฑ ์ •์ฑ…์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • dont-care ํŽœ์‹ฑ ์กฐ์น˜๊ฐ€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๊ธฐ๋ณธ ์ •์ฑ…์ž…๋‹ˆ๋‹ค.

  • resource-only ๋…ธ๋“œ๊ฐ€ ์—ฐ๊ฒฐ์ด ๋Š๊ธด Primary ๋…ธ๋“œ๊ฐ€ ๋˜๋ฉด ํ”ผ์–ด๋ฅผ ์ฐจ๋‹จํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ "fence-peer" ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค. ํ•ธ๋“ค๋Ÿฌ๋Š” ๋Œ€์ฒด ํ†ต์‹  ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ํ”ผ์–ด์— ๋„๋‹ฌํ•˜์—ฌ 'bsradm outdate minor'๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • resource-and-stonith ๋…ธ๋“œ๊ฐ€ ์—ฐ๊ฒฐ์ด ๋Š๊ธด Primary ๋…ธ๋“œ๊ฐ€ ๋˜๋ฉด ๋ชจ๋“  IO ์ž‘์—…์„ ์ค‘์ง€ํ•˜๊ณ  fence-peer ํ•ธ๋“ค๋Ÿฌ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. fence-peer ํ•ธ๋“ค๋Ÿฌ๋Š” ๋Œ€์ฒด ํ†ต์‹  ๊ฒฝ๋กœ๋ฅผ ํ†ตํ•ด ํ”ผ์–ด์— ๋„๋‹ฌํ•˜์—ฌ 'bsradm outdate minor'๋ฅผ ํ˜ธ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ฒŒ ํ•  ์ˆ˜์—†๋Š” ๊ฒฝ์šฐ์—๋Š” ์ƒ๋Œ€๋ฐฉ์„ (์ „์› ์ œ์–ด)์ฐจ๋‹จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒํ™ฉ์ด ํ•ด๊ฒฐ ๋˜์ž๋งˆ์ž IO๊ฐ€ ์žฌ๊ฐœ๋ฉ๋‹ˆ๋‹ค. ํŽœ์Šค ํ”ผ์–ด ํ•ธ๋“ค๋Ÿฌ๊ฐ€ ์‹คํŒจํ•œ ๊ฒฝ์šฐ ์ž ์žฌ์ ์œผ๋กœ ์Šคํ”Œ๋ฆฟ ๋ธŒ๋ ˆ์ธ์ด ๋ฐœ์ƒํ–ˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜๊ณ  ์ˆ˜๋™์œผ๋กœ ๋ณต๊ตฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ko-countย number

์†ก์‹  ๋ฒ„ํผ๋ง ์‹œ ๋ฐ์ดํ„ฐ ์ „์†ก์ง€์—ฐ ๋˜๋Š” ์‹คํŒจ์— ๋Œ€ํ•œ TX ๋…ธ๋“œ ์ธก์˜ ์†ก์‹  ์žฌ ์‹œ๋„ ํšŒ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

max-buffersย number

์ˆ˜์‹  ์ธก peer-request์˜ ์ตœ๋Œ€ ๋ฒ„ํผ ํฌ๊ธฐ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์œ„๋Š” PAGE_SIZE(๋Œ€๋ถ€๋ถ„์˜ ์‹œ์Šคํ…œ์—์„œ 4KiB)์ž…๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ์ตœ์†Œ ์„ค์ •์€ 32(= 128 KiB)๋กœ ์ง€์ •๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋ฒ„ํผ๋Š” ๋””์Šคํฌ์— ์“ฐ๊ฑฐ๋‚˜ ๋””์Šคํฌ์—์„œ ์ฝ๋Š” ๋™์•ˆ ๋ฐ์ดํ„ฐ ๋ธ”๋ก์„ ๋ณด์œ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. max-buffers ํŽ˜์ด์ง€ ์ด์ƒ์ด ์‚ฌ์šฉ ์ค‘์ด๋ฉด ์ด ํ’€์˜ ์ถ”๊ฐ€ ํ• ๋‹น์ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค. ์ˆ˜์‹  ์ธก์—์„œ I/O ๋ถ€ํ•˜๋ฅผ ๊ฐ๋‹นํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ max-buffers๋ฅผ ๋Š˜๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

max-epoch-sizeย number

์“ฐ๊ธฐ barrier์„ ๋ฐœํ–‰ํ•˜๊ธฐ ์ „์— bsr์ด ๋ฐœํ–‰ ํ•  ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ ์“ฐ๊ธฐ ์š”์ฒญ ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐ’์€ 2048์ด๋ฉฐ ์ตœ์†Œ 1์—์„œ ์ตœ๋Œ€ 20000๊นŒ์ง€ ์ง€์ • ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ 10 ๋ฏธ๋งŒ์˜ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ์„ฑ๋Šฅ์ด ์ €ํ•˜ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

on-congestionย policy,

congestion-fillย threshold,

congestion-extentsย threshold

๊ธฐ๋ณธ์ ์œผ๋กœ bsr์€ TCP ์†ก์‹  ํ๊ฐ€ ๊ฐ€๋“ ์ฐฌ ๊ฒฝ์šฐ ๋Œ€๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ ์†ก์‹  ํ๋ฅผ ๋‹ค์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๋•Œ๊นŒ์ง€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์ถ”๊ฐ€ ์“ฐ๊ธฐ ์š”์ฒญ์„ ์ƒ์„ฑ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. bsr์„ ํ”„๋ก์‹œ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ „์†ก ๋Œ€๊ธฐ์—ด์ด ๊ฐ€๋“ ์ฐจ๊ธฐ ์ „์— bsr์„ Ahead/Behind ๋ชจ๋“œ๋กœ ์ „ํ™˜ ํ•  ์ˆ˜ ์žˆ๋Š” Pull-ahead ํ˜ผ์žก ์ •์ฑ…์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์–ดํ—ค๋“œ ๋ชจ๋“œ์—์„  ๋น„ํŠธ ๋งต์— ์ž์‹ ๊ณผ ํ”ผ์–ด์˜ ์ฐจ์ด์ ์„ ๊ธฐ๋กํ•˜๊ณ  ๋ณต์ œ๋Š” ์ผ์‹œ ์ค‘์ง€ ๋ฉ๋‹ˆ๋‹ค. ๋ฒ„ํผ ๊ณต๊ฐ„์ด ์ถฉ๋ถ„ํ•ด์ ธ ๋‹ค์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ ํ•ด์ง€๋ฉด ๋…ธ๋“œ๋Š” ํ”ผ์–ด์™€ ์žฌ ๋™๊ธฐํ™”ํ•˜๊ณ  ์ •์ƒ ๋ณต์ œ๋กœ ๋‹ค์‹œ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์š”์ฒญ ๋Œ€๊ธฐ์—ด์ด ๊ฐ€๋“ ์ฐจ๋”๋ผ๋„ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ I/O๋ฅผ ์ฐจ๋‹จํ•˜์ง€ ์•Š๋Š” ์ด์ ์ด ์žˆ์ง€๋งŒ ํ”ผ์–ด ๋…ธ๋“œ๊ฐ€ ์›๋ณธ์— ๋น„ํ•ด ํ›จ์”ฌ ๋” ๋’ค์ณ ์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์žฌ ๋™๊ธฐํ™”ํ•˜๋Š” ๋™์•ˆ์€ ํ”ผ์–ด ๋…ธ๋“œ๊ฐ€ Inconsistent ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ˜ผ์žก ์ •์ฑ…์€ blocking(๊ธฐ๋ณธ๊ฐ’), disconnect, pull-ahead ์ž…๋‹ˆ๋‹ค. congestion-fill ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š”์ด ์—ฐ๊ฒฐ์—์„œ ๋ณต์ œ ์ค‘์ธ ๋ฐ์ดํ„ฐ๊ฐ€ ํ—ˆ์šฉ๋˜๋Š” ์–‘์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐ’์€ 0(ํ˜ผ์žก ์ œ์–ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค)์ด๋ฉฐ ์ตœ๋Œ€ 1TB์ž…๋‹ˆ๋‹ค. congestion-extents ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” Ahead/Behind ๋ชจ๋“œ๋กœ ์ „ํ™˜ํ•˜๊ธฐ ์ „์— ํ™œ์„ฑํ™” ๋  ์ˆ˜์žˆ๋Š” ๋น„ํŠธ๋งต ๋ฒ”์œ„์˜ ์ˆ˜๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. congestion-extents ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” al-extents ๋ณด๋‹ค ์ž‘์€ ๊ฐ’์œผ๋กœ ์„ค์ • ํ•œ ๊ฒฝ์šฐ์—๋งŒ ์œ ํšจํ•ฉ๋‹ˆ๋‹ค.

ping-intย interval

ํ”ผ์–ด์— ๋Œ€ํ•œ TCP/IP ์—ฐ๊ฒฐ์ด 1 ์ดˆ ์ด์ƒ ์œ ํœด ์ƒํƒœ ์ธ ๊ฒฝ์šฐ bsr์€ ping ํŒจํ‚ท์„ ๋ณด๋‚ด ์‹คํŒจํ•œ ํ”ผ์–ด ๋˜๋Š” ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์ด ๋นจ๋ฆฌ ๊ฐ์ง€๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 3์ดˆ์ด๋ฉฐ ์ตœ์†Œ 1๊ณผ ์ตœ๋Œ€ 120 ์ดˆ์ž…๋‹ˆ๋‹ค. ๋‹จ์œ„๋Š” ์ดˆ์ž…๋‹ˆ๋‹ค.

ping-timeoutย timeout

ping ํŒจํ‚ท์— ๋Œ€ํ•œ ํšŒ์‹  ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ”ผ์–ด๊ฐ€ ping ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋‚ด์— ์‘๋‹ตํ•˜์ง€ ์•Š์œผ๋ฉด bsr์ด ์—ฐ๊ฒฐ์„ ๋‹ซ๊ณ  ๋‹ค์‹œ ์—ฐ๊ฒฐํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ๊ฐ’์€ 3์ดˆ์ด๋ฉฐ ์ตœ์†Œ 0.1 ์ดˆ์™€ ์ตœ๋Œ€ 3 ์ดˆ์ž…๋‹ˆ๋‹ค. ๋‹จ์œ„๋Š” 10๋ถ„์˜ 1์ดˆ์ž…๋‹ˆ๋‹ค.

protocolย name

๋ณต์ œ ์—ฐ๊ฒฐ์— ์ง€์ •๋œ ํ”„๋กœํ† ์ฝœ์„ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ง€์›๋˜๋Š” ํ”„๋กœํ† ์ฝœ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • A ๋กœ์ปฌ ๋””์Šคํฌ ๋ฐ TCP/IP ์ „์†ก ๋ฒ„ํผ์— ๋ณต์‚ฌํ•œ ์ฆ‰์‹œ ๋กœ์ปฌ I/O ๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

  • B ๋กœ์ปฌ ๋””์Šคํฌ์— ๊ธฐ๋กํ•˜๊ณ  ํ”ผ์–ด์—์„œ ๋ณต์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ์ฆ‰์‹œ ACK ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ ACK ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด I/O ๋ฅผ ์™„๋ฃŒ ํ•ฉ๋‹ˆ๋‹ค.

  • C ๋กœ์ปฌ ๋””์Šคํฌ์— ๊ธฐ๋กํ•˜๊ณ  ํ”ผ์–ด์—์„œ ๋ณต์ œ ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ์— ๊ธฐ๋กํ•œ ํ›„ ์“ฐ๊ธฐ ACK ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ์—์„œ ์“ฐ๊ธฐ ACK ๋ฅผ ์ˆ˜์‹ ํ•˜๋ฉด I/O ๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

rcvbuf-sizeย size

TCP/IP ์ˆ˜์‹  ๋ฒ„ํผ์˜ ํฌ๊ธฐ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ฐ’์ด 0(๊ธฐ๋ณธ๊ฐ’)์ด๋ฉด ๋ฒ„ํผ ํฌ๊ธฐ๊ฐ€ ๋™์ ์œผ๋กœ ์กฐ์ •๋ฉ๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ๊ฐœ๋ฐœ์ž ๋””๋ฒ„๊น… ๋ฐ ํŠœ๋‹ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ตœ๋Œ€ 10MiB์˜ ๊ฐ’์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๊ธฐ๋ณธ ๋‹จ์œ„๋Š” ๋ฐ”์ดํŠธ์ž…๋‹ˆ๋‹ค.

sndbuf-sizeย size

์†ก์‹  ์ž‘์—…์ž ์“ฐ๋ ˆ๋“œ์—์„œ ํ• ๋‹นํ•˜๋Š” TX ๋ฒ„ํผ์˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ตœ๋Œ€ 1TB ๊นŒ์ง€ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

tcp-cork

tcp-cork ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปค๋„์ด ์ž‘์€ ๋ฉ”์‹œ์ง€์— ๋Œ€ํ•œ ์ „์†ก์„ ์œ ๋ณดํ•˜์—ฌ ๋„คํŠธ์›Œํฌ ์ƒ์—์„œ ํŒจํ‚ท์„ ์ตœ๋Œ€ํ•œ ํฌ๊ฒŒ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ์ด ์ตœ์ ํ™”๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ๋„คํŠธ์›Œํฌ ๋Œ€์—ญ์€ ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํŒจํ‚ท์„ ๋ชจ์œผ๋Š” ์‹œ๊ฐ„ ๋™์•ˆ์˜ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜๋ฏ€๋กœ ์ผ๋ถ€ ๋„คํŠธ์›Œํฌ ์Šคํƒ์˜ ์„ฑ๋Šฅ์ด ์ €ํ•˜ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋น„ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

timeoutย time

๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•œ ์‘๋‹ต ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ”ผ์–ด ๋…ธ๋“œ๊ฐ€ ์ง€์ •๋œ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๋‚ด์— ์˜ˆ์ƒ ์‘๋‹ต์„ ๋ณด๋‚ด์ง€ ์•Š์œผ๋ฉด ์‘๋‹ต์ด ์—†๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ„์ฃผํ•˜๊ณ  TCP/IP ์—ฐ๊ฒฐ์„ ๋‹ซ์Šต๋‹ˆ๋‹ค. ์‹œ๊ฐ„ ์ดˆ๊ณผ ๊ฐ’์€ connect-int๋ณด๋‹ค ๋‚ฎ์•„์•ผ ํ•˜๊ณ  ping-int๋ณด๋‹ค ์ž‘์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๊ฐ’์€ 5์ดˆ์ด๊ณ  10๋ถ„์˜ 1์ดˆ๋กœ ๋‹จ์œ„๋กœ ์ง€์ •๋ฉ๋‹ˆ๋‹ค.

use-rle

use-rle ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” run length encoding ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”์ง€ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ์˜ ๊ฐ ๋ณต์ œ ๋œ ์žฅ์น˜์—๋Š” ๊ฐ ํ”ผ์–ด ์žฅ์น˜์— ๋Œ€ํ•œ ๋ณ„๋„์˜ ๋น„ํŠธ๋งต์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋น„ํŠธ๋งต์€ ๋กœ์ปฌ ์žฅ์น˜์™€ ํ”ผ์–ด ์žฅ์น˜์˜ ์ฐจ์ด์ ์„ ์ถ”์ ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ํด๋Ÿฌ์Šคํ„ฐ ์ƒํƒœ์— ๋”ฐ๋ผ ์žฅ์น˜์˜ ๋น„ํŠธ๋งต, ํ”ผ์–ด ์žฅ์น˜์˜ ๋น„ํŠธ๋งต ๋˜๋Š” ๋‘ ๋น„ํŠธ๋งต์—์„œ ๋””์Šคํฌ ๋ฒ”์œ„๊ฐ€ ํ”ผ์–ด์™€ ๋‹ค๋ฅธ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ํด๋Ÿฌ์Šคํ„ฐ ๋…ธ๋“œ๊ฐ€ ์—ฐ๊ฒฐ๋˜๋ฉด ์„œ๋กœ์˜ ๋น„ํŠธ๋งต์„ ๊ตํ™˜ํ•˜๊ณ  ๊ฐ๊ฐ ๋กœ์ปฌ ๋ฐ ํ”ผ์–ด ๋น„ํŠธ๋งต์˜ ํ•ฉ์ง‘ํ•ฉ์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ „์ฒด ์ฐจ์ด๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋งค์šฐ ํฐ ์žฅ์น˜์˜ ๊ฒฝ์šฐ ๋น„ํŠธ๋งต์ด ๋น„๊ต์  ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์ผ๋ฐ˜์ ์œผ๋กœ run length encoding์„ ์‚ฌ์šฉํ•˜์—ฌ ์••์ถ•๋ฅ ์„ ๋†’์ด๊ณ  ์ด๋ฅผ ํ†ตํ•ด ๋น„ํŠธ๋งต ์ „์†ก์— ํ•„์š”ํ•œ ์‹œ๊ฐ„๊ณผ ๋Œ€์—ญํญ์„ ์ ˆ์•ฝ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™œ์„ฑํ™” ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

verify-algย hash-algorithm

์˜จ๋ผ์ธ ๊ฒ€์ฆ (bsradm verify)์€ ๋””์Šคํฌ ๋ธ”๋ก (์ฆ‰, ํ•ด์‹œ๊ฐ’)์˜ ์ฒดํฌ์„ฌ์„ ๊ณ„์‚ฐํ•˜๊ณ  ๋น„๊ตํ•˜์—ฌ ์„œ๋กœ ๋‹ค๋ฅธ ์ง€๋ฅผ ๊ฐ์ง€ํ•ฉ๋‹ˆ๋‹ค. verify-alg ๋งค๊ฐœ ๋ณ€์ˆ˜๋Š” ์ด๋Ÿฌํ•œ ์ฒดํฌ์„ฌ์— ์‚ฌ์šฉํ•  ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜จ๋ผ์ธ ๊ฒ€์ฆ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ „์— ์ปค๋„์ด ์ง€์›ํ•˜๋Š” ๋ณด์•ˆ ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ค‘ ํ•˜๋‚˜๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. /proc/ crypto์— ๋‚˜์—ด๋œ shash ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

stacked-on-top-ofย 

3-4 ๊ฐœ์˜ ๋…ธ๋“œ๋กœ ์Šคํƒ ๋œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด on ์„น์…˜ ๋Œ€์‹  ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. bsr์—์„  ๋” ์ด์ƒ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ย