Анбори абрии 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, се ҷузъ бо ҳамдигар кор мекунанд, ки маънои онро дорад, ки ҳар як ҷузъ бояд барои кор бо ҷузъҳои дигар танзим карда шавад:

  • Риак (КВ) – системаи махзани маълумот, ки ҳамчун системаи ниҳоӣ амал мекунад.
  • Riak CS - Қабати нигоҳдории абрӣ дар болои Riak, ки қобилияти нигоҳдорӣ ва API-ро таъмин мекунад, файлҳо ва метамаълумотҳоро дар Riak нигоҳ медорад ва сипас онҳоро ба корбарони ниҳоӣ паҳн мекунад.
  • Станчион - Дархостҳои марбут ба объектҳои беназири ҷаҳонӣ ба монанди сатилҳо ва корбарон дар мисоли Riakро идора мекунад. Масалан, эҷоди корбарон, эҷод ё нест кардани сатилҳо.

Илова бар ин, шумо инчунин метавонед муштарии S3-ро барои истифода дар паёмнависӣ бо системаи Riak CS танзим кунед.

Шумо бояд нақша дошта бошед, ки барои ҳар як гиреҳи Riak CS дар системаи шумо як гиреҳи Riak дошта бошед. Гиреҳҳои Riak ва Riak CS-ро дар мошинҳои гуногуни физикӣ иҷро кардан мумкин аст, аммо дар аксари мавридҳо кор кардани як гиреҳи Riak ва як гиреҳи Riak CS дар як мошини физикӣ беҳтар аст. Фарз мекунем, ки як мошини ҷисмонӣ қудрати кофӣ барои қонеъ кардани ниёзҳои гиреҳҳои Riak ва Riak CS дорад, шумо одатан аз ҳисоби кам шудани таъхири шабака кори беҳтарро хоҳед дид.

Агар системаи шумо аз якчанд гиреҳ иборат бошад, конфигуратсия асосан дар бораи танзими алоқа байни ҷузъҳо мебошад. Танзимоти дигар, аз он ҷумла дар куҷо файлҳои сабтгоҳҳ нигоҳ дошта мешаванд, дорои арзишҳои пешфарз мебошанд ва танҳо агар шумо хоҳед, ки арзишҳои ғайристандартиро истифода баред, тағир додан лозим аст.

Танзими ҷузъҳои система. Насб кардани Riak KV барои CS

Азбаски Riak CS барномаест, ки дар болои Riak сохта шудааст, ҳангоми иҷро кардани Riak CS ба конфигуратсияи Riak диққат додан хеле муҳим аст. Ин ҳуҷҷат ҳам дастури конфигуратсияи Riak ва ҳам ҳуҷҷати истинодест, ки параметрҳои муҳими конфигуратсияро тавсиф мекунад.

Пеш аз насб кардан, боварӣ ҳосил кунед, ки Riak KV ва Riak CS дар ҳар гиреҳи кластери шумо насб карда шудаанд. Stanchion, аз тарафи дигар, бояд танҳо дар як гиреҳ дар тамоми кластер насб карда шавад.

Анбори абрии Riak. Қисми 1: Танзими Riak KV

Сарпӯшҳо барои Riak CS

Пойгоҳи пешфарз, ки аз ҷониби Riak истифода мешавад, Bitcask аст, аммо бастаи Riak CS дорои пуштибонии махсусест, ки бояд аз ҷониби кластери Riak, ки қисми системаи Riak CS мебошад, истифода шавад. Версияи муқаррарӣ дорои пуштибонии стандартии Multi мебошад, ки бо Riak меояд.

Ҳамон сатилҳои Riak, ки дар дохили Riak CS истифода мешаванд, индексҳои дуввумро истифода мебаранд, ки ҳоло пуштибонии LevelDB-ро талаб мекунанд. Дигар қисмҳои системаи Riak CS метавонанд аз истифодаи пуштибонии Bticask баҳра баранд. Истифодаи як нусхаи намунавии Multi backend ба Riak CS дохил карда шудааст, то аз ҳардуи ин пуштибонҳо истифода барад, то комбинатсияи беҳтарини кор ва функсияҳоро ба даст орад. Боби оянда тавсиф мекунад, ки чӣ тавр дуруст танзим кардани Riak барои истифодаи ин Multi-backend.

Бозгашт он чизест, ки Риак барои захира кардани маълумот истифода хоҳад кард. Riak KV дар арсенали худ якчанд пуштибонӣ дорад: Bitcask, LevelDB, Memory ва Multi.

Илова бар ин, системаи ҳисобкунии нигаҳдорӣ Riak MapReduse-ро барои ҷамъ кардани файлҳо ба сатилҳо истифода мебарад. Ин маънои онро дорад, ки шумо бояд ба ҳама гиреҳҳои Riak бигӯед, ки пеш аз нигоҳдории компютерӣ файлҳои омодашудаи Riak CS-ро дар куҷо ҷустуҷӯ кунед.

Барои танзим кардани гиреҳи Riak ҳамчун як қисми системаи Riak CS, якчанд параметрҳои дигар бояд тағир дода шаванд, ба монанди суроғаи IP ва суроғаи IP ва порт барои паёмнависӣ тавассути буферҳои Protocol. Дар ҳолати зарурӣ танзимоти дигар метавонанд тағир дода шаванд. Дар бахшҳои зерин чӣ гуна танзим кардани гиреҳи Riak барои кор ҳамчун як қисми системаи Riak CS тасвир шудааст.

Танзими пуштибонии Riak

Аввалан, файлҳои конфигуратсияи riak.conf ё advanced.config/app.config таҳрир карда мешаванд. Ин файлҳо метавонанд дар директорияҳои /etc/riak ё /opt/riak/etc ҷойгир шаванд. Бо нобаёнӣ, Riak пуштибонии Bitcask -ро истифода мебарад. Аввалин чизе, ки мо бояд кунем, ин тағир додани файли конфигуратсия тавассути нест кардани сатри зерин аст:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

ADVANCED.CONFIG

{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 нишон диҳем ва ба Риак дастур диҳем, ки пуштибонии конфигуратсияшударо бо Riak CS истифода барад. Мо бояд барои ин файли advanced.config ё app.config-ро истифода барем ва имконоти зеринро илова кунем:

ADVANCED.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 насб шудааст, дар ҳоле ки имконоти data_root тахмин мекунанд, ки Riak дар /var/lib насб шудааст. (Эзоҳ: Дар ҳолати ман он add_paths буд - /usr/lib64/riak-cs/).

Ин конфигуратсия тахмин мекунад, ки Riak CS дар ҳамон мошини Riak насб шудааст. Агар не, пас баста бояд ба ҳости алоҳида нусхабардорӣ карда шавад.

Ташкили эҷоди бародарон

Ҳоло, мо бояд параметри allow_mult-ро ба true муқаррар кунем. Мо метавонем сатрро дар файли конфигуратсияи riak.conf ё қисмати riak_core дар advanced.config ё app.config илова кунем.

RIAK.CONF

buckets.default.allow_mult = true

ADVANCED.CONFIG

{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 заруранд. Агар шумо бо истифода аз китобхонаи мизоҷ ба Riak CS пайваст шавед, хавотир нашавед: ба шумо лозим нест, ки муноқишаҳоро ҳал кунед, зеро ҳамаи амалиётҳои Riak CS ба таври қатъӣ мувофиқи муайяншуда мувофиқанд.

Бародар роҳи нигоҳ доштани объектҳои сершумор дар як калид аст, то объект дар гиреҳҳои гуногун арзишҳои гуногун дошта бошад.

Эзоҳ: allow_mult
Ҳама гиреҳи Riak, ки инчунин Riak CS -ро дастгирӣ мекунад, allow_mult ҳамеша ба true муқаррар карда мешавад. Riak CS оғозро аз нав танзим мекунад, агар қимат нодуруст бошад.

Муқаррар кардани номи мизбон ва суроғаи IP

Ҳар як гиреҳи Riak ном дорад, ки онро дар варианти номи гиреҳ дар riak.conf муайян кардан мумкин аст. Агар шумо файли конфигуратсияи app.config-ро истифода баред, шумо бояд файлеро бо номи vm.args дар ҳамон директорияи app.config эҷод кунед ва номи мизбонро бо истифода аз парчами -name муайян кунед. Мо тавсия медиҳем, ки номҳои гиреҳро дар формати @ нишон диҳем. Ҳамин тавр, агар шумо се гиреҳ дошта бошед, ки дар як ҳост 100.0.0.1 кор мекунанд, шумо метавонед ба онҳо занг занед [почтаи электронӣ ҳифз карда шудааст], [почтаи электронӣ ҳифз карда шудааст]ва [почтаи электронӣ ҳифз карда шудааст] ё шумо метавонед номҳои мушаххастаре диҳед, масалан [почтаи электронӣ ҳифз карда шудааст], [почтаи электронӣ ҳифз карда шудааст] ва ғайра. Мисоли зер тағир додани номи мизбонро нишон медиҳад [почтаи электронӣ ҳифз карда шудааст], ки дар localhost кор хоҳад кард.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Шумо бояд ҳамаи гиреҳҳоро пеш аз оғоз кардани онҳо ва пайвастан ба кластер номбар кунед.

Санҷиши насб

Акнун, ки ҳама танзимоти гиреҳи зарурӣ анҷом дода шуданд, мо метавонем кӯшиш кунем, ки Riak-ро оғоз кунем:

Шел

 riak start 

Шарҳ Ҷавоб дар ҳолати ман:

Анбори абрии Riak. Қисми 1: Танзими Riak KV

Дар ин ҷо шумо бояд каме интизор шавед. Пас шумо метавонед ба озмоиши гиреҳи коркунанда шурӯъ кунед.

Шел

 riak ping

Агар ҷавоб понг бошад, пас Риак иҷро мешавад; агар ҷавоб Node ба пингҳо ҷавоб надиҳад, пас чизе нодуруст рафт.

Шарҳ Ҷавоб дар ҳолати ман:

Анбори абрии Riak. Қисми 1: Танзими Riak KV

Агар гиреҳ дуруст оғоз накарда бошад, ба сабти erlang.log.1 дар феҳристи /log-и гиреҳ нигаред, агар мушкилотро муайян кардан мумкин бошад. Яке аз хатогиҳои маъмултарин invalid_storage_backend мебошад. Ин нишон медиҳад, ки роҳ ба китобхонаи Riak CS дар advanced.config ё дар app.config нодуруст аст (ё Riak CS дар сервер насб нашудааст). Сарфи назар аз ин хато, боварӣ ҳосил кунед, ки шумо аз riak_cs_kv_multi_backend ба riak_kv_multi_backend тағир наёфтаед.

Танзими Riak барои истифодаи буферҳои протокол

Танзимоти буферии протоколи Riak дар riak.conf ё дар бахши riak_api дар файлҳои advanced.config ё app.config, ки дар феҳристи /etc/riak/ ҷойгиранд, ҷойгир шудаанд. Бо нобаёнӣ, мизбон суроғаи IP-и 127.0.0.1 ва порти 8087 дорад. Агар шумо ният доред, ки Riak ва Riak CS-ро дар муҳити ғайримаҳаллӣ иҷро кунед, шумо бояд онҳоро тағир диҳед. 127.0.0.1-ро бо суроғаи IP-и мизбони Riak ва порти 8087-ро бо суроғаи мувофиқ иваз кунед.

RIAK.CONF

 listener.protobuf.internal = 10.0.2.10:10001

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

Эзоҳ:Арзиши параметри listener.protobuf.internal дар файли riak.conf (ё арзиши параметри pb дар advanced.conf/app.config) бояд ба арзишҳои riak_host дар Riak CS riak-cs.config мувофиқат кунад ва Файлҳои Stanchion stanchion.conf (ё riak_host мутаносибан дар пешрафтаи .config/app.config).

Қайд дар бораи рақами порт
Рақами порти дигар метавонад талаб карда шавад, агар порт бо портҳои аз ҷониби барномаи дигар истифодашаванда мухолифат кунад ё агар шумо тавозуни сарборӣ ё сервери проксиро истифода баред.

Инчунин тавсия дода мешавад, ки корбарон боварӣ ҳосил кунанд, ки андозаи Riak protobuf.backlog (ё дар файлҳои advanced.config/app.config ин pb_backlog аст) ба pool.request.size барои Riak CS дар riak-cs баробар ё калонтар аст. config (ё request_pool_size дар файлҳои advanced.config/ app.conf).

Агар арзиши pool.request.size дар Riak CS тағир дода шуда бошад, пас арзиши protobuf.backlog низ бояд дар Riak нав карда шавад.

Дигар танзимоти Riak

Файлҳои riak.conf ва advanced.config танзимоти дигареро дар бар мегиранд, ки эҷоди файлҳои гузориш ва дар куҷо нигоҳ доштани онҳоро танзим мекунанд. Ин танзимот арзишҳои пешфарз доранд ва дар аксари ҳолатҳо бояд кор кунанд. Барои маълумоти иловагӣ, мо тавсия медиҳем, ки ҳуҷҷатҳои моро дар бораи файлҳои конфигуратсия хонед.

Муқаррар кардани суроғаи IP барои Riak

Ҳангоми муқаррар кардани суроғаи IP барои Riak, шумо бояд боварӣ ҳосил кунед, ки гиреҳҳои Riak суроғаи IP-и беназир доранд, хоҳ шумо бо як гиреҳ кор мекунед ё ба система гиреҳҳои бештар илова мекунед. Суроғаи IP Riak дар riak.conf ё - агар шумо файли app.config -ро истифода баред - дар файли конфигуратсияи vm.args, ки он ҷо дар феҳристи /etc/riak (ё /opt/riak/etc/) ҷойгир аст. дар дигар системаҳои оператсионӣ).

Дар аввал, сатри дорои суроғаи IP Riak ба маҳалли ҷойгиршавӣ дар ин макон ишора мекунад:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

127.0.0.1-ро бо суроғаи IP ё номи мизбони гиреҳи Riak иваз кунед.

Танзимоти иҷроиш ва фарохмаҷрои

Бо сабабҳои кор, мо тавсия медиҳем, ки арзишҳоро ба файлҳои конфигуратсияи Riak riak.conf ё vm.args, ки дар феҳристи /etc/riak/ ё /opt/riak/etc ҷойгиранд, илова кунед.

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

Тавсия дода мешавад, ки JavaScript MapReduce-ро бо ягон версияи Riak CS истифода набаред. Бо сабабҳои иҷроиш, шумо бояд мошини маҷозӣеро, ки амалиёти JavaScript MapReduce-ро иҷро мекунад, тавассути танзим дар файли конфигуратсияи riak.conf ё дар бахши riak_kv дар advanced.conf ё app.config хомӯш кунед:

RIAK.CONF

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

ADVANCED.CONFIG

{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-ро танзим кунем.

Дастури аслӣ.

Манбаъ: will.com

Илова Эзоҳ