Riak Bulud Anbarı. Hissə 1. Riak KV-nin qurulması

Riak CS (Cloud Storage) – Riak KV-nin üstündə işləyən obyektin saxlanmasını təşkil etmək üçün istifadəsi asan proqram. Riak (KV) paylanmış NoSQL açar-dəyər verilənlər bazasıdır. Riak CS istənilən miqyasda bulud yaddaşının sadəliyini, əlçatanlığını, paylanmasını təmin etmək üçün nəzərdə tutulmuşdur və həm ictimai, həm də özəl bulud arxitekturasını yaratmaq üçün və ya yüksək yüklənmiş proqramlar və xidmətlər üçün infrastruktur yaddaşı kimi istifadə edilə bilər. Riak CS API Amazon S3 ilə uyğun gəlir və müxtəlif situasiyalar üzrə hesabat qəbul etmək qabiliyyətini dəstəkləyir.

Riak Bulud Anbarı. Hissə 1. Riak KV-nin qurulması
Bu məqalə Riak CS sisteminin 2.1.1 versiyası üçün rəsmi təlimatın pulsuz tərcüməsidir

Riak CS saxlama sistemində üç komponent bir-biri ilə birlikdə işləyir, yəni hər bir komponent digər komponentlərlə işləmək üçün konfiqurasiya edilməlidir:

  • Riak (KV) – son sistem kimi çıxış edən verilənlər bazası sistemi.
  • Riak CS - Saxlama və API imkanlarını təmin edən, Riak-da faylları və metadata saxlayan və sonra onları son istifadəçilərə paylayan Riak-ın üstündəki bulud saxlama təbəqəsi.
  • dayaq - Riak instansiyasında vedrələr və istifadəçilər kimi qlobal unikal qurumları əhatə edən sorğuları idarə edir. Məsələn, istifadəçilər yaratmaq, kovalar yaratmaq və ya silmək.

Bundan əlavə, siz S3 müştərisini Riak CS sistemi ilə mesajlaşmada istifadə etmək üçün də konfiqurasiya edə bilərsiniz.

Sisteminizdə hər Riak CS qovşağı üçün bir Riak qovşağına sahib olmağı planlaşdırmalısınız. Riak və Riak CS qovşaqları müxtəlif fiziki maşınlarda işlədilə bilər, lakin əksər hallarda eyni fiziki maşında bir Riak düyünü və bir Riak CS qovşağının işlədilməsinə üstünlük verilir. Bir fiziki maşının həm Riak, həm də Riak CS qovşaqlarının ehtiyaclarını ödəmək üçün kifayət qədər gücə malik olduğunu fərz etsək, şəbəkə gecikməsinin azalması səbəbindən ümumiyyətlə daha yaxşı performans görəcəksiniz.

Sisteminiz bir neçə qovşaqdan ibarətdirsə, konfiqurasiya ilk növbədə komponentlər arasında rabitənin qurulması ilə bağlıdır. Günlük fayllarının saxlanacağı yer kimi digər parametrlər standart dəyərlərə malikdir və yalnız qeyri-standart dəyərlərdən istifadə etmək istəyirsinizsə dəyişdirilməlidir.

Sistem komponentlərinin qurulması. CS üçün Riak KV-nin qurulması

Riak CS Riak üzərində qurulmuş bir proqram olduğundan, Riak CS-ni işləyərkən Riak konfiqurasiyanıza diqqət yetirmək çox vacibdir. Bu sənəd həm Riak konfiqurasiya bələdçisi, həm də mühüm konfiqurasiya parametrlərini təsvir edən istinad sənədidir.

Quraşdırmadan əvvəl Riak KV və Riak CS-nin klasterinizdəki hər qovşaqda quraşdırıldığından əmin olun. Stanchion, əksinə, bütün klasterdə yalnız bir node üzərində quraşdırılmalıdır.

Riak Bulud Anbarı. Hissə 1. Riak KV-nin qurulması

Riak CS üçün arxa tərəflər

Riak tərəfindən istifadə edilən standart backend Bitcask-dır, lakin Riak CS paketinə Riak CS sisteminin bir hissəsi olan Riak klasteri tərəfindən istifadə edilməli olan xüsusi arxa plan daxildir. Adi versiyada Riak ilə birlikdə gələn standart Multi backend var.

Riak CS daxilində istifadə edilən eyni Riak vedrələri indi LevelDB backend tələb edən ikinci dərəcəli indekslərdən istifadə edir. Riak CS sisteminin digər hissələri Bticask backendindən istifadə etməkdən faydalana bilər. Performans və funksionallığın ən yaxşı kombinasiyasına nail olmaq üçün bu backendlərin hər ikisindən faydalanmaq üçün nümunə Multi backend-in istifadəsi Riak CS-ə daxil edilmişdir. Növbəti bölmə bu Multi-backenddən istifadə etmək üçün Riak-ın düzgün şəkildə konfiqurasiya edilməsini təsvir edir.

Backend Riak data saxlamaq üçün istifadə edəcək. Riak KV-nin arsenalında bir neçə arxa tərəf var: Bitcask, LevelDB, Memory və Multi.

Bundan əlavə, yaddaş hesablama sistemi faylları vedrələrə toplamaq üçün Riak MapReduse-dan istifadə edir. Bu o deməkdir ki, siz bütün Riak qovşaqlarına hesablama saxlamadan əvvəl hazırlanmış Riak CS fayllarını harada axtarmaq lazım olduğunu söyləməlisiniz.

Riak qovşağını Riak CS sisteminin bir hissəsi kimi konfiqurasiya etmək üçün bir neçə digər parametrlər dəyişdirilməlidir, məsələn IP ünvanı və IP ünvanı və Protokol Buferləri vasitəsilə mesajlaşma portu. Lazım gələrsə, digər parametrlər dəyişdirilə bilər. Aşağıdakı bölmələr Riak CS sisteminin bir hissəsi kimi işləmək üçün Riak nodeunun necə konfiqurasiya olunacağını təsvir edir.

Riak backend qurulur

Əvvəlcə riak.conf və ya advanced.config/app.config konfiqurasiya faylları redaktə edilir. Bu fayllar /etc/riak və ya /opt/riak/etc qovluqlarında yerləşdirilə bilər. Varsayılan olaraq, Riak Bitcask backendindən istifadə edir. Etməli olduğumuz ilk şey aşağıdakı sətri silməklə konfiqurasiya faylını dəyişdirməkdir:

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

Sonra, Riak üçün RiakCS modullarına ehtiyac olduğunu nümayiş etdirməliyik və Riak-a Riak CS-ni təmin edən konfiqurasiya edilmiş backenddən istifadə etməyi tapşırmalıyıq. Bunun üçün advanced.config və ya app.config faylından istifadə etməli və aşağıdakı seçimləri əlavə etməliyik:

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

Qeyd etmək çox vacibdir ki, bu dəyərlərin çoxu əməliyyat sisteminizə xas olan qovluq varyasyonlarından asılı olacaq, ona görə də təlimatlara uyğun olaraq əməl edin. Məsələn, add_paths seçimi Riak CS-nin /usr/lib/riak-cs-də quraşdırıldığını, data_root seçimləri isə Riak-ın /var/lib-də quraşdırıldığını güman edir. (Qeyd: Mənim vəziyyətimdə bu add_paths idi - /usr/lib64/riak-cs/).

Bu konfiqurasiya Riak CS-nin Riak ilə eyni maşında quraşdırıldığını nəzərdə tutur. Yoxdursa, paketi ayrı bir hosta kopyalamaq lazımdır.

Qardaş yaradılmasının qurulması

İndi biz allow_mult parametrini doğru olaraq təyin etməliyik. Biz riak.conf konfiqurasiya faylına sətir və ya advanced.config və ya app.config-də riak_core bölməsi əlavə edə bilərik.

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

Bu, Riak-a Riak CS-nin işləməsi üçün zəruri olan qardaşlar yaratmağa imkan verəcək. Müştəri kitabxanasından istifadə edərək Riak CS-ə qoşulsanız, narahat olmayın: bütün Riak CS əməliyyatları müəyyən edildiyi kimi ciddi şəkildə ardıcıl olduğu üçün münaqişələri həll etməli olmayacaqsınız.

Qardaş obyektin müxtəlif qovşaqlarda fərqli dəyərlərə malik olması üçün birdən çox obyekti bir açarda saxlamaq üsuludur.

Qeyd: allow_mult
Riak CS-ni də dəstəkləyən hər hansı Riak node allow_mult hər zaman doğru olaraq təyin olunacaq. Dəyər yanlış olarsa, Riak CS işə salınmanı sıfırlayacaq.

Host adı və IP ünvanının təyin edilməsi

Hər bir Riak qovşağının riak.conf-dakı nodename seçimində müəyyən edilə bilən adı var. Əgər app.config konfiqurasiya faylından istifadə edirsinizsə, app.config ilə eyni qovluqda vm.args adlı fayl yaratmalı və -name bayrağından istifadə edərək host adını göstərməlisiniz. Biz qovşaq adlarını @ formatında göstərməyi tövsiyə edirik. Beləliklə, bir host 100.0.0.1-də işləyən üç qovşaqınız varsa, onlara zəng edə bilərsiniz [e-poçt qorunur], [e-poçt qorunur][e-poçt qorunur] və ya kimi daha konkret adlar verə bilərsiniz [e-poçt qorunur], [e-poçt qorunur] və s. Aşağıdakı nümunə host adının dəyişdirilməsini nümayiş etdirir [e-poçt qorunur], localhost-da işləyəcək.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Bütün qovşaqları işə salmazdan və klasterə qoşulmazdan əvvəl adlandırmalısınız.

Quraşdırma testi

İndi bütün lazımi node parametrləri tamamlandıqdan sonra Riak-ı işə salmağa cəhd edə bilərik:

SHELL

 riak start 

Qeyd Mənim vəziyyətimdə cavab:

Riak Bulud Anbarı. Hissə 1. Riak KV-nin qurulması

Burada bir az gözləmək lazımdır. Sonra işləyən nodu sınamağa başlaya bilərsiniz.

SHELL

 riak ping

Cavab tennisdirsə, o zaman Riak çalışır; əgər cavab Node pinglərə cavab vermirsə, nəsə səhv getdi.

Qeyd Mənim vəziyyətimdə cavab:

Riak Bulud Anbarı. Hissə 1. Riak KV-nin qurulması

Əgər qovşaq düzgün başlamamışsa, problemi müəyyən etmək olarsa, qovşağın /log kataloqunda erlang.log.1 jurnalına baxın. Ən çox rast gəlinən xətalardan biri invalid_storage_backenddir. Bu, advanced.config və ya app.config-də Riak CS kitabxanasına gedən yolun səhv olduğunu göstərir (və ya Riak CS serverdə quraşdırılmayıb). Bu xətaya baxmayaraq, riak_cs_kv_multi_backend-dən riak_kv_multi_backend-ə dəyişmədiyinizə əmin olun.

Protokol tamponlarından istifadə etmək üçün Riak konfiqurasiyası

Riak protokolu bufer parametrləri riak.conf və ya /etc/riak/ kataloqunda yerləşən advanced.config və ya app.config fayllarının riak_api bölməsində yerləşir. Defolt olaraq, hostun IP ünvanı 127.0.0.1 və port 8087 var. Əgər siz Riak və Riak CS-ni yerli olmayan mühitdə işə salmağı planlaşdırırsınızsa, bunları dəyişməli olacaqsınız. 127.0.0.1-i Riak host IP ünvanı və 8087 portunu uyğun olanı ilə əvəz edin.

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

Qeyd:Riak.conf faylındakı listener.protobuf.internal parametrinin dəyəri (və ya advanced.conf/app.config-dəki pb parametrinin dəyəri) Riak CS riak-cs.config-də riak_host üçün dəyərlərə uyğun olmalıdır və Stanchion stanchion.conf (və ya qabaqcıl .config/app.config-də müvafiq olaraq riak_host) faylları.

Port nömrəsi haqqında qeyd
Port başqa proqram tərəfindən istifadə edilən portlarla ziddiyyət təşkil edərsə və ya yük balanslaşdırıcısı və ya proxy serverdən istifadə edirsinizsə, fərqli port nömrəsi tələb oluna bilər.

Həmçinin istifadəçilərə tövsiyə olunur ki, Riak protobuf.backlog ölçüsü (və ya advanced.config/app.config fayllarında bu, pb_backlogdur) Riak-cs-də Riak CS üçün göstərilən pool.request.size ilə bərabər və ya ondan böyükdür. konfiqurasiya (və ya advanced.config/ app.conf fayllarında sorğu_pool_size).

Əgər Riak CS-də pool.request.size dəyəri dəyişdirilibsə, protobuf.backlog dəyəri də Riak-da yenilənməlidir.

Digər Riak parametrləri

Riak.conf və advanced.config fayllarına jurnal fayllarının yaradılmasını və onların harada saxlanmasını konfiqurasiya edən digər parametrlər daxildir. Bu parametrlər standart dəyərlərə malikdir və əksər hallarda işləməlidir. Əlavə məlumat üçün konfiqurasiya faylları haqqında sənədlərimizi oxumağı tövsiyə edirik.

Riak üçün IP ünvanının qurulması

Riak üçün bir IP ünvanı qurarkən, yalnız bir qovşaqla işlədiyinizdən və ya sistemə daha çox qovşaq əlavə etdiyinizdən asılı olmayaraq Riak qovşaqlarının unikal IP ünvanına malik olduğundan əmin olmalısınız. Riak IP ünvanı riak.conf və ya - əgər app.config faylından istifadə edirsinizsə - /etc/riak kataloqunda (və ya /opt/riak/etc/) yerləşən vm.args konfiqurasiya faylında var. digər əməliyyat sistemlərində).

Əvvəlcə Riak IP ünvanını ehtiva edən xətt bu yerdəki localhost-a işarə edir:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

127.0.0.1-i seçdiyiniz IP ünvanı və ya Riak nodeunun host adı ilə əvəz edin.

Performans və Bant Genişliyi Parametrləri

Performans baxımından, /etc/riak/ və ya /opt/riak/etc qovluğunda yerləşən riak.conf və ya vm.args Riak konfiqurasiya fayllarına dəyər əlavə etməyi tövsiyə edirik.

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 deaktiv edilir

Riak CS-nin hər hansı bir versiyası ilə köhnə JavaScript MapReduce istifadə etməmək tövsiyə olunur. Performans səbəbi ilə siz riak.conf konfiqurasiya faylında və ya advanced.conf və ya app.config-in riak_kv bölməsində ayarlayaraq JavaScript MapReduce əməliyyatlarını yerinə yetirən virtual maşını söndürməlisiniz:

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

Sonra Riak CS sisteminin qalan komponentlərini konfiqurasiya etməliyik.

Orijinal təlimat.

Mənbə: www.habr.com

Добавить комментарий