Elasticsearch cluster 200 TB+

Elasticsearch cluster 200 TB+

Olona maro no miady amin'ny Elasticsearch. Inona anefa no mitranga rehefa te hampiasa azy io ianao mba hitahirizana logs "amin'ny habeny lehibe indrindra"? Ary tsy maharary ihany koa ve ny miaina ny tsy fahombiazan'ny iray amin'ireo foibe angon-drakitra maromaro? Karazana maritrano inona no tokony hataonao, ary inona no fandrika ho tafintohinao?

Izahay tao amin'ny Odnoklassniki dia nanapa-kevitra ny hampiasa elasticsearch hamahana ny olan'ny fitantanana log, ary izao izahay mizara ny traikefanay amin'ny Habr: na momba ny maritrano na momba ny fandrika.

Izaho dia Pyotr Zaitsev, miasa amin'ny maha-mpiandraikitra ny rafitra ao amin'ny Odnoklassniki aho. Talohan'izay dia admin ihany koa aho, niara-niasa tamin'ny Manticore Search, Sphinx search, Elasticsearch. Angamba, raha misy ... fikarohana hafa miseho, dia mety hiasa miaraka amin'izany koa aho. Mandray anjara an-tsitrapo amin'ny tetikasa open source maromaro ihany koa aho.

Rehefa tonga tao amin'ny Odnoklassniki aho dia nilaza tamin'ny tafatafa aho fa afaka miara-miasa amin'ny Elasticsearch. Taorian'ny nahazatra ahy sy nahavita asa tsotra sasany dia nomena ahy ny asa lehibe amin'ny fanavaozana ny rafitra fitantanana log izay nisy tamin'izany fotoana izany.

fepetra takiana

Ny fepetra takian'ny rafitra dia novolavolaina toy izao manaraka izao:

  • Ny Graylog dia tokony hampiasaina ho frontend. Satria efa nanana traikefa tamin'ny fampiasana an'io vokatra io ny orinasa, fantatry ny mpandrindra sy ny tester izany, nahazatra sy nahazatra azy ireo izany.
  • Ny habetsaky ny angona: amin'ny antsalany 50-80 arivo hafatra isan-tsegondra, fa raha misy zavatra tapaka, dia tsy voafetran'ny na inona na inona ny fifamoivoizana, mety ho andalana 2-3 tapitrisa isan-tsegondra izany.
  • Rehefa niresaka tamin'ny mpanjifa ny fepetra takian'ny hafainganam-pandehan'ny fikarohana fikarohana izahay, dia nahatsapa izahay fa ny fomba mahazatra amin'ny fampiasana rafitra toy izany dia izao: mitady ny diarin'ny fangatahan'izy ireo ny olona nandritra ny roa andro farany ary tsy te hiandry mihoatra ny iray. faharoa ho an'ny valin'ny fanontaniana voavolavola.
  • Nohamafisin’ireo tompon’andraikitra fa ny rafitra dia ho mora mivelatra raha ilaina, tsy mitaky azy ireo handinika lalina ny fomba fiasa.
  • Ka ny hany asa fikojakojana ilain'ireo rafitra ireo dia ny manova fitaovana sasany.
  • Fanampin'izany, manana fomba amam-panao ara-teknika tena tsara ny Odnoklassniki: izay serivisy atomboka dia tsy maintsy tafita velona amin'ny tsy fahombiazan'ny foibe data (tampoka, tsy voaomana ary amin'ny fotoana rehetra).

Ny fepetra farany amin'ny fanatanterahana ity tetikasa ity dia lafo indrindra ho antsika, izay horesahiko amin'ny antsipiriany bebe kokoa.

Alarobia

Miasa amin'ny foibe angon-drakitra efatra izahay, raha tsy misy afa-tsy amin'ny telo ny node data Elasticsearch (noho ny antony tsy ara-teknika).

Ireo foibe angon-drakitra efatra ireo dia misy loharano 18 arivo isan-karazany - fitaovana, kaontenera, milina virtoaly.

Endri-javatra manan-danja: ny cluster dia manomboka amin'ny kaontenera podman tsy amin'ny milina ara-batana, fa amin'ny vokatra rahona tokana tokana. Ny kaontenera dia azo antoka 2 cores, mitovy amin'ny 2.0Ghz v4, miaraka amin'ny fahafahana manodina ny sisa tavela raha tsy miasa izy ireo.

Raha lazaina amin'ny fomba hafa:

Elasticsearch cluster 200 TB+

Topolojia

Hitako tamin'ny voalohany ny endrika ankapoben'ny vahaolana toy izao:

  • 3-4 VIPs no ao ambadiky ny A-record amin'ny sehatra Graylog, io no adiresy handefasana ny log.
  • ny VIP tsirairay dia mpandrindra LVS.
  • Aorian'izany dia mandeha any amin'ny bateria Graylog ny logs, ny sasany amin'ireo angona dia amin'ny endrika GELF, ny sasany amin'ny format syslog.
  • Avy eo izany rehetra izany dia soratana amin'ny ampahany lehibe amin'ny batteran'ny mpandrindra Elasticsearch.
  • Ary izy ireo kosa dia mandefa taratasy sy mamaky fangatahana any amin'ireo node data mifandraika.

Elasticsearch cluster 200 TB+

voambolana

Angamba tsy ny rehetra no mahatakatra ny teny amin'ny an-tsipiriany, ka tiako ny hieritreritra kely.

Ny Elasticsearch dia manana karazana node maromaro - master, coordinator, node data. Misy karazany roa hafa ho an'ny fanovana lozisialy sy fifandraisana eo amin'ny cluster samihafa, saingy ireo voatanisa ihany no nampiasanay.

Master
Izy io dia mametaka ny node rehetra misy ao amin'ny cluster, mitazona sari-tany kluster manara-penitra ary mizara izany eo anelanelan'ny nodes, manamboatra lojika hetsika, ary manao karazana fikarakarana trano isan-karazany.

mpandrindra
Manao asa tokana: manaiky mamaky na manoratra ny fangatahana avy amin'ny mpanjifa ary mandefa ity fifamoivoizana ity. Raha toa ka misy fangatahana fanoratana, dia azo inoana fa hanontany ny tompony hoe iza amin'ireo tondro mifandraika amin'izany no tokony hametrahany azy, ary hamerina ny fangatahana bebe kokoa.

Data node
Mitahiry angon-drakitra, manao fangatahana fikarohana tonga avy any ivelany ary manao asa amin'ny shards hita eo aminy.

graylog
Ity dia zavatra toy ny fifangaroan'i Kibana miaraka amin'ny Logstash ao anaty stack ELK. Graylog dia manambatra ny UI sy ny fantsona fanodinana log. Eo ambanin'ny satroka, Graylog dia mitantana Kafka sy Zookeeper, izay manome fifandraisana amin'ny Graylog ho cluster. Graylog dia afaka mitahiry logs (Kafka) raha toa ka tsy misy ny Elasticsearch ary mamerina ny fangatahana famakiana sy fanoratana tsy nahomby, vondrona ary marika ny logs araka ny fitsipika voafaritra. Tahaka ny Logstash, Graylog dia manana fiasa hanovana andalana alohan'ny hanoratana azy ireo amin'ny Elasticsearch.

Ho fanampin'izay, Graylog dia manana fikarohana serivisy naorina izay mamela, miorina amin'ny node Elasticsearch iray misy, mahazo ny sarintany cluster manontolo ary manivana azy amin'ny alàlan'ny marika manokana, izay ahafahana mandefa fangatahana amin'ny kaontenera manokana.

Raha jerena dia toa izao:

Elasticsearch cluster 200 TB+

Pikantsary avy amin'ny ohatra manokana ity. Eto izahay dia manangana histograma mifototra amin'ny fangatahana fikarohana ary mampiseho andalana mifandraika.

fanondroana

Raha miverina amin'ny rafitra rafitra aho dia te hipetraka amin'ny antsipiriany bebe kokoa momba ny fomba nanamboaranay ny maodely index mba hiasa tsara daholo.

Ao amin'ny kisary etsy ambony, ity no ambaratonga ambany indrindra: Elasticsearch data nodes.

Ny index dia sampana virtoaly lehibe voaforon'ny shards Elasticsearch. Raha ny tena izy, ny tsirairay amin'ireo shards dia tsy inona fa mari-pamantarana Lucene. Ary ny index Lucene tsirairay kosa dia misy fizarana iray na maromaro.

Elasticsearch cluster 200 TB+

Rehefa namolavola dia nihevitra izahay fa mba hahafeno ny fepetra takian'ny hafainganam-pamakiana amin'ny angon-drakitra be dia be, dia mila "manaparitaka" an'io data io amin'ny alàlan'ny node data.

Izany dia niafara tamin'ny zava-misy fa ny isan'ny shards isaky ny index (miaraka amin'ny kopia) dia tokony hitovy tanteraka amin'ny isan'ny nodes data. Voalohany, mba hahazoana antoka fa misy replication mitovy amin'ny roa (izany hoe, dia afaka very ny antsasaky ny cluster). Ary, faharoa, mba handaminana ny fangatahana mamaky sy manoratra amin'ny antsasaky ny cluster.

Ny fotoana fitehirizana aloha no nofaritanay ho 30 andro.

Ny fizarana shards dia azo aseho amin'ny sary toy izao manaraka izao:

Elasticsearch cluster 200 TB+

Ny mahitsizoro maitso maitso manontolo dia fanondro. Ny efamira mena havia ao dia ny shard voalohany, ny voalohany amin'ny fanondro. Ary ny efajoro manga dia shard dika mitovy. Izy ireo dia hita any amin'ny foibe data samihafa.

Rehefa manampy shard hafa isika dia mankany amin'ny foibe data fahatelo. Ary amin'ny farany dia mahazo ity rafitra ity isika, izay ahafahana mamoy ny DC tsy misy fahaverezan'ny data:

Elasticsearch cluster 200 TB+

Ny fihodinan'ny fanondroana, i.e. mamorona tondro vaovao ary mamafa ny tranainy indrindra, nataony mitovy amin'ny 48 ora izany (araka ny fomba fampiasana ny tondro: ny 48 ora farany no karohina matetika).

Ity elanelana fihodinana fanondroana ity dia noho ireto antony manaraka ireto:

Rehefa tonga amin'ny node data manokana ny fangatahana fikarohana, dia, amin'ny fomba fijery fampisehoana, dia mahazo tombony kokoa rehefa anontaniana ny ampahany iray, raha oharina amin'ny haben'ny andilan'ny node ny habeny. Izany dia ahafahanao mitazona ny ampahany "mafana" amin'ny fanondroana ao anaty antontan-taratasy ary miditra haingana. Rehefa be dia be ny "ampahany mafana", dia miharatsy ny hafainganam-pandehan'ny fikarohana index.

Rehefa manomboka manatanteraka fikarohana fikarohana amin'ny shard iray ny node iray, dia manome kofehy maromaro mitovy amin'ny isan'ny core hyperthreading an'ny milina ara-batana. Raha misy fiantraikany amin'ny shards maro ny fangatahana fikarohana, dia mitombo mifandanja ny isan'ny kofehy. Misy fiantraikany ratsy amin'ny hafainganan'ny fikarohana izany ary misy fiantraikany ratsy amin'ny fanondroana angona vaovao.

Mba hanomezana ny fahatarana fikarohana ilaina dia nanapa-kevitra ny hampiasa SSD izahay. Mba hikarakarana haingana ny fangatahana, ny milina nampiantrano ireo kaontenera ireo dia tsy maintsy manana cores 56 farafahakeliny. Ny tarehimarika 56 dia nofidina ho sanda ampy amin'ny fepetra izay mamaritra ny isan'ny kofehy izay hateraky ny Elasticsearch mandritra ny fandidiana. Ao amin'ny Elasitcsearch, maro ny masontsivana dobo filomanosana miankin-doha mivantana amin'ny isan'ny cores misy, izay misy fiantraikany mivantana amin'ny isan'ny nodes ao amin'ny cluster araka ny fitsipika "vitsy cores - nodes bebe kokoa".

Vokatr'izany dia hitanay fa eo ho eo ny lanjan'ny shard iray dia milanja 20 gigabytes, ary misy shards 1 isaky ny index. Noho izany, raha mihodina indray mandeha isaky ny 360 ora isika, dia manana 48 amin'izy ireo. Ny tondro tsirairay dia misy angona mandritra ny 15 andro.

Famoronana angona sy famakian-teny

Andeha hojerentsika ny fomba firaketana ny angona ao amin'ity rafitra ity.

Andeha hatao hoe misy fangatahana tonga avy any Graylog mankany amin'ny mpandrindra. Ohatra, tiantsika ny hanondro andalana 2-3 arivo.

Ny mpandrindra, rehefa nahazo fangatahana avy amin'i Graylog, dia nanontany ny tompony hoe: "Tao amin'ny fangatahana fanondroana, dia nanondro mari-pamantarana manokana izahay, saingy tsy voafaritra ny ampahany hanoratana izany."

Namaly ny tompony hoe: "Soraty amin'ny laharana 71 ity fampahalalana ity," ary avy eo dia alefa mivantana any amin'ny node data mifandraika, izay misy ny laharana voalohany 71.

Aorian'izay dia averina amin'ny replica-shard ny log de transaction, izay hita any amin'ny foibe data hafa.

Elasticsearch cluster 200 TB+

Misy fangatahana fikarohana tonga avy any Graylog mankany amin'ny mpandrindra. Ny mpandrindra dia mamadika izany araka ny fanondroana, raha ny Elasticsearch kosa dia mizara fangatahana eo amin'ny primary-shard sy replica-shard amin'ny fampiasana ny fitsipika round-robin.

Elasticsearch cluster 200 TB+

Ny 180 nodes dia mamaly tsy miangatra, ary raha mamaly izy ireo, ny mpandrindra dia manangona vaovao izay efa "voarora" avy amin'ny node data haingana kokoa. Aorian'izany, rehefa tonga ny fampahalalana rehetra, na tonga amin'ny fe-potoana ny fangatahana, dia manome mivantana ny mpanjifa ny zava-drehetra.

Ity rafitra manontolo ity amin'ny antsalany dia manodina ny fangatahana fikarohana nandritra ny 48 ora farany tao anatin'ny 300-400ms, tsy tafiditra ao anatin'izany ireo fanontaniana miaraka amin'ny wildcard.

Voninkazo misy Elasticsearch: Java setup

Elasticsearch cluster 200 TB+

Mba hampandehanana azy rehetra araka ny nirinay tany am-boalohany, dia nandany fotoana lava be izahay tamin'ny fametahana zavatra isan-karazany tao amin'ny cluster.

Ny ampahany voalohany amin'ireo olana hita dia mifandraika amin'ny fomba nanamboarana an'i Java amin'ny alàlan'ny default ao amin'ny Elasticsearch.

Olana voalohany
Nahita tatitra be dia be izahay fa amin'ny ambaratonga Lucene, rehefa mandeha ny asa any ambadika, dia tsy nahomby ny fizarana Lucene miaraka amin'ny fahadisoana. Tamin'izany fotoana izany dia nazava tao amin'ny logs fa hadisoana OutOfMemoryError izany. Hitanay tamin'ny telemetry fa afaka ny andilana, ary tsy fantatra mazava ny antony nahatonga ity fandidiana ity.

Nipoitra teo ivelan'ny andilana ny fitambaran'ny index Lucene. Ary ny kaontenera dia tena voafetra amin'ny lafiny loharanon-karena ampiasaina. Ny heap ihany no afaka miditra amin'ireo loharano ireo (mitovitovy amin'ny RAM ny sandan'ny heap.size), ary ny asa ivelan'ny amboara sasany dia nianjera niaraka tamin'ny hadisoana famahanana fahatsiarovana raha toa ka tsy tafiditra ao anatin'ny ~500MB izay nijanona teo alohan'ny fetra.

Ny fanamboarana dia tsy dia misy dikany loatra: nitombo ny habetsaky ny RAM ho an'ny kaontenera, ary avy eo adinonay fa nanana olana toy izany aza izahay.

Olana roa
4-5 andro taorian'ny nanombohan'ny cluster dia nahatsikaritra izahay fa nanomboka nipoitra tsindraindray tao anaty cluster ny node data ary niditra tao anatin'ny 10-20 segondra.

Rehefa nanomboka nandinika izany izahay dia hita fa tsy voafehy na amin'ny fomba ahoana na amin'ny fomba ahoana io fitadidiana an-tsokosoko ao amin'ny Elasticsearch io. Rehefa nanome fitadidiana bebe kokoa ny kaontenera izahay dia afaka nameno ny dobo fitehirizana mivantana tamin'ny fampahalalana isan-karazany, ary nesorina izany taorian'ny nanombohan'ny GC mazava tsara avy amin'ny Elasticsearch.

Amin'ny toe-javatra sasany, naharitra ela ity fandidiana ity, ary nandritra izany fotoana izany dia nahavita nanamarika ity node ity ho efa nivoaka ny cluster. Voalaza tsara io olana io eto.

Toy izao ny vahaolana: noferanay ny fahafahan'i Java mampiasa ny ankamaroan'ny fitadidiana ivelan'ny heap ho an'ireo asa ireo. Noferanay ho 16 gigabytes (-XX:MaxDirectMemorySize=16g), miantoka fa ny GC mazava dia antsoina matetika kokoa ary voahodina haingana kokoa, ka tsy manimba ny cluster intsony.

Olana telo
Raha heverinao fa tapitra ny olana amin'ny "nodes miala ny cluster amin'ny fotoana tsy ampoizina indrindra", dia diso ianao.

Rehefa nanamboatra ny asa tamin'ny indexes izahay dia nisafidy mmapfs to mampihena ny fotoana fikarohana amin'ny shards vaovao misy fizarana lehibe. Tena diso izany, satria rehefa mampiasa mmapfs ny rakitra dia voapetaka amin'ny RAM, ary avy eo dia miara-miasa amin'ny rakitra voatanisa. Noho izany dia hita fa rehefa manandrana manakana ny kofehy amin'ny fampiharana ny GC, dia mandeha any amin'ny toerana azo antoka izahay mandritra ny fotoana maharitra, ary eny an-dalana mankany amin'izany, ny fampiharana dia mijanona tsy mamaly ny fangatahan'ny tompony momba ny hoe velona izy io. . Noho izany, mino ny tompony fa tsy ao amin'ny cluster intsony ny node. Aorian'izany, aorian'ny 5-10 segondra, miasa ny mpanangom-pako, velona ny node, miditra ao amin'ny cluster indray ary manomboka manomboka shards. Izany rehetra izany dia nahatsapa ho toy ny "ny famokarana mendrika anay" ary tsy mety amin'ny zava-dehibe.

Mba hanesorana an'io fihetsika io, dia nifindra tamin'ny niofs mahazatra izahay, ary avy eo, rehefa nifindra monina avy amin'ny dikan-teny fahadimy amin'ny Elastic mankany amin'ny fahenina izahay, dia nanandrana hybridfs, izay tsy naverina naverina io olana io. Afaka mamaky bebe kokoa momba ny karazana fitahirizana ianao eto.

Olana efatra
Avy eo dia nisy olana hafa tena mahaliana izay nokarakarainay nandritra ny fotoana fohy. Nosamborinay nandritra ny 2-3 volana izany satria tsy takatry ny saina mihitsy ny lamina.

Indraindray ny mpandrindra anay dia nandeha tany amin'ny Full GC, matetika taorian'ny sakafo antoandro, ary tsy niverina avy tany intsony. Mandritra izany fotoana izany, rehefa manoratra ny fahatarana ny GC dia toa izao: mandeha tsara ny zava-drehetra, tsara, ary indray mandeha - ary ratsy tampoka ny zava-drehetra.

Tamin'ny voalohany dia nihevitra izahay fa nanana mpampiasa ratsy izay nandefa karazana fangatahana izay nandondona ny mpandrindra hiala amin'ny fomba fiasa. Nisoratra anarana izahay nandritra ny fotoana ela be, niezaka ny hamantatra izay nitranga.

Vokatr'izany dia hita fa amin'izao fotoana izao rehefa misy mpampiasa mandefa fangatahana lehibe, ary tonga any amin'ny mpandrindra Elasticsearch manokana, misy nodes mamaly lava kokoa noho ny hafa.

Ary raha miandry valiny avy amin'ny nodes rehetra ny mpandrindra dia manangona ny vokatra nalefa avy amin'ireo nodes efa namaly izy. Ho an'ny GC, midika izany fa miova haingana dia haingana ny maodelin'ny fampiasana amboara. Ary ny GC izay nampiasainay dia tsy nahazaka izany asa izany.

Ny hany vahaolana hitanay hanovana ny fihetsiky ny cluster amin'ity toe-javatra ity dia ny fifindra-monina mankany amin'ny JDK13 sy ny fampiasana ny mpanangom-pako Shenandoah. Namaha ny olana izany, nijanona tsy nianjera ireo mpandrindra anay.

Teo no nifaranan'ny olana tamin'ny Java ary nanomboka ny olan'ny bandwidth.

"Berries" miaraka amin'ny Elasticsearch: throughput

Elasticsearch cluster 200 TB+

Ny olana amin'ny fampandehanana dia midika fa miasa tsara ny klustery, saingy amin'ny faratampony amin'ny isan'ny antontan-taratasy voatondro sy mandritra ny fihetsehana, dia tsy ampy ny fampisehoana.

Ny soritr'aretina voalohany hita: mandritra ny "fipoahana" sasany amin'ny famokarana, rehefa misy logs be dia be mipoitra tampoka, ny fahadisoana fanondroana es_rejected_execution dia manomboka mitselatra matetika ao amin'ny Graylog.

Izany dia noho ny fisian'ny thread_pool.write.queue amin'ny node data iray, mandra-pahatongan'ny fotoana ahafahan'ny Elasticsearch manodina ny fangatahana fanondroana sy mampakatra ny vaovao amin'ny shard amin'ny kapila, dia afaka mitahiry fangatahana 200 fotsiny amin'ny alàlan'ny default. Ary in Elasticsearch antontan-taratasy Kely dia lazaina momba io paramètre io. Ny isa ambony indrindra amin'ny kofehy sy ny haben'ny default ihany no aseho.

Mazava ho azy fa nandeha nanodikodina an'io sanda io izahay ary nahita ireto manaraka ireto: indrindra, amin'ny fametrahanay, hatramin'ny fangatahana 300 no voatahiry tsara, ary ny sanda ambony kokoa dia feno ny zava-misy fa manidina indray amin'ny Full GC izahay.

Ho fanampin'izany, satria andiana hafatra tonga ao anatin'ny fangatahana iray ireo, dia ilaina ny manitsy ny Graylog mba tsy hanoratra matetika sy amin'ny ampahany kely, fa amin'ny ampahany lehibe na indray mandeha isaky ny 3 segondra raha mbola tsy feno ny andiany. Amin'ity tranga ity, hita fa ny fampahalalana izay soratanay ao amin'ny Elasticsearch dia tsy hita ao anatin'ny roa segondra, fa ao anatin'ny dimy (izay mifanentana aminay tsara), fa ny isan'ny famerenana izay tsy maintsy atao mba hanosehana ny lehibe. mihena ny antontam-baovao.

Tena zava-dehibe tokoa izany amin'ireo fotoana izay misy zavatra nianjera any ho any ary mitatitra momba izany, mba tsy hahazoana spammed Elastic tanteraka, ary rehefa afaka kelikely - Graylog nodes izay tsy azo ampiasaina noho ny clogged buffers.

Fanampin'izany, rehefa nisy fipoahana mitovy amin'izany tamin'ny famokarana, dia nahazo fitarainana avy amin'ny programmer sy ny tester izahay: tamin'ny fotoana tena nilain'izy ireo ireo logs ireo dia nomena tsikelikely.

Nanomboka nahafantatra izany izy ireo. Amin'ny lafiny iray, mazava tsara fa ny fangatahana fikarohana sy ny fanondroana fanondroana dia nokarakaraina, amin'ny ankapobeny, amin'ny milina ara-batana iray ihany, ary amin'ny fomba iray na amin'ny fomba hafa dia hisy fisintonana sasany.

Saingy mety ho voahodina amin'ny ampahany izany noho ny zava-misy fa ao amin'ny dikan-teny fahenina amin'ny Elasticsearch dia nisy algorithm izay ahafahanao mizara fanontaniana eo amin'ireo node data mifandraika tsy araka ny fitsipika round-robin kisendrasendra (ny fitoeran-javatra izay manao indexing ary mitazona ny voalohany- shard dia mety ho sahirana be, tsy hisy fomba hamaliana haingana), fa ny fandefasana ity fangatahana ity any amin'ny kaontenera tsy dia misy entana miaraka amin'ny replica-shard, izay hamaly haingana kokoa. Raha lazaina amin'ny teny hafa dia tonga tao amin'ny use_adaptive_replica_selection izahay: marina.

Ny sary mamaky dia manomboka toy izao:

Elasticsearch cluster 200 TB+

Ny fifindrana amin'ity algorithm ity dia nahafahana nanatsara ny fotoam-panontaniana tamin'ireo fotoana nanananay fikorianan'ny diary maro hanoratana.

Farany, ny olana lehibe indrindra dia ny fanesorana tsy misy fanaintainana ny foibe data.

Ny zavatra tadiavinay avy amin'ny cluster avy hatrany taorian'ny nahalany ny fifandraisana tamin'ny DC iray:

  • Raha manana tompo amin'izao fotoana izao ao amin'ny foibe angon-drakitra tsy nahomby isika, dia hofantenana indray izy io ary hafindra ho anjara amin'ny node hafa amin'ny DC hafa.
  • Ny tompony dia hanaisotra haingana ny node tsy azo idirana amin'ny cluster.
  • Mifototra amin'ireo sisa tavela, ho azony ny: ao amin'ny foibe angon-drakitra very nananantsika shards voalohany sy toy izany, dia hampiroborobo haingana ny shards dika mitovy amin'ny foibe data sisa, ary hanohy ny fanondroana ny angon-drakitra izahay.
  • Vokatr'izany dia hiharatsy tsikelikely ny fanoratana sy ny famakian'ny cluster, fa amin'ny ankapobeny dia hiasa ny zava-drehetra, na dia miadana aza, fa milamina.

Araka ny fantatra dia naniry zavatra toy izao izahay:

Elasticsearch cluster 200 TB+

Ary nahazo ireto manaraka ireto izahay:

Elasticsearch cluster 200 TB+

Ahoana no nahatonga izany?

Rehefa nianjera ny ivom-pamokarana, ny tomponay no lasa bottleneck.

Nahoana?

Ny zava-misy dia manana TaskBatcher ny tompony, izay tompon'andraikitra amin'ny fizarana asa sy hetsika sasany ao amin'ny cluster. Na inona na inona fivoahana node, na fampiroboroboana shard manomboka amin'ny kopia mankany amin'ny voalohany, asa rehetra hamoronana shard any ho any - izany rehetra izany dia mandeha voalohany amin'ny TaskBatcher, izay amboarina tsikelikely sy amin'ny kofehy iray.

Tamin'ny fotoana nisintonana ivom-pamokarana iray dia hita fa ny angon-drakitra rehetra ao amin'ny ivontoerana angon-drakitra velona dia nihevitra fa adidin'izy ireo ny mampahafantatra ny tompon'andraikitra hoe "very ny sombintsombiny sy ny toy izany ary ny toy izany."

Tamin'izay fotoana izay ihany, ireo node data velona dia nandefa izany fampahalalana rehetra izany ho an'ny tompony ankehitriny ary niezaka niandry ny fanamafisana fa nanaiky izany izy. Tsy niandry izany izy ireo, satria nahazo asa haingana kokoa noho izay azony valiana ny tompony. Ny nodes dia nandany ny famerimberenana ny fangatahana, ary ny tompony tamin'io fotoana io dia tsy niezaka namaly azy ireo akory, fa variana tanteraka tamin'ny asa fanasokajiana ny fangatahana amin'ny laharam-pahamehana.

Amin'ny endrika terminal, dia hita fa ny node angon-drakitra dia nandefa ny tompony ka niditra tao amin'ny GC feno. Taorian'izay dia nifindra tany amin'ny node manaraka ny andraikitry ny tomponay, mitovy tanteraka amin'izany, ary vokatr'izany dia nirodana tanteraka ny cluster.

Nanao fandrefesana izahay, ary talohan'ny dikan-6.4.0, izay nametrahana azy io, dia ampy ho anay ny mamoaka ny angona data 10 amin'ny 360 ihany mba hanakanana tanteraka ny cluster.

Toa toy izao ilay izy:

Elasticsearch cluster 200 TB+

Taorian'ny version 6.4.0, izay nametrahana an'ity bug mahatsiravina ity, dia nijanona namono ny tompony ny node data. Tsy nahatonga azy ho “mahay kokoa” anefa izany. Izany hoe: rehefa mamoaka angon-drakitra 2, 3 na 10 (isa hafa ankoatra ny iray) ny tompo dia mahazo hafatra voalohany milaza fa niala ny node A, ary manandrana milaza ny node B, ny node C momba izany, ny node D.

Ary amin'izao fotoana izao, izany dia tsy azo atao afa-tsy amin'ny alalan'ny fametrahana fe-potoana ho an'ny fiezahana hilaza amin'olona momba ny zavatra iray, mitovy amin'ny 20-30 segondra eo ho eo, ary noho izany dia mifehy ny hafainganam-pandehan'ny foibe angon-drakitra mivoaka ny cluster.

Amin'ny ankapobeny, mifanaraka amin'ny fepetra izay natolotra tamin'ny voalohany ny vokatra farany ho ampahany amin'ny tetikasa izany, fa raha ny fomba fijerin'ny "siansa madio" dia bibikely. Izay, raha ny marina, dia nahomby tamin'ny mpamorona tamin'ny version 7.2.

Ankoatr'izay, rehefa nivoaka ny node data iray, dia hita fa zava-dehibe kokoa ny fanaparitahana vaovao momba ny fivoahany noho ny filazana amin'ny cluster manontolo fa misy tsipika voalohany ao aminy (mba hampiroboroboana ny replica-shard amin'ny angon-drakitra hafa. afovoany amin'ny voalohany, ary azo soratana amin'ny fampahalalana azy ireo).

Noho izany, rehefa maty ny zava-drehetra, dia tsy voamarika avy hatrany ho efa maty ireo node data navoaka. Noho izany, voatery miandry isika mandra-pahatongan'ny fotoana rehetra ho an'ny pings rehetra amin'ireo node data navoaka, ary aorian'izay dia manomboka milaza amintsika ny cluster fa any ho any, any ary any dia mila manohy mirakitra vaovao. Afaka mamaky bebe kokoa momba izany ianao eto.

Vokatr'izany, mila 5 minitra eo ho eo isika mandritra ny ora maimaika ny hetsika fanalana ivom-baovao androany. Ho an'ny colossus lehibe sy kivy toy izany, dia vokatra tsara izany.

Vokatr'izany dia nandray izao fanapahan-kevitra izao izahay:

  • Manana node data 360 misy kapila 700 gigabyte izahay.
  • Mpandrindra 60 amin'ny fampandehanana ny fifamoivoizana amin'ny alàlan'ireo node data ireo ihany.
  • tompo 40 izay navelanay ho karazana lova hatramin'ny dikan-teny talohan'ny 6.4.0 - mba ho tafavoaka velona tamin'ny fanesorana ny foibe angon-drakitra, dia niomana ara-tsaina izahay hamoy milina maromaro mba hahazoana antoka fa hanana kôlejin'ny tompo na dia amin'ny ny tranga ratsy indrindra
  • Izay andrana hanambatra anjara amin'ny kaontenera iray dia nifanena tamin'ny zava-misy fa na ho ela na ho haingana dia ho tapaka ny node eo ambany enta-mavesatra.
  • Ny cluster manontolo dia mampiasa habe 31 gigabytes: ny ezaka rehetra hampihenana ny habeny dia nahafaty ny nodes sasany tamin'ny fangatahana fikarohana mavesatra miaraka amin'ny wildcard voalohany na ny fahazoana ny fiatoana amin'ny Elasticsearch mihitsy.
  • Ho fanampin'izay, mba hiantohana ny fahombiazan'ny fikarohana, dia niezaka nitazona ny isan'ny zavatra ao amin'ny cluster ho kely araka izay azo atao izahay, mba hikarakarana hetsika vitsivitsy araka izay azo atao ao amin'ny bottleneck izay azonay tao amin'ny master.

Farany momba ny fanaraha-maso

Mba hahazoana antoka fa mandeha araka ny tokony ho izy ireo rehetra ireo, dia manara-maso ireto manaraka ireto izahay:

  • Ny node data tsirairay dia mitatitra amin'ny rahonay fa misy izy io, ary misy sombintsombiny toy izany. Rehefa mamono zavatra any ho any isika, ny cluster dia mitatitra ao anatin'ny 2-3 segondra fa ao afovoany A dia namono ny node 2, 3, ary 4 - midika izany fa any amin'ny foibe data hafa dia tsy afaka mamono ireo node izay tsy misy afa-tsy iray ihany isika. ankavia.
  • Ny fahafantarana ny toetran'ny fitondran-tenan'ny tompony dia mijery tsara ny isan'ny asa miandry isika. Satria na dia asa iray miraikitra aza, raha tsy lany ara-potoana, ara-teorika amin'ny toe-javatra maika dia mety ho lasa antony, ohatra, ny fampiroboroboana ny replica shard amin'ny voalohany dia tsy mandeha, ka izany no mahatonga ny fanondroana tsy hiasa.
  • Jerenay akaiky ihany koa ny fahataran'ny mpanangona fako, satria efa nisy fahasahiranana lehibe tamin'izany nandritra ny fanatsarana.
  • Mandà amin'ny kofehy mba hahafantarana mialoha ny toerana misy ny bottleneck.
  • Eny, metrika mahazatra toy ny heap, RAM ary I/O.

Rehefa manangana fanaraha-maso dia tsy maintsy mandinika ny endrik'ilay Thread Pool ao amin'ny Elasticsearch ianao. Elasticsearch Documentation dia manoritsoritra ny safidin'ny fanefena sy ny soatoavina voatokana ho an'ny fikarohana sy ny fanondroana, fa mangina tanteraka momba ny thread_pool.management. Mihodina ireto kofehy ireto, indrindra ny fanontaniana toy ny _cat/shards sy ireo hafa mitovy aminy, izay mora ampiasaina rehefa manoratra fanaraha-maso. Arakaraky ny lehibe kokoa ny cluster, ny fangatahana toy izany dia tanterahina isaky ny vanim-potoana, ary ny thread_pool.management voalaza etsy ambony dia tsy aseho ao amin'ny antontan-taratasy ofisialy, fa voafetra ihany koa amin'ny alàlan'ny kofehy 5, izay ariana haingana, aorian'ny izay manara-maso tsy miasa tsara.

Ny tiako holazaina amin'ny fehin-kevitra: vitantsika izany! Afaka nanome fitaovana ho an'ny mpandrindra sy mpamorona anay izahay izay, amin'ny toe-javatra rehetra, afaka manome fampahalalana haingana sy azo antoka momba ny zava-mitranga amin'ny famokarana.

Eny, nanjary sarotra be izany, saingy, na izany aza, dia nahavita nampifanaraka ny fanirianay tamin'ny vokatra efa misy izahay, izay tsy voatery napetaka sy nosoratana ho an'ny tenanay.

Elasticsearch cluster 200 TB+

Source: www.habr.com

Add a comment