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-г тохируулах
Энэхүү нийтлэл нь Riak CS системийн 2.1.1 хувилбарын албан ёсны гарын авлагын үнэгүй орчуулга юм

Riak CS хадгалах системд гурван бүрэлдэхүүн хэсэг нь хоорондоо уялдаатай ажилладаг бөгөөд энэ нь бүрэлдэхүүн хэсэг бүрийг бусад бүрэлдэхүүн хэсгүүдтэй ажиллахаар тохируулах шаардлагатай гэсэн үг юм.

  • Риак (КВ) – эцсийн системийн үүрэг гүйцэтгэдэг мэдээллийн сангийн систем.
  • Риак CS - Riak-ийн дээд талд байрлах үүлэн хадгалах давхарга нь хадгалах болон API боломжуудыг хангаж, файл, мета өгөгдлийг Riak-д хадгалж, улмаар эцсийн хэрэглэгчдэд түгээдэг.
  • Хөшөө - Riak instance дэх хувин, хэрэглэгчид гэх мэт дэлхийн өвөрмөц байгууллагуудтай холбоотой асуулга удирддаг. Жишээлбэл, хэрэглэгчид үүсгэх, хувин үүсгэх эсвэл устгах.

Нэмж дурдахад, та 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 Cloud Storage. 1-р хэсэг: Riak KV-г тохируулах

Riak CS-ийн арын хэсэг

Riak-ийн ашигладаг өгөгдмөл backend нь Bitcask боловч Riak CS багц нь Riak CS системийн нэг хэсэг болох Riak кластерт ашиглах ёстой тусгай арын хэсгийг агуулдаг. Энгийн хувилбар нь Riak-тай хамт ирдэг стандарт Multi backend-тэй.

Riak CS дотор ашигладаг ижил Riak хувинууд нь одоо LevelDB backend шаарддаг хоёрдогч индексүүдийг ашигладаг. Riak CS системийн бусад хэсгүүд нь Bticask backend-ийг ашигласнаар ашиг тусаа өгөх боломжтой. Гүйцэтгэл болон үйл ажиллагааны хамгийн сайн хослолыг бий болгохын тулд эдгээр хоёр талын давуу талыг ашиглахын тулд жишээ Multi backend ашиглах нь Riak CS-д багтсан болно. Дараагийн хэсэгт Riak-г энэхүү Multi-backend-г ашиглахын тулд хэрхэн зөв тохируулах талаар тайлбарлана.

Backend Энэ нь Риак өгөгдөл хадгалахад ашиглах болно. Riak KV нь өөрийн арсеналдаа Bitcask, LevelDB, Memory болон Multi гэсэн хэд хэдэн нөөцтэй.

Нэмж дурдахад хадгалалтын тооцооллын систем нь файлуудыг хувин болгон нэгтгэхийн тулд Riak MapReduse-г ашигладаг. Энэ нь та бүх Riak зангилааг тооцоолохдоо хадгалахаасаа өмнө бэлтгэсэн Riak CS файлуудыг хаанаас хайхаа хэлэх ёстой гэсэн үг юм.

Riak зангилааг Riak CS системийн нэг хэсэг болгон тохируулахын тулд IP хаяг, IP хаяг, протоколын буферээр дамжуулан мессеж илгээх порт зэрэг бусад хэд хэдэн параметрүүдийг өөрчлөх шаардлагатай. Шаардлагатай бол бусад тохиргоог өөрчилж болно. Дараах хэсгүүдэд Riak CS системийн нэг хэсэг болгон ажиллахын тулд Riak зангилааг хэрхэн тохируулах талаар тайлбарласан болно.

Riak backend-г тохируулж байна

Эхлээд riak.conf эсвэл advanced.config/app.config тохиргооны файлуудыг засварлана. Эдгээр файлуудыг /etc/riak эсвэл /opt/riak/etc санд байрлуулж болно. Анхдагч байдлаар, Riak нь Bitcask backend ашигладаг. Бидний хийх ёстой хамгийн эхний зүйл бол дараах мөрийг арилгах замаар тохиргооны файлыг өөрчлөх явдал юм.

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 CS-ийн тохируулсан арын хэсгийг ашиглахыг Riak-д зааж өгөх хэрэгтэй. Үүний тулд бид 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-д Riak CS-ийн үйл ажиллагаанд шаардлагатай ах дүүсийг бий болгох боломжийг олгоно. Хэрэв та Riak CS-тэй үйлчлүүлэгчийн номын санг ашиглан холбогдвол санаа зовох хэрэггүй: Riak CS-ийн бүх үйлдлүүд тодорхойлсоны дагуу хатуу нийцэж байгаа тул зөрчилдөөнийг шийдвэрлэх шаардлагагүй болно.

Ах дүү Энэ нь олон объектыг нэг түлхүүрт хадгалах арга бөгөөд ингэснээр тухайн объект өөр өөр цэгүүд дээр өөр өөр утгатай байх болно.

Тайлбар: allow_mult
Riak CS-г дэмждэг аливаа Riak зангилаа нь allow_mult-г үргэлж үнэн гэж тохируулна. Хэрэв утга худал бол Riak CS хөөргөлтийг дахин тохируулна.

Хост нэр болон IP хаягийг тохируулах

Riak зангилаа бүр өөрийн гэсэн нэртэй байдаг бөгөөд үүнийг riak.conf дээрх nodename сонголтоор зааж өгч болно. Хэрэв та 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-г тохируулах

Хэрэв зангилаа зөв эхлээгүй бол асуудлыг тодорхойлох боломжтой бол зангилааны /log лавлахаас erlang.log.1 бүртгэлийг харна уу. Хамгийн түгээмэл алдаануудын нэг бол хүчингүй_хадгалах_backend юм. Энэ нь advanced.config эсвэл app.config доторх Riak CS номын санд хүрэх зам буруу байгааг харуулж байна (эсвэл Riak CS сервер дээр суулгаагүй). Энэ алдаа гарсан хэдий ч та riak_cs_kv_multi_backend-ээс riak_kv_multi_backend болж өөрчлөгдөөгүй эсэхээ шалгаарай.

Риакийг протоколын буфер ашиглахаар тохируулж байна

Riak протоколын буфер тохиргоонууд нь riak.conf эсвэл /etc/riak/ директорт байрлах advanced.config эсвэл app.config файлуудын riak_api хэсэгт байрладаг. Анхдагчаар хост нь 127.0.0.1 IP хаягтай ба 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 (эсвэл advanced.conf/app.config дахь pb параметрийн утга) файл дахь listener.protobuf.internal параметрийн утга нь Riak CS riak-cs.config дээрх riak_host-ын утгатай тохирч байх ёстой. Stanchion stanchion.conf (эсвэл дэвшилтэт .config/app.config дахь riak_host) файлууд.

Портын дугаарын тухай тэмдэглэл
Хэрэв порт нь өөр програмын ашигладаг портуудтай зөрчилдөж байгаа эсвэл ачааллын тэнцвэржүүлэгч эсвэл прокси сервер ашиглаж байгаа бол өөр портын дугаар шаардлагатай.

Мөн хэрэглэгчдэд 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 файлыг ашиглаж байгаа бол - vm.args тохиргооны файлд /etc/riak директорт (эсвэл /opt/riak/etc/) агуулагдсан байна. бусад үйлдлийн системүүд дээр).

Эхлээд Riak IP хаягийг агуулсан мөр нь энэ байршил дахь localhost руу чиглэнэ.

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

сэтгэгдэл нэмэх