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 - Сақтау және 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 орнатылғанын тексеріңіз. Stanchion, керісінше, бүкіл кластердегі бір түйінге ғана орнатылуы керек.

Riak бұлттық қоймасы. 1-бөлім: Riak KV орнату

Riak CS үшін бэкендтер

Riak пайдаланатын әдепкі сервер - Bitcask, бірақ Riak CS бумасы Riak CS жүйесінің бөлігі болып табылатын Riak кластері пайдаланатын арнайы серверді қамтиды. Кәдімгі нұсқада Riak бірге жеткізілетін стандартты Multi сервері бар.

Riak CS ішінде пайдаланылатын бірдей Riak шелектері енді LevelDB серверін қажет ететін қосымша индекстерді пайдаланады. Riak CS жүйесінің басқа бөліктері Bticask серверін пайдаланудың пайдасын көре алады. Үлгі Multi серверін пайдалану өнімділік пен функционалдылықтың ең жақсы үйлесіміне қол жеткізу үшін осы серверлердің екеуінің де артықшылығын пайдалану үшін Riak CS жүйесіне енгізілген. Келесі бөлім осы Multi-backend пайдалану үшін Riak жүйесін дұрыс конфигурациялау жолын сипаттайды.

Backend Риак деректерді сақтау үшін пайдаланады. Riak KV арсеналында бірнеше бэкендтер бар: Bitcask, LevelDB, Memory және Multi.

Сонымен қатар, сақтауды есептеу жүйесі файлдарды шелектерге біріктіру үшін Riak MapReduse пайдаланады. Бұл барлық Riak түйіндеріне есептеуді сақтау алдында дайындалған Riak CS файлдарын қайдан іздеу керектігін айту керек дегенді білдіреді.

Riak түйінін Riak CS жүйесінің бөлігі ретінде конфигурациялау үшін IP мекенжайы және IP мекенжайы және Protocol Buffers арқылы хабар алмасу порты сияқты бірнеше басқа параметрлерді өзгерту қажет. Қажет болса, басқа параметрлерді өзгертуге болады. Келесі бөлімдер 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

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

Әрі қарай, біз Riak үшін 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 параметрін шын мәніне орнату керек. Біз riak.conf конфигурация файлына жолды немесе advanced.config немесе app.config ішіндегі riak_core бөлімін қоса аламыз.

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 CS қолдайтын кез келген Riak түйінінде allow_mult әрқашан шын мәніне орнатылады. Riak CS егер мән жалған болса, іске қосуды қалпына келтіреді.

Хост атауы мен IP мекенжайын орнату

Әрбір Riak түйінінің riak.conf ішіндегі түйін атауы опциясында көрсетілуі мүмкін атауы бар. 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 

Ескерту Менің жағдайымда жауап:

Riak бұлттық қоймасы. 1-бөлім: Riak KV орнату

Мұнда аздап күту керек. Содан кейін іске қосылған түйінді тексеруді бастауға болады.

SHELL

 riak ping

Егер жауап теннис болса, Риак жұмыс істеп тұр; егер жауап түйін пингтерге жауап бермесе, бірдеңе дұрыс болмады.

Ескерту Менің жағдайымда жауап:

Riak бұлттық қоймасы. 1-бөлім: Riak KV орнату

Түйін дұрыс басталмаса, мәселені анықтау мүмкін болса, түйіннің /log каталогындағы erlang.log.1 журналын қараңыз. Ең жиі кездесетін қателердің бірі - invalid_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

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

Ескертпе:Riak.conf файлындағы listener.protobuf.internal параметрінің мәні (немесе advanced.conf/app.config ішіндегі pb параметрінің мәні) Riak CS riak-cs.config ішіндегі riak_host мәндеріне сәйкес келуі керек және Stanchion stanchion.conf (немесе riak_host сәйкесінше кеңейтілген .config/app.config) файлдары.

Порт нөмірі туралы ескертпе
Егер порт басқа қолданба пайдаланатын порттармен қайшы келсе немесе жүктеме балансын немесе прокси серверді пайдалансаңыз, басқа порт нөмірі қажет болуы мүмкін.

Сондай-ақ, пайдаланушыларға Riak protobuf.backlog өлшемі (немесе advanced.config/app.config файлдарында бұл pb_backlog) riak-cs жүйесінде Riak CS үшін көрсетілген pool.request.size өлшеміне тең немесе одан үлкен екеніне көз жеткізу ұсынылады. config (немесе advanced.config/ app.conf файлдарындағы сұрау_пул_өлшемі).

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 параметрін қалаған IP мекенжайымен немесе Riak түйінінің хост атауымен ауыстырыңыз.

Өнімділік және өткізу қабілеттілігі параметрлері

Өнімділік себептері бойынша /etc/riak/ немесе /opt/riak/etc каталогында орналасқан riak.conf немесе vm.args Riak конфигурация файлдарына мәндерді қосуды ұсынамыз.

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 

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 жүйесінің қалған құрамдастарын конфигурациялау керек.

Түпнұсқа нұсқаулық.

Ақпарат көзі: www.habr.com

пікір қалдыру