Riak CS(ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง) โ Riak KV ์์์ ์คํ๋๋ ๊ฐ์ฒด ์คํ ๋ฆฌ์ง ๊ตฌ์ฑ์ ์ํ ์ฌ์ฉํ๊ธฐ ์ฌ์ด ์ํํธ์จ์ด์ ๋๋ค. Riak(KV)์ ๋ถ์ฐํ NoSQL ํค-๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค. Riak CS๋ ๋ชจ๋ ๊ท๋ชจ์ ํด๋ผ์ฐ๋ ์คํ ๋ฆฌ์ง์ ๋จ์์ฑ, ๊ฐ์ฉ์ฑ, ๋ฐฐํฌ๋ฅผ ์ ๊ณตํ๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ, ํผ๋ธ๋ฆญ ๋ฐ ํ๋ผ์ด๋น ํด๋ผ์ฐ๋ ์ํคํ ์ฒ๋ฅผ ๊ตฌ์ถํ๊ฑฐ๋ ๋ก๋๊ฐ ๋ง์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์๋น์ค๋ฅผ ์ํ ์ธํ๋ผ ์คํ ๋ฆฌ์ง๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค. Riak CS API๋ Amazon S3์ ํธํ๋๋ฉฐ ๋ค์ํ ์ํฉ์ ๋ํ ๋ณด๊ณ ์๋ฅผ ์์ ํ๋ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค.
์ด ๊ธ์ 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 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
๋ฉ๋ชจ ๋ด ๊ฒฝ์ฐ์ ๋๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
์ฌ๊ธฐ์ ์กฐ๊ธ ๊ธฐ๋ค๋ ค์ผํฉ๋๋ค. ๊ทธ๋ฐ ๋ค์ ์คํ ์ค์ธ ๋
ธ๋ ํ
์คํธ๋ฅผ ์์ํ ์ ์์ต๋๋ค.
SHELL
riak ping
์๋ต์ด ํ์ด๋ผ๋ฉด Riak์ด ์คํ ์ค์ธ ๊ฒ์ด๊ณ , ์๋ต์ด ๋ ธ๋๊ฐ ํ์ ์๋ตํ์ง ์๋๋ค๋ฉด ๋ญ๊ฐ ์๋ชป๋ ๊ฒ์ ๋๋ค.
๋ฉ๋ชจ ๋ด ๊ฒฝ์ฐ์ ๋๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋
ธ๋๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์์๋์ง ์์ ๊ฒฝ์ฐ ๋ฌธ์ ๋ฅผ ์๋ณํ ์ ์์ผ๋ฉด ๋
ธ๋์ /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