Riak Cloud Storage. Дел 1: Поставување на Riak KV

Riak CS (Cloud Storage) – лесен за користење софтвер за организирање на складирање на објекти, кој работи на врвот на Riak KV. Riak (KV) е дистрибуирана NoSQL база на податоци со клуч-вредност. Riak CS е дизајниран да обезбеди едноставност, достапност, дистрибуција на складирање на облак од кој било размер и може да се користи за изградба на архитектури на облак - и јавни и приватни - или како складирање на инфраструктура за високо оптоварени апликации и услуги. Riak CS API е компатибилен со Amazon S3 и ја поддржува можноста за примање извештаи за различни ситуации.

Riak Cloud Storage. Дел 1: Поставување на Riak KV
Оваа статија е бесплатен превод на официјалниот прирачник за верзијата 2.1.1 на системот Riak CS

Во системот за складирање Riak CS, три компоненти работат заедно една со друга, што значи дека секоја компонента мора да биде конфигурирана да работи со другите компоненти:

  • Риак (КВ) – систем на бази на податоци кој делува како краен систем.
  • Риак ЦС - Слој за складирање облак на врвот на Riak што обезбедува складирање и способности за API, складира датотеки и метаподатоци во Riak, а потоа ги дистрибуира до крајните корисници.
  • Станчион - Управува со прашања кои вклучуваат глобално уникатни ентитети како што се кофи и корисници во примерот на Riak. На пример, креирање корисници, креирање или бришење кофи.

Дополнително, можете исто така да го конфигурирате клиентот S3 за употреба во пораките со системот Riak CS.

Треба да планирате да имате еден Riak јазол за секој Riak CS јазол на вашиот систем. Јазлите Riak и Riak CS можат да се извршуваат на различни физички машини, но во повеќето случаи се претпочита да се извршува еден Riak јазол и еден Riak CS јазол на иста физичка машина. Претпоставувајќи дека една физичка машина има доволно моќ да ги задоволи потребите на Riak и Riak CS јазлите, генерално ќе видите подобри перформанси поради намалената латентност на мрежата.

Ако вашиот систем се состои од неколку јазли, конфигурацијата е првенствено за поставување на комуникација помеѓу компонентите. Другите поставки, како на пр., каде ќе се складираат датотеките за евиденција, имаат стандардни вредности и треба да се променат само ако сакате да користите нестандардни вредности.

Поставување компоненти на системот. Поставување на Riak KV за CS

Бидејќи Riak CS е апликација изградена врз Riak, многу е важно да се обрне внимание на вашата конфигурација на Riak кога работи Riak CS. Овој документ е и водич за конфигурација на Riak и референтен документ кој опишува важни параметри за конфигурација.

Пред поставувањето, проверете дали Riak KV и Riak CS се инсталирани на секој јазол во вашиот кластер. Stanchion, од друга страна, треба да се инсталира само на еден јазол во целиот кластер.

Riak Cloud Storage. Дел 1: Поставување на Riak KV

Заднина за Riak CS

Стандардниот бекенд што го користи Riak е Bitcask, но пакетот Riak CS вклучува специјален заднина што мора да го користи кластерот Riak кој е дел од системот Riak CS. Обичната верзија го има стандардниот Multi backend што доаѓа со Riak.

Истите кофи Riak што се користат во Riak CS користат секундарни индекси, кои сега бараат заднина на LevelDB. Другите делови од системот Riak CS можат да имаат корист од користењето на заднината на Bticask. Употребата на примерок Multi backend е вклучена во Riak CS за да се искористат предностите на двата од овие позадини за да се постигне најдобра комбинација на перформанси и функционалност. Следниот дел опишува како правилно да го конфигурирате Riak да го користи овој Multi-backend.

Заден дел е она што Riak ќе го користи за зачувување податоци. Riak KV има неколку backends во својот арсенал: Bitcask, LevelDB, Memory и Multi.

Дополнително, системот за пресметка за складирање користи Riak MapReduse за собирање датотеки во кофи. Ова значи дека мора да им кажете на сите Riak јазли каде да бараат подготвени датотеки Riak CS пред да го пресметате складирањето.

Мора да се променат неколку други параметри за да се конфигурира јазолот Riak како дел од системот Riak CS, како што се IP адресата и IP адресата и портата за пораки преку протокол бафери. Другите поставки може да се променат доколку е потребно. Следните делови опишуваат како да конфигурирате јазол Riak да работи како дел од системот Riak CS.

Поставување на Riak backend

Прво, конфигурациските датотеки riak.conf или advanced.config/app.config се уредуваат. Овие датотеки може да се наоѓаат во директориумите /etc/riak или /opt/riak/etc. Стандардно, Riak користи Bitcask backend. Првото нешто што треба да направиме е да ја смениме конфигурациската датотека со отстранување на следнава линија:

RIAK.CONF

## Delete this line:
storage_backend = bitcask

НАПРЕДНО.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 да го користи конфигурираниот заден дел што го обезбедува Riak CS. За ова треба да ја користиме датотеката advanced.config или app.config и да ги додадеме следниве опции:

НАПРЕДНО.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

НАПРЕДНО.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 да создаде браќа и сестри кои се неопходни за Riak CS да функционира. Ако се поврзете со Riak CS користејќи ја библиотеката на клиентите, не грижете се: нема да морате да решавате конфликти, бидејќи сите операции на Riak CS се строго конзистентни како што е дефинирано.

Брат или сестра е начин на складирање на повеќе објекти во еден клуч, така што објектот има различни вредности на различни јазли.

Забелешка: allow_mult
Секој Riak јазол кој исто така поддржува Riak CS ќе има наместено allow_mult на true во секое време. Riak CS ќе го ресетира стартувањето ако вредноста е лажна.

Поставување на името на домаќинот и IP адресата

Секој Riak јазол има име, кое може да се наведе во опцијата nodename во 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:

SHELL

 riak start 

Забелешка Одговорот во мојот случај:

Riak Cloud Storage. Дел 1: Поставување на Riak KV

Тука треба да почекате малку. Потоа можете да започнете со тестирање на јазолот што работи.

SHELL

 riak ping

Ако одговорот е понг, тогаш Риак работи; ако одговорот е Јазол кој не реагира на пинг, тогаш нешто тргна наопаку.

Забелешка Одговорот во мојот случај:

Riak Cloud Storage. Дел 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

НАПРЕДНО.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.внатрешниот параметар во датотеката 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 

НАПРЕДНО.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.

Оригинален прирачник.

Извор: www.habr.com

Додадете коментар