రియాక్ CS (క్లౌడ్ స్టోరేజ్) - రియాక్ KV పైన అమలవుతున్న వస్తువు నిల్వను నిర్వహించడానికి సులభమైన సాఫ్ట్వేర్. రియాక్ (KV) అనేది పంపిణీ చేయబడిన NoSQL కీ-విలువ డేటాబేస్. Riak CS సరళత, లభ్యత, క్లౌడ్ స్టోరేజ్ యొక్క ఏ స్కేల్ యొక్క పంపిణీని అందించడానికి రూపొందించబడింది మరియు క్లౌడ్ ఆర్కిటెక్చర్లను రూపొందించడానికి - పబ్లిక్ మరియు ప్రైవేట్ రెండూ - లేదా అధిక లోడ్ చేయబడిన అప్లికేషన్లు మరియు సేవల కోసం మౌలిక సదుపాయాల నిల్వగా ఉపయోగించవచ్చు. Riak CS API Amazon S3కి అనుకూలంగా ఉంటుంది మరియు వివిధ పరిస్థితులపై నివేదికలను స్వీకరించే సామర్థ్యానికి మద్దతు ఇస్తుంది.
ఈ కథనం Riak CS సిస్టమ్ వెర్షన్ 2.1.1 కోసం అధికారిక మాన్యువల్ యొక్క ఉచిత అనువాదం
Riak CS నిల్వ వ్యవస్థలో, మూడు భాగాలు ఒకదానితో ఒకటి కలిసి పని చేస్తాయి, అంటే ప్రతి భాగం ఇతర భాగాలతో పనిచేయడానికి కాన్ఫిగర్ చేయబడాలి:
- రియాక్ (KV) - ఎండ్ సిస్టమ్గా పనిచేసే డేటాబేస్ సిస్టమ్.
- రియాక్ సిఎస్ - Riak పైన ఉన్న క్లౌడ్ స్టోరేజ్ లేయర్ నిల్వ మరియు API సామర్థ్యాలను అందిస్తుంది, ఫైల్లు మరియు మెటాడేటాను Riakలో నిల్వ చేస్తుంది, ఆపై వాటిని తుది వినియోగదారులకు పంపిణీ చేస్తుంది.
- స్టాంచియన్ - రియాక్ ఇన్స్టాన్స్లో బకెట్లు మరియు యూజర్లు వంటి ప్రపంచవ్యాప్తంగా ప్రత్యేకమైన ఎంటిటీలతో కూడిన ప్రశ్నలను నిర్వహిస్తుంది. ఉదాహరణకు, వినియోగదారులను సృష్టించడం, బకెట్లను సృష్టించడం లేదా తొలగించడం.
అదనంగా, మీరు Riak CS సిస్టమ్తో సందేశం పంపడానికి S3 క్లయింట్ను కూడా కాన్ఫిగర్ చేయవచ్చు.
మీరు మీ సిస్టమ్లోని ప్రతి రియాక్ CS నోడ్కు ఒక రియాక్ నోడ్ని కలిగి ఉండేలా ప్లాన్ చేసుకోవాలి. Riak మరియు Riak CS నోడ్లను వేర్వేరు భౌతిక యంత్రాలపై అమలు చేయవచ్చు, కానీ చాలా సందర్భాలలో ఒకే భౌతిక మెషీన్లో ఒక Riak నోడ్ మరియు ఒక Riak CS నోడ్ను అమలు చేయడం ఉత్తమం. ఒక భౌతిక యంత్రం Riak మరియు Riak CS నోడ్ల అవసరాలను తీర్చడానికి తగినంత శక్తిని కలిగి ఉందని ఊహిస్తే, నెట్వర్క్ జాప్యం తగ్గిన కారణంగా మీరు సాధారణంగా మెరుగైన పనితీరును చూస్తారు.
మీ సిస్టమ్ అనేక నోడ్లను కలిగి ఉంటే, కాన్ఫిగరేషన్ ప్రాథమికంగా కాంపోనెంట్ల మధ్య కమ్యూనికేషన్ను సెటప్ చేయడం. లాగ్ ఫైల్లు ఎక్కడ నిల్వ చేయబడతాయో వంటి ఇతర సెట్టింగ్లు డిఫాల్ట్ విలువలను కలిగి ఉంటాయి మరియు మీరు ప్రామాణికం కాని విలువలను ఉపయోగించాలనుకుంటే మాత్రమే మార్చాలి.
సిస్టమ్ భాగాలను ఏర్పాటు చేస్తోంది. CS కోసం Riak KVని ఏర్పాటు చేస్తోంది
Riak CS అనేది Riak పైన నిర్మించిన అప్లికేషన్ కాబట్టి, Riak CSని అమలు చేస్తున్నప్పుడు మీ రియాక్ కాన్ఫిగరేషన్పై దృష్టి పెట్టడం చాలా ముఖ్యం. ఈ పత్రం రియాక్ కాన్ఫిగరేషన్ గైడ్ మరియు ముఖ్యమైన కాన్ఫిగరేషన్ పారామితులను వివరించే సూచన పత్రం రెండూ.
సెటప్ చేయడానికి ముందు, మీ క్లస్టర్లోని ప్రతి నోడ్లో Riak KV మరియు Riak CS ఇన్స్టాల్ చేయబడిందని నిర్ధారించుకోండి. మరోవైపు, స్టాన్చియన్ మొత్తం క్లస్టర్లో ఒక నోడ్లో మాత్రమే ఇన్స్టాల్ చేయబడాలి.
రియాక్ CS కోసం బ్యాకెండ్లు
Riak ఉపయోగించే డిఫాల్ట్ బ్యాకెండ్ Bitcask, కానీ Riak CS ప్యాకేజీలో Riak CS సిస్టమ్లో భాగమైన Riak క్లస్టర్ తప్పనిసరిగా ఉపయోగించాల్సిన ప్రత్యేక బ్యాకెండ్ ఉంటుంది. రెగ్యులర్ వెర్షన్లో రియాక్తో వచ్చే స్టాండర్డ్ మల్టీ బ్యాకెండ్ ఉంది.
Riak CS లోపల ఉపయోగించిన అదే Riak బకెట్లు సెకండరీ ఇండెక్స్లను ఉపయోగిస్తాయి, దీనికి ఇప్పుడు LevelDB బ్యాకెండ్ అవసరం. Riak CS సిస్టమ్లోని ఇతర భాగాలు Bticask బ్యాకెండ్ని ఉపయోగించడం ద్వారా ప్రయోజనం పొందవచ్చు. పనితీరు మరియు కార్యాచరణ యొక్క ఉత్తమ కలయికను సాధించడానికి ఈ రెండు బ్యాకెండ్ల ప్రయోజనాన్ని పొందడానికి నమూనా మల్టీ బ్యాకెండ్ యొక్క ఉపయోగం Riak CSలో చేర్చబడింది. ఈ మల్టీ-బ్యాకెండ్ని ఉపయోగించడానికి Riakను సరిగ్గా కాన్ఫిగర్ చేయడం ఎలాగో తదుపరి విభాగం వివరిస్తుంది.
బ్యాకెండ్ డేటాను సేవ్ చేయడానికి Riak ఉపయోగించేది. Riak KV దాని ఆయుధశాలలో అనేక బ్యాకెండ్లను కలిగి ఉంది: Bitcask, LevelDB, మెమరీ మరియు మల్టీ.
అదనంగా, స్టోరేజ్ లెక్కింపు సిస్టమ్ ఫైల్లను బకెట్లలోకి చేర్చడానికి Riak MapReduseని ఉపయోగిస్తుంది. స్టోరేజ్ని కంప్యూటింగ్ చేయడానికి ముందు మీరు సిద్ధం చేసిన Riak CS ఫైల్ల కోసం ఎక్కడ వెతకాలో అన్ని రియాక్ నోడ్లకు చెప్పాలి.
Riak CS సిస్టమ్లో భాగంగా Riak నోడ్ను కాన్ఫిగర్ చేయడానికి IP చిరునామా మరియు IP చిరునామా మరియు ప్రోటోకాల్ బఫర్ల ద్వారా సందేశం పంపడానికి పోర్ట్ వంటి అనేక ఇతర పారామితులను తప్పనిసరిగా మార్చాలి. అవసరమైతే ఇతర సెట్టింగులను మార్చవచ్చు. Riak CS సిస్టమ్లో భాగంగా ఆపరేట్ చేయడానికి Riak నోడ్ను ఎలా కాన్ఫిగర్ చేయాలో క్రింది విభాగాలు వివరిస్తాయి.
రియాక్ బ్యాకెండ్ని సెటప్ చేస్తోంది
ముందుగా, riak.conf లేదా advanced.config/app.config కాన్ఫిగరేషన్ ఫైల్లు సవరించబడతాయి. ఈ ఫైల్లు /etc/riak లేదా /opt/riak/etc డైరెక్టరీలలో ఉంటాయి. డిఫాల్ట్గా, రియాక్ బిట్కాస్క్ బ్యాకెండ్ని ఉపయోగిస్తుంది. కింది పంక్తిని తొలగించడం ద్వారా కాన్ఫిగరేషన్ ఫైల్ను మార్చడం మనం చేయవలసిన మొదటి విషయం:
RIAK.CONF
## Delete this line:
storage_backend = bitcask
అధునాతన.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 ఫైల్ని ఉపయోగించాలి మరియు క్రింది ఎంపికలను జోడించాలి:
అధునాతన.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
అధునాతన.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కి మద్దతిచ్చే ఏదైనా రియాక్ నోడ్లో అన్ని సమయాల్లో true_mult సెట్ చేయబడుతుంది. విలువ తప్పు అయితే Riak CS లాంచ్ని రీసెట్ చేస్తుంది.
హోస్ట్ పేరు మరియు IP చిరునామాను సెట్ చేస్తోంది
ప్రతి రియాక్ నోడ్కు ఒక పేరు ఉంటుంది, దీనిని riak.confలోని నోడెనేమ్ ఎంపికలో పేర్కొనవచ్చు. మీరు app.config కాన్ఫిగరేషన్ ఫైల్ని ఉపయోగిస్తుంటే, మీరు app.config డైరెక్టరీలో vm.args అనే ఫైల్ని సృష్టించాలి మరియు -name ఫ్లాగ్ని ఉపయోగించి హోస్ట్ పేరును పేర్కొనాలి. @ ఫార్మాట్లో నోడ్ పేర్లను పేర్కొనమని మేము సిఫార్సు చేస్తున్నాము. కాబట్టి మీరు ఒక హోస్ట్ 100.0.0.1లో మూడు నోడ్లను కలిగి ఉంటే, మీరు వాటిని కాల్ చేయవచ్చు [ఇమెయిల్ రక్షించబడింది], [ఇమెయిల్ రక్షించబడింది]మరియు [ఇమెయిల్ రక్షించబడింది] లేదా మీరు మరిన్ని నిర్దిష్ట పేర్లను ఇవ్వవచ్చు [ఇమెయిల్ రక్షించబడింది], [ఇమెయిల్ రక్షించబడింది] మరియు అందువలన న. దిగువ ఉదాహరణ హోస్ట్ పేరును మార్చడాన్ని ప్రదర్శిస్తుంది [ఇమెయిల్ రక్షించబడింది], ఇది లోకల్ హోస్ట్లో రన్ అవుతుంది.
RIAK.CONF
nodename = [email protected]
VM.ARGS
-name [email protected]
మీరు అన్ని నోడ్లను ప్రారంభించి, క్లస్టర్లో చేరడానికి ముందు తప్పనిసరిగా పేరు పెట్టాలి.
సెటప్ పరీక్ష
ఇప్పుడు అవసరమైన అన్ని నోడ్ సెట్టింగ్లు పూర్తయ్యాయి, మేము రియాక్ని ప్రారంభించేందుకు ప్రయత్నించవచ్చు:
SHELL
riak start
గమనిక నా విషయంలో సమాధానం:
ఇక్కడ మీరు కొంచెం వేచి ఉండాలి. అప్పుడు మీరు నడుస్తున్న నోడ్ను పరీక్షించడం ప్రారంభించవచ్చు.
SHELL
riak ping
ప్రతిస్పందన పాంగ్ అయితే, రియాక్ రన్ అవుతోంది; నోడ్ పింగ్లకు ప్రతిస్పందించనట్లయితే, ఏదో తప్పు జరిగింది.
గమనిక నా విషయంలో సమాధానం:
నోడ్ సరిగ్గా ప్రారంభం కాకపోతే, సమస్యను గుర్తించగలిగితే, నోడ్ యొక్క /లాగ్ డైరెక్టరీలో 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 లేదా riak_api విభాగంలో అధునాతన.config లేదా app.config ఫైల్లలో ఉన్నాయి, ఇవి /etc/riak/ డైరెక్టరీలో ఉన్నాయి. డిఫాల్ట్గా, హోస్ట్కి 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
అధునాతన.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 ఫైల్లలో request_pool_size).
Riak CSలో pool.request.size విలువ మార్చబడినట్లయితే, protobuf.backlog విలువ తప్పనిసరిగా 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 చిరునామాను కలిగి ఉన్న లైన్ ఈ స్థానంలో ఉన్న లోకల్ హోస్ట్ను సూచిస్తుంది:
RIAK.CONF
nodename = [email protected]
VM.ARGS
-name [email protected]
127.0.0.1ని మీ ప్రాధాన్య IP చిరునామా లేదా రియాక్ నోడ్ యొక్క హోస్ట్ పేరుతో భర్తీ చేయండి.
పనితీరు మరియు బ్యాండ్విడ్త్ సెట్టింగ్లు
పనితీరు కారణాల దృష్ట్యా, /etc/riak/ లేదా /opt/riak/etc డైరెక్టరీలో ఉన్న 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ని నిలిపివేస్తోంది
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
అధునాతన.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