๊ตฌ์„ฑ

๊ตฌ์„ฑ

๋จผ์ € bsr ์˜ ๊ตฌ์„ฑ์— ๋”ฐ๋ฅด๋Š” ํ•„์š”ํ•œ ๊ตฌ์„ฑ์š”์†Œ๋“ค์„ ์‚ดํŽด๋ณด๊ณ  ๊ตฌ์„ฑํ˜•ํƒœ๋ฅผ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์š”์†Œ

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

๋…ธ๋“œ

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

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

๋ณผ๋ฅจ

๋ฐ์ดํ„ฐ ๋ณผ๋ฅจ

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

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

ํŒŒํ‹ฐ์…˜ ํฌ๊ธฐ ๊ตฌํ•˜๊ธฐ

  • ์œˆ๋„์šฐ์ฆˆ powershell ์—์„œ

gwmi -Query "SELECT * from Win32_DiskPartition"

  • ๋ฆฌ๋ˆ…์Šค ๋ช…๋ นํ”„๋กฌํ”„ํŠธ ์—์„œ

fdisk -l

๋ณผ๋ฅจ์€ ์šด์˜์ฒด์ œ์— ๋”ฐ๋ผ ์ ๋‹นํ•œ ํŒŒ์ผ์‹œ์Šคํ…œ์œผ๋กœ ํฌ๋งท๋˜์–ด์•ผ ํ•˜๋ฉฐ ์œˆ๋„์šฐ์ฆˆ์™€ ๋ฆฌ๋ˆ…์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” NTFS/ReFS, ext/xfs ๋“ฑ์˜ ํŒŒ์ผ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋ณผ๋ฅจ์€ ํŒŒํ‹ฐ์…”๋‹ ๋ฐฉ์‹์— ๋”ฐ๋ผ MBR, GPT, ํ™•์žฅํŒŒํ‹ฐ์…˜์˜ ๋…ผ๋ฆฌ์ ๋“œ๋ผ์ด๋ธŒ ๋˜๋Š” ์žฅ์น˜๊ฐ€ ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ŠคํŒฌ, ์ŠคํŠธ๋ผ์ดํ”„, ๋ฏธ๋Ÿฌ ๋“ฑ RAID ํ˜•์‹์˜ ๋™์ ๋””์Šคํฌ๋ฅผ ๋ชจ๋‘ ํฌํ•จํ•˜์—ฌ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋งŒ์ผ ๋ณผ๋ฅจ์ด ์ด๋ฏธ ํฌ๋งท๋œ ์ƒํƒœ์ด๊ณ  ์ค‘์š” ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ๊ธฐ์กด ๋ณผ๋ฅจ์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

  1. ๋ณต์ œ๋ฅผ ์œ„ํ•œ ๋ณผ๋ฅจ์— ๊ฐ€์ƒ๋ฉ”๋ชจ๋ฆฌ ์šด์˜์„ ์œ„ํ•œ ํŽ˜์ด์ง• ํŒŒ์ผ ์„ค์ •์ด ์žˆ์–ด์„œ๋Š” ์•ˆ๋ฉ๋‹ˆ๋‹ค. ํŽ˜์ด์ง• ํŒŒ์ผ ์„ค์ •์ด ์žˆ์„ ๊ฒฝ์šฐ ๋ณผ๋ฅจ์— ๋Œ€ํ•œ umount ๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  2. bsr์—์„œ ์ง€์›ํ•˜๋Š” ๋ณต์ œ ๋ณผ๋ฅจ์˜ ์ตœ๋Œ€ ํฌ๊ธฐ๋Š” ์ด๋ก ์ ์œผ๋กœ 1PB ์ด๋ฉฐ ํ†ต์ƒ 10TB ์ด์ƒ์˜ ๋ณผ๋ฅจ์„ ๋Œ€์šฉ๋Ÿ‰ ๋ณผ๋ฅจ์œผ๋กœ ๊ฐ„์ฃผํ•ฉ๋‹ˆ๋‹ค.

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

๋ฉ”ํƒ€ ๋ณผ๋ฅจ

bsr์€ ๋ณต์ œ๋ฅผ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋ถ€๊ฐ€ ์ •๋ณด๋“ค์„ ๋ณ„๋„์˜ ๋น„ํœ˜๋ฐœ์„ฑ ์ €์žฅ๊ณต๊ฐ„์— ๋ณด๊ด€ํ•˜๊ณ  ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์‹ค์‹œ๊ฐ„ ์“ฐ๊ณ  ์ฝ๋Š” ์ž‘์—…์„ ๋ณต์ œ ์ค‘์— ๋™์‹œ์— ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ถ€๊ฐ€์ •๋ณด๋ฅผ ๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋ผ๊ณ  ํ•˜๊ณ  ์ด๋ฅผ ๊ธฐ๋กํ•˜๋Š” ์ €์žฅ์žฅ์น˜ ๋ณผ๋ฅจ์„ ๋ฉ”ํƒ€ ๋ณผ๋ฅจ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฉ”ํƒ€ ๋ณผ๋ฅจ์€ ๋ณต์ œ ๋ณผ๋ฅจ์— 1:1 ๋Œ€์‘ํ•˜๋„๋ก ์ค€๋น„ํ•ด์•ผ ํ•˜๋ฉฐ, ํฌ๊ธฐ๋Š” 1 node ๋ณต์ œ๋ฅผ ๊ธฐ์ค€์œผ๋กœ 1TB ๋‹น ์•ฝ 33MB์˜ ๊ณต๊ฐ„์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 1:2 ๋ณต์ œ, 3TB ๋ณต์ œ ๋ณผ๋ฅจ์˜ ๊ฒฝ์šฐ 2 * 3 * 33MB = 198MB ํฌ๊ธฐ์˜ ๋ฉ”ํƒ€ ๋ณผ๋ฅจ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋ฉ”ํƒ€ ๋ฐ์ดํ„ฐ๋Š” ์œ„์น˜ํ•˜๋Š” ๊ฒฝ๋กœ์— ๋”ฐ๋ผ ๋ณต์ œ๋ณผ๋ฅจ๊ณผ ๊ฐ™์€ ๋””์Šคํฌ ์žฅ์น˜์— ์žˆ์„ ๊ฒฝ์šฐ ๋‚ด๋ถ€๋ฉ”ํƒ€(Internal Meta)๋ผ๊ณ  ํ•˜๋ฉฐ, ๋ณต์ œ๋ณผ๋ฅจ์ด ์•„๋‹Œ ๋‹ค๋ฅธ ์™ธ๋ถ€ ๋””์Šคํฌ์— ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ์œ„์น˜ํ•  ๊ฒฝ์šฐ ์™ธ๋ถ€๋ฉ”ํƒ€(External Meta)๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€๋ฉ”ํƒ€๋Š” ๋ณ„๋„์˜ ๋””์Šคํฌ ์žฅ์น˜๋ฅผ ์ค€๋น„ํ•  ํ•„์š”๊ฐ€ ์—†๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ ์„ฑ๋Šฅ ์ƒ์œผ๋กœ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋””์Šคํฌ๋กœ I/O๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ์™ธ๋ถ€๋ฉ”ํƒ€ ๋ฐฉ์‹์ด ์กฐ๊ธˆ์ด๋ผ๋„ ๋” ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€๋ฉ”ํƒ€๋Š” ๋‹ค์Œ์˜ ์˜ˆ์™€ ๊ฐ™์ด ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ internal ํ‚ค์›Œ๋“œ๋กœ ๊ธฐ์ˆ ํ•˜๋ฉด bsr์ด ์ดˆ๊ธฐํ™” ์‹œ์ ์— ๋ณต์ œ ๋ณผ๋ฅจ์„ ํŒŒํ‹ฐ์…”๋‹ํ•˜๊ณ  ๊ตฌ๋ถ„๋œ ๋ฉ”ํƒ€ ์˜์—ญ ๋‚ด์—์„œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. internal ํ‚ค์›Œ๋“œ๋Š” Linux ํ™˜๊ฒฝ์—์„œ๋งŒ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Linux Internal Meta

resource r0 {
...
meta-disk internal;
...
}

์™ธ๋ถ€ ๋ฉ”ํƒ€ ๋””์Šคํฌ๋Š” ๋ฉ”ํƒ€๋””์Šคํฌ๋กœ ์‚ฌ์šฉํ•  ์žฅ์น˜๋ฅผ ๊ตฌ์„ฑํŒŒ์ผ์— ๋ช‡ ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์šด์˜์ฒด์ œ์— ๋”ฐ๋ผ Windows ์—์„  ๋งˆ์šดํŠธ ํฌ์ธํŠธ๋กœ, Linux ์—์„œ๋Š” ๋””์Šคํฌ ์žฅ์น˜์˜ ์žฅ์น˜๋ช…์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  bsr์—์„  ๊ฐ€์ƒ๋””์Šคํฌ ์žฅ์น˜์— ๋Œ€ํ•œ ๋ฉ”ํƒ€๋ณผ๋ฅจ์„ ์ง€์›ํ•˜์—ฌ ๋ณ„๋„์˜ ๋ฌผ๋ฆฌ์ ์ธ ๋””์Šคํฌ ์žฅ์น˜๊ฐ€ ์—†๋”๋ผ๋„ ๊ฐ€์ƒ์˜ ๋ณผ๋ฅจ์„ ๋ฉ”ํƒ€ ๋ณผ๋ฅจ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ€์ƒ๋ณผ๋ฅจ์žฅ์น˜๋Š” Windows ์—์„  VHD, Linux ์—์„  Loop ์žฅ์น˜๋กœ ๋ณ„๋„ ์ค€๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ ์™ธ๋ถ€ ๋ฉ”ํƒ€๋””์Šคํฌ์— ๋Œ€ํ•œ ์ง€์ •์˜ ์˜ˆ ์ž…๋‹ˆ๋‹ค.

External Meta - Windows Letter Mount Point

resource r0 {
...
meta-disk m;
...
}

ย 

External Meta - Windows GUID Mount Point

resource r0 {
...
meta-disk "\\?\Volume{d41d41d8-17fb-11e6-bb93-000c29ac57ee}\";
...
}

External Meta - Windows GUID Mount Point + VHD

resource r0 {
...
meta-diskย "\\?\Volume{ed8a8f02-18b3-11e6-91b4-000c29ac57f8}\"ย "c:\r0_meta.vhd";ย 
...
}

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

External Meta - Linux device name

resource r0 {
...
meta-disk /dev/sdc1;
...
}

External Meta - Linux loop device

resource r0 {
...
meta-disk /dev/loop0 /bsr_meta/r0_meta;
...
}

๋ฉ”ํƒ€ ๋””์Šคํฌ ๋ณผ๋ฅจ์€ ์ผ๋ฐ˜์ ์ธ ํŒŒ์ผ์‹œ์Šคํ…œ์œผ๋กœ ํฌ๋งทํ•˜์ง€ ์•Š๊ณ  RAW ํŒŒ์ผ์‹œ์Šคํ…œ ์ƒํƒœ๋กœ ์ค€๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ

bsr์€ ๋ณต์ œ์…‹ ๊ตฌ์„ฑ ์‹œ ์ „์šฉ์„ ์˜ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜์ง€๋งŒ ์ ˆ๋Œ€์ ์ธ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ์ „์šฉ์„ ์ด๋‚˜ back-to-back ์—ฐ๊ฒฐ, Gigabit ์ด๋”๋„ท ์—ฐ๊ฒฐ์ด ๊ฐ€์žฅ ํ•ฉ๋ฆฌ์ ์ธ ์„ ํƒ์ด์ง€๋งŒ,ย ์Šค์œ„์น˜ ์žฅ๋น„๋ฅผ ๋„˜์–ด์„œ ๋ณต์ œ๋ฅผ ํ•  ๊ฒฝ์šฐ์—” ๋ผ์šฐํ„ฐ๋ฅผ ํ†ตํ•œ ์ฒ˜๋ฆฌ์œจ๊ณผ ์ง€์—ฐ๋ฅ ๋“ฑ์˜ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ๊ฐ์•ˆํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

๋ณดํ†ต ์•„๋ž˜์™€ ๊ฐ™์€ ์ˆœ์„œ๋กœ ์—ฐ๊ฒฐ์„ ๊ตฌ์„ฑํ•˜๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

  • ํ˜ธ์ŠคํŠธ๋“ค(bsr-active, bsr-standby)์€ ์ „์šฉ ๋„คํŠธ์›Œํฌ ์ธํ„ฐํŽ˜์ด์Šค eth1์„ ์‚ฌ์šฉํ•˜๊ณ  IP์ฃผ์†Œ๋ฅผ 10.1.1.31 ๋ฐ 10.1.1.32์œผ๋กœ ํ• ๋‹น ํ•ฉ๋‹ˆ๋‹ค.ย 

  • bsr์—์„œ TCPํฌํŠธ 7788 ๋ถ€ํ„ฐ 7799๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • ๋กœ์ปฌ ๋ฐฉํ™”๋ฒฝ์—์„œ ํ˜ธ์ŠคํŠธ๋“ค ๊ฐ„์— ์ธ๋ฐ”์šด๋“œ ๋ฐ ์•„์›ƒ๋ฐ”์šด๋“œ ํฌํŠธ ๋ชจ๋‘ ํ—ˆ์šฉ ์„ค์ • ํ•ฉ๋‹ˆ๋‹ค.

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

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

๋ช‡ ๊ฐ€์ง€ ์•ฝ์†๋œ ๊ตฌ์—ญ์„ ๊ธฐ์ค€์œผ๋กœ ์†์„ฑ์„ ๊ธฐ์ˆ ํ•˜๋Š” ๋ฐ ์ด ๊ตฌ์—ญ์„ ์„น์…˜์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์„น์…˜์€ Global, Common, Resource ์„น์…˜์ด ์žˆ์œผ๋ฉฐ ๊ฐ ์„น์…˜๋‚ด์˜ ์†์…ฉ ๋ณ„ ํ•˜์œ„ ์„น์…˜๋“ค์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

bsr์˜ ๋ชจ๋“  ๊ตฌ์„ฑ ํŒŒ์ผ์€ ์„ค์น˜๊ฒฝ๋กœ์˜ ํ•˜์œ„ etc ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์œ„์น˜ํ•˜๊ณ  bsr ์œ ํ‹ธ๋ฆฌํ‹ฐ๋“ค์€ ํ•ด๋‹น ๊ฒฝ๋กœ์—์„œ ๊ตฌ์„ฑํŒŒ์ผ์„ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € etc ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ bsr.conf๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. bsr.conf ํŒŒ์ผ์˜ ์ผ๋ฐ˜์ ์ธ ๋‚ด์šฉ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

include "bsr.d/global_common.conf";
include "bsr.d/*.res";

์šฐ์„  ๊ด€๋ก€์ ์œผ๋กœ bsr์˜ Global, Common ์„น์…˜์„ /etc/bsr.d/global_common.conf ํŒŒ์ผ์—์„œ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฆฌ์†Œ์Šค ํŒŒ์ผ๋“ค์„ ๊ฐ๊ฐ์˜ .res ํŒŒ์ผ๋“ค๋กœ ์ž‘์„ฑํ•˜์—ฌ ๋ชจ๋“  .res ํŒŒ์ผ๋“ค์„ ํฌํ•จ(include)์‹œ์ผœ ๋‘ก๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋ฆฌ์†Œ์Šค ๋ณ„๋กœ ํŒŒ์ผ์„ ๋ถ„๋ฆฌํ•ด์„œ ๊ด€๋ฆฌํ•˜๋Š” ์ฒด๊ณ„๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

Global ์„น์…˜

์ด ์„น์…˜์€ ์ „์—ญ์ ์œผ๋กœ ํ•œ๋ฒˆ ๋งŒ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœย /etc/bsr.d/global_common.conf ํŒŒ์ผ ์•ˆ์— ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ์ผ ํŒŒ์ผ๋กœ ๊ตฌ์„ฑํ•œ๋‹ค๋ฉด ๊ตฌ์„ฑ ํŒŒ์ผ์˜ ๋งจ ์ƒ๋‹จ์— ์ž‘์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์ด ์„น์…˜์— ํฌํ•จ๋˜๋Š” ๊ตฌ์„ฑ์€ ๋ช…๋ น์–ด ํƒ€์ž„์•„์›ƒ, ip ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๋“ฑ ์‚ฌ์šฉ์ž ์ธํ„ฐํŽ˜์ด์Šค์™€ ๊ด€๋ จ ์žˆ๋Š” ์˜ต์…˜๋“ค์ž…๋‹ˆ๋‹ค.

Common ์„น์…˜

์ด ์„น์…˜์—์„œ๋Š” ๋ชจ๋“  ๋ฆฌ์†Œ์Šค์— ๊ณตํ†ต์ ์ธ ์†์„ฑ์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์„ค์ •๊ฐ’์„ ์ œ๊ณตํ•˜๋ฉฐ ๋ณดํ†ต /etc/bsr.d/global_common.conf ์—์„œ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋ฆฌ์†Œ์Šค ๊ฐœ๋ณ„์ ์œผ๋กœ ๊ฐ๊ฐ์˜ ์†์„ฑ ์˜ต์…˜์„ ์ •์˜ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

<Common> ์„น์…˜์ด ๋ฐ˜๋“œ์‹œ ์žˆ์–ด์•ผ ๋˜๋Š”๊ฑด ์•„๋‹ˆ์ง€๋งŒ, ๋‘˜ ์ด์ƒ์˜ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ๊ผญ ์‚ฌ์šฉํ•  ๊ฒƒ์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด, ์žฌ์‚ฌ์šฉ๋˜๋Š” ์˜ต์…˜๋“ค์— ์˜ํ•ด ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ๋“ค์–ด, <Common> ์„น์…˜์—์„œ <net> {protocol C;}๋ฅผ ์„ค์ •ํ•  ๊ฒฝ์šฐ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค๋Š” ๋ณ„๋„์˜ ์˜ต์…˜์ด ์ง€์ •๋˜์ง€ ์•Š๋Š” ํ•œ ์ด ์˜ต์…˜์„ ์ƒ์†ํ•ฉ๋‹ˆ๋‹ค.

Resource ์„น์…˜

ํ•œ ๊ฐœ์˜ ๋ฆฌ์†Œ์Šคย ๊ตฌ์„ฑ ํŒŒ์ผ๋ช…์€ ๋ณดํ†ต /etc/bsr.d/<resource>.res ํ˜•ํƒœ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์‚ฌ์šฉ๋œ ๋ฆฌ์†Œ์Šค ์ด๋ฆ„์€ ๋ฆฌ์†Œ์ŠคํŒŒ์ผ ๋‚ด์—์„œ ๋ช…์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฆ„์„ ์ •ํ•˜๋Š” ๊ฒƒ์€ ์ž„์˜๋กœ ์‹๋ณ„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋ช…๋ช…ํ•˜์ง€๋งŒ US-ASCII ํ˜•์‹์ด์–ด์•ผ ํ•˜๋ฉฐ ๊ณต๋ฐฑ๋ฌธ์ž๋ฅผ ํฌํ•จํ•ด์„  ์•ˆ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋ชจ๋“  ๋ฆฌ์†Œ์Šค ๊ตฌ์„ฑ์—๋Š” <host> ํ•˜์œ„ ์„น์…˜์ด ๋‘ ๊ฐœ ์ด์ƒ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ชจ๋“  ๊ตฌ์„ฑ ์„ค์ •์€ Common ์„น์…˜์œผ๋กœ๋ถ€ํ„ฐ ์ƒ์†๋˜๊ฑฐ๋‚˜ bsr์˜ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. ์–‘์ชฝ ํ˜ธ์ŠคํŠธ์— ๊ณตํ†ต์ ์ธ ๊ฐ’์„ ๊ฐ€์ง„ ์˜ต์…˜์€ <host>์˜ ์ƒ์œ„ <resource> ์„น์…˜ ๋ถ€๋ถ„์—์„œ ํ•œ ๋ฒˆ์— ๋ฐ”๋กœ ์ง€์ •ํ•ด๋„ ๋˜๋Š”๋ฐ ๋‹ค์Œ ์˜ˆ์ œ์ฒ˜๋Ÿผ ๊ธฐ์ˆ ํ•˜์—ฌ ๊ฐ„์†Œํ™” ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

resource r0 { device d minor 1; disk d; meta-disk f; on alice { address 10.1.1.31:7789; node-id 0; } on bob { address 10.1.1.32:7789; node-id 1; } }

๋ฆฌ์†Œ์Šค ์„น์…˜์—์„œ ํ•„์ˆ˜๋กœ ๊ธฐ์ˆ ํ•ด์•ผ ํ•˜๋Š” ์†์„ฑ๋“ค์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

disk

๋ณต์ œ ์žฅ์น˜๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ํ”Œ๋žซํผ์— ๋”ฐ๋ผ ๋ฐฑํ‚น๋””๋ฐ”์ด์Šค ๋˜๋Š” ๋ณผ๋ฅจ ๋ ˆํ„ฐ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

device

bsr ๋…ผ๋ฆฌ ์žฅ์น˜ ์ •๋ณด๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. /dev/bsr1 ๊ณผ ๊ฐ™์ด ์žฅ์น˜๋ช…์œผ๋กœ ์ง์ ‘ ์ง€์ •ํ•˜๊ฑฐ๋‚˜ minor 1; ๊ณผ ๊ฐ™์ด ๋ถ€๋ฒˆํ˜ธ๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์œˆ๋„์šฐ์ฆˆ์—์„  ๋ ˆํ„ฐ์™€ ํ•จ๊ป˜ ๋ถ€๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹๋งŒ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์œˆ๋„์šฐ์ฆˆ์—์„œ ์žฅ์น˜ ๋ถ€๋ฒˆํ˜ธ๋Š” C ๋“œ๋ผ์ด๋ธŒ ๋ณผ๋ฅจ์„ 0๋ฒˆ์œผ๋กœ ํ•˜๊ณ  ๋ ˆํ„ฐ๊ฐ’์ด ์ฆ๊ฐ€ ํ•  ์ˆ˜๋ก 1 ์”ฉ ์ฆ๊ฐ€์‹œ์ผœ์„œ(D ๋Š” 1, E ๋Š” 2 , F ๋Š” 3, โ€ฆ) ๋ถ€๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

meta-disk

๋ฉ”ํƒ€๋””์Šคํฌ ์ •๋ณด๋ฅผ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.

on host ์„น์…˜

ํ˜ธ์ŠคํŠธ ์ •๋ณด๋ฅผ ๊ธฐ์ˆ ํ•˜๋Š” ์„น์…˜์ž…๋‹ˆ๋‹ค. node-id ์™€ ์—ฐ๊ฒฐ์ •๋ณด๋ฅผ ๊ธฐ์ˆ ํ•ฉ๋‹ˆ๋‹ค.

node-id

0๋ฒˆ ๋ถ€ํ„ฐ ๋…ธ๋“œ id ๋ฅผ ์ž„์˜๋กœ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฃผ ์—ญํ• ์„ ํ•˜๋Š” ๋…ธ๋“œ์ผ ์ˆ˜๋ก ์ž‘์€ ์ˆซ์ž๋กœ ์ง€์ •ํ•˜๋Š”๊ฒŒ ์ข‹์Šต๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ

ip ์™€ ํฌํŠธ ์ •๋ณด๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

ย 

์—ฐ๊ฒฐ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด connection ์„น์…˜์„ ์ด์šฉํ•˜์—ฌ ๋ณ„๋„ ๊ธฐ์ˆ ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. n node ๋ณต์ œ ๊ตฌ์„ฑ์—์„œ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

resource "r0" { device minor 1; disk "/dev/sda7"; meta-disk internal; on "alice" { node-id 0; } on "bob" { node-id 1; } connection { host "alice" address 10.1.1.31:7789; host "bob" address 10.1.1.32:7789; } }

ย 

๊ทธ ์™ธ ์„น์…˜ ๋ฐ ํ•˜์œ„์„น์…˜, ๊ฐœ๋ณ„ ์˜ต์…˜์— ๋Œ€ํ•œ ๊ตฌ์ฒด์ ์ธ ์„ค๋ช…์€ ๋ถ€๋ก์˜ ๊ตฌ์„ฑํŒŒ์ผ ๋‚ด์šฉ์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๊ตฌ์„ฑ ํ˜•ํƒœ

bsr ์€ ๋‹ค์–‘ํ•œ ๊ตฌ์„ฑ ํ˜•ํƒœ๋กœ ๊ธฐ์—…์˜ ์ค‘์š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ์ด์ค‘ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ†ต์ƒ ๋กœ์ปฌ ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ ๋ณต์ œํ•˜๋Š” ๊ตฌ์„ฑ์„ ๋ฏธ๋Ÿฌ ๊ตฌ์„ฑ์ด๋ผ ํ•˜๊ณ , ์›๊ฒฉ์ง€ ๋„คํŠธ์›Œํฌ ๊ฐ„์˜ ๋ณต์ œ ๊ตฌ์„ฑ์„ ์žฌํ•ด๋ณต๊ตฌ(DR) ๊ตฌ์„ฑ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ ๋ฏธ๋Ÿฌ

๋กœ์ปฌ ๋„คํŠธ์›Œํฌ ๋‚ด์—์„œ์˜ ์ด์ค‘ํ™”๋ฅผ ์œ„ํ•œ ์ผ๋ฐ˜์ ์ธ ๋ฏธ๋Ÿฌ๋ง ๊ตฌ์„ฑ ๋ฐฉ์‹์œผ๋กœ ๋ณต์ œ ํ”„๋กœํ† ์ฝœ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋™๊ธฐ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

/etc/bsr.d/r0.res

resource r0 { net {ย  protocol C; } on alice {ย ย  diskย ย ย ย ย  d; addressย ย ย 10.1.1.31:7789; meta-disk f; node-idย 0;ย ย  } ย ย  on bob {ย ย  diskย ย ย ย ย  d; addressย ย ย 10.1.1.32:7789; meta-disk f; node-idย 1; } }

๋กœ์ปฌ 1:N ๋ฏธ๋Ÿฌ

๋กœ์ปฌ ๋„คํŠธ์›Œํฌ ๋‚ด์˜ N ๋…ธ๋“œ ๋ณต์ œ ๊ตฌ์„ฑ์œผ๋กœ 1:1 ๋ฏธ๋Ÿฌ๋ฅผ N ๋…ธ๋“œ๋กœ ํ™•์žฅํ•œ ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค. ๋ณต์ œ ํ”„๋กœํ† ์ฝœ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ๋™๊ธฐ๋ฐฉ์‹์œผ๋กœ ๊ตฌ์„ฑํ•˜์ง€๋งŒ N ๋…ธ๋“œ ๋ณต์ œ๋กœ ์ธํ•ด ์„ฑ๋Šฅ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ ๋น„๋™๊ธฐ ๋ฐฉ์‹ ๊ตฌ์„ฑ๋„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณต์ œ ํ”„๋กœํ† ์ฝœ์€ ๊ตฌ์„ฑ์—์„œ ์ƒ๋žตํ•  ๊ฒฝ์šฐ ๊ธฐ๋ณธ๊ฐ’์ด ๋™๊ธฐ(C) ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

resource r0 { //net {ย  // protocol C; //} device e minor 2; disk e; meta-disk f; on store1 { address 10.1.10.1:7100; node-id 0; } on store2 { address 10.1.10.2:7100; node-id 1; } on store3 { address 10.1.10.3:7100; node-id 2; } connection-mesh { hosts store1 store2 store3; } }

์›๊ฒฉ ์žฌํ•ด๋ณต๊ตฌ(DR)

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

resource r0 { net {ย  protocol A; sndbuf-size 1G; on-congestion pull-ahead; congestion-fill 900M; } on main_server {ย ย  diskย ย ย ย ย  d; addressย ย ย 10.1.1.31:7789; meta-disk f; node-idย 0;ย ย  } ย ย  on dr_server {ย ย  diskย ย ย ย ย  d; addressย ย ย 10.1.1.32:7789; meta-disk f; node-idย 1; } }

ย 

๋˜ํ•œ ๋ณต์ œ ๊ฐ€์†๊ธฐ(DRX)๋ฅผ ์—ฐ๋™ ํ•  ๊ฒฝ์šฐ ๋ณต์ œ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์„ ๊ทน๋Œ€ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MDR(๋กœ์ปฌ ๋ฏธ๋Ÿฌ & ์›๊ฒฉ ์žฌํ•ด๋ณต๊ตฌ)

๋กœ์ปฌ ๋„คํŠธ์›Œํฌ์˜ ๋ฏธ๋Ÿฌ๋ง ๊ตฌ์„ฑ๊ณผ WAN ๊ตฌ๊ฐ„ ์›๊ฒฉ ์žฌํ•ด๋ณต๊ตฌ ๋ณต์ œ์˜ ํ˜ผํ•ฉ ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค. ๋กœ์ปฌ ๋ฏธ๋Ÿฌ๋Š” ๋™๊ธฐ๋ฐฉ์‹์œผ๋กœ WAN ์›๊ฒฉ ๋ณต์ œ๋Š” ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ํ˜ผํ•ฉํ•˜์—ฌ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. WAN ๊ตฌ๊ฐ„ ๋ณต์ œ๋Š” ์†ก์‹ ๋ฒ„ํผ์™€ ํ˜ผ์žก๋ชจ๋“œ๋ฅผ ์„ค์ •ํ•ด์•ผ ํ•˜๊ณ  ๋ณต์ œ ๊ฐ€์†๊ธฐ(DRX)์˜ ์—ฐ๋™์„ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค.

resource r0 { volume 0 { device e minor 2; disk e; meta-disk f; } on store1 { node-id 1; // Active } on store2 { node-id 2; // Standby } on store3 { node-id 3; // DR } connection { net { protocol c; } host store1 address 10.10.0.240:7789; // Active host store2 address 10.10.0.241:7789; // Standby } connection { net { protocol A; sndbuf-size 1G; on-congestion pull-ahead; congestion-fill 900M; } host store2 address 10.10.0.241:7789; // Standby host store3 address 20.20.0.253:7789; // DR } connection { net { protocol A; sndbuf-size 1G; on-congestion pull-ahead; congestion-fill 900M; } host store1 address 10.10.0.240:7789; // Active host store3 address 20.20.0.253:7789; // DR } }

SDR(๊ณต์œ  ๋””์Šคํฌ & ์›๊ฒฉ ์žฌํ•ด๋ณต๊ตฌ)

์ฃผ ์šด์˜์‚ฌ์ดํŠธ์˜ ๊ณต์œ ๋””์Šคํฌ๋ฅผ ์†Œ์Šค๋กœ ํ•˜๊ณ  ํƒ€๊นƒ์„ ์žฌํ•ด๋ณต๊ตฌ ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑํ•˜์—ฌ WAN ๊ตฌ๊ฐ„์„ ํ†ตํ•ด ๋ณต์ œํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ์ฃผ ์‚ฌ์ดํŠธ์˜ ๊ณต์œ ๋””์Šคํฌ์— ์ ‘๊ทผํ•˜๋Š” 2 ๋…ธ๋“œ๋Š” Active/Standby ๋กœ ๊ตฌ์„ฑํ•˜๋ฉฐ DR ๋…ธ๋“œ๋ฅผ ์ œ2์˜ Standby ๋…ธ๋“œ๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. Active-Standby ๋…ธ๋“œ๋Š” ๋™์ผ ๊ฐ€์ƒ IP ์ฃผ์†Œ(VIP)๋กœ ์„ค์ •ํ•˜์—ฌ ๋ฆฌ์†Œ์Šค ๊ธฐ๋™์„ ๋…ธ๋“œ ๊ฐ„ ์ƒํ˜ธ๋ฐฐ์ œํ•˜์—ฌ ์šด์˜ํ•˜๊ณ  DR ์ธก ๋…ธ๋“œ๋Š” ์ด VIP ๋กœ ํ†ต์‹ ํ•˜์—ฌ Active/Standby ๋…ธ๋“œ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•ฉ๋‹ˆ๋‹ค.

WAN ์žฌํ•ด๋ณต๊ตฌ ๊ตฌ์„ฑ์œผ๋กœ์„œ ๋น„๋™๊ธฐ ๋ฐฉ์‹ ํ”„๋กœํ† ์ฝœ ์šด์˜๊ณผ ๋ณต์ œ ๊ฐ€์†๊ธฐ(DRX) ์—ฐ๋™์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

resource r0{ net{ protocol A; verify-alg crc32; sndbuf-size 1G; # max buffer size is 1 / 8 of physical ram on-congestion pull-ahead; congestion-fill 950M; } floating 10.20.210.4:7788 { // VIP ์‚ฌ์šฉ options { svc-autostart no; // SDR ๊ตฌ์„ฑ๊ฐ„ Active,Standby์— ์ ์šฉ ํ•„์ˆ˜ ์˜ต์…˜, ๋ฆฌ์†Œ์Šค ์ž๋™ ์‹œ์ž‘ no } device e minor 2; disk e; meta-disk "\\\\?\\Volume{d4006597-e3d1-4685-a91b-b23a669499f4}\\"; // ์–‘์„œ๋ฒ„์—์„œ ๋™์‹œ ์ ‘์†์ด ๊ฐ€๋Šฅํ•œ ์Šคํ† ๋ฆฌ์ง€ (RAW) ๋ณผ๋ฅจ node-id 0; } floating 10.20.210.3:7788 { // DR IP ์‚ฌ์šฉ options { svc-autostart yes; // SDR ๊ตฌ์„ฑ๊ฐ„ DR ์€ ๋ฆฌ์†Œ์Šค ์ž๋™์‹œ์ž‘ yes } device e minor 2; disk e; meta-disk "\\\\?\\Volume{58f21aac-2b90-464e-9cea-42a25846fd56}\\"; // ๋‚ด์žฅ ํ˜น์€ ์Šคํ† ๋ฆฌ์ง€ (RAW ์ƒํƒœ) ๋ณผ๋ฅจ node-id 1; } }

N:1 ๋ฏธ๋Ÿฌ

์„œ๋กœ ๋‹ค๋ฅธ ๋…ธ๋“œ์— ์œ„์น˜ํ•˜๋Š” ๋ฆฌ์†Œ์Šค๋“ค์˜ ๋ณต์ œ ํƒ€๊นƒ ๋…ธ๋“œ๋ฅผ ํ•œ ๋…ธ๋“œ๋กœ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ๋ฆฌ์†Œ์Šค ์ธก๋ฉด์—์„  1:1 ๋ฏธ๋Ÿฌ ๊ตฌ์„ฑ์ด์ง€๋งŒ ์ „์ฒด ์šด์˜ ์ธก๋ฉด์—์„œ N:1 ๋ฏธ๋Ÿฌ๋กœ ์ •์˜ ํ•ฉ๋‹ˆ๋‹ค.

์†Œ์Šค๋…ธ๋“œ store1 ์—์„œ ํƒ€๊นƒ๋…ธ๋“œ๋ฅผ store3 ์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

resource r0 { device e minor 2; disk e; meta-disk f; on store1 { node-id 0; } on store3 { node-id 2; } connection { host store1 address 10.10.0.245:7789; host store3 address 10.10.0.247:7789; } }

์†Œ์Šค๋…ธ๋“œ store2 ์—์„œ ํƒ€๊นƒ๋…ธ๋“œ๋ฅผ store3 ์œผ๋กœ ์ง€์ •ํ•˜์—ฌ ์œ„์—์„œ ๊ตฌ์„ฑํ•œ store1 ๊ณผ store2 ๊ฐ€ store3 ์„ ํƒ€๊นƒ์œผ๋กœ ์ง€์ •ํ•˜๋Š” N:1 ๊ตฌ์„ฑ์ž…๋‹ˆ๋‹ค.

resource r1 { device e minor 2; disk e; meta-disk f; on store2 { node-id 1; } on store3 { node-id 2; } connection { host store2 address 10.10.0.246:7790; host store3 address 10.10.0.247:7790; } }

ํƒ€๊นƒ๋…ธ๋“œ store3์—์„  store1๊ณผ store2 ์˜ ๊ตฌ์„ฑ์„ ๋ชจ๋‘ ์ˆ˜์šฉํ•ฉ๋‹ˆ๋‹ค.

resource r0 { device e minor 2; disk e; meta-disk f; on store1 { node-id 0; } on store3 { node-id 2; } connection { host store1 address 10.10.0.245:7789; host store3 address 10.10.0.247:7789; } } resource r1 { device g minor 4; disk g; meta-disk h; on store2 { node-id 1; } on store3 { node-id 2; } connection { host store2 address 10.10.0.246:7790; host store3 address 10.10.0.247:7790; } }

floating peer ๊ตฌ์„ฑ

ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ง€์ •ํ•˜์ง€ ์•Š๊ณ  IP ์ฃผ์†Œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

resource r0 { floating 200.200.200.6:7788 { device d minor 1; disk d; meta-disk n; node-id 0; } floating 200.200.200.7:7788 { device d minor 1; disk d; meta-disk n; node-id 1; } }
resource r0 { floating 10.10.0.251:7788 { device e minor 2; disk e; meta-disk f; node-id 0; } floating 10.10.0.252:7788 { device e minor 2; disk e; meta-disk f; node-id 1; } floating 10.10.0.253:7788 { device e minor 2; disk e; meta-disk f; node-id 2; } connection { address 10.10.0.251:7788; address 10.10.0.252:7788; } connection { address 10.10.0.251:7788; address 10.10.0.253:7788; } connection { address 10.10.0.252:7788; address 10.10.0.253:7788; } }

ํ˜ผํ•ฉ ๊ตฌ์„ฑ

์œˆ๋„์šฐ์ฆˆ์™€ ๋ฆฌ๋ˆ…์Šค ๋…ธ๋“œ๋ฅผ ํ˜ผํ•ฉํ•˜์—ฌ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. DR ๊ตฌ์ถ•, ๋ฐฑ์—… ๋“ฑ์˜ ์šฉ๋„๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

resource r0 { floating-on-linux 200.200.200.6:7788 { disk /dev/sdb1; device /dev/bsr0; meta-disk internal; node-id 0; } floating-on-windows 200.200.200.7:7788 { device d minor 1; disk d; meta-disk n; node-id 1; } }

ย 

ย 

์ฃผ์˜ ์‚ฌํ•ญ

Windows

๋ณผ๋ฅจ

  • ๋ณต์ œ ๋ณผ๋ฅจ์€ ์˜จ๋ผ์ธ(๋งˆ์šดํŠธ)๋œ ์ƒํƒœ๋กœ ๋ ˆํ„ฐ๊ฐ€ ํ• ๋‹น๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

  • ๋””์Šคํฌ ๋ณผ๋ฅจ ํฌ๊ธฐ

    • ๋ณผ๋ฅจ์˜ ํฌ๊ธฐ๋Š” ๋ฐ˜๋“œ์‹œ ์†Œ์Šค ๋…ธ๋“œ ๋ณผ๋ฅจ์˜ ํฌ๊ธฐ๋ณด๋‹ค ํƒ€๊นƒ ๋…ธ๋“œ ๋ณผ๋ฅจ์˜ ํฌ๊ธฐ๊ฐ€ ๊ฐ™๊ฑฐ๋‚˜ ์ปค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • ์—ฌ๊ธฐ์„œ ๋ณผ๋ฅจ์˜ ํฌ๊ธฐ๋Š” ํฌ๋งทํ•œ ์ดํ›„์˜ ํŒŒ์ผ์‹œ์Šคํ…œ์˜ ํฌ๊ธฐ๊ฐ€ ์•„๋‹Œ ํŒŒํ‹ฐ์…˜์˜ ํฌ๊ธฐ๋ฅผ ์˜๋ฏธํ•˜๋ฉฐ ๋‹ค์Œ๊ณผ ๊ฐ™์ด powershell ๋ช…๋ น๋ผ์ธ์—์„œ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Windows PowerShell
Copyright (C) 2014 Microsoft Corporation. All rights reserved.

PS C:\Users\sekim>gwmi -Query "SELECT * from Win32_DiskPartition"

NumberOfBlocks : 488392704
BootPartition : False
Name : ๋””์Šคํฌ 4๋ฒˆ, ํŒŒํ‹ฐ์…˜ 0๋ฒˆ
PrimaryPartition : True
Size : 250057064448
Index : 0

โ€ฆ

๋…ธ๋“œ

  • ๊ตฌ์„ฑํŒŒ์ผ host ์„น์…˜์— ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ๊ธฐ์ˆ ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.(floating peer ๋ฐฉ์‹์€ ์˜ˆ์™ธ)

  • ๊ตฌ์„ฑํŒŒ์ผ host ์„น์…˜์— node-id ํ•ญ๋ชฉ์ด ๊ธฐ์ˆ ๋˜์–ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์—ฐ๊ฒฐ

  • ๋ฏธ๋Ÿฌ๋ง ์ฃผ์†Œ์™€ ํฌํŠธ์— ๋Œ€ํ•œ ๋กœ์ปฌ ๋ฐฉํ™”๋ฒฝ ์˜ˆ์™ธ์ •์ฑ…์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • NIC ์— ์„ค์ •๋œ ๋„คํŠธ์›Œํฌ ์ฃผ์†Œ๊ฐ€ net ์„น์…˜์˜ IP ์ฃผ์†Œ๋กœ ๊ธฐ์ˆ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

IP ์ฃผ์†Œ ๊ตฌ์„ฑ ์ž”์žฌ ์˜ค๋ฅ˜

์šด์˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ ๊ธฐ์กด์— ์„ค์ •ํ–ˆ์—ˆ๋˜ IP ์ฃผ์†Œ ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝํ•œ ํ›„ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ธฐ๋™(up) ํ•  ๋•Œ โ€œThere are multiple host sections for this nodeโ€œ ์™€ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ Windows์—์„œ ๋žœ์นด๋“œ์— ์„ค์ •ํ–ˆ๋˜ IP ์ฃผ์†Œ ์ •๋ณด๊ฐ€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ๋‚จ์•„ ์žˆ์–ด์„œ IP ์ฃผ์†Œ ์ธ์‹ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๋ฌธ์ œ๋กœ ๋‹ค์Œ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์˜ ํ•ญ๋ชฉ์„ ์ˆ˜๋™์œผ๋กœ ์ˆ˜์ •ํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Tcpip\Parameters\Interfaces ํ‚ค ํ•˜๋ถ€์˜ ์ธํ„ฐํŽ˜์ด์Šค ํ‚ค์— ์„ค์ •๋œ IP ์ฃผ์†Œ ์ž”์žฌ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋Š” IP ์ฃผ์†Œ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

Linux

  • ๋ฆฌ๋ˆ…์Šค DRBD ์—์„œ ๊ตฌํ˜„ํ•˜๊ณ  ์žˆ๋Š” I/O ์žฌ์ง€์ •(redirection)์€ bsr ์—์„œ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธฐ์กด DRBD ์˜ diskless ๋ชจ๋“œ๋Š” ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.(๋‹จ์ง€, ๋ณผ๋ฅจ์ด detach ๋œ ์ƒํƒœ์˜ diskless ์ƒํƒœ๋งŒ ์ •์˜๋ฉ๋‹ˆ๋‹ค.)

  • diskless ๋ชจ๋“œ๊ฐ€ ์ œ๊ฑฐ๋จ์— ๋”ฐ๋ผ ๋กœ์ปฌ์˜ ์ฝ๊ธฐ I/O๋„ ๊ธฐ๋ณธ bypass ํ•˜๋„๋ก ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ์ฝ๊ธฐ I/O ๋˜ํ•œ ์žฌ ์ง€์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ย 

ย 

ย