Pagtipig sa Riak Cloud. Bahin 1: Pagpahimutang sa Riak KV

Riak CS (Cloud Storage) – sayon-sa-gamiton nga software alang sa pag-organisar sa butang storage, nga nagdagan sa ibabaw sa Riak KV. Ang Riak (KV) usa ka gipang-apod-apod nga database sa key-value sa NoSQL. Gidisenyo ang Riak CS aron mahatagan ang kayano, pagkaanaa, pag-apod-apod sa pagtipig sa panganod sa bisan unsang sukod, ug mahimong magamit sa paghimo sa mga arkitektura sa panganod - publiko ug pribado - o ingon pagtipig sa imprastraktura alang sa daghang mga aplikasyon ug serbisyo. Ang Riak CS API nahiuyon sa Amazon S3 ug nagsuporta sa katakus nga makadawat mga taho sa lainlaing mga sitwasyon.

Pagtipig sa Riak Cloud. Bahin 1: Pagpahimutang sa Riak KV
Kini nga artikulo kay libre nga hubad sa opisyal nga manwal para sa Riak CS system version 2.1.1

Sa sistema sa pagtipig sa Riak CS, tulo ka mga sangkap ang nagtrabaho kauban ang usag usa, nga nagpasabut nga ang matag sangkap kinahanglan nga ma-configure aron magtrabaho kauban ang ubang mga sangkap:

  • Riak (KV) – usa ka sistema sa database nga naglihok isip usa ka end system.
  • Riak CS - Usa ka cloud storage layer sa ibabaw sa Riak nga naghatag og storage ug API nga kapabilidad, nagtipig sa mga file ug metadata sa Riak, ug dayon nag-apod-apod niini ngadto sa mga end user.
  • Stanchion - Nagdumala sa mga pangutana nga naglambigit sa talagsaon nga mga entidad sa tibuok kalibutan sama sa mga balde ug tiggamit sa Riak nga pananglitan. Pananglitan, paghimo sa mga tiggamit, paghimo o pagtangtang sa mga balde.

Dugang pa, mahimo usab nimong i-configure ang kliyente sa S3 aron magamit sa pagmemensahe sa sistema sa Riak CS.

Kinahanglan ka magplano nga adunay usa ka Riak node alang sa matag Riak CS node sa imong sistema. Ang Riak ug Riak CS node mahimong ipadagan sa lain-laing pisikal nga mga makina, apan sa kadaghanang kaso mas maayo nga magpadagan sa usa ka Riak node ug usa ka Riak CS node sa samang pisikal nga makina. Sa pag-ingon nga ang usa ka pisikal nga makina adunay igong gahum sa pagtagbaw sa mga panginahanglan sa duha ka Riak ug Riak CS nodes, sa kasagaran makakita ka og mas maayo nga performance tungod sa pagkunhod sa latency sa network.

Kung ang imong sistema naglangkob sa daghang mga node, ang pag-configure nag-una bahin sa pag-set up sa komunikasyon tali sa mga sangkap. Ang ubang mga setting, sama sa kung asa itago ang mga file sa log, adunay mga default nga kantidad ug kinahanglan ra nga usbon kung gusto nimo gamiton ang dili standard nga mga kantidad.

Pag-set up sa mga sangkap sa sistema. Pag-set up sa Riak KV para sa CS

Tungod kay ang Riak CS usa ka aplikasyon nga gitukod sa ibabaw sa Riak, hinungdanon nga hatagan pagtagad ang imong pagsumpo sa Riak kung nagpadagan sa Riak CS. Kini nga dokumento pareho nga Riak configuration guide ug reference nga dokumento nga naghulagway sa importante nga configuration parameters.

Sa dili pa i-setup, siguroha nga ang Riak KV ug Riak CS na-install sa matag node sa imong cluster. Ang stanchion, sa laing bahin, kinahanglan nga i-install lamang sa usa ka node sa tibuok cluster.

Pagtipig sa Riak Cloud. Bahin 1: Pagpahimutang sa Riak KV

Mga backend para sa Riak CS

Ang default nga backend nga gigamit sa Riak mao ang Bitcask, apan ang Riak CS package naglakip sa usa ka espesyal nga backend nga kinahanglan gamiton sa Riak cluster nga kabahin sa Riak CS system. Ang regular nga bersyon adunay standard Multi backend nga kauban sa Riak.

Ang parehas nga mga balde sa Riak nga gigamit sa sulod sa Riak CS naggamit mga sekondaryang indeks, nga karon nanginahanglan usa ka backend sa LevelDB. Ang ubang mga bahin sa sistema sa Riak CS mahimong makabenepisyo gikan sa paggamit sa Bticask backend. Ang paggamit sa usa ka sample nga Multi backend gilakip sa Riak CS aron mapahimuslan ang duha niini nga mga backend aron makab-ot ang pinakamaayo nga kombinasyon sa performance ug functionality. Ang sunod nga seksyon naghulagway kung giunsa ang husto nga pag-configure sa Riak aron magamit kini nga Multi-backend.

Backend mao ang gamiton ni Riak sa pagluwas sa datos. Ang Riak KV adunay daghang mga backend sa arsenal niini: Bitcask, LevelDB, Memory ug Multi.

Dugang pa, ang sistema sa kalkulasyon sa pagtipig naggamit sa Riak MapReduse aron matipon ang mga file ngadto sa mga balde. Nagpasabot kini nga kinahanglan nimong isulti ang tanan nga mga node sa Riak kung asa mangita alang sa giandam nga mga file sa Riak CS sa wala pa mag-compute sa pagtipig.

Daghang ubang mga parameter ang kinahanglang usbon aron ma-configure ang Riak node isip kabahin sa Riak CS system, sama sa IP address ug IP address ug port para sa pagmemensahe pinaagi sa Protocol Buffers. Ang ubang mga setting mahimong usbon kung gikinahanglan. Ang mosunod nga mga seksyon naghulagway kung giunsa ang pag-configure sa usa ka Riak node aron molihok isip bahin sa sistema sa Riak CS.

Pag-set up sa Riak backend

Una, ang riak.conf o advanced.config/app.config configuration files gi-edit. Kini nga mga file mahimong makit-an sa /etc/riak o /opt/riak/etc nga mga direktoryo. Sa kasagaran, gigamit ni Riak ang Bitcask backend. Ang unang butang nga kinahanglan natong buhaton mao ang pag-usab sa configuration file pinaagi sa pagtangtang sa mosunod nga linya:

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

Sunod, kinahanglan natong ipakita ang panginahanglan alang sa RiakCS modules alang sa Riak ug tudloan si Riak sa paggamit sa gi-configure nga backend nga naghatag sa Riak CS. Kinahanglan natong gamiton ang advanced.config o app.config file para niini ug idugang ang mosunod nga mga opsyon:

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

Importante kaayo nga hinumdoman nga daghan niini nga mga bili magdepende sa mga kalainan sa direktoryo nga espesipiko sa imong operating system, busa sunda ang mga instruksyon sumala niana. Pananglitan, ang opsyon sa add_paths nagtuo nga ang Riak CS na-install sa /usr/lib/riak-cs, samtang ang mga opsyon sa data_root nagtuo nga ang Riak na-install sa /var/lib. (Pahinumdom: Sa akong kaso kini add_paths - /usr/lib64/riak-cs/).

Kini nga configuration nagtuo nga ang Riak CS gi-install sa samang makina sama sa Riak. Kung dili, nan ang pakete kinahanglan nga kopyahon sa usa ka bulag nga host.

Pag-set up sa paglalang sa igsoon

Karon, kinahanglan natong itakda ang allow_mult parameter sa tinuod. Makadugang mi og linya sa riak.conf configuration file, o riak_core section sa advanced.config o app.config.

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

Kini magtugot sa Riak sa paghimo sa mga igsoon nga gikinahanglan alang sa Riak CS nga molihok. Kung magkonektar ka sa Riak CS gamit ang librarya sa kliyente, ayaw kabalaka: dili nimo kinahanglan nga sulbaron ang mga panagbangi, tungod kay ang tanan nga operasyon sa Riak CS hugot nga makanunayon ingon nga gipasabut.

Igsuon usa ka paagi sa pagtipig sa daghang mga butang sa usa ka yawe aron ang butang adunay lainlaing mga kantidad sa lainlaing mga node.

Mubo nga sulat: allow_mult
Ang bisan unsang Riak node nga nagsuporta usab sa Riak CS adunay allow_mult nga ibutang sa tinuod sa tanang panahon. I-reset sa Riak CS ang paglansad kung sayup ang kantidad.

Pagbutang sa Hostname ug IP Address

Ang matag Riak node adunay usa ka ngalan, nga mahimong espesipiko sa opsyon sa nodename sa riak.conf. Kung gigamit nimo ang app.config configuration file, kinahanglan ka maghimo ug file nga gitawag ug vm.args sa parehas nga direktoryo sa app.config ug ipiho ang host name gamit ang -name flag. Among girekomendar ang pagpiho sa mga ngalan sa node sa @ format. Ug busa kung ikaw adunay tulo ka mga node nga nagdagan sa usa ka host 100.0.0.1, mahimo nimo silang tawagan [protektado sa email], [protektado sa email]ug [protektado sa email] o makahatag ka ug mas espesipikong mga ngalan, sama sa [protektado sa email], [protektado sa email] ug uban pa. Ang pananglitan sa ubos nagpakita sa pagbag-o sa host name sa [protektado sa email], nga modagan sa localhost.

RIAK.CONF

 nodename = [email protected] 

VM.ARGS

 -name [email protected]

Kinahanglan nimo nga hinganlan ang tanan nga mga node sa dili pa kini magsugod ug moapil sa cluster.

Pagsulay sa pag-setup

Karon nga ang tanan nga gikinahanglan nga mga setting sa node nahuman na, mahimo namong sulayan ang paglansad sa Riak:

SHELL

 riak start 

Nota Ang tubag sa akong kaso:

Pagtipig sa Riak Cloud. Bahin 1: Pagpahimutang sa Riak KV

Dinhi kinahanglan ka maghulat gamay. Dayon mahimo nimong sugdan ang pagsulay sa running node.

SHELL

 riak ping

Kung ang tubag kay pong, nan ang Riak nagdagan; kung ang tubag mao ang Node nga wala motubag sa mga ping, nan adunay sayup.

Nota Ang tubag sa akong kaso:

Pagtipig sa Riak Cloud. Bahin 1: Pagpahimutang sa Riak KV

Kung ang node wala magsugod sa husto, tan-awa ang erlang.log.1 log sa /log nga direktoryo sa node kung ang problema mahimong mailhan. Usa sa kasagarang mga sayop mao ang invalid_storage_backend. Nga nagpakita nga ang dalan sa Riak CS librarya sa advanced.config o sa app.config dili husto (o Riak CS wala ma-install sa server). Bisan pa niini nga sayop, siguroha nga wala ka mausab gikan sa riak_cs_kv_multi_backend ngadto sa riak_kv_multi_backend.

Pag-configure sa Riak aron magamit ang mga buffer sa protocol

Ang Riak protocol buffer settings nahimutang sa riak.conf o sa riak_api section sa advanced.config o app.config files, nga anaa sa /etc/riak/ directory. Sa kasagaran, ang host adunay IP address nga 127.0.0.1 ug port 8087. Kinahanglan nimo nga usbon kini kung nagplano ka nga magpadagan sa Riak ug Riak CS sa usa ka dili lokal nga palibot. Ilisan ang 127.0.0.1 sa Riak host IP address ug port 8087 sa usa ka angay.

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

Mubo nga sulat:Ang bili sa listener.protobuf.internal nga parametro sa riak.conf (o ang bili sa pb parameter sa advanced.conf/app.config) nga file kinahanglang motakdo sa mga bili alang sa riak_host sa Riak CS riak-cs.config ug Stanchion stanchion.conf (o riak_host matag usa sa advanced .config/app.config) nga mga file.

Usa ka nota bahin sa numero sa pantalan
Ang laing numero sa pantalan mahimong gikinahanglan kon ang pantalan mosumpaki sa mga pantalan nga gigamit sa laing aplikasyon o kon ikaw naggamit ug load balancer o proxy server.

Girekomenda usab nga ang mga tiggamit sa pagsiguro nga ang Riak protobuf.backlog gidak-on (o sa advanced.config/app.config files kini mao ang pb_backlog) mao ang katumbas sa o mas dako pa kay sa pool.request.size espesipiko alang sa Riak CS sa riak-cs. config (o request_pool_size sa advanced.config/ app.conf files).

Kon ang bili sa pool.request.size sa Riak CS nausab, nan ang bili sa protobuf.backlog kinahanglan usab nga updated sa Riak.

Ang ubang mga setting sa Riak

Ang riak.conf ug advanced.config nga mga file naglakip sa ubang mga setting nga nag-configure sa paghimo sa mga log file ug kung asa kini gitipigan. Kini nga mga setting adunay mga default nga kantidad ug kinahanglan nga molihok sa kadaghanan nga mga kaso. Alang sa dugang nga kasayuran, among girekomenda nga basahon ang among dokumentasyon bahin sa mga file sa pag-configure.

Pagbutang ug IP address para sa Riak

Kung mag-set up ug IP address para sa Riak, kinahanglan nga sigurado ka nga ang mga node sa Riak adunay usa ka talagsaon nga IP address, bisan kung nagtrabaho ka sa usa lang ka node o nagdugang daghang mga node sa sistema. Ang Riak IP address anaa sa riak.conf o - kon ikaw naggamit sa app.config file - sa vm.args configuration file, nga nahimutang didto sa /etc/riak directory (o /opt/riak/etc/ sa ubang mga operating system).

Sa sinugdan, ang linya nga adunay sulud nga Riak IP address nagpunting sa localhost sa kini nga lokasyon:

RIAK.CONF

 nodename = [email protected]

VM.ARGS

 -name [email protected]

Ilisan ang 127.0.0.1 sa imong gusto nga IP address o hostname sa Riak node.

Performance ug Bandwidth Settings

Alang sa mga hinungdan sa pasundayag, kusganon namon nga girekomenda ang pagdugang mga kantidad sa Riak configuration file nga riak.conf o vm.args, nga nahimutang sa /etc/riak/ o /opt/riak/etc nga direktoryo.

RIAK.CONF

 erlang.max_ports = 65536

VM.ARGS

## This setting should already be present for recent Riak installs.
 -env ERL_MAX_PORTS 65536

Pag-disable sa JavaScript MapReduce

Girekomenda nga dili mogamit sa kabilin nga JavaScript MapReduce sa bisan unsang bersyon sa Riak CS. Alang sa mga rason sa performance, kinahanglan nimong i-disable ang virtual machine nga nagpahigayon sa JavaScript MapReduce operations pinaagi sa pag-set sa riak.conf configuration file, o sa riak_kv section sa advanced.conf o app.config:

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

Sunod kinahanglan namon nga i-configure ang nahabilin nga mga sangkap sa sistema sa Riak CS.

Orihinal nga manwal.

Source: www.habr.com

Idugang sa usa ka comment