{"id":74327,"date":"2020-03-16T08:42:33","date_gmt":"2020-03-16T05:42:33","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/tonkoe-rezervirovanie-fajlovyh-sistem-linux-kak-sozdavat-rabochie-kopii-trehterabajtnoj-subd-mysql-za-20-sekund"},"modified":"2020-03-16T08:42:33","modified_gmt":"2020-03-16T05:42:33","slug":"tonkoe-rezervirovanie-fajlovyh-sistem-linux-kak-sozdavat-rabochie-kopii-trehterabajtnoj-subd-mysql-za-20-sekund","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/tonkoe-rezervirovanie-fajlovyh-sistem-linux-kak-sozdavat-rabochie-kopii-trehterabajtnoj-subd-mysql-za-20-sekund","title":{"rendered":"Rezervimi i holl\u00eb i sistemeve t\u00eb skedar\u00ebve Linux. Si t\u00eb krijoni kopje funksionale t\u00eb nj\u00eb databaze MySQL tre terabajt\u00eb n\u00eb 20 sekonda","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Rezervimi i holl\u00eb i sistemeve t\u00eb skedar\u00ebve Linux. Si t\u00eb krijoni kopje funksionale t\u00eb nj\u00eb databaze MySQL tre terabajt\u00eb n\u00eb 20 sekonda\" src=\"\/wp-content\/uploads\/2020\/03\/7502785a78bd6f069913e97829ff2f63.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u00eb quajn\u00eb Yuri, un\u00eb jam udh\u00ebheq\u00ebs i grupit t\u00eb administrat\u00ebs sistemike n\u00eb Sitimobil. Sot do t\u00eb ndaj p\u00ebrvoj\u00ebn time mbi teknologjin\u00eb e rezervimit t\u00eb holl\u00eb (thin provisioning) t\u00eb sistemeve t\u00eb skedar\u00ebve Linux dhe do t\u00eb flas p\u00ebr m\u00ebnyr\u00ebn si mund t\u00eb aplikohet n\u00eb proceset CI\/CD t\u00eb kompanis\u00eb. Ne do t\u00eb shqyrtojm\u00eb situat\u00ebn kur p\u00ebr testimin automatizuar t\u00eb kodit gjat\u00eb dor\u00ebzimit n\u00eb producim na nevojiten sa m\u00eb shpejt kopjet e baz\u00ebs s\u00eb t\u00eb dh\u00ebnave MySQL, q\u00eb jan\u00eb sa m\u00eb af\u00ebr versionit 'aktive', t\u00eb disponueshme p\u00ebr lexim dhe shkrim.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"vvedenie-zachem-davat-vrednye-sovety\">Hyrje: p\u00ebrse t\u00eb jap\u00ebsh k\u00ebshilla t\u00eb d\u00ebmshme?<\/h3>\n<p><\/p>\n<p>Nj\u00eb pyetje logjike, sepse ekzistojn\u00eb mekanizma t\u00eb provuar p\u00ebr migrimin e skemave t\u00eb DB n\u00eb ambientet testuese. Pse ta \u00e7ojm\u00eb baz\u00ebn e t\u00eb dh\u00ebnave q\u00eb nuk \u00ebsht\u00eb e ndar\u00eb n\u00eb k\u00ebto p\u00ebrmasa? Plus, p\u00ebr testimin nuk nevojiten t\u00eb dh\u00ebna t\u00eb gjitha. Do t\u00eb p\u00ebrpiqem ta shpjegoj.<\/p>\n<p><\/p>\n<p>Rreth nj\u00eb vit m\u00eb par\u00eb, n\u00eb sfondin e rritjes aktive t\u00eb agregatorit ton\u00eb t\u00eb taksave (n\u00eb vitin 2018 u rrit\u00ebm p\u00ebr afro 15 her\u00eb n\u00eb lidhje me udh\u00ebtimet e p\u00ebrfunduara), u rrit\u00ebn volumet e t\u00eb dh\u00ebnave, ngarkesa mbi server\u00ebt, frekuenca e l\u00ebshimeve. Ne u gjend\u00ebm n\u00eb situat\u00ebn e m\u00ebposhtme:<\/p>\n<p><\/p>\n<ul>\n<li>Baza e t\u00eb dh\u00ebnave MySQL u rrit n\u00eb rreth 1000 tabela me nj\u00eb v\u00ebllim total prej 2.5 TB dhe vazhdoi t\u00eb rritet.<\/li>\n<li>Nuk kishte mund\u00ebsi t\u00eb shpejt\u00eb p\u00ebr t\u00eb b\u00ebr\u00eb sharding dhe p\u00ebr t\u00eb shp\u00ebrndar\u00eb baz\u00ebn. Kjo nuk e lejonte qasja e vjet\u00ebr \"shkruaj n\u00eb baz\u00eb se \u00e7far\u00eb dua dhe si dua\", nj\u00eb mori JOIN-esh dhe var\u00ebsish tabelash.<\/li>\n<li>Nuk kishte mekaniz\u00ebm p\u00ebr migrimin e skemave t\u00eb baz\u00ebs s\u00eb t\u00eb dh\u00ebnave n\u00eb ambientet testuese.<\/li>\n<li>Nuk kishte testim automatizuar t\u00eb kodit gjat\u00eb l\u00ebshimeve n\u00eb prodhim.<\/li>\n<\/ul>\n<p><\/p>\n<p>D\u00ebshira p\u00ebr t\u00eb zgjidhur problemin e fundit ishte e madhe. T\u00eb testet Postman p\u00ebr verifikimin e monolitit kryesor PHP ishin tashm\u00eb shkruar, por na mungonte nj\u00eb baz\u00eb t\u00eb dh\u00ebnash aktuale. Megjithat\u00eb, nuk mund t\u00eb krijonim nj\u00eb replik\u00eb gjat\u00eb nat\u00ebs, ta b\u00ebjm\u00eb at\u00eb master dhe ta japim p\u00ebr p\u00ebrdorim gjat\u00eb dit\u00ebs: numri shum\u00eb i madh i l\u00ebshimeve dhe ndryshimeve, p\u00ebrfshir\u00eb ato n\u00eb t\u00eb dh\u00ebna dhe skem\u00ebn e baz\u00ebs s\u00eb t\u00eb dh\u00ebnave, do t\u00eb b\u00ebnte q\u00eb skenari t\u00eb kishte probleme si n\u00eb mesdit\u00eb. Po ashtu, kufizimi i l\u00ebshimeve vet\u00ebm n\u00eb dit\u00ebn e pun\u00ebs do t\u00eb ishte i paefektsh\u00ebm. <\/p>\n<p><\/p>\n<p>Megjithat\u00eb, detyra u p\u00ebrmbush: ne mor\u00ebm skenarin e par\u00eb funksional pas vet\u00ebm dy jav\u00ebsh. Gjat\u00eb vitit t\u00eb kaluar ai ka undergone shum\u00eb ndryshime dhe vazhdon t\u00eb p\u00ebrdoret.<\/p>\n<p><\/p>\n<p>M\u00eb pas, do t\u00eb p\u00ebrshkruaj n\u00eb detaje t\u00eb gjitha hapat dhe fazat e zhvillimit t\u00eb zgjidhjes son\u00eb. Do t\u00eb bindeni se ky metod\u00eb meritojn\u00eb t\u00eb ekzistoj\u00eb.<\/p>\n<p><\/p>\n<p><strong>\u00c7far\u00eb \u00ebsht\u00eb rezervimi i holl\u00eb?<\/strong><br \/>\nKjo \u00ebsht\u00eb nj\u00eb teknologji harduerike ose softuerike (emri tjet\u00ebr - volumet sparse), q\u00eb lejon alokimin e nj\u00eb sasi m\u00eb t\u00eb madhe burimi t\u00eb nevojsh\u00ebm se sa \u00ebsht\u00eb n\u00eb dispozicion. Sasia e alokuar duhet t\u00eb p\u00ebrmbush\u00eb kriteret just-enough (aq sa \u00ebsht\u00eb e nevojshme) dhe just-in-time (n\u00eb koh\u00ebn e nevojshme). Kryesisht, rezervimi i holl\u00eb aplikohet n\u00eb sisteme t\u00eb ndryshme ruajtjeje p\u00ebr t\u00eb ofruar hap\u00ebsir\u00eb disk p\u00ebr sasi t\u00eb nevojshme q\u00eb e tejkalojn\u00eb at\u00eb q\u00eb \u00ebsht\u00eb aktualisht e disponueshme. Kjo teknologji \u00ebsht\u00eb e mb\u00ebshtetur nga sisteme t\u00eb ndryshme skedar\u00ebsh, si LVM2, ZFS, BTRFS. Ajo p\u00ebrdoret gjer\u00ebsisht n\u00eb hipervizor\u00ebt e virtualizimit. Rezervimi i holl\u00eb na lejojti t\u00eb krijonim shpejt kaq shum\u00eb kopje t\u00eb sistemit kryesor t\u00eb t\u00eb dh\u00ebnave sa na duhej nga snapshot-et (direktorin\u00eb data t\u00eb DBMS MySQL).<\/p>\n<p><\/p>\n<h3 id=\"pervyy-stend-tehnologiya-thin-lvm\">Stenda e par\u00eb, teknologjia Thin LVM<\/h3>\n<p><\/p>\n<p>K\u00ebt\u00eb kap\u00edtull mund ta quajm\u00eb gjithashtu \"Si t\u00eb krijoni snapshot-e sa m\u00eb t\u00eb shpejt\u00eb p\u00ebr sasi t\u00eb m\u00ebdha t\u00eb t\u00eb dh\u00ebnave duke p\u00ebrdorur <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man7\/lvmthin.7.html\">Thin LVM<\/a><\/noindex>\", duke e ulur stabilitetin e sistemit t\u00eb skedar\u00ebve dhe DBMS MySQL n\u00eb tregues t\u00eb pap\u00ebrshtatsh\u00ebm.\" <\/p>\n<p><\/p>\n<p>Pasi kemi p\u00ebrdorur LVM p\u00ebr t\u00eb nd\u00ebrtuar pjes\u00ebt kryesore t\u00eb OS-s\u00eb, vendos\u00ebm t\u00eb fillojm\u00eb pik\u00ebrisht nga ajo. Fillimisht na nevojitej nj\u00eb makin\u00eb fizike e ve\u00e7ant\u00eb - nj\u00eb kopje e baz\u00ebs son\u00eb kryesore MySQL, n\u00eb t\u00eb cil\u00ebn mund t\u00eb krijonim me k\u00ebrkes\u00eb nj\u00eb snapshot t\u00eb kopjes dhe t\u00eb ngrihej kjo pran\u00eb me nj\u00eb ekzemplar t\u00eb ve\u00e7ant\u00eb MySQL. Gjat\u00eb testimit, lejuam q\u00eb t\u00eb aplikoheshin operacione t\u00eb ndryshimit n\u00eb k\u00ebt\u00eb ekzemplar, dhe pas p\u00ebrfundimit t\u00eb testeve e fshihnim me sukses at\u00eb. Konfiguracioni i serverit ishte si m\u00eb posht\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>2 x Intel Silver 4114 (10\u00d72.2 GHz HT)<\/li>\n<li>8 x 32 GB DDR4 <\/li>\n<li>8 x 1920 GB Intel SSD n\u00eb kontrolerin RAID Adaptec n\u00eb RAID-10<\/li>\n<\/ul>\n<p><\/p>\n<p>N\u00eb lidhje me zgjedhjen midis kontrolerit RAID dhe RAID-it programatik MD, mund t\u00eb shkruhet nj\u00eb artikull t\u00eb ve\u00e7ant\u00eb. Do t\u00eb them vet\u00ebm se zgjedhja jon\u00eb u ndikua nga dy faktor\u00eb:<\/p>\n<p><\/p>\n<ul>\n<li>N\u00eb koh\u00ebn e formulimit t\u00eb detyr\u00ebs, ne instalonim t\u00eb gjitha DBMS-t\u00eb n\u00eb kontroler\u00eb RAID, prandaj mund t\u00eb themi se k\u00ebshtu krijohej historikisht. <\/li>\n<li>Dallimi n\u00eb performanc\u00eb n\u00eb testet sintetike t\u00eb sistemit t\u00eb skedar\u00ebve dhe testet me operacione t\u00eb ndryshme n\u00eb MySQL ishte minimal. <\/li>\n<\/ul>\n<p><\/p>\n<p>Ne e ndar\u00eb RAID-10: kemi krijuar nj\u00eb grup volumesh (VG) p\u00ebr t\u00eb gjith\u00eb kapacitetin (me shpenzime t\u00eb p\u00ebrgjithshme rreth 6.7 GB) dhe kemi krijuar nj\u00eb ndarje logjike (Logical Volume, LV) p\u00ebr sistemin me 50 GB. N\u00eb situata normale, hap\u00ebsira tjet\u00ebr p\u00ebrdoret p\u00ebr ndarjen e MySQL. Por na nevojitej rezervimi i holl\u00eb, prandaj fillimisht kemi krijuar nj\u00eb t\u00eb ashtuquajtur pool, brenda t\u00eb cilit kemi krijuar nj\u00eb ndarje p\u00ebr \\\/var\\lib\\\/mysql me 3.5 TB (duke u bazuar n\u00eb volumet e parashikuara t\u00eb DB):<\/p>\n<p><\/p>\n<pre><code class=\"bash\">lvcreate -l 100%FREE -T vga\\\/thin\nlvcreate -V 3.5T -T vga\\\/thin -n mysql<\/code><\/pre>\n<p><\/p>\n<p>Formatizuam ndarjen n\u00eb ext4, e montuam at\u00eb, shkruam nj\u00eb replik\u00eb dhe mor\u00ebm skenarin origjinal. M\u00eb pas b\u00ebri nj\u00eb API q\u00eb duhet t\u00eb krijoj\u00eb snapshot-e, t\u00eb ngrej\u00eb nj\u00eb instanc\u00eb DB MySQL n\u00eb portin e caktuar dhe t\u00eb fshij\u00eb instanc\u00ebn e krijuar. Duke p\u00ebrdorur thirrje sistemike t\u00eb vet\u00ebm, gjuha q\u00eb zgjodh\u00ebm p\u00ebr shkruarjen e skenar\u00ebve ishte bashkimi, dhe p\u00ebr lidhjen e API-s\u00eb HTTP \u2192 bash kemi zbatuar nj\u00eb zgjidhje open source. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/phonkee\/goexpose\">goexpose<\/a><\/noindex>, e shkruar n\u00eb Go. <\/p>\n<p><\/p>\n<p>Nj\u00eb dit\u00eb do t'i publikojm\u00eb skenar\u00ebt tan\u00eb bash n\u00eb open source, por tani do t\u00eb p\u00ebrshkruaj algoritmin kryesor:<\/p>\n<p><\/p>\n<p>Krijimi i snapshot-it kryesor snapmain:<\/p>\n<p><\/p>\n<ol>\n<li>Ndalojm\u00eb replik\u00ebn kryesore.<\/li>\n<li>V\u00ebm\u00eb nj\u00eb bllokim n\u00eb operacionet me snapshot-in snapmain.<\/li>\n<li>Krijojm\u00eb nj\u00eb snapshot t\u00eb ri snapmain.<\/li>\n<li>Nisemi MySQL dhe heqim bllokimin.<\/li>\n<\/ol>\n<p><\/p>\n<p>Krijimi i DB-s\u00eb n\u00eb nj\u00eb port t\u00eb rast\u00ebsish\u00ebm nga snapmain:<\/p>\n<p><\/p>\n<ol>\n<li>V\u00ebm\u00eb nj\u00eb bllokim n\u00eb instanc\u00ebn specifike t\u00eb DB-s\u00eb (port).<\/li>\n<li>Kontrollojm\u00eb n\u00ebse ka nj\u00eb bllokim p\u00ebr krijimin e snapshot-it kryesor. N\u00ebse po, presim dhe kontrollojm\u00eb p\u00ebrs\u00ebri \u00e7do 5 sekonda.<\/li>\n<li>Kontrollojm\u00eb n\u00ebse ka nj\u00eb ndarje LV t\u00eb vjet\u00ebr t\u00eb instanc\u00ebs.<br \/>\n3.1 N\u00ebse ka, ndalojm\u00eb instanc\u00ebn MySQL me kill -9 dhe fshijm\u00eb ndarjen LV.<\/li>\n<li>Krijojm\u00eb nj\u00eb instanc\u00eb t\u00eb re nga snapmain.<\/li>\n<li>P\u00ebrgatitim dhe montojm\u00eb direktor\u00ebt p\u00ebr k\u00ebt\u00eb instanc\u00eb.<\/li>\n<li>Heqim shenjat e skllavit (skedar\u00ebt) dhe nisemi instanc\u00ebn MySQL.<\/li>\n<li>E b\u00ebjm\u00eb at\u00eb master.<\/li>\n<li>Heqim bllokimin.<\/li>\n<\/ol>\n<p><\/p>\n<p>Fshirja e DB-s\u00eb n\u00eb nj\u00eb port t\u00eb rast\u00ebsish\u00ebm:<\/p>\n<p><\/p>\n<ol>\n<li>V\u00ebm\u00eb nj\u00eb bllokim n\u00eb instanc\u00ebn specifike t\u00eb DB-s\u00eb (port).<\/li>\n<li>Vrasim instanc\u00ebn MySQL me kill -9.<\/li>\n<li>Shk\u00ebputim direktor\u00ebt.<\/li>\n<li>Fshijm\u00eb ndarjen LV dhe heqim bllokimin.<\/li>\n<\/ol>\n<p><\/p>\n<p>Shembuj komandash p\u00ebr klonimin e ndarjeve t\u00eb instanc\u00ebs s\u00eb re t\u00eb DB-s\u00eb:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">lvcreate -n stage_3307 -s vga\\\/snapmain\nlvchange -ay -K vga\\\/stage_3307\nmount -o noatime,nodiratime,data=writeback \\\/dev\\\/mapper\\\/vga-stage_3307 \\\/mnt\\\/stage_3307<\/code><\/pre>\n<p><\/p>\n<p>Tani tani, un\u00eb do t'ju flas p\u00ebr problemin kryesor me t\u00eb cilin u p\u00ebrball\u00ebm gjat\u00eb p\u00ebrdorimit t\u00eb rezervimit t\u00eb holl\u00eb. Ne u p\u00ebrball\u00ebm me performanc\u00ebn e disqeve SSD. Kjo ndodhi p\u00ebr shkak t\u00eb ve\u00e7orive t\u00eb Thin LVM: ajo operon n\u00eb nivelin e pajisjes me blloqe t\u00eb ulta me nj\u00eb madh\u00ebsi default prej 4 MB. Si dukej kjo:<\/p>\n<p><\/p>\n<ol>\n<li>Krijojm\u00eb nj\u00eb snapshot nga pjesa kryesore \/var\/lib\/mysql.<\/li>\n<li>Nisim replikimin p\u00ebr t\u00eb arritur master-in.<\/li>\n<li>\u00c7do ndryshim n\u00eb tabelat e klonit detyron ruajtjen e blloqeve t\u00eb dh\u00ebnash t\u00eb vjetra, t\u00eb pandryshuara n\u00eb seksionin e snapshot-it.<\/li>\n<li>\u00c7do ndryshim n\u00eb instanc\u00ebn e ngritur p\u00ebr testim detyron ruajtjen e blloqeve t\u00eb dh\u00ebnash t\u00eb vjetra, t\u00eb pandryshuara n\u00eb seksionin e snapshot-it t\u00eb klonuar p\u00ebr k\u00ebt\u00eb instanc\u00eb.<\/li>\n<li>P\u00ebrfundojm\u00eb me nj\u00eb ngarkes\u00eb t\u00eb operacioneve t\u00eb hyrjes-daljes prej 100% n\u00eb pajisje, ngadal\u00ebsim t\u00eb \u00e7do operacioni dhe ngadal\u00ebsim t\u00eb vazhduesh\u00ebm t\u00eb replik\u00ebs.<\/li>\n<li>N\u00eb fund t\u00eb dit\u00ebs s\u00eb pun\u00ebs, kemi nj\u00eb q\u00ebndrim t\u00eb prapambetur p\u00ebr disa or\u00eb.<\/li>\n<\/ol>\n<p><\/p>\n<p>Si e trajtuam k\u00ebt\u00eb p\u00ebr t\u00eb marr\u00eb nj\u00eb rezultat m\u00eb t\u00eb arsyesh\u00ebm (piketat kryesore):<\/p>\n<p><\/p>\n<p>Kontrolluesi RAID:<\/p>\n<p><\/p>\n<ul>\n<li>\u00c7do lloj caching-u u \u00e7aktivizua nga default-i. <\/li>\n<li>Vendos\u00ebm writeback (kur t\u00eb dh\u00ebnat hyjn\u00eb n\u00eb bufer, regjistrimi p\u00ebrfundon p\u00ebrpara se t\u00eb ruhet me t\u00eb v\u00ebrtet\u00eb n\u00eb disk).<\/li>\n<\/ul>\n<p><\/p>\n<p>Sistemi i skedar\u00ebve:<\/p>\n<p><\/p>\n<ul>\n<li>N\u00eb pik\u00ebn e montimit \/var\/lib\/mysql shkruam <em>noatime,nodiratime,data=writeback<\/em><\/li>\n<li>\u00c7aktivizuam regjistrimin ext4 me mb\u00ebshtetje tuning 2fs.<\/li>\n<\/ul>\n<p><\/p>\n<p>MySQL:<\/p>\n<p><\/p>\n<ul>\n<li>Shkruam <em>innodb_flush_method = O_DSYNC<\/em> (rrit\u00ebm shpejt\u00ebsin\u00eb e regjistrimit, n\u00eb k\u00ebt\u00eb m\u00ebnyr\u00eb duke ulur besueshm\u00ebrin\u00eb).<\/li>\n<li>\u00c7aktivizuam regjistrimin, logjet nuk na nevojiten.<\/li>\n<li>Shkruam <em>innodb_buffer_pool_size = 4G<\/em> (sa m\u00eb i vog\u00ebl t\u00eb jet\u00eb madh\u00ebsia e pool-it InnoDB, aq m\u00eb shpejt do t\u00eb ndaloj MySQL gjat\u00eb ndalimit, dhe aq m\u00eb shpejt do t\u00eb krijojm\u00eb nj\u00eb snapshot).<\/li>\n<\/ul>\n<p><\/p>\n<p>Ky nuk \u00ebsht\u00eb nj\u00eb list\u00eb e plot\u00eb, sidomos p\u00ebr MySQL. Megjithat\u00eb, ndryshimet e tjera jan\u00eb t\u00eb vogla dhe shpesh nuk jan\u00eb gjithmon\u00eb dhe sakt\u00ebsisht t\u00eb aplikueshme. P\u00ebr shembull, n\u00eb p\u00ebrpjekje p\u00ebr t\u00eb shkarkuar disqet, madje kemi zhvendosur <em>innodb_parallel_doublewrite_path<\/em> n\u00eb \/dev\/shm, q\u00eb n\u00eb disa raste, kur fillon nj\u00eb instanc\u00eb q\u00eb nuk \u00ebsht\u00eb mbyllur n\u00eb m\u00ebnyr\u00eb t\u00eb duhur, na kursente deri n\u00eb 5 sekonda.<\/p>\n<p><\/p>\n<p>Pse e ndalojm\u00eb MySQL-in p\u00ebrpara se t\u00eb b\u00ebjm\u00eb nj\u00eb snapshot? Sepse mund ta marrim at\u00eb nga nj\u00eb replik\u00eb q\u00eb po punon. Kjo \u00ebsht\u00eb e v\u00ebrtet\u00eb, por instanca e re e DB-s\u00eb n\u00eb k\u00ebt\u00eb snapshot do t\u00eb konsiderohet automatikisht e d\u00ebmtuar dhe do t\u00eb k\u00ebrkoj\u00eb nj\u00eb skanim t\u00eb plot\u00eb gjat\u00eb nisjes. T\u00eb ndalosh replik\u00ebn \u00ebsht\u00eb sigurisht m\u00eb e shpejt\u00eb, ndon\u00ebse kjo p\u00ebrfundimisht \u00ebsht\u00eb operacioni m\u00eb i gjat\u00eb n\u00eb t\u00eb gjith\u00eb procesin.<\/p>\n<p><\/p>\n<p>Si pas\u00eb kemi arritur rezultate m\u00eb t\u00eb pranueshme n\u00eb koh\u00ebzgjatje dhe nj\u00eb q\u00ebnd\u00ebr funksionale. Megjithat\u00eb, si\u00e7 \u00ebsht\u00eb e dukshme nga grafiku m\u00eb konkludues i vones\u00ebs s\u00eb replikimit t\u00eb replik\u00ebs kryesore, situata ende \u00ebsht\u00eb shum\u00eb larg idealit:<br \/>\n<img decoding=\"async\" alt=\"Rezervimi i holl\u00eb i sistemeve t\u00eb skedar\u00ebve Linux. Si t\u00eb krijoni kopje funksionale t\u00eb nj\u00eb databaze MySQL tre terabajt\u00eb n\u00eb 20 sekonda\" src=\"\/wp-content\/uploads\/2020\/03\/9bb7bb7d9abfea124a75616deec57f05.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Nga mang\u00ebsit\u00eb e tjera, duhet t\u00eb theksohet pamund\u00ebsia praktike e monitorimit t\u00eb rezervuarit Thin LVM: p\u00ebrve\u00e7 funksioneve standarde sistemore si iostat, t\u00eb kuptosh, p.sh., se cili element i rezervuarit aktualisht shkakton ngarkes\u00ebn m\u00eb t\u00eb madhe n\u00eb sistemin e skedar\u00ebve \u00ebsht\u00eb e pamundur.<\/p>\n<p><\/p>\n<p>Ve\u00e7an\u00ebrisht duhet theksuar nj\u00eb mang\u00ebsi t\u00eb madhe t\u00eb lidhur me optimizimin e p\u00ebrshkruar m\u00eb lart: ne fituam nj\u00eb q\u00ebnd\u00ebr YOLO. Rreth \u00e7do nj\u00eb deri n\u00eb dy muaj, ext4 nuk p\u00ebrballonte k\u00ebto abuzime mbi veten dhe thyehej p\u00ebrfundimisht, duke k\u00ebrkuar formatimin dhe ripunimin e replik\u00ebs. Duke fituar n\u00eb shpejt\u00ebsi, ne e shkat\u00ebrruam pa shpres\u00eb stabilitetin.<\/p>\n<p><\/p>\n<p>Cilat metrika duhet t\u00eb ndjekin gjat\u00eb p\u00ebrdorimit t\u00eb Thin LVM:<\/p>\n<p><\/p>\n<ul>\n<li>P\u00ebrqindja e t\u00eb dh\u00ebnave n\u00eb rezervuarin e holl\u00eb<\/li>\n<li>P\u00ebrqindja e metadata n\u00eb rezervuarin e holl\u00eb<\/li>\n<\/ul>\n<p><\/p>\n<p>N\u00ebse rezervuari yn\u00eb do ta kalonte munges\u00ebn e hap\u00ebsir\u00ebs p\u00ebr t\u00eb dh\u00ebna (mjafton t\u00eb pastroni disqet), mungesa e hap\u00ebsir\u00ebs p\u00ebr metadata do t\u00eb \u00e7onte n\u00eb nj\u00eb d\u00ebshtim t\u00eb plot\u00eb t\u00eb rezervuarit dhe nevoj\u00ebn p\u00ebr ta krijuar nga e para.<\/p>\n<p><\/p>\n<p>Sistemi i skedar\u00ebve brenda rezervuarit me kalimin e koh\u00ebs fragmentohet shum\u00eb. Rekomandoj t\u00eb ekzekutoni \u00e7do dit\u00eb me cron komand\u00ebn <em>fstrim -v \/var\/lib\/mysql<\/em>.<\/p>\n<p><\/p>\n<p>P\u00ebrfundimet nd\u00ebrmjet\u00ebse:<\/p>\n<p><\/p>\n<ul>\n<li>Teknologjia \u00ebsht\u00eb leht\u00ebsisht e aplikueshme, ashtu si LVM vet\u00eb, dhe nuk k\u00ebrkon nj\u00eb kualifikim t\u00eb ve\u00e7ant\u00eb t\u00eb inxhinierit.<\/li>\n<li>Ajo do t\u00eb p\u00ebrshtatet mir\u00eb p\u00ebr baza t\u00eb dh\u00ebnash t\u00eb vogla dhe jo shum\u00eb t\u00eb ngarkuara. Sa m\u00eb e vog\u00ebl baza e t\u00eb dh\u00ebnave, aq m\u00eb pak blloqe l\u00ebvizin n\u00eb sistemin e skedar\u00ebve brenda rezervuarit, dhe aq m\u00eb e ul\u00ebt \u00ebsht\u00eb ngarkesa n\u00eb disqe.<\/li>\n<li>P\u00ebr detyr\u00ebn ton\u00eb ne filluam t\u00eb k\u00ebrkonim zgjidhje t\u00eb tjera, p\u00ebr t\u00eb cilat do t\u00eb flasim n\u00eb seksionin e ardhsh\u00ebm.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"vtoroy-stend-tehnologiya-zfs\">Q\u00ebndra e dyt\u00eb, teknologjia ZFS<\/h3>\n<p><\/p>\n<p>Dikur, un\u00eb kam pasur p\u00ebrvoja me sistemin e skedar\u00ebve ZFS, por at\u00ebher\u00eb ZFS funksiononte mjaft mir\u00eb n\u00eb familjen e tij t\u00eb origjin\u00ebs, OS Solaris. Ekzistonte nj\u00eb version i portuar n\u00eb FreeBSD me nj\u00eb nivel t\u00eb k\u00ebnaqsh\u00ebm implementimi. Po ashtu kishte nj\u00eb port t\u00eb pap\u00ebrfunduar n\u00eb Linux, i cili p\u00ebrdorej nga pak. P\u00ebr shkak t\u00eb struktur\u00ebs s\u00eb ruajtjes s\u00eb t\u00eb dh\u00ebnave B-tree (e cila, p\u00ebr t'u theksuar, \u00ebsht\u00eb nj\u00ebsoj si struktura e ruajtjes n\u00eb InnoDB MySQL), ZFS tregonte nj\u00eb performanc\u00eb t\u00eb dob\u00ebt n\u00eb instalimet me nj\u00eb num\u00ebr shum\u00eb t\u00eb madh skedash. T\u00eb gjitha k\u00ebto, s\u00eb bashku me nevoj\u00ebn p\u00ebr t\u00eb m\u00ebsuar aspektet teknike para p\u00ebrdorimit, e hoq\u00ebn p\u00ebr nj\u00eb koh\u00eb t\u00eb gjat\u00eb k\u00ebt\u00eb sistem skedar\u00ebsh nga praktika ime. U shfaq\u00ebn ext4 dhe xfs, t\u00eb cilat u b\u00ebn\u00eb standarde. Por duke pasur parasysh se p\u00ebr ne ZFS \u00ebsht\u00eb m\u00eb se e p\u00ebrshtatshme dhe duke ditur se versioni Linux, sipas t\u00eb dh\u00ebnave, \u00ebsht\u00eb rritur n\u00eb nj\u00eb produkt t\u00eb arsyesh\u00ebm (edhe pse jo me mb\u00ebshtetje t\u00eb plot\u00eb, gj\u00eb q\u00eb e b\u00ebn instalimin e sistemit nga zero n\u00eb ZFS vet\u00ebm me ndihm\u00ebn e disa trukeve), ne vendos\u00ebm ta provojm\u00eb.<\/p>\n<p><\/p>\n<p>P\u00ebr arsye t\u00eb dukshme, ne zgjodh\u00ebm nj\u00eb konfigurim t\u00eb ngjash\u00ebm (p\u00ebrve\u00e7 kontroler\u00ebve RAID). Vendos\u00ebm tet\u00eb disqe SSD me 1920 Gb secili. Nuk kishte d\u00ebshir\u00eb t\u00eb shkruanim imazhin e rrjetit ton\u00eb p\u00ebr p\u00ebrgatitjen e serverit n\u00eb ZFS t\u00eb past\u00ebr, prandaj ne prenot\u00ebm 50 Gb nga secili disk dhe b\u00ebm\u00eb nj\u00eb RAID-10 me MD p\u00ebr sistemin. Mbeturinat prej 1950 Gb n\u00eb \u00e7do disk u bashkuan n\u00eb nj\u00eb ZFS t\u00eb ngjash\u00ebm me RAID-10:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">zpool create zpool mirror \/dev\/sda2 \/dev\/sdb2 mirror \/dev\/sdc2 \/dev\/sdd2 mirror \/dev\/sde2 \/dev\/sdf2 mirror \/dev\/sdg2 \/dev\/sdh2<\/code><\/pre>\n<p><\/p>\n<p>Krijuam seksione p\u00ebr MySQL:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">zfs create zpool\/mysql\nzfs set compression=gzip zpool\/mysql\nzfs set recordsize=128k zpool\/mysql\nzfs set atime=off zpool\/mysql\nzfs create zpool\/mysql\/data\nzfs set recordsize=16k zpool\/mysql\/data\nzfs set primarycache=metadata zpool\/mysql\/data\nzfs set mountpoint=\/var\/lib\/mysql zpool\/mysql\/data<\/code><\/pre>\n<p><\/p>\n<p>Vini re se ne aktivizuam kompresimin standard t\u00eb t\u00eb dh\u00ebnave gzip. Ne kemi shum\u00eb burime procesori n\u00eb serverin ton\u00eb dhe ato nuk jan\u00eb plot\u00ebsisht t\u00eb p\u00ebrdorura. Si rezultat, 3 Tb e baz\u00ebs son\u00eb t\u00eb t\u00eb dh\u00ebnave u shnd\u00ebrruan n\u00eb 1.6 Tb, dhe duke marr\u00eb parasysh se pika e dob\u00ebt, ashtu si n\u00eb rastin e kaluar, \u00ebsht\u00eb performanca maksimale e disqeve, sa m\u00eb pak t\u00eb dh\u00ebna - aq m\u00eb mir\u00eb, ne q\u00eb n\u00eb fillim marrim nj\u00eb bonus t\u00eb shk\u00eblqyer nga ZFS! N\u00eb koh\u00ebt e ngarkes\u00ebs maksimale, ruajtja e funksionit gzip p\u00ebrdor deri n\u00eb 4 b\u00ebrthama procesor\u00ebsh, por ne nuk e kemi problem.<\/p>\n<p><\/p>\n<p>M\u00eb pas, implementimi shkoi m\u00eb shpejt. Ne transferuam konfigurimet e replik\u00ebs MySQL nga stendi LVM. Na mori ca koh\u00eb p\u00ebr t\u00eb ripar\u00eb scriptet n\u00eb komandat e ZFS, por n\u00eb p\u00ebrgjith\u00ebsi algoritmet mbet\u00ebn t\u00eb nj\u00ebjta. Shembulli i krijimit t\u00eb nj\u00eb snapshot-i:<\/p>\n<p><\/p>\n<pre><code class=\"plaintext\">zfs set snapdir=visible zpool\/mysql\/data\nzfs create zpool\/stage_3307\nzfs clone zpool\/mysql\/data@snapmain zpool\/stage_3307\/data\nzfs set mountpoint=\/mnt\/stage_3307 zpool\/stage_3307\/data<\/code><\/pre>\n<p><\/p>\n<p>Nga tuning-u shtes\u00eb: kemi hequr n\u00eb memorie ndarjet e ZFS me metadata dhe loge l2arc dhe zil. P\u00ebr ne, si\u00e7 u b\u00eb e dukshme m\u00eb von\u00eb, kjo ishte e tep\u00ebrt, por deri tani e kemi l\u00ebn\u00eb k\u00ebt\u00eb optimizim, ndryshimi nuk \u00ebsht\u00eb i v\u00ebshtir\u00eb n\u00eb rastin e duhur. Nga efektet negative \u2014 duhet t\u00eb ricreojm\u00eb hap\u00ebsirat p\u00ebrkat\u00ebse n\u00eb memorie pas ribashkimit t\u00eb serverit. T\u00eb dh\u00ebna nuk humbasin. Nxjerrja e zpool status:<\/p>\n<p><\/p>\n<pre><code class=\"bash\">logs\n      \/dev\/shm\/zil_slog.img  ONLINE       0     0     0\ncache\n      \/dev\/shm\/l2arc.img     ONLINE       0     0     0<\/code><\/pre>\n<p><\/p>\n<p>N\u00eb k\u00ebt\u00eb konfigurim filluam t\u00eb testojm\u00eb standin dhe p\u00ebrfituam rezultate t\u00eb shk\u00eblqyera: me dy instanca BD q\u00eb funksiononin n\u00eb t\u00eb nj\u00ebjt\u00ebn koh\u00eb (dhe me replik\u00ebn kryesore aktive) mbi snapshots arrit\u00ebm nj\u00eb ngarkes\u00eb t\u00eb disqeve prej 50-60%.<\/p>\n<p><\/p>\n<p>Kemi zbatuar problemin ton\u00eb kryesor, q\u00eb shihet n\u00eb grafikun e vones\u00ebs s\u00eb replikimit (krahaso me grafikun e m\u00ebparsh\u00ebm n\u00eb seksionin Thin LVM):<br \/>\n<img decoding=\"async\" alt=\"Rezervimi i holl\u00eb i sistemeve t\u00eb skedar\u00ebve Linux. Si t\u00eb krijoni kopje funksionale t\u00eb nj\u00eb databaze MySQL tre terabajt\u00eb n\u00eb 20 sekonda\" src=\"\/wp-content\/uploads\/2020\/03\/15df9283838a4662ff0f68accfde4089.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>P\u00ebrve\u00e7 dhe fal\u00eb k\u00ebsaj, u p\u00ebrshpejtua ndjesh\u00ebm n\u00eb t\u00eb gjitha operacionet: krijimi i plot\u00eb i nj\u00eb snapshot-i me ndalimin dhe nisjen e replik\u00ebs zgjat deri n\u00eb 40 sekonda, nd\u00ebrsa zhvillimi nga snapshot-i nj\u00eb ekzemplar i ri MySQL zgjat deri n\u00eb 20 sekonda. Kjo na k\u00ebnaq si ne, ashtu dhe testet tona t\u00eb kodit.<\/p>\n<p><\/p>\n<p>P\u00ebrfundimet nd\u00ebrmjet\u00ebse:<\/p>\n<p><\/p>\n<ul>\n<li>Rezultatet plot\u00ebsisht mbuluan nevoj\u00ebn ton\u00eb p\u00ebr t\u00eb marr\u00eb nj\u00eb kopje t\u00eb BD-s\u00eb aktive p\u00ebr testimin e kodit.<\/li>\n<li>Teknologjia k\u00ebrkon njohuri: duhet t\u00eb kuptoni se \u00e7far\u00eb \u00ebsht\u00eb ZFS dhe si funksionon.<\/li>\n<li>Nuk e kemi kontrolluar statusin aktual t\u00eb pun\u00ebs s\u00eb ZFS me nj\u00eb num\u00ebr t\u00eb madh (m\u00eb shum\u00eb se 1 milion) skedar\u00ebsh t\u00eb vegj\u00ebl. Por supozojm\u00eb q\u00eb problemi ekziston ende, prandaj nuk do ta rekomandoja k\u00ebt\u00eb sistem skedari p\u00ebr ndonj\u00eb depo t\u00eb skedar\u00ebve.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"chto-dalshe\">\u00c7far\u00eb ndodh m\u00eb tej?<\/h3>\n<p><\/p>\n<p>N\u00eb kuad\u00ebr t\u00eb panelit, nuk kemi b\u00ebr\u00eb asgj\u00eb tjet\u00ebr, rezultati na k\u00ebnaq. Mund\u00ebsisht, n\u00eb t\u00eb ardhmen do t\u00eb shtojm\u00eb n\u00eb konfigurimin e replikimit t\u00eb panelit p\u00ebrjashtime t\u00eb tabelave q\u00eb nuk jan\u00eb t\u00eb nevojshme p\u00ebr testim, kjo do t\u00eb zvog\u00ebloj\u00eb edhe m\u00eb shum\u00eb volumin e DB. Nuk kemi testuar sistemin BTRFS dhe zbatimin e teknologjis\u00eb s\u00eb ruajtjes s\u00eb holl\u00eb. Megjithat\u00eb, nj\u00eb detyr\u00eb e till\u00eb nuk \u00ebsht\u00eb m\u00eb e nevojshme, pasi q\u00eb objektivi kryesor \u00ebsht\u00eb arritur. N\u00eb p\u00ebrgjith\u00ebsi, natyrisht, d\u00ebshirojm\u00eb t\u00eb largohemi nga qasja e p\u00ebrshkruar m\u00eb sip\u00ebr - t\u00eb realizojm\u00eb migrazhime funksionale t\u00eb DB n\u00eb mjedisin e testimit, t\u00eb krijojm\u00eb nj\u00eb kontur t\u00eb ve\u00e7ant\u00eb testimi p\u00ebr DB, t\u00eb merremi me shardingun e baz\u00ebs kryesore. Shumica e k\u00ebsaj tashm\u00eb po e realizojm\u00eb, p\u00ebr t\u00eb cil\u00ebn do t\u00eb flasim patjet\u00ebr n\u00eb artikujt e ardhsh\u00ebm. <\/p>\n<p><\/p>\n<h3 id=\"itogi\">P\u00ebrfundime<\/h3>\n<p><\/p>\n<p>Detyra fillestare u zgjidh, edhe pse n\u00eb nj\u00eb m\u00ebnyr\u00eb t\u00eb pazakont\u00eb. N\u00eb p\u00ebrfundimet nd\u00ebrmjet\u00ebse u p\u00ebrmend\u00ebn p\u00ebrpar\u00ebsit\u00eb dhe dob\u00ebsit\u00eb e secil\u00ebs nga teknologjit\u00eb e aplikuara, k\u00ebshtu q\u00eb le t\u00eb vendosim se cila teknologji dhe kur mund t\u00eb p\u00ebrdoret:<\/p>\n<p><\/p>\n<ul>\n<li>Thin LVM - p\u00ebr DB t\u00eb vogla dhe kur nuk d\u00ebshiron ose nuk ke koh\u00eb t\u00eb studioj ZFS.<\/li>\n<li>ZFS - n\u00ebse ke p\u00ebrvoj\u00eb n\u00eb pun\u00ebn me t\u00eb ose mund\u00ebsin\u00eb p\u00ebr t\u00eb shpenzuar koh\u00eb n\u00eb studim n\u00eb \u00e7do situat\u00eb. <\/li>\n<\/ul>\n<p><\/p>\n<p>N\u00eb nj\u00eb nivel m\u00eb t\u00eb lart\u00eb, ky artikull nuk \u00ebsht\u00eb vet\u00ebm nj\u00eb krahasim i teknologjis\u00eb s\u00eb dy sistemeve t\u00eb skedar\u00ebve. Ideja kryesore, q\u00eb do doja t\u00eb p\u00ebrcillja dhe konsolidoja, \u00ebsht\u00eb se nuk duhet t\u00eb frik\u00ebsohemi t\u00eb mendojm\u00eb n\u00eb m\u00ebnyr\u00eb jo standarde n\u00eb situata t\u00eb kritike p\u00ebr biznesin dhe t\u00eb marrim vet\u00ebm receta t\u00eb gatshme. Disa her\u00eb mund t\u00eb ishim t\u00eb gjith\u00eb duke tundur kok\u00ebn dhe th\u00ebn\u00eb se detyra e krijimit t\u00eb kopjeve t\u00eb DB prej tre terabajt\u00ebsh p\u00ebr m\u00eb pak se nj\u00eb minut\u00eb \u00ebsht\u00eb e pamundur, dhe nuk na duhen teknologji t\u00eb rrezikshme, le t\u00eb b\u00ebjm\u00eb si\u00e7 duhet. Kjo do ishte e mundur, por do t\u00eb kishim humbur rreth gjasht\u00eb muaj deri nj\u00eb vit dhe shum\u00eb udh\u00ebtime t\u00eb klient\u00ebve (udh\u00ebtimet jan\u00eb treguesi yn\u00eb kryesor i biznesit) pa teste dhe gjat\u00eb implementimit. Duke vepruar n\u00eb m\u00ebnyr\u00eb jo standarde, humb\u00ebm jo aq shum\u00eb koh\u00eb n\u00eb implementim, fituam p\u00ebrvoj\u00eb n\u00eb teknologji t\u00eb reja dhe t\u00eb harruara m\u00eb par\u00eb, dhe ofruam testim pik\u00ebrisht n\u00eb momentin kur kishim shum\u00eb nevoj\u00eb p\u00ebr t\u00eb. Pa dyshim, kjo ka ndikuar pozitivisht n\u00eb t\u00eb gjitha treguesit tan\u00eb. Zgjedhja gjithmon\u00eb \u00ebsht\u00eb e juaja, dhe ne nga ana jon\u00eb do t\u00eb vazhdojm\u00eb t\u00eb flasim n\u00eb blogun ton\u00eb p\u00ebr arritjet interesante aktuale dhe t\u00eb ardhshme.<\/p>\n<p>Burimi: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/citymobil\/blog\/492172\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u0435\u043d\u044f \u0437\u043e\u0432\u0443\u0442 \u042e\u0440\u0438\u0439, \u044f \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c \u0433\u0440\u0443\u043f\u043f\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u043e\u0433\u043e \u0430\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432 \u0421\u0438\u0442\u0438\u043c\u043e\u0431\u0438\u043b. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u043f\u043e\u0434\u0435\u043b\u044e\u0441\u044c \u043e\u043f\u044b\u0442\u043e\u043c \u0440\u0430\u0431\u043e\u0442\u044b \u0441 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0435\u0439 \u0442\u043e\u043d\u043a\u043e\u0433\u043e \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f (thin provisioning) \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c Linux \u0438 \u0440\u0430\u0441\u0441\u043a\u0430\u0436\u0443, \u043a\u0430\u043a \u0435\u0435 \u043c\u043e\u0436\u043d\u043e \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u0442\u044c \u0432 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0447\u0435\u0441\u043a\u0438\u0445 CI\/CD-\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430\u0445 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438. \u041c\u044b \u0440\u0430\u0437\u0431\u0435\u0440\u0435\u043c \u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044e, \u043a\u043e\u0433\u0434\u0430 \u0434\u043b\u044f \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0433\u043e \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043a\u043e\u0434\u0430 \u043f\u0440\u0438 \u0434\u043e\u0441\u0442\u0430\u0432\u043a\u0435 \u0435\u0433\u043e \u0432 production \u043d\u0430\u043c \u043a\u0430\u043a \u043c\u043e\u0436\u043d\u043e \u0431\u044b\u0441\u0442\u0440\u0435\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b \u043a\u043e\u043f\u0438\u0438 \u0411\u0414 MySQL, \u043c\u0430\u043a\u0441\u0438\u043c\u0430\u043b\u044c\u043d\u043e [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":74328,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-74327","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.2 - aioseo.com -->\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/tonkoe-rezervirovanie-fajlovyh-sistem-linux-kak-sozdavat-rabochie-kopii-trehterabajtnoj-subd-mysql-za-20-sekund\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"sq_AL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0422\u043e\u043d\u043a\u043e\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c Linux. \u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043a\u043e\u043f\u0438\u0438 \u0442\u0440\u0435\u0445\u0442\u0435\u0440\u0430\u0431\u0430\u0439\u0442\u043d\u043e\u0439 \u0421\u0423\u0411\u0414 MySQL \u0437\u0430 20 \u0441\u0435\u043a\u0443\u043d\u0434 | ProHoster\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/tonkoe-rezervirovanie-fajlovyh-sistem-linux-kak-sozdavat-rabochie-kopii-trehterabajtnoj-subd-mysql-za-20-sekund\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-03-16T05:42:33+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-03-16T05:42:33+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Rezervimi i holl\u00eb i sistemeve t\u00eb skedar\u00ebve Linux. Si t\u00eb krijoni kopje rezerv\u00eb t\u00eb nj\u00eb baze t\u00eb dh\u00ebnash MySQL prej tre terabajt\u00ebsh brenda 20 sekondave | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/tonkoe-rezervirovanie-fajlovyh-sistem-linux-kak-sozdavat-rabochie-kopii-trehterabajtnoj-subd-mysql-za-20-sekund","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sq_AL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0422\u043e\u043d\u043a\u043e\u0435 \u0440\u0435\u0437\u0435\u0440\u0432\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0444\u0430\u0439\u043b\u043e\u0432\u044b\u0445 \u0441\u0438\u0441\u0442\u0435\u043c Linux. \u041a\u0430\u043a \u0441\u043e\u0437\u0434\u0430\u0432\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0447\u0438\u0435 \u043a\u043e\u043f\u0438\u0438 \u0442\u0440\u0435\u0445\u0442\u0435\u0440\u0430\u0431\u0430\u0439\u0442\u043d\u043e\u0439 \u0421\u0423\u0411\u0414 MySQL \u0437\u0430 20 \u0441\u0435\u043a\u0443\u043d\u0434 | ProHoster","og:url":"https:\/\/prohoster.info\/sq\/blog\/administrirovanie\/tonkoe-rezervirovanie-fajlovyh-sistem-linux-kak-sozdavat-rabochie-kopii-trehterabajtnoj-subd-mysql-za-20-sekund","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-03-16T05:42:33+00:00","article:modified_time":"2020-03-16T05:42:33+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"74327","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 18:16:23","updated":"2022-10-01 23:42:57","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/74327","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/comments?post=74327"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/posts\/74327\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media\/74328"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/media?parent=74327"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/categories?post=74327"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sq\/wp-json\/wp\/v2\/tags?post=74327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}