Riak Cloud Storage. 1-бөлүк: Riak KV орнотуу

Riak CS (Булуттагы сактагыч) – 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 сактоо тутумунда үч компонент бири-бири менен бирге иштешет, бул ар бир компонент башка компоненттер менен иштөө үчүн конфигурацияланышы керек дегенди билдирет:

  • Риак (KV) – акыркы система катары иш алып барган маалымат базасы системасы.
  • Riak CS - Риактын үстүндөгү булут сактоо катмары, ал сактоо жана API мүмкүнчүлүктөрүн камсыз кылат, файлдарды жана метаберилиштерди Riak'та сактайт, андан кийин аларды акыркы колдонуучуларга таратат.
  • Stanchion - Riak инстанциясындагы чакалар жана колдонуучулар сыяктуу глобалдык уникалдуу объектилерди камтыган сурамдарды башкарат. Мисалы, колдонуучуларды түзүү, чакаларды түзүү же жок кылуу.

Кошумчалай кетсек, сиз S3 кардарын Riak CS системасы менен кабарлашууда колдонуу үчүн конфигурациялай аласыз.

Сиз тутумуңуздагы ар бир 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 колдонгон демейки бэкэнд - Bitcask, бирок Riak CS пакети Riak CS тутумунун бир бөлүгү болгон Riak кластери тарабынан колдонулушу керек болгон атайын бэкэндди камтыйт. Кадимки версияда Riak менен келген стандарттуу Multi backend бар.

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

Backend бул Riak маалыматтарды сактоо үчүн колдонот. 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 серверин колдонот. Биринчи кезекте биз төмөнкү сапты алып салуу менен конфигурация файлын өзгөртүү керек:

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 менен камсыз кылуучу конфигурацияланган серверди колдонууга көрсөтмө беришибиз керек. Бул үчүн 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 дарегиндеги nodename параметринде көрсөтсө болот. Эгер сиз app.config конфигурация файлын колдонуп жатсаңыз, vm.args деп аталган файлды app.config менен бир каталогдо түзүп, -name желекчесин колдонуп хосттун атын көрсөтүшүңүз керек. Түйүн аталыштарын @ форматында көрсөтүүнү сунуштайбыз. Ошентип, бир хостто 100.0.0.1 иштеген үч түйүнүңүз болсо, аларды чакырсаңыз болот [электрондук почта корголгон], [электрондук почта корголгон]жана [электрондук почта корголгон] же сыяктуу конкреттүү аттарды бере аласыз [электрондук почта корголгон], [электрондук почта корголгон] жана башка. Төмөнкү мисал хосттун аталышын өзгөртүүнү көрсөтөт [электрондук почта корголгон], ал localhostта иштей турган.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Сиз бардык түйүндөрдү баштоодон жана кластерге кошулуудан мурун аташыңыз керек.

Орнотуу тести

Бардык керектүү түйүн жөндөөлөрү аяктагандан кийин, биз Riakды ишке киргизүүгө аракет кылсак болот:

кабык

 riak start 

Эскертүү Менин учурда жооп:

Riak Cloud Storage. 1-бөлүк: Riak KV орнотуу

Бул жерде бир аз күтүш керек. Андан кийин сиз иштеп жаткан түйүндү сынап баштасаңыз болот.

кабык

 riak ping

Эгер жооп понг болсо, анда Риак иштеп жатат; эгер жооп түйүн пингдерге жооп бербей жатса, анда бир нерсе туура эмес болуп кетти.

Эскертүү Менин учурда жооп:

Riak Cloud Storage. 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 файлдарындагы request_pool_size).

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 конфигурация файлдарына riak.conf же vm.args маанилерин кошууну сунуштайбыз.

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 конфигурация файлында же advanced.conf же app.config riak_kv бөлүмүндө орнотуу менен өчүрүшүңүз керек:

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 системасынын калган компоненттерин конфигурациялашыбыз керек.

Оригиналдуу колдонмо.

Source: www.habr.com

Комментарий кошуу