Облачно хранилище 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) – система от бази данни, която действа като крайна система.
  • 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. Част 1. Настройка на Riak KV

Бекенд за Riak CS

Бекендът по подразбиране, използван от Riak, е Bitcask, но пакетът Riak CS включва специален бекенд, който трябва да се използва от клъстера Riak, който е част от системата Riak CS. Редовната версия има стандартния мулти бекенд, който идва с Riak.

Същите кофи Riak, използвани в Riak CS, използват вторични индекси, които сега изискват бекенд на LevelDB. Други части на системата Riak CS могат да се възползват от използването на бекенда на Bticask. Използването на примерен мулти бекенд е включено в Riak CS, за да се възползвате от двата бекенда, за да постигнете най-добрата комбинация от производителност и функционалност. Следващият раздел описва как правилно да конфигурирате Riak да използва този Multi-backend.

Бекенд е това, което Riak ще използва за запазване на данни. Riak KV има няколко бекенда в своя арсенал: Bitcask, LevelDB, Memory и Multi.

Освен това системата за изчисляване на съхранението използва Riak MapReduse за агрегиране на файлове в кофи. Това означава, че трябва да кажете на всички Riak възли къде да търсят подготвени Riak CS файлове, преди да изчислите хранилището.

Няколко други параметъра трябва да бъдат променени, за да конфигурирате възела Riak като част от системата Riak CS, като IP адрес и IP адрес и порт за съобщения чрез буфери на протоколи. Други настройки могат да бъдат променени, ако е необходимо. Следващите раздели описват как да конфигурирате възел 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

РАЗШИРЕН.КОНФИГ

{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 за това и да добавим следните опции:

РАЗШИРЕН.КОНФИГ

{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

РАЗШИРЕН.КОНФИГ

{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, ще има enable_mult, зададен на true по всяко време. Riak CS ще нулира стартирането, ако стойността е false.

Задаване на име на хост и 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. Част 1. Настройка на Riak KV

Тук трябва да изчакате малко. След това можете да започнете да тествате работещия възел.

SHELL

 riak ping

Ако отговорът е pong, тогава Riak работи; ако отговорът е Node не отговаря на ping, тогава нещо се е объркало.

Забележка Отговорът в моя случай:

Облачно хранилище 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

РАЗШИРЕН.КОНФ

{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 

РАЗШИРЕН.КОНФИГ

{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

Добавяне на нов коментар