የሪያክ ክላውድ ማከማቻ። ክፍል 1. Riak KV ማዋቀር

Riak CS (የደመና ማከማቻ) በሪያክ ኬቪ አናት ላይ የሚሰራ ለአጠቃቀም ቀላል የሆነ የነገር ማከማቻ ሶፍትዌር ነው። Riak (KV) የተከፋፈለ የNoSQL ቁልፍ እሴት ዳታቤዝ ነው። Riak CS የተሰራው ቀላልነት፣ ተደራሽነት፣ የየትኛውም ሚዛን የደመና ማከማቻ ስርጭትን ለማቅረብ ነው፣ እና የደመና አርክቴክቸር - የህዝብ እና የግል - ወይም በከፍተኛ ደረጃ ለተጫኑ መተግበሪያዎች እና አገልግሎቶች የመሠረተ ልማት ማከማቻ ለመገንባት ሊያገለግል ይችላል። Riak CS API ከ Amazon S3 ጋር ተኳሃኝ ነው እና በተለያዩ ሁኔታዎች ላይ ሪፖርቶችን የመቀበል ችሎታን ይደግፋል።

የሪያክ ክላውድ ማከማቻ። ክፍል 1. Riak KV ማዋቀር
ይህ መጣጥፍ ለRiak CS ስርዓት ስሪት 2.1.1 ኦፊሴላዊ መመሪያ ነፃ ትርጉም ነው።

በሪያክ ሲኤስ ማከማቻ ስርዓት ውስጥ ሶስት አካላት አንድ ላይ ይሰራሉ፣ ይህ ማለት እያንዳንዱ አካል ከሌሎች አካላት ጋር አብሮ ለመስራት መዋቀር አለበት ማለት ነው።

  • ሪያክ (K.V.) - እንደ የመጨረሻ ስርዓት የሚሰራ የውሂብ ጎታ ስርዓት።
  • ሪያክ ሲ.ኤስ የማከማቻ እና የኤፒአይ ችሎታዎችን የሚያቀርብ፣ በሪያክ ውስጥ ፋይሎችን እና ሜታዳታን የሚያከማች እና ከዚያም ወደ ዋና ተጠቃሚዎች የሚያስተላልፍ በሪያክ ላይ ያለ የደመና ማከማቻ ንብርብር ነው።
  • ስታንቺዮን - እንደ ባልዲ እና ተጠቃሚዎችን በሪአክ ምሳሌ ያሉ አለምአቀፍ ልዩ አካላትን ያካተቱ ጥያቄዎችን ያስተዳድራል። ለምሳሌ ተጠቃሚዎችን መፍጠር፣ ባልዲዎችን መፍጠር ወይም መሰረዝ።

በተጨማሪም፣ ከRiak CS ስርዓት ጋር ለመልእክት አገልግሎት የሚውል የS3 ደንበኛን ማዋቀር ይችላሉ።

ለእያንዳንዱ የሪያክ ሲኤስ መስቀለኛ መንገድ አንድ የሪያክ ኖድ እንዲኖርህ ማቀድ አለብህ። ሪያክ እና ሪያክ ሲኤስ ኖዶች በተለያዩ ፊዚካል ማሽኖች ላይ ሊሠሩ ይችላሉ፣ ነገር ግን በአብዛኛዎቹ ሁኔታዎች አንድ የሪያክ ኖድ እና አንድ የሪያክ ሲኤስ ኖድ በተመሳሳይ ፊዚካል ማሽን ላይ ማስኬድ ተመራጭ ነው። አንድ ፊዚካል ማሽን የሪያክ እና የሪያክ ሲኤስ ኖዶችን ፍላጎቶች ለማሟላት የሚያስችል በቂ ሃይል እንዳለው በመገመት በአጠቃላይ በኔትወርክ መዘግየት ምክንያት የተሻለ አፈጻጸም ታያለህ።

ስርዓትዎ ብዙ ኖዶችን ያካተተ ከሆነ፣ ውቅሩ በዋናነት በንጥረ ነገሮች መካከል የግንኙነት ቅንብር ነው። እንደ የምዝግብ ማስታወሻው ፋይሎች የት እና እንዴት እንደሚቀመጡ ያሉ ሌሎች ቅንብሮች ነባሪ እሴቶች አሏቸው እና መደበኛ ያልሆኑ እሴቶችን ለመጠቀም ከፈለጉ ብቻ መለወጥ አለባቸው።

የስርዓት ክፍሎችን በማዘጋጀት ላይ. Riak KV ማዋቀር ለሲ.ኤስ

Riak CS በሪያክ ላይ የተገነባ መተግበሪያ ስለሆነ፣ Riak CSን ሲጀምሩ ለእርስዎ የሪያክ ውቅር ትኩረት መስጠት በጣም አስፈላጊ ነው። ይህ ሰነድ ሁለቱም የሪያክ ውቅረት መመሪያ እና አስፈላጊ የውቅረት መለኪያዎችን የሚገልጹ የማጣቀሻ ሰነድ ነው።

ከማዋቀርዎ በፊት፣ Riak KV እና Riak CS በክላስተርዎ ውስጥ ባሉ ሁሉም መስቀለኛ መንገዶች ላይ መጫኑን ያረጋግጡ። ስታንቺዮን በተቃራኒው በጠቅላላው ክላስተር ውስጥ አንድ መስቀለኛ መንገድ ላይ ብቻ መጫን አለበት.

የሪያክ ክላውድ ማከማቻ። ክፍል 1. Riak KV ማዋቀር

ለ Riak ሲ.ኤስ

በRiak የሚጠቀመው ነባሪ የጀርባ ማቀፊያ Bitcask ነው፣ነገር ግን የሪያክ ሲኤስ ፓኬጅ የሪያክ ሲኤስ ስርዓት አካል በሆነው በሪያክ ክላስተር ጥቅም ላይ መዋል ያለበት ልዩ የኋላ ማከሚያን ያካትታል። መደበኛው ስሪት ከሪያክ ጋር የሚመጣው መደበኛ Multi backend አለው።

በሪያክ ሲኤስ በውስጥ ጥቅም ላይ የሚውሉት ተመሳሳይ የሪያክ ባልዲዎች አሁን የLevelDB ጀርባ የሚያስፈልጋቸው ሁለተኛ ደረጃ ኢንዴክሶችን ይጠቀማሉ። ሌሎች የRiak CS ስርዓት ክፍሎች የBticask backend በመጠቀም ተጠቃሚ ሊሆኑ ይችላሉ። ምርጥ የአፈጻጸም እና የተግባር ቅንጅት ለማግኘት ከሁለቱም የኋላ ደጋፊዎች ለመጠቀም በሪያክ ሲኤስ ውስጥ በአርአያነት ያለው የባለብዙ ጀርባ አጠቃቀም ተካቷል። የሚከተለው ክፍል ይህንን ባለብዙ ጀርባን ለመጠቀም ሪያክን እንዴት በትክክል ማዋቀር እንደሚቻል ይገልጻል።

ጀርባ ሪያክ መረጃውን ለማከማቸት የሚጠቀመው ነው። ሪያክ ኬቪ በጦር ጦሩ ውስጥ በርካታ የኋላ ሽፋኖች አሉት፡ Bitcask፣ LevelDB፣ Memory and Multi.

በተጨማሪም የማከማቻ ስሌት ሲስተም ፋይሎችን ወደ ባልዲ ለማጠቃለል Riak MapReduse ይጠቀማል። ይህ ማለት ማከማቻን ከማስላትዎ በፊት ለሁሉም የሪያክ ኖዶች የተዘጋጁ የሪያክ ሲኤስ ፋይሎችን የት እንደሚፈልጉ መንገር አለብዎት።

እንደ አይፒ አድራሻ እና የአይፒ አድራሻ እና በፕሮቶኮል ማቋረጫዎች በኩል ለመልእክት ወደብ ያሉ የሪያክ ኖድን እንደ የሪያክ ሲኤስ ስርዓት አካል ለማዋቀር ጥቂት ሌሎች መለኪያዎች መለወጥ አለባቸው። አስፈላጊ ከሆነ ሌሎች ቅንብሮችን መቀየር ይቻላል. የሚከተሉት ክፍሎች እንደ Riak CS ስርዓት አካል ሆነው ለመስራት የሪያክ ኖድ እንዴት እንደሚያዘጋጁ ይገልፃሉ።

የሪያክ ጀርባ ማዋቀር

በመጀመሪያ፣ 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},
 ]}

APP.CONFIG

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

በመቀጠል፣ የRiakCS ሞጁሎችን ለሪያክ እንደሚያስፈልግ ማሳየት እና 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
]}

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
]}

ከእነዚህ እሴቶች ውስጥ ብዙዎቹ ለስርዓተ ክወናዎ ልዩ በሆኑ ማውጫዎች ላይ እንደሚመሰረቱ ልብ ሊባል የሚገባው ጉዳይ ነው, ስለዚህ መመሪያዎቹን ይከተሉ. ለምሳሌ የ add_paths አማራጩ Riak CS በ/usr/lib/riak-cs ውስጥ እንደተጫነ ያስባል፣የዳታ_ሩት አማራጮቹ ግን Riak በ/var/lib ውስጥ እንደተጫነ ያስባል። (ማስታወሻ በእኔ ሁኔታ add_paths ነበር - /usr/lib64/riak-cs/)።

ይህ ውቅር Riak CS እንደ Riak በተመሳሳይ ማሽን ላይ እንደተጫነ ያስባል። ካልሆነ ጥቅሉን ወደተለየ አስተናጋጅ መቅዳት ያስፈልጋል።

ወንድሞችና እህቶች መፈጠርን ማዘጋጀት

አሁን የ allow_mult መለኪያውን ወደ እውነት ማዋቀር አለብን። በ 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
]}

APP.CONFIG

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

ይህ ሪያክ ለሪያክ ሲኤስ ተግባር አስፈላጊ የሆኑ ወንድሞችን እንዲፈጥር ያስችለዋል። የደንበኛውን ቤተ-መጽሐፍት ተጠቅመህ ከRiak CS ጋር እየተገናኘህ ከሆነ፣ አትጨነቅ፡ ግጭቶችን መፍታት አይኖርብህም፣ ምክንያቱም ሁሉም የሪያክ ሲኤስ ኦፕሬሽኖች እንደ ፍቺያቸው ጥብቅ ናቸው።

ወንድም እህት ነገሩ በተለያዩ መስቀለኛ መንገዶች ላይ የተለያዩ እሴቶች እንዲኖረው ለማድረግ በአንድ ቁልፍ ውስጥ ብዙ ነገሮችን የሚያከማችበት መንገድ ነው።

ማስታወሻ፡ allow_mult
Riak CSን የሚደግፍ ማንኛውም የሪያክ ኖድ በማንኛውም ጊዜ allow_mult ወደ እውነት ይቀናበራል። እሴቱ ውሸት ከሆነ Riak CS ጅምርን ዳግም ያስጀምራል።

የአስተናጋጅ ስም እና የአይፒ አድራሻን በማዘጋጀት ላይ

እያንዳንዱ የሪያክ ኖድ ስም አለው፣ ይህም በ riak.conf ውስጥ ባለው የኖድ ስም አማራጭ ውስጥ ሊገለጽ ይችላል። የApp.config ፋይሉን እየተጠቀሙ ከሆነ፣ vm.args የሚባል ፋይል እንደ app.config በተመሳሳይ ማውጫ ውስጥ መፍጠር እና የ -name flagን በመጠቀም የአስተናጋጁን ስም መግለጽ ያስፈልግዎታል። የ @ ቅርጸትን በመጠቀም አስተናጋጆችን መሰየምን እንመክራለን። ስለዚህ በተመሳሳይ አስተናጋጅ 100.0.0.1 ላይ የሚሄዱ ሶስት አንጓዎች ካሉዎት እነሱን መሰየም ይችላሉ። [ኢሜል የተጠበቀ], [ኢሜል የተጠበቀ][ኢሜል የተጠበቀ] ወይም እንደ ተጨማሪ ልዩ ስሞችን መስጠት ይችላሉ [ኢሜል የተጠበቀ], [ኢሜል የተጠበቀ] እናም ይቀጥላል. ከታች ያለው ምሳሌ የመስቀለኛ ስም ወደ ስም መቀየር ያሳያል [ኢሜል የተጠበቀ]በ localhost ላይ የሚሰራ።

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

ሁሉንም አንጓዎች ከመጀመርዎ በፊት እና በክላስተር ውስጥ ከማካተትዎ በፊት መሰየም አለብዎት።

የማስተካከያ ሙከራ

አሁን ሁሉም አስፈላጊ መስቀለኛ ውቅሮች ስለተጠናቀቁ፣ Riakን ለመጀመር መሞከር እንችላለን፡-

SHELL

 riak start 

ማስታወሻ. በእኔ ጉዳይ መልሱ፡-

የሪያክ ክላውድ ማከማቻ። ክፍል 1. Riak KV ማዋቀር

እዚህ ትንሽ መጠበቅ አለብዎት. ከዚያ የሩጫውን መስቀለኛ መንገድ መሞከር መጀመር ይችላሉ.

SHELL

 riak ping

ምላሹ pong ከሆነ፣ ከዚያ ሪያክ እየሄደ ነው፣ ምላሹ መስቀለኛ መንገድ ከሆነ ለፒንግስ ምላሽ ካልሰጠ፣ የሆነ ችግር ተፈጥሯል።

ማስታወሻ. በእኔ ጉዳይ መልሱ፡-

የሪያክ ክላውድ ማከማቻ። ክፍል 1. Riak KV ማዋቀር

መስቀለኛ መንገድ በትክክል ካልጀመረ ችግሩ ሊታወቅ ከቻለ በመስቀለኛ መንገድ / ሎግ ማውጫ ውስጥ ያለውን erlang.log.1 ይመልከቱ። በጣም ከተለመዱት ስህተቶች አንዱ invalid_storage_backend ነው። በAdvanced.config ወይም app.config ወደ Riak CS ቤተ-መጽሐፍት የሚወስደው መንገድ ትክክል አለመሆኑን (ወይንም Riak CS በአገልጋዩ ላይ አልተጫነም) መሆኑን ያሳያል። ይህ ስህተት ቢሆንም፣ ከ riak_cs_kv_multi_backend ወደ riak_kv_multi_backend አለመቀየርዎን ያረጋግጡ።

የፕሮቶኮል ማቋቋሚያዎችን ለመጠቀም ሪያክን በማዋቀር ላይ

የሪያክ ፕሮቶኮል ቋት ቅንጅቶች በ riak.conf ወይም በ /etc/riak/ directory ውስጥ የሚገኙት የAdvanced.config ወይም app.config ፋይሎች riak_api ክፍል ውስጥ ይገኛሉ። በነባሪነት አስተናጋጁ 127.0.0.1 የአይ ፒ አድራሻ እና የ8087 ወደብ አለው። Riak እና Riak CSን ከአካባቢው አከባቢ ውጭ ለማስኬድ ካቀዱ እነዚህን መቀየር አለብዎት። 127.0.0.1 ን በሪያክ መስቀለኛ መንገድ አይፒ አድራሻ እና ወደብ 8087 በትክክለኛው ይተኩ።

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

የላቀ.CONF

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

APP.CONFIG

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

ማስታወሻ:በ riak.conf ውስጥ ያለው የአድማጭ.protobuf.internal መለኪያ እሴት (ወይንም በAdvanced.conf/app.config) ፋይል ውስጥ ያለው የፒቢ መለኪያ እሴት በ Riak CS riak-cs.config እና Stanchion ውስጥ ለ riak_host እሴቶች ጋር መዛመድ አለበት። stanchion.conf (ወይም riak_host በቅደም ተከተል በላቁ .config/app.config) ፋይሎች።

ስለ ወደብ ቁጥር ማስታወሻ
ወደቡ ሌላ መተግበሪያ ከሚጠቀሙባቸው ወደቦች ጋር የሚጋጭ ከሆነ ወይም የጭነት ሚዛን ወይም ፕሮክሲ አገልጋይ እየተጠቀሙ ከሆነ የተለየ የወደብ ቁጥር ሊያስፈልግዎ ይችላል።

እንዲሁም ተጠቃሚዎች የRiak protobuf.backlog (ወይም pb_backlog በAdvanced.config/app.config ፋይሎች) ለ Riak CS በ riak-cs ከተገለጸው pool.request.size ጋር እኩል ወይም የበለጠ መሆኑን እንዲያረጋግጡ ይመከራል። config (ወይም request_pool_size በAdvanced.config/app.conf ፋይሎች)።

የpool.request.size ዋጋ በRiak CS ከተቀየረ የፕሮቶቡፍ.backlog ዋጋ በሪያክ መዘመን አለበት።

ሌሎች የሪያክ ቅንብሮች

የ riak.conf እና የAdvanced.config ፋይሎች የምዝግብ ማስታወሻ ፋይሎች እንዴት እንደሚፈጠሩ እና እንዴት እንደሚቀመጡ የሚቆጣጠሩ ሌሎች ቅንብሮችን ያካትታሉ። እነዚህ ቅንብሮች ነባሪ እሴቶች አሏቸው እና በአብዛኛዎቹ ሁኔታዎች መስራት አለባቸው። ለበለጠ መረጃ የኛን ሰነድ በማዋቀር ፋይሎች ላይ እንዲያነቡ እንመክራለን።

ለ Riak የአይ ፒ አድራሻ በማዘጋጀት ላይ

ለሪያክ የአይ ፒ አድራሻ ሲያዘጋጁ የሪያክ ኖዶች አንድ መስቀለኛ መንገድ ብቻ እየሮጡ ወይም በስርዓቱ ላይ ተጨማሪ ኖዶችን እየጨመሩ የሪያክ ኖዶች ልዩ የሆነ IP አድራሻ እንዳላቸው ማረጋገጥ አለብዎት። የሪያክ አይፒ አድራሻ በ riak.conf ውስጥ ወይም - የapp.config ፋይልን እየተጠቀሙ ከሆነ - በvm.args ማዋቀር ፋይል ውስጥ ይገኛል፣ እሱም በ /etc/riak ማውጫ (ወይም /opt/riak/etc/) ውስጥ ይገኛል። በሌሎች ስርዓተ ክወናዎች))።

መጀመሪያ ላይ፣ የሪያክን አይፒ አድራሻ የያዘው ሕብረቁምፊ እዚህ ቦታ ላይ ያለውን የአካባቢውን አስተናጋጅ ይጠቁማል፡

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

127.0.0.1 በመረጡት የአይፒ አድራሻ ወይም የሪያክ ኖድ አስተናጋጅ ስም ይተኩ።

የአፈጻጸም እና የመተላለፊያ ይዘት ቅንብሮች

በአፈጻጸም ምክንያቶች በ /etc/riak/ ወይም /opt/riak/ወዘተ ማውጫ ውስጥ የሚገኙትን የ 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ን በማሰናከል ላይ

የቆየ ጃቫ ስክሪፕት MapReduceን ከማንኛውም የ Riak CS ስሪት ጋር እንዳይጠቀሙ ይመከራል። በአፈጻጸም ምክንያቶች የጃቫ ስክሪፕት ካርታ ቅነሳ ስራዎችን የሚያከናውነውን ቨርቹዋል ማሽን በ riak.conf config ፋይል ውስጥ በማቀናበር ወይም በ riak_kvAdvanced.conf ወይም app.config ክፍል ውስጥ ማሰናከል አለቦት፡-

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
]}

APP.CONFIG

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

በመቀጠል, የ Riak CS ስርዓት ቀሪ አካላትን ማዋቀር አለብን.

ኦሪጅናል መመሪያ.

ምንጭ: hab.com

አስተያየት ያክሉ