Riak ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€. 1๋ถ€: Riak KV ์„ค์ •

Riak CS(ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€) โ€“ Riak KV ์œ„์—์„œ ์‹คํ–‰๋˜๋Š” ๊ฐ์ฒด ์Šคํ† ๋ฆฌ์ง€ ๊ตฌ์„ฑ์„ ์œ„ํ•œ ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ์†Œํ”„ํŠธ์›จ์–ด์ž…๋‹ˆ๋‹ค. Riak(KV)์€ ๋ถ„์‚ฐํ˜• NoSQL ํ‚ค-๊ฐ’ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค. Riak CS๋Š” ๋ชจ๋“  ๊ทœ๋ชจ์˜ ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€์˜ ๋‹จ์ˆœ์„ฑ, ๊ฐ€์šฉ์„ฑ, ๋ฐฐํฌ๋ฅผ ์ œ๊ณตํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ, ํผ๋ธ”๋ฆญ ๋ฐ ํ”„๋ผ์ด๋น— ํด๋ผ์šฐ๋“œ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌ์ถ•ํ•˜๊ฑฐ๋‚˜ ๋กœ๋“œ๊ฐ€ ๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ์ธํ”„๋ผ ์Šคํ† ๋ฆฌ์ง€๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Riak CS API๋Š” Amazon S3์™€ ํ˜ธํ™˜๋˜๋ฉฐ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์— ๋Œ€ํ•œ ๋ณด๊ณ ์„œ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

Riak ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€. 1๋ถ€: Riak KV ์„ค์ •
์ด ๊ธ€์€ Riak CS ์‹œ์Šคํ…œ ๋ฒ„์ „ 2.1.1์˜ ๊ณต์‹ ๋งค๋‰ด์–ผ์„ ๋ฌด๋ฃŒ๋กœ ๋ฒˆ์—ญํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

Riak CS ์Šคํ† ๋ฆฌ์ง€ ์‹œ์Šคํ…œ์—์„œ๋Š” ์„ธ ๊ฐ€์ง€ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ์„œ๋กœ ํ•จ๊ป˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ฐ ๊ตฌ์„ฑ์š”์†Œ๊ฐ€ ๋‹ค๋ฅธ ๊ตฌ์„ฑ์š”์†Œ์™€ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก ๊ตฌ์„ฑ๋˜์–ด์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

  • ๋ฆฌ์•…(KV) โ€“ ์ตœ์ข… ์‹œ์Šคํ…œ ์—ญํ• ์„ ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ.
  • ๋ฆฌ์•… CS - ์ €์žฅ์†Œ ๋ฐ API ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๊ณ  Riak์— ํŒŒ์ผ ๋ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ ๋‹ค์Œ ์ด๋ฅผ ์ตœ์ข… ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฐฐํฌํ•˜๋Š” Riak ์œ„์— ์žˆ๋Š” ํด๋ผ์šฐ๋“œ ์ €์žฅ์†Œ ๊ณ„์ธต์ž…๋‹ˆ๋‹ค.
  • ๊ธฐ๋‘ฅ - Riak ์ธ์Šคํ„ด์Šค์˜ ๋ฒ„ํ‚ท ๋ฐ ์‚ฌ์šฉ์ž์™€ ๊ฐ™์€ ์ „์—ญ์ ์œผ๋กœ ๊ณ ์œ ํ•œ ์—”ํ„ฐํ‹ฐ์™€ ๊ด€๋ จ๋œ ์ฟผ๋ฆฌ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์‚ฌ์šฉ์ž ์ƒ์„ฑ, ๋ฒ„ํ‚ท ์ƒ์„ฑ ๋˜๋Š” ์‚ญ์ œ ๋“ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ Riak CS ์‹œ์Šคํ…œ๊ณผ์˜ ๋ฉ”์‹œ์ง•์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด S3 ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

์‹œ์Šคํ…œ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. CS์šฉ Riak KV ์„ค์ •

Riak CS๋Š” Riak ์œ„์— ๊ตฌ์ถ•๋œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด๋ฏ€๋กœ Riak CS๋ฅผ ์‹คํ–‰ํ•  ๋•Œ Riak ๊ตฌ์„ฑ์— ์ฃผ์˜๋ฅผ ๊ธฐ์šธ์ด๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” Riak ๊ตฌ์„ฑ ๊ฐ€์ด๋“œ์ด์ž ์ค‘์š”ํ•œ ๊ตฌ์„ฑ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์ฐธ์กฐ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

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

Riak ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€. 1๋ถ€: Riak KV ์„ค์ •

Riak CS์šฉ ๋ฐฑ์—”๋“œ

Riak์ด ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ ๋ฐฑ์—”๋“œ๋Š” Bitcask์ด์ง€๋งŒ Riak CS ํŒจํ‚ค์ง€์—๋Š” Riak CS ์‹œ์Šคํ…œ์˜ ์ผ๋ถ€์ธ Riak ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ํŠน์ˆ˜ ๋ฐฑ์—”๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ๋ฒ„์ „์—๋Š” Riak๊ณผ ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ํ‘œ์ค€ Multi ๋ฐฑ์—”๋“œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Riak CS ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋™์ผํ•œ Riak ๋ฒ„ํ‚ท์€ ์ด์ œ LevelDB ๋ฐฑ์—”๋“œ๊ฐ€ ํ•„์š”ํ•œ ๋ณด์กฐ ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. Riak CS ์‹œ์Šคํ…œ์˜ ๋‹ค๋ฅธ ๋ถ€๋ถ„์€ Bticask ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด์ ์„ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ๊ณผ ๊ธฐ๋Šฅ์˜ ์ตœ์ƒ์˜ ์กฐํ•ฉ์„ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ์ด ๋‘ ๋ฐฑ์—”๋“œ๋ฅผ ๋ชจ๋‘ ํ™œ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ƒ˜ํ”Œ ๋‹ค์ค‘ ๋ฐฑ์—”๋“œ ์‚ฌ์šฉ์ด Riak CS์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” ์ด ๋‹ค์ค‘ ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก Riak์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋ฐฑ์—”๋“œ Riak์ด ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. Riak KV๋Š” Bitcask, LevelDB, Memory ๋ฐ Multi์™€ ๊ฐ™์€ ์—ฌ๋Ÿฌ ๋ฐฑ์—”๋“œ๋ฅผ ๋ณด์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์Šคํ† ๋ฆฌ์ง€ ๊ณ„์‚ฐ ์‹œ์Šคํ…œ์€ Riak MapReduse๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŒŒ์ผ์„ ๋ฒ„ํ‚ท์œผ๋กœ ์ง‘๊ณ„ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ €์žฅ์†Œ๋ฅผ ๊ณ„์‚ฐํ•˜๊ธฐ ์ „์— ์ค€๋น„๋œ Riak CS ํŒŒ์ผ์„ ์ฐพ์„ ์œ„์น˜๋ฅผ ๋ชจ๋“  Riak ๋…ธ๋“œ์— ์•Œ๋ ค์•ผ ํ•จ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

ํ”„๋กœํ† ์ฝœ ๋ฒ„ํผ๋ฅผ ํ†ตํ•œ ๋ฉ”์‹œ์ง•์„ ์œ„ํ•œ IP ์ฃผ์†Œ, IP ์ฃผ์†Œ ๋ฐ ํฌํŠธ์™€ ๊ฐ™์€ Riak CS ์‹œ์Šคํ…œ์˜ ์ผ๋ถ€๋กœ Riak ๋…ธ๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ๋‹ค๋ฅธ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ ๋‹ค๋ฅธ ์„ค์ •์„ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์„น์…˜์—์„œ๋Š” Riak CS ์‹œ์Šคํ…œ์˜ ์ผ๋ถ€๋กœ ์ž‘๋™ํ•˜๋„๋ก Riak ๋…ธ๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

Riak ๋ฐฑ์—”๋“œ ์„ค์ •

๋จผ์ € riak.conf ๋˜๋Š” Advanced.config/app.config ๊ตฌ์„ฑ ํŒŒ์ผ์„ ํŽธ์ง‘ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํŒŒ์ผ์€ /etc/riak ๋˜๋Š” /opt/riak/etc ๋””๋ ‰ํ† ๋ฆฌ์— ์œ„์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ Riak์€ Bitcask ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€์žฅ ๋จผ์ € ํ•ด์•ผ ํ•  ์ผ์€ ๋‹ค์Œ ์ค„์„ ์ œ๊ฑฐํ•˜์—ฌ ๊ตฌ์„ฑ ํŒŒ์ผ์„ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

RIAK.CONF

## Delete this line:
storage_backend = bitcask

๊ณ ๊ธ‰.๊ตฌ์„ฑ

{riak_kv,
 [ %% Delete this line: 
{storage_backend, riak_kv_bitcask_backend},
 ]}

์•ฑ ๊ตฌ์„ฑ

{riak_kv, 
  [ %% Delete this line:
    {storage_backend, riak_kv_bitcask_backend},
]}

๋‹ค์Œ์œผ๋กœ, Riak์šฉ RiakCS ๋ชจ๋“ˆ์˜ ํ•„์š”์„ฑ์„ ์ž…์ฆํ•˜๊ณ  Riak CS๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ตฌ์„ฑ๋œ ๋ฐฑ์—”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก Riak์— ์ง€์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” Advanced.config ๋˜๋Š” app.config ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค์Œ ์˜ต์…˜์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ณ ๊ธ‰.๊ตฌ์„ฑ

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Other configs
    {add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
    {storage_backend, riak_cs_kv_multi_backend},
    {multi_backend_prefix_list, [{<<"0b:">>, be_blocks}]},
    {multi_backend_default, be_default},
    {multi_backend, [
        {be_default, riak_kv_eleveldb_backend, [
            {data_root, "/var/lib/riak/leveldb"}
        ]},
        {be_blocks, riak_kv_bitcask_backend, [
            {data_root, "/var/lib/riak/bitcask"}
        ]}
    ]},
    %% Other configs
]}

์•ฑ ๊ตฌ์„ฑ

{eleveldb, [
    {total_leveldb_mem_percent, 30}
    ]},
{riak_kv, [
    %% Other configs
    {add_paths, ["/usr/lib/riak-cs/lib/riak_cs-2.1.1/ebin"]},
    {storage_backend, riak_cs_kv_multi_backend},
    {multi_backend_prefix_list, [{<<"0b:">>, be_blocks}]},
    {multi_backend_default, be_default},
    {multi_backend, [
        {be_default, riak_kv_eleveldb_backend, [
            {data_root, "/var/lib/riak/leveldb"}
        ]},
        {be_blocks, riak_kv_bitcask_backend, [
            {data_root, "/var/lib/riak/bitcask"}
        ]}
    ]},
    %% Other configs
]}

์ด๋Ÿฌํ•œ ๊ฐ’ ์ค‘ ๋‹ค์ˆ˜๋Š” ์šด์˜ ์ฒด์ œ์— ๋”ฐ๋ฅธ ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ณ€ํ˜•์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ ๊ทธ์— ๋”ฐ๋ผ ์ง€์นจ์„ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ด ๋งค์šฐ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, add_paths ์˜ต์…˜์€ Riak CS๊ฐ€ /usr/lib/riak-cs์— ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ , data_root ์˜ต์…˜์€ Riak์ด /var/lib์— ์„ค์น˜๋˜์–ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. (์ฐธ๊ณ : ๋‚ด ๊ฒฝ์šฐ์—๋Š” add_paths - /usr/lib64/riak-cs/์˜€์Šต๋‹ˆ๋‹ค.)

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

ํ˜•์ œ ์ƒ์„ฑ ์„ค์ •

์ด์ œ Allow_mult ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ true๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. riak.conf ๊ตฌ์„ฑ ํŒŒ์ผ์— ํ•œ ์ค„์„ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ Advanced.config ๋˜๋Š” app.config์— riak_core ์„น์…˜์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

RIAK.CONF

buckets.default.allow_mult = true

๊ณ ๊ธ‰.๊ตฌ์„ฑ

{riak_core, [
    %% Other configs
    {default_bucket_props, [{allow_mult, true}]},
    %% Other configs
]}

์•ฑ ๊ตฌ์„ฑ

{riak_core, [
    %% Other configs
    {default_bucket_props, [{allow_mult, true}]},
    %% Other configs
]}

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

ํ˜•์ œ์ž๋งค ์—ฌ๋Ÿฌ ๊ฐ์ฒด๋ฅผ ํ•˜๋‚˜์˜ ํ‚ค์— ์ €์žฅํ•˜์—ฌ ๊ฐ์ฒด๊ฐ€ ์„œ๋กœ ๋‹ค๋ฅธ ๋…ธ๋“œ์—์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์„ ๊ฐ–๋„๋ก ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ :allow_mult
Riak CS๋„ ์ง€์›ํ•˜๋Š” Riak ๋…ธ๋“œ๋Š” ํ•ญ์ƒ Allow_mult๊ฐ€ true๋กœ ์„ค์ •๋ฉ๋‹ˆ๋‹ค. Riak CS๋Š” ๊ฐ’์ด false์ธ ๊ฒฝ์šฐ ์‹คํ–‰์„ ์žฌ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋ฐ IP ์ฃผ์†Œ ์„ค์ •

๊ฐ Riak ๋…ธ๋“œ์—๋Š” riak.conf์˜ nodename ์˜ต์…˜์— ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. app.config ๊ตฌ์„ฑ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ app.config์™€ ๋™์ผํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— vm.args๋ผ๋Š” ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  -name ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. @ ํ˜•์‹์œผ๋กœ ๋…ธ๋“œ ์ด๋ฆ„์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ•˜๋‚˜์˜ ํ˜ธ์ŠคํŠธ 100.0.0.1์—์„œ ์„ธ ๊ฐœ์˜ ๋…ธ๋“œ๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ์ด๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. [์ด๋ฉ”์ผ ๋ณดํ˜ธ], [์ด๋ฉ”์ผ ๋ณดํ˜ธ]๊ณผ [์ด๋ฉ”์ผ ๋ณดํ˜ธ] ๋˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณด๋‹ค ๊ตฌ์ฒด์ ์ธ ์ด๋ฆ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. [์ด๋ฉ”์ผ ๋ณดํ˜ธ], [์ด๋ฉ”์ผ ๋ณดํ˜ธ] ๋“ฑ๋“ฑ. ์•„๋ž˜ ์˜ˆ์—์„œ๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ๋‹ค์Œ์œผ๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. [์ด๋ฉ”์ผ ๋ณดํ˜ธ], localhost์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

๋ชจ๋“  ๋…ธ๋“œ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ํด๋Ÿฌ์Šคํ„ฐ์— ์ฐธ์—ฌํ•˜๊ธฐ ์ „์— ๋ชจ๋“  ๋…ธ๋“œ์˜ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ค์ • ํ…Œ์ŠคํŠธ

์ด์ œ ํ•„์š”ํ•œ ๋ชจ๋“  ๋…ธ๋“œ ์„ค์ •์ด ์™„๋ฃŒ๋˜์—ˆ์œผ๋ฏ€๋กœ Riak์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SHELL

 riak start 

๋ฉ”๋ชจ ๋‚ด ๊ฒฝ์šฐ์˜ ๋Œ€๋‹ต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Riak ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€. 1๋ถ€: Riak KV ์„ค์ •

์—ฌ๊ธฐ์„œ ์กฐ๊ธˆ ๊ธฐ๋‹ค๋ ค์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์‹คํ–‰ ์ค‘์ธ ๋…ธ๋“œ ํ…Œ์ŠคํŠธ๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SHELL

 riak ping

์‘๋‹ต์ด ํ์ด๋ผ๋ฉด Riak์ด ์‹คํ–‰ ์ค‘์ธ ๊ฒƒ์ด๊ณ , ์‘๋‹ต์ด ๋…ธ๋“œ๊ฐ€ ํ•‘์— ์‘๋‹ตํ•˜์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋ญ”๊ฐ€ ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๋ฉ”๋ชจ ๋‚ด ๊ฒฝ์šฐ์˜ ๋Œ€๋‹ต์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Riak ํด๋ผ์šฐ๋“œ ์Šคํ† ๋ฆฌ์ง€. 1๋ถ€: Riak KV ์„ค์ •

๋…ธ๋“œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‹œ์ž‘๋˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๋ฌธ์ œ๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์œผ๋ฉด ๋…ธ๋“œ์˜ /log ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” erlang.log.1 ๋กœ๊ทธ๋ฅผ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค. ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ์˜ค๋ฅ˜ ์ค‘ ํ•˜๋‚˜๋Š” valid_storage_backend์ž…๋‹ˆ๋‹ค. ์ด๋Š” Advanced.config ๋˜๋Š” app.config์˜ Riak CS ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ฒฝ๋กœ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด์ง€ ์•Š์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(๋˜๋Š” Riak CS๊ฐ€ ์„œ๋ฒ„์— ์„ค์น˜๋˜์ง€ ์•Š์Œ). ์ด ์˜ค๋ฅ˜์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  riak_cs_kv_multi_backend์—์„œ riak_kv_multi_backend๋กœ ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”.

ํ”„๋กœํ† ์ฝœ ๋ฒ„ํผ๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก Riak ๊ตฌ์„ฑ

Riak ํ”„๋กœํ† ์ฝœ ๋ฒ„ํผ ์„ค์ •์€ riak.conf ๋˜๋Š” /etc/riak/ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” Advanced.config ๋˜๋Š” app.config ํŒŒ์ผ์˜ riak_api ์„น์…˜์— ์žˆ์Šต๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜ธ์ŠคํŠธ์˜ IP ์ฃผ์†Œ๋Š” 127.0.0.1์ด๊ณ  ํฌํŠธ๋Š” 8087์ž…๋‹ˆ๋‹ค. ๋กœ์ปฌ์ด ์•„๋‹Œ ํ™˜๊ฒฝ์—์„œ Riak ๋ฐ Riak CS๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ด๋ฅผ ๋ณ€๊ฒฝํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 127.0.0.1์„ Riak ํ˜ธ์ŠคํŠธ IP ์ฃผ์†Œ๋กœ ๋ฐ”๊พธ๊ณ  ํฌํŠธ 8087์„ ์ ํ•ฉํ•œ ์ฃผ์†Œ๋กœ ๋ฐ”๊พธ์‹ญ์‹œ์˜ค.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

๊ณ ๊ธ‰.CONF

{riak_api, [
    %% Other configs
    {pb, ["10.0.2.10", 10001]},
    %% Other configs
]}

์•ฑ ๊ตฌ์„ฑ

riak_api, [
    %% Other configs
    {pb, ["10.0.2.10", 10001]},
    %% Other configs
]}

์ฐธ๊ณ  :riak.conf ํŒŒ์ผ์˜ listening.protobuf.internal ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’(๋˜๋Š” Advanced.conf/app.config์˜ pb ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’)์€ Riak CS riak-cs.config์˜ riak_host ๊ฐ’๊ณผ ์ผ์น˜ํ•ด์•ผ ํ•˜๋ฉฐ Stanchion stanchion.conf(๋˜๋Š” ๊ณ ๊ธ‰ .config/app.config์˜ ๊ฐ๊ฐ riak_host) ํŒŒ์ผ.

ํฌํŠธ ๋ฒˆํ˜ธ์— ๋Œ€ํ•œ ์ฐธ๊ณ  ์‚ฌํ•ญ
ํฌํŠธ๊ฐ€ ๋‹ค๋ฅธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํฌํŠธ์™€ ์ถฉ๋Œํ•˜๊ฑฐ๋‚˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ ๋˜๋Š” ํ”„๋ก์‹œ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ํฌํŠธ ๋ฒˆํ˜ธ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ ์‚ฌ์šฉ์ž๋Š” Riak protobuf.backlog ํฌ๊ธฐ(๋˜๋Š” Advanced.config/app.config ํŒŒ์ผ์—์„œ๋Š” pb_backlog)๊ฐ€ riak-cs์—์„œ Riak CS์— ๋Œ€ํ•ด ์ง€์ •๋œ pool.request.size๋ณด๋‹ค ํฌ๊ฑฐ๋‚˜ ๊ฐ™์€์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. config(๋˜๋Š” Advanced.config/app.conf ํŒŒ์ผ์˜ request_pool_size).

Riak CS์˜ pool.request.size ๊ฐ’์ด ๋ณ€๊ฒฝ๋œ ๊ฒฝ์šฐ protobuf.backlog์˜ ๊ฐ’๋„ Riak์—์„œ ์—…๋ฐ์ดํŠธ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐํƒ€ Riak ์„ค์ •

riak.conf ๋ฐ Advanced.config ํŒŒ์ผ์—๋Š” ๋กœ๊ทธ ํŒŒ์ผ ์ƒ์„ฑ ๋ฐ ์ €์žฅ ์œ„์น˜๋ฅผ โ€‹โ€‹๊ตฌ์„ฑํ•˜๋Š” ๊ธฐํƒ€ ์„ค์ •์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์„ค์ •์—๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ์œผ๋ฉฐ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๊ตฌ์„ฑ ํŒŒ์ผ์— ๋Œ€ํ•œ ์„ค๋ช…์„œ๋ฅผ ์ฝ์–ด๋ณด๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Riak์— ๋Œ€ํ•œ IP ์ฃผ์†Œ ์„ค์ •

Riak์— ๋Œ€ํ•œ IP ์ฃผ์†Œ๋ฅผ ์„ค์ •ํ•  ๋•Œ ๋‹จ ํ•˜๋‚˜์˜ ๋…ธ๋“œ๋กœ ์ž‘์—…ํ•˜๋“  ์‹œ์Šคํ…œ์— ๋” ๋งŽ์€ ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋“  ๊ด€๊ณ„์—†์ด Riak ๋…ธ๋“œ๊ฐ€ ๊ณ ์œ ํ•œ IP ์ฃผ์†Œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Riak IP ์ฃผ์†Œ๋Š” riak.conf์— ํฌํ•จ๋˜์–ด ์žˆ๊ฑฐ๋‚˜ - app.config ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ - /etc/riak ๋””๋ ‰ํ† ๋ฆฌ(๋˜๋Š” /opt/riak/etc/)์— ์žˆ๋Š” vm.args ๊ตฌ์„ฑ ํŒŒ์ผ์— ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์šด์˜ ์ฒด์ œ์—์„œ๋Š” ).

์ฒ˜์Œ์—๋Š” Riak IP ์ฃผ์†Œ๊ฐ€ ํฌํ•จ๋œ ํ–‰์ด ๋‹ค์Œ ์œ„์น˜์˜ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ๋ฅผ ๊ฐ€๋ฆฌํ‚ต๋‹ˆ๋‹ค.

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

127.0.0.1์„ Riak ๋…ธ๋“œ์˜ ๊ธฐ๋ณธ IP ์ฃผ์†Œ ๋˜๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊พธ์‹ญ์‹œ์˜ค.

์„ฑ๋Šฅ ๋ฐ ๋Œ€์—ญํญ ์„ค์ •

์„ฑ๋Šฅ์ƒ์˜ ์ด์œ ๋กœ /etc/riak/ ๋˜๋Š” /opt/riak/etc ๋””๋ ‰ํ† ๋ฆฌ์— ์žˆ๋Š” Riak ๊ตฌ์„ฑ ํŒŒ์ผ riak.conf ๋˜๋Š” vm.args์— ๊ฐ’์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

RIAK.CONF

 erlang.max_ports = 65536

VM.ARGS

## This setting should already be present for recent Riak installs.
 -env ERL_MAX_PORTS 65536

JavaScript MapReduce ๋น„ํ™œ์„ฑํ™”

Riak CS์˜ ๋ชจ๋“  ๋ฒ„์ „์—์„œ๋Š” ๋ ˆ๊ฑฐ์‹œ JavaScript MapReduce๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์„ฑ๋Šฅ์ƒ์˜ ์ด์œ ๋กœ riak.conf ๊ตฌ์„ฑ ํŒŒ์ผ์ด๋‚˜ Advanced.conf ๋˜๋Š” app.config์˜ riak_kv ์„น์…˜์„ ์„ค์ •ํ•˜์—ฌ JavaScript MapReduce ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ€์ƒ ๋จธ์‹ ์„ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

RIAK.CONF

 javascript.map_pool_size = 0
 javascript.reduce_pool_size = 0
 javascript.hook_pool_size = 0 

๊ณ ๊ธ‰.๊ตฌ์„ฑ

{riak_kv, [
    %% Other configs
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Other configs
]}

์•ฑ ๊ตฌ์„ฑ

{riak_kv, [
    %% Other configs
    {map_js_vm_count, 0},
    {reduce_js_vm_count, 0},
    {hook_js_vm_count, 0}
    %% Other configs
]}

๋‹ค์Œ์œผ๋กœ Riak CS ์‹œ์Šคํ…œ์˜ ๋‚˜๋จธ์ง€ ๊ตฌ์„ฑ์š”์†Œ๋ฅผ ๊ตฌ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์›๋ณธ ๋งค๋‰ด์–ผ.

์ถœ์ฒ˜ : habr.com

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