{"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\/az\/blog\/administrirovanie\/tonkoe-rezervirovanie-fajlovyh-sistem-linux-kak-sozdavat-rabochie-kopii-trehterabajtnoj-subd-mysql-za-20-sekund","title":{"rendered":"Linux fayl sisteml\u0259rinin inc\u0259 rezervasiyas\u0131. 3 terabaytl\u0131q MySQL DB-nin 20 saniy\u0259y\u0259 ehtiyat n\u00fcsx\u0259l\u0259rini nec\u0259 yaratmaq olar","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Linux fayl sisteml\u0259rinin inc\u0259 rezervasiyas\u0131. 3 terabaytl\u0131q MySQL DB-nin 20 saniy\u0259y\u0259 ehtiyat n\u00fcsx\u0259l\u0259rini nec\u0259 yaratmaq olar\" src=\"\/wp-content\/uploads\/2020\/03\/7502785a78bd6f069913e97829ff2f63.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>M\u0259ni Yuriy adland\u0131r\u0131rlar, m\u0259n Sitimobil-d\u0259 sistem idar\u0259etm\u0259 qrupunun r\u0259hb\u0259riy\u0259m. Bu g\u00fcn Linux fayl sisteml\u0259rinin \u201cinc\u0259 ay\u0131rma\u201d (thin provisioning) texnologiyas\u0131 il\u0259 ba\u011fl\u0131 t\u0259cr\u00fcb\u0259mi payla\u015faca\u011fam v\u0259 bunun \u015firk\u0259timizin CI\/CD prosesl\u0259rind\u0259 nec\u0259 t\u0259tbiq oluna bil\u0259c\u0259yini izah ed\u0259c\u0259y\u0259m. Biz, kodu istehsala \u00e7atd\u0131rd\u0131qda m\u00fcmk\u00fcn q\u0259d\u0259r tez \u2018m\u00fcharib\u0259\u2019 versiyas\u0131na yax\u0131n, oxuma v\u0259 yazma \u00fc\u00e7\u00fcn \u0259l\u00e7atan MySQL veril\u0259nl\u0259r bazas\u0131 sur\u0259tl\u0259rin\u0259 ehtiyac\u0131m\u0131z olan v\u0259ziyy\u0259ti m\u00fczakir\u0259 ed\u0259c\u0259yik.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h3 id=\"vvedenie-zachem-davat-vrednye-sovety\">Giri\u015f: niy\u0259 z\u0259r\u0259rli m\u0259sl\u0259h\u0259tl\u0259r verm\u0259k laz\u0131md\u0131r?<\/h3>\n<p><\/p>\n<p>M\u0259ntiqi suald\u0131r, \u00e7\u00fcnki test m\u00fchitl\u0259rin\u0259 veril\u0259nl\u0259r bazas\u0131 sxeml\u0259rinin k\u00f6\u00e7\u00fcr\u00fclm\u0259si \u00fc\u00e7\u00fcn i\u015fl\u0259k mexanizml\u0259r m\u00f6vcuddur. \u018fslind\u0259, \u0259sas \u015fardla\u015fd\u0131r\u0131lmam\u0131\u015f DB-nin bel\u0259 h\u0259cml\u0259r\u0259 \u00e7atd\u0131r\u0131lmas\u0131n\u0131n m\u0259nas\u0131 n\u0259dir? \u00dcst\u0259lik, test \u00fc\u00e7\u00fcn b\u00fct\u00fcn m\u0259lumatlar laz\u0131m deyil. \u0130zah etm\u0259y\u0259 \u00e7al\u0131\u015faca\u011fam.<\/p>\n<p><\/p>\n<p>T\u0259xmin\u0259n bir il \u0259vv\u0259l taksi agregatorumuzun aktiv art\u0131m fonunda (2018-ci ild\u0259 ba\u015fa \u00e7atd\u0131r\u0131lan s\u0259f\u0259rl\u0259r \u00fczr\u0259 15 d\u0259f\u0259 artm\u0131\u015fd\u0131r) m\u0259lumat h\u0259cml\u0259ri, serverl\u0259r\u0259 olan y\u00fck, yay\u0131m tezliyi artd\u0131. Biz a\u015fa\u011f\u0131dak\u0131 v\u0259ziyy\u0259tl\u0259 qar\u015f\u0131la\u015fd\u0131q:<\/p>\n<p><\/p>\n<ul>\n<li>\u018fsas MySQL veril\u0259nl\u0259r bazas\u0131 t\u0259xmin\u0259n 1000 c\u0259dv\u0259l \u00fcmumi h\u0259cmi 2,5 TB-a \u00e7atd\u0131 v\u0259 b\u00f6y\u00fcm\u0259y\u0259 davam etdi.<\/li>\n<li>Veril\u0259nl\u0259rin b\u00f6l\u00fcnm\u0259sind\u0259n (\u015fardla\u015fd\u0131rmadan) s\u00fcr\u0259tl\u0259 ke\u00e7m\u0259k imkan\u0131 yox idi v\u0259 \u2018ist\u0259diyim kimi v\u0259 ist\u0259diyim c\u00fcr veril\u0259nl\u0259r bazas\u0131na yaz\u0131ram\u2019 k\u00f6hn\u0259 yana\u015fmas\u0131 buna mane olurdu, c\u0259dv\u0259ll\u0259r aras\u0131nda bir \u00e7ox JOIN-lar v\u0259 daxili as\u0131l\u0131l\u0131qlar var idi.<\/li>\n<li>Test m\u00fchitl\u0259rin\u0259 veril\u0259nl\u0259r bazas\u0131 sxeminin k\u00f6\u00e7\u00fcr\u00fclm\u0259si mexanizmi yox idi.<\/li>\n<li>\u0130stiqam\u0259t\u0259 qaytar\u0131ld\u0131qda kodun avtomatik test olunmas\u0131 yox idi.<\/li>\n<\/ul>\n<p><\/p>\n<p>Sonuncu problemi m\u00fcmk\u00fcn q\u0259d\u0259r tez h\u0259ll etm\u0259k ist\u0259yirdik. PHP monolitinin \u0259sas\u0131n\u0131 yoxlamaq \u00fc\u00e7\u00fcn art\u0131q Postman testl\u0259ri yaz\u0131lm\u0131\u015fd\u0131, lakin aktual veril\u0259nl\u0259r bazas\u0131 \u00e7at\u0131\u015fm\u0131rd\u0131. Eyni zamanda, gec\u0259 sur\u0259t yaratmaq, onu ustad etm\u0259kl\u0259 g\u00fcn \u0259rzind\u0259 istifad\u0259y\u0259 verm\u0259k imkan\u0131m\u0131z yox idi: \u00e7oxlu sayda yay\u0131m v\u0259 d\u0259yi\u015fiklik, o c\u00fcml\u0259d\u0259n veril\u0259nl\u0259r v\u0259 veril\u0259nl\u0259r bazas\u0131 sxemind\u0259ki d\u0259yi\u015fiklikl\u0259r g\u00fcnd\u00fcz\u00fcn ortas\u0131nda stendi i\u015fl\u0259m\u0259z hala g\u0259tir\u0259rdi. H\u0259m\u00e7inin, yay\u0131m\u0131n yaln\u0131z i\u015f g\u00fcn\u00fc il\u0259 m\u0259hdudla\u015fd\u0131r\u0131lmas\u0131 da effektiv olmazd\u0131. <\/p>\n<p><\/p>\n<p>Buna baxmayaraq, v\u0259zif\u0259 yerin\u0259 yetirildi: ilk i\u015f stendimizi art\u0131q iki h\u0259ft\u0259 \u0259rzind\u0259 \u0259ld\u0259 etdik. Ke\u00e7\u0259n il \u0259rzind\u0259 bir \u00e7ox d\u0259yi\u015fiklikl\u0259r\u0259 m\u0259ruz qald\u0131 v\u0259 h\u0259l\u0259 d\u0259 istifad\u0259 olunur.<\/p>\n<p><\/p>\n<p>Daha sonra h\u0259llimizin inki\u015faf\u0131nda b\u00fct\u00fcn add\u0131mlar\u0131 v\u0259 m\u0259rh\u0259l\u0259l\u0259ri \u0259trafl\u0131 izah ed\u0259c\u0259y\u0259m. Siz, bu metodun ya\u015fay\u0131\u015f h\u00fcququna layiq oldu\u011funu anlam\u0131\u015f olacaqs\u0131n\u0131z.<\/p>\n<p><\/p>\n<p><strong>\u201c\u0130nc\u0259 ay\u0131rma\u201d n\u0259dir?<\/strong><br \/>\nBu, m\u00f6vcud olan resursdan daha \u00e7ox t\u0259l\u0259b olunan resursu tahsis etm\u0259y\u0259 imkan ver\u0259n bir hardware v\u0259 ya proqram t\u0259minat\u0131 texnologiyas\u0131d\u0131r (ba\u015fqa ad\u0131 sparse volumes). Burada tahsis edil\u0259n h\u0259cmin just-enough (vaxt\u0131nda laz\u0131m olan) v\u0259 just-in-time (laz\u0131m olan vaxtda) kriteriyalar\u0131na uy\u011fun g\u0259lm\u0259si vacibdir. \u018fsas\u0259n ince ay\u0131rma m\u00fcxt\u0259lif saxlama sisteml\u0259rind\u0259 (\u0421\u0425\u0414) istifad\u0259 olunur ki, bu da faktiki \u0259l\u00e7atanlardan daha \u00e7ox t\u0259l\u0259b olunan disk sah\u0259sini t\u0259qdim etm\u0259y\u0259 imkan verir. Bu texnologiya m\u00fcxt\u0259lif fayl sisteml\u0259ri t\u0259r\u0259find\u0259n d\u0259st\u0259kl\u0259nir, m\u0259s\u0259l\u0259n, LVM2, ZFS, BTRFS. \u0130nc\u0259 ay\u0131rma, virtualizasiya hipervizorlar\u0131nda geni\u015f istifad\u0259 olunur. Biz\u0259 inc\u0259 ay\u0131rma, \u0259sas m\u0259lumat b\u00f6lm\u0259sinin snapshot-lar\u0131ndan ehtiyac duydu\u011fumuz q\u0259d\u0259r kopya yaratma\u011fa imkan verdi (MySQL DBMS-in data-dizin).<\/p>\n<p><\/p>\n<h3 id=\"pervyy-stend-tehnologiya-thin-lvm\">Birinci stend, Thin LVM texnologiyas\u0131<\/h3>\n<p><\/p>\n<p>Bu b\u00f6l\u00fcm\u00fc h\u0259l\u0259 d\u0259 \"B\u00f6y\u00fck m\u0259lumat h\u0259cml\u0259rin\u0259 maksimum s\u00fcr\u0259tli snapshot-lar nec\u0259 edil\u0259c\u0259yi\" adland\u0131rmaq olar <noindex><a rel=\"nofollow\" href=\"http:\/\/man7.org\/linux\/man-pages\/man7\/lvmthin.7.html\">Thin LVM<\/a><\/noindex>, fayl sisteminin v\u0259 MySQL DBMS-in stabilitesini qeyri-etik g\u00f6st\u0259ricil\u0259r\u0259 endirm\u0259kl\u0259. <\/p>\n<p><\/p>\n<p>Art\u0131q LVM-i OS-in \u0259sas b\u00f6lm\u0259l\u0259rini qurmaq \u00fc\u00e7\u00fcn istifad\u0259 etdiyimizd\u0259n, ondan ba\u015flama\u011fa q\u0259rar verdik. \u0130lk n\u00f6vb\u0259d\u0259, snapshot-lar\u0131 sor\u011fu \u0259sas\u0131nda yarada bil\u0259c\u0259yimiz fiziki bir replikam\u0131z olan ayr\u0131 bir fiziki ma\u015f\u0131n laz\u0131m idi. Test d\u00f6vr\u00fcnd\u0259 bu n\u00fcsx\u0259d\u0259 d\u0259yi\u015f\u0259n \u0259m\u0259liyyatlara icaz\u0259 verdik, testi tamamlad\u0131qdan sonra u\u011furla silirdik. Server konfiqurasiyas\u0131 bel\u0259 idi:<\/p>\n<p><\/p>\n<ul>\n<li>2 x Intel Silver 4114 (10&#215;2,2 \u0413\u0413\u0446 HT)<\/li>\n<li>8 x 32 GB DDR4 <\/li>\n<li>8 x 1920 GB Intel SSD Adaptec RAID kontrollerind\u0259 RAID-10-da<\/li>\n<\/ul>\n<p><\/p>\n<p>RAID kontrolleri il\u0259 proqram RAID MD aras\u0131nda se\u00e7im m\u00f6vzusunda ayr\u0131ca bir m\u0259qal\u0259 yazmaq olar. Sad\u0259c\u0259, se\u00e7imimiz\u0259 iki amilin t\u0259sir etdiyini dem\u0259k ist\u0259yir\u0259m:<\/p>\n<p><\/p>\n<ul>\n<li>Tap\u015f\u0131r\u0131q qoyulanda b\u00fct\u00fcn DBMS-l\u0259ri RAID kontrollerl\u0259rind\u0259 qura\u015fd\u0131r\u0131rd\u0131q, buna g\u00f6r\u0259 d\u0259 bunu tarixi olaraq bel\u0259 ba\u015fa d\u00fc\u015fm\u0259k olar. <\/li>\n<li>Fayl sistemind\u0259ki sintetik testl\u0259rd\u0259 v\u0259 MySQL-d\u0259 m\u00fcxt\u0259lif \u0259m\u0259liyyatlarla ba\u011fl\u0131 testl\u0259rd\u0259 performans f\u0259rqi minimal oldu. <\/li>\n<\/ul>\n<p><\/p>\n<p>Biz \u0259ld\u0259 edil\u0259n RAID-10-u b\u00f6ld\u00fck: b\u00fct\u00fcn h\u0259cmi \u0259hat\u0259 ed\u0259n bir Unit Group (VG) yaratd\u0131q (t\u0259xmin\u0259n 6,7 GB x\u0259rcl\u0259rl\u0259) v\u0259 sistem \u00fc\u00e7\u00fcn 50 GB \u00f6l\u00e7\u00fcs\u00fcnd\u0259 lojiq b\u00f6lm\u0259 (Logical Volume, LV) yaratd\u0131q. Normal halda, qalan b\u00fct\u00fcn yeri MySQL b\u00f6lm\u0259si \u00fc\u00e7\u00fcn ay\u0131r\u0131r\u0131q. Amma biz\u0259 inc\u0259 ay\u0131rma laz\u0131m idi, ona g\u00f6r\u0259 d\u0259 \u0259vv\u0259lc\u0259, 3,5 TB \u00f6l\u00e7\u00fcs\u00fcnd\u0259 \u2044var\u2044lib\u2044mysql b\u00f6lm\u0259si yaratd\u0131\u011f\u0131m\u0131z \"pool\" yaratd\u0131q (g\u00f6zl\u0259nil\u0259n DB h\u0259cml\u0259rin\u0259 \u0259saslanaraq):<\/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>Partition format\u0131n\u0131 ext4 etdik, onu montajlad\u0131q, sur\u0259tini yazd\u0131q v\u0259 ilkin stand yaratd\u0131q. Sonra API forma ba\u011flad\u0131q ki, bu da snapshotlar yaratmal\u0131, m\u00fc\u0259yy\u0259n portda MySQL veril\u0259nl\u0259r bazas\u0131 n\u00fcmun\u0259sini qald\u0131rmal\u0131 v\u0259 yarad\u0131lm\u0131\u015f n\u00fcmun\u0259ni silm\u0259lidir. Bunun \u00fc\u00e7\u00fcn yaln\u0131z sistem \u00e7a\u011f\u0131r\u0131\u015flar\u0131 istifad\u0259 edildiyi \u00fc\u00e7\u00fcn skriptin yaz\u0131lma dili kimi adi bash se\u00e7dik, API ba\u011flanma n\u00f6qt\u0259si olaraq HTTP \u2192 bash, a\u00e7\u0131q m\u0259nb\u0259 h\u0259llini i\u015f\u0259 sald\u0131q. <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/phonkee\/goexpose\">goexpose<\/a><\/noindex>, Go-da yaz\u0131lm\u0131\u015fd\u0131r. <\/p>\n<p><\/p>\n<p>Bir g\u00fcn bash skriptl\u0259rimizi a\u00e7\u0131q m\u0259nb\u0259y\u0259 yerl\u0259\u015fdir\u0259c\u0259yik, amma indiki halda \u0259sas alqoritmi sad\u0259c\u0259 t\u0259svir ed\u0259c\u0259y\u0259m:<\/p>\n<p><\/p>\n<p>\u018fsas snapshotun yarad\u0131lmas\u0131 snapmain:<\/p>\n<p><\/p>\n<ol>\n<li>\u018fsas sur\u0259ti dayand\u0131r\u0131r\u0131q.<\/li>\n<li>snapmain snapshotu \u00fc\u00e7\u00fcn \u0259m\u0259liyyatlara bloklama qoyuruq.<\/li>\n<li>Yeni snapshot creat edirik snapmain.<\/li>\n<li>MySQL'i i\u015f\u0259 sal\u0131r\u0131q v\u0259 bloklaman\u0131 qald\u0131r\u0131r\u0131q.<\/li>\n<\/ol>\n<p><\/p>\n<p>\u0130st\u0259nil\u0259n portda snapmain-d\u0259n veril\u0259nl\u0259r bazas\u0131n\u0131n yarad\u0131lmas\u0131:<\/p>\n<p><\/p>\n<ol>\n<li>M\u00fc\u0259yy\u0259n DB n\u00fcmun\u0259sind\u0259 (port) bloklama qoyuruq.<\/li>\n<li>\u018fsas snapshotun yarad\u0131lmas\u0131n\u0131n bloklanma v\u0259ziyy\u0259tini yoxlay\u0131r\u0131q. \u018fg\u0259r varsa, 5 saniy\u0259 aral\u0131qlarla g\u00f6zl\u0259yib yenid\u0259n yoxlay\u0131r\u0131q.<\/li>\n<li>N\u00fcmun\u0259nin k\u00f6hn\u0259 LV partitionunun olub-olmad\u0131\u011f\u0131n\u0131 yoxlay\u0131r\u0131q.<br \/>\n3.1 \u018fg\u0259r varsa, MySQL n\u00fcmun\u0259sini kill -9 il\u0259 dayand\u0131r\u0131r\u0131q v\u0259 LV partitionunu silirik.<\/li>\n<li>snapmain-d\u0259n yeni n\u00fcmun\u0259 yarad\u0131r\u0131q.<\/li>\n<li>Bu n\u00fcmun\u0259 \u00fc\u00e7\u00fcn qovluqlar\u0131 haz\u0131rlay\u0131r v\u0259 montajlay\u0131r\u0131q.<\/li>\n<li>Slave oldu\u011funa dair \u0259lam\u0259tl\u0259ri silirik (fail) v\u0259 MySQL n\u00fcmun\u0259sini i\u015f\u0259 sal\u0131r\u0131q.<\/li>\n<li>Onu master edirik.<\/li>\n<li>Bloklaman\u0131 qald\u0131r\u0131r\u0131q.<\/li>\n<\/ol>\n<p><\/p>\n<p>\u0130st\u0259nil\u0259n portda veril\u0259nl\u0259r bazas\u0131n\u0131n silinm\u0259si:<\/p>\n<p><\/p>\n<ol>\n<li>M\u00fc\u0259yy\u0259n DB n\u00fcmun\u0259sind\u0259 (port) bloklama qoyuruq.<\/li>\n<li>MySQL n\u00fcmun\u0259sini kill -9 il\u0259 \u00f6ld\u00fcr\u00fcr\u00fck.<\/li>\n<li>Qovluqlar\u0131 montajdan \u00e7\u0131xar\u0131r\u0131q.<\/li>\n<li>LV partitionunu silirik v\u0259 bloklaman\u0131 qald\u0131r\u0131r\u0131q.<\/li>\n<\/ol>\n<p><\/p>\n<p>Yeni veril\u0259nl\u0259r bazas\u0131 n\u00fcmun\u0259l\u0259rinin par\u00e7alar\u0131n\u0131 klonlamaq \u00fc\u00e7\u00fcn n\u00fcmun\u0259 komandalar:<\/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>\u0130ndi qar\u015f\u0131la\u015fd\u0131\u011f\u0131m\u0131z \u0259sas problemi anlataca\u011fam - biz inc\u0259 ehtiyatlama istifad\u0259 ed\u0259rk\u0259n SSD diskl\u0259rinin performans\u0131na \u00e7arpd\u0131q. Bu, Thin LVM-nin x\u00fcsusiyy\u0259tl\u0259ri s\u0259b\u0259bind\u0259n ba\u015f verdi: onun \u0259sas\u0131nda (\u0259sas\u0259n) cihaz s\u0259viyy\u0259sind\u0259 ki\u00e7ik bloklar 4 MB-l\u0131q \u00f6l\u00e7\u00fcd\u0259 istifad\u0259 edilir. Bu bel\u0259 g\u00f6r\u00fcn\u00fcrd\u00fc:<\/p>\n<p><\/p>\n<ol>\n<li>\u018fsas partitiondan snapshot yarad\u0131r\u0131q \/var\/lib\/mysql.<\/li>\n<li>Masteri yeti\u015fdirm\u0259k \u00fc\u00e7\u00fcn replika i\u015f\u0259 sal\u0131r\u0131q.<\/li>\n<li>Replika c\u0259dv\u0259ll\u0259rind\u0259 h\u0259r hans\u0131 bir d\u0259yi\u015fiklik snapshot b\u00f6lm\u0259sind\u0259 k\u00f6hn\u0259 d\u0259yi\u015fm\u0259mi\u015f veril\u0259n bloklar\u0131n\u0131 saxlama\u011fa s\u0259b\u0259b olur.<\/li>\n<li>Y\u00fcks\u0259k test n\u00fcmun\u0259sind\u0259 h\u0259r hans\u0131 bir d\u0259yi\u015fiklik bu n\u00fcmun\u0259 \u00fc\u00e7\u00fcn klonlanm\u0131\u015f snapshot b\u00f6lm\u0259sind\u0259 k\u00f6hn\u0259 d\u0259yi\u015fm\u0259mi\u015f bloklar\u0131 saxlama\u011fa s\u0259b\u0259b olur.<\/li>\n<li>Giri\u015f-\u00e7\u0131x\u0131\u015f \u0259m\u0259liyyatlar\u0131n\u0131n 100% y\u00fckl\u0259nm\u0259sini al\u0131r\u0131q, h\u0259r hans\u0131 \u0259m\u0259liyyat\u0131 yava\u015flad\u0131r v\u0259 replikan\u0131n t\u0259dric\u0259n gerid\u0259 qalmas\u0131na s\u0259b\u0259b olur.<\/li>\n<li>\u0130\u015f g\u00fcn\u00fc sonunda bir ne\u00e7\u0259 saat gerid\u0259 qalm\u0131\u015f bir stand al\u0131r\u0131q.<\/li>\n<\/ol>\n<p><\/p>\n<p>Bununla m\u00fcbariz\u0259 aparma\u011f\u0131m\u0131z v\u0259 daha rahat n\u0259tic\u0259 \u0259ld\u0259 etm\u0259yimiz (\u0259sas m\u0259qamlar):<\/p>\n<p><\/p>\n<p>RAID-kontroller:<\/p>\n<p><\/p>\n<ul>\n<li>B\u00fct\u00fcn n\u00f6v k\u0259sm\u0259l\u0259ri standart olaraq s\u00f6nd\u00fcrd\u00fck. <\/li>\n<li>Writeback rejimi t\u0259tbiq olundu (m\u0259hsul yadda\u015fa girm\u0259zd\u0259n \u0259vv\u0259l, yazma prosesinin ba\u015fa \u00e7atmas\u0131).<\/li>\n<\/ul>\n<p><\/p>\n<p>Fayl sistemi:<\/p>\n<p><\/p>\n<ul>\n<li>Montaj n\u00f6qt\u0259sind\u0259 \/var\/lib\/mysql d\u00fcz\u0259ldildi <em>noatime,nodiratime,data=writeback<\/em><\/li>\n<li>ext4 jurnal\u0131n\u0131 tune2fs il\u0259 ba\u011flad\u0131q.<\/li>\n<\/ul>\n<p><\/p>\n<p>MySQL:<\/p>\n<p><\/p>\n<ul>\n<li>D\u00fcz\u0259ldildi <em>innodb_flush_method = O_DSYNC<\/em> (yazma s\u00fcr\u0259tini art\u0131rd\u0131, bel\u0259likl\u0259 etibarl\u0131l\u0131\u011f\u0131 azaltd\u0131).<\/li>\n<li>Jurnal\u0131n ba\u011flanmas\u0131, loglara ehtiyac\u0131m\u0131z olmad\u0131\u011f\u0131na g\u00f6r\u0259.<\/li>\n<li>D\u00fcz\u0259ldildi <em>innodb_buffer_pool_size = 4G<\/em> (InnoDB hovuzunun \u00f6l\u00e7\u00fcs\u00fc n\u0259 q\u0259d\u0259r ki\u00e7ikdirs\u0259, MySQL xidm\u0259tinin dayanmas\u0131 o q\u0259d\u0259r s\u00fcr\u0259tli olacaq v\u0259 snapshot yaratma prosesi d\u0259 o q\u0259d\u0259r s\u00fcr\u0259tli ba\u015fa \u00e7atacaq).<\/li>\n<\/ul>\n<p><\/p>\n<p>Bu tam siyah\u0131 deyil, x\u00fcsusil\u0259 MySQL \u00fc\u00e7\u00fcn. Dig\u0259r d\u0259yi\u015fiklikl\u0259r is\u0259 \u0259h\u0259miyy\u0259tc\u0259 daha azd\u0131r v\u0259 \u00e7ox vaxt t\u0259tbiq edilmir v\u0259 d\u0259qiq deyildir. M\u0259s\u0259l\u0259n, disk y\u00fckl\u0259m\u0259sini azaltmaq \u00fc\u00e7\u00fcn biz bel\u0259 d\u0259 ets\u0259k: <em>innodb_parallel_doublewrite_path<\/em> \u015f\u0259klind\u0259 \/dev\/shm, b\u0259zi hallarda yanl\u0131\u015f ba\u015fa \u00e7atm\u0131\u015f instansiyan\u0131n ba\u015flad\u0131\u011f\u0131 vaxtdan 5 saniy\u0259 qazana bil\u0259rdi.<\/p>\n<p><\/p>\n<p>Niy\u0259 MySQL-i snapshotdan \u0259vv\u0259l dayand\u0131r\u0131r\u0131q? Ax\u0131, i\u015fl\u0259y\u0259n replica-dan snapshot ala bil\u0259rik. Bu do\u011frudur, lakin bu snapshot-dan yeni DB instansiyas\u0131 standart olaraq z\u0259d\u0259l\u0259nmi\u015f hesab olunacaq v\u0259 i\u015f\u0259 sal\u0131nanda tam skan etm\u0259 t\u0259l\u0259b ed\u0259c\u0259k. Replica-n\u0131 dayand\u0131rmaq m\u00fctl\u0259q daha s\u00fcr\u0259tlidir, baxmayaraq ki, bu, n\u0259tic\u0259d\u0259 b\u00fct\u00fcn prosesin \u0259n uzun \u0259m\u0259liyyat\u0131 olur.<\/p>\n<p><\/p>\n<p>N\u0259tic\u0259d\u0259, daha q\u0259bul edil\u0259n zamanlama v\u0259 i\u015fl\u0259k bir m\u00fchit \u0259ld\u0259 etdik. Lakin, \u0259sas replica-n\u0131n replikasiyas\u0131n\u0131n \u0259n ifad\u0259li qrafikind\u0259n g\u00f6r\u00fcnd\u00fcy\u00fc kimi, v\u0259ziyy\u0259t h\u0259l\u0259 d\u0259 ideal deyil:<br \/>\n<img decoding=\"async\" alt=\"Linux fayl sisteml\u0259rinin inc\u0259 rezervasiyas\u0131. 3 terabaytl\u0131q MySQL DB-nin 20 saniy\u0259y\u0259 ehtiyat n\u00fcsx\u0259l\u0259rini nec\u0259 yaratmaq olar\" src=\"\/wp-content\/uploads\/2020\/03\/9bb7bb7d9abfea124a75616deec57f05.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Dig\u0259r \u00e7at\u0131\u015fmazl\u0131qlardan biri, Thin LVM hovuzunu izl\u0259m\u0259yin praktiki olaraq m\u00fcmk\u00fcn olmamas\u0131d\u0131r: sistem standart funksiyalar\u0131 olan iostat-dan ba\u015fqa, m\u0259s\u0259l\u0259n, hovuzun hans\u0131 hiss\u0259sinin fayl sistemin\u0259 daha \u00e7ox y\u00fck verdiyini anlamaq m\u00fcmk\u00fcn deyil.<\/p>\n<p><\/p>\n<p>Yuxar\u0131da t\u0259svir edil\u0259n optimizasiya \u0259laq\u0259dar bir b\u00f6y\u00fck \u00e7at\u0131\u015fmazl\u0131\u011fa ayr\u0131ca diqq\u0259t yetirilm\u0259lidir: biz YOLO m\u00fchiti \u0259ld\u0259 etdik. T\u0259xmin\u0259n bir-iki ayda bir, ext4 bel\u0259 c\u00fcr h\u0259ddind\u0259n art\u0131q y\u00fck\u0259 d\u00f6zm\u0259di v\u0259 geri d\u00f6n\u00fclm\u0259z \u015f\u0259kild\u0259 s\u0131radan \u00e7\u0131xaraq formatlanma\u011f\u0131 v\u0259 replikaya y\u00fckl\u0259nm\u0259sini t\u0259l\u0259b etdi. S\u00fcr\u0259t qazand\u0131q, lakin stabilik itirdik.<\/p>\n<p><\/p>\n<p>Thin LVM istifad\u0259si zaman\u0131 hans\u0131 metrikalarla izl\u0259m\u0259k laz\u0131md\u0131r:<\/p>\n<p><\/p>\n<ul>\n<li>Thin pool data %<\/li>\n<li>Thin pool metadata %<\/li>\n<\/ul>\n<p><\/p>\n<p>\u018fg\u0259r y\u0131\u011f\u0131lm\u0131\u015f yerin sona \u00e7atd\u0131\u011f\u0131 bizim m\u00fchitimiz s\u00fcrd\u00fcy\u00fc halda (diskl\u0259ri t\u0259mizl\u0259m\u0259k kifay\u0259tdir), metadata \u00fc\u00e7\u00fcn yerin bitm\u0259si hovuzun tam \u00e7\u00f6km\u0259sin\u0259 v\u0259 s\u0131f\u0131rdan yenid\u0259n yarad\u0131lma laz\u0131m olmas\u0131na s\u0259b\u0259b olacaq.<\/p>\n<p><\/p>\n<p>Hovuz i\u00e7ind\u0259ki fayl sistemi zamanla \u00e7ox par\u00e7alana bilir. G\u00fcnd\u0259 bir d\u0259f\u0259 cronla <em>fstrim -v \/var\/lib\/mysql<\/em>.<\/p>\n<p><\/p>\n<p>Aral\u0131q n\u0259tic\u0259l\u0259r:<\/p>\n<p><\/p>\n<ul>\n<li>Texnologiya asanl\u0131qla t\u0259tbiq oluna bil\u0259r, LVM d\u0259 eyni \u015f\u0259kild\u0259 v\u0259 m\u00fch\u0259ndisin x\u00fcsusi bir bacar\u0131\u011f\u0131na ehtiyac yoxdur.<\/li>\n<li>Bu, ki\u00e7ik \u00f6l\u00e7\u00fcl\u00fc v\u0259 \u00e7ox y\u00fckl\u0259nm\u0259mi\u015f DB-l\u0259r \u00fc\u00e7\u00fcn yax\u015f\u0131 bir se\u00e7imdir. DB n\u0259 q\u0259d\u0259r ki\u00e7ikdirs\u0259, fayl sistemind\u0259 \u00e7\u00f6kd\u00fcy\u00fc q\u0259d\u0259r o q\u0259d\u0259r az \u00e7\u0259kinir v\u0259 diskl\u0259r\u0259 y\u00fck daha az olur.<\/li>\n<li>Bizim v\u0259zif\u0259miz \u00fc\u00e7\u00fcn ba\u015fqa h\u0259ll yollar\u0131 axtarma\u011fa ba\u015flad\u0131q, h\u0259r \u015fey g\u0259l\u0259c\u0259k hiss\u0259d\u0259 olacaq.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"vtoroy-stend-tehnologiya-zfs\">\u0130kinci stend, ZFS texnologiyas\u0131<\/h3>\n<p><\/p>\n<p>Bir zamanlar ZFS fayl sistemi il\u0259 i\u015fl\u0259mi\u015fdim, amma o zaman ZFS, \u00f6z do\u011fma Solaris \u0259m\u0259liyyat sistemi ail\u0259sind\u0259 yax\u015f\u0131 i\u015fl\u0259yirdi. FreeBSD-y\u0259 port edilmi\u015f versiya m\u00f6vcud idi, lakin onun realla\u015fma s\u0259viyy\u0259si kifay\u0259t q\u0259d\u0259r yax\u015f\u0131 idi. Linux-da is\u0259 az bir insan\u0131n istifad\u0259 etdiyi yar\u0131m\u00e7\u0131q bir port var idi. B-tree m\u0259lumatlar\u0131n saxlan\u0131lmas\u0131 strukturu (bu arada, InnoDB MySQL-d\u0259 d\u0259 eyni strukturdur) s\u0259b\u0259bind\u0259n ZFS, \u00e7oxlu sayda fayl olan qura\u015fd\u0131rmalarda yax\u015f\u0131 n\u0259tic\u0259 vermirdi. B\u00fct\u00fcn bunlar v\u0259 istifad\u0259y\u0259 ba\u015flamadan \u00f6nc\u0259 m\u00f6vzunu \u00f6yr\u0259nm\u0259k laz\u0131m olmas\u0131, bu fayl sistemini t\u0259cr\u00fcb\u0259md\u0259n uzun m\u00fcdd\u0259t \u00e7\u0131xartd\u0131. ext4 v\u0259 xfs ortaya \u00e7\u0131xd\u0131, standart hal\u0131na g\u0259ldi. Lakin bizim v\u0259zif\u0259miz \u00fc\u00e7\u00fcn ZFS tamamil\u0259 uy\u011fundur, h\u0259m d\u0259 Linux versiyas\u0131, fikrimc\u0259, yet\u0259rinc\u0259 etibarl\u0131 bir m\u0259hsula \u00e7evrilmi\u015fdir (tam d\u0259st\u0259k olmasa da, bu s\u0259b\u0259bd\u0259n ZFS-d\u0259 tamamil\u0259 s\u0131f\u0131rdan sistem qura\u015fd\u0131ra bilm\u0259k yaln\u0131z bir s\u0131ra m\u00fcxt\u0259lif marifl\u0259r i\u0259 m\u00fcmk\u00fcnd\u00fcr), onu s\u0131naqdan ke\u00e7irm\u0259y\u0259 q\u0259rara ald\u0131q.<\/p>\n<p><\/p>\n<p>Ayd\u0131nd\u0131r ki, stendi ox\u015far konfiqurasiyada (RAID n\u0259zar\u0259t\u00e7isind\u0259n ba\u015fqa) se\u00e7dik. 1920 GB-l\u0131q s\u0259kkiz SSD disk qura\u015fd\u0131rd\u0131q. T\u0259miz ZFS-\u0259 server y\u00fckl\u0259m\u0259k \u00fc\u00e7\u00fcn \u00f6z \u015f\u0259b\u0259k\u0259 g\u00f6r\u00fcnt\u00fcm\u00fcz\u00fc yazmaq ist\u0259m\u0259dik, buna g\u00f6r\u0259 b\u00fct\u00fcn diskl\u0259rd\u0259n 50 GB g\u00f6t\u00fcrd\u00fck v\u0259 sistem \u00fc\u00e7\u00fcn MD RAID-10 yaratd\u0131q. H\u0259r diskd\u0259 qalan 1950 GB-\u0131 ZFS RAID-10-a birl\u0259\u015fdirdik:<\/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>MySQL \u00fc\u00e7\u00fcn b\u00f6lm\u0259l\u0259r haz\u0131rlad\u0131q:<\/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>Diqq\u0259t yetirin ki, standart gzip m\u0259lumat s\u0131x\u0131lmas\u0131n\u0131 aktiv etdik. Serverimizd\u0259 \u00e7ox sayda proses g\u00fcc\u00fc var v\u0259 onlar tamamil\u0259 istifad\u0259 edilmir. N\u0259tic\u0259d\u0259 3 TB-dan 1.6 TB-a \u00e7evrildi, v\u0259 z\u0259if hal, \u0259vv\u0259lki v\u0259ziyy\u0259td\u0259 oldu\u011fu kimi, diskl\u0259rin maksimum performans\u0131 oldu\u011fundan, m\u0259lumatlar n\u0259 q\u0259d\u0259r az olsa \u2014 bir o q\u0259d\u0259r yax\u015f\u0131d\u0131r. ZFS-d\u0259n \u0259vv\u0259lc\u0259d\u0259n m\u00fck\u0259mm\u0259l bir bonus al\u0131r\u0131q! Pik vaxt\u0131nda, gzip-i saxlamaq \u00fc\u00e7\u00fcn tam y\u00fck alt\u0131nda 4 n\u00fcv\u0259y\u0259 q\u0259d\u0259r gedir, amma bunun \u00fc\u00e7\u00fcn m\u0259yus olmuruq.<\/p>\n<p><\/p>\n<p>Sonra t\u0259tbiq prosesi daha s\u00fcr\u0259tli getdi. LVM stendind\u0259n MySQL replikas\u0131n\u0131n parametrl\u0259rini kopya etdik. ZFS komandalar\u0131na skritl\u0259ri yenid\u0259n yazma\u011fa bir az vaxt s\u0259rf etm\u0259k laz\u0131m oldu, amma \u00fcmumilikd\u0259, alqoritml\u0259r \u0259vv\u0259lki kimi qald\u0131. Snapsyot yaratma n\u00fcmun\u0259si:<\/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>\u018flav\u0259 t\u0259nziml\u0259m\u0259l\u0259rd\u0259n: ZFS b\u00f6lm\u0259l\u0259rinin metadata v\u0259 l2arc v\u0259 zil loglar\u0131 yadda\u015fa \u00e7\u0131xar\u0131ld\u0131. Sonralar g\u00f6rd\u00fcy\u00fcm\u00fcz kimi, bu bizim \u00fc\u00e7\u00fcn art\u0131q idi, lakin indiy\u0259 q\u0259d\u0259r bu optimizasiyan\u0131 saxlad\u0131q, laz\u0131m g\u0259ldikd\u0259 d\u0259yi\u015fdirm\u0259k \u00e7\u0259tin deyil. M\u0259nfi effektl\u0259rd\u0259n biri is\u0259 server yenid\u0259n ba\u015flad\u0131ld\u0131qda m\u00fcvafiq yadda\u015f sah\u0259l\u0259rinin yenid\u0259n yarad\u0131lmas\u0131 laz\u0131m g\u0259lm\u0259sidir. Bu zaman m\u0259lumat itirilmir. zpool status \u00e7\u0131xar\u0131\u015f\u0131:<\/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>Bel\u0259 konfiqurasiya alt\u0131nda biz test m\u00fchitini s\u0131nama\u011fa ba\u015flad\u0131q v\u0259 m\u00fck\u0259mm\u0259l n\u0259tic\u0259l\u0259r \u0259ld\u0259 etdik: eyni anda i\u015fl\u0259y\u0259n iki DB n\u00fcsx\u0259si (v\u0259 aktiv \u0259sas replikas\u0131) il\u0259 snapshotlarda disk y\u00fckl\u0259m\u0259si 50-60 % oldu.<\/p>\n<p><\/p>\n<p>Biz \u0259sas problemimizd\u0259n qurtulmu\u015fuq ki, bu replikasiyalar\u0131n gecikm\u0259 qrafikind\u0259 g\u00f6r\u00fcn\u00fcr (\u0259vv\u0259lki qrafikl\u0259 m\u00fcqayis\u0259 edin, \u0130nce LVM b\u00f6lm\u0259sind\u0259):<br \/>\n<img decoding=\"async\" alt=\"Linux fayl sisteml\u0259rinin inc\u0259 rezervasiyas\u0131. 3 terabaytl\u0131q MySQL DB-nin 20 saniy\u0259y\u0259 ehtiyat n\u00fcsx\u0259l\u0259rini nec\u0259 yaratmaq olar\" src=\"\/wp-content\/uploads\/2020\/03\/15df9283838a4662ff0f68accfde4089.png\" style=\"display:block;margin: 0 auto;\" \/><\/p>\n<p><\/p>\n<p>Bunun say\u0259sind\u0259 b\u00fct\u00fcn \u0259m\u0259liyyatlarda ciddi s\u00fcr\u0259tl\u0259nm\u0259 \u0259ld\u0259 etdik: replikay\u0131 dayand\u0131r\u0131b ba\u015flatmaqla tam bir snapshotun yarad\u0131lmas\u0131 40 saniy\u0259y\u0259 q\u0259d\u0259r davam edir, yeni MySQL n\u00fcsx\u0259sinin snapshotdan yerl\u0259\u015fdirilm\u0259si 20 saniy\u0259 q\u0259d\u0259r vaxt apar\u0131r. Bu, h\u0259m bizim, h\u0259m d\u0259 proqram kodu testl\u0259rimiz \u00fc\u00e7\u00fcn kifay\u0259t q\u0259d\u0259rdir.<\/p>\n<p><\/p>\n<p>Aral\u0131q n\u0259tic\u0259l\u0259r:<\/p>\n<p><\/p>\n<ul>\n<li>N\u0259tic\u0259l\u0259rimiz kodun test edilm\u0259si \u00fc\u00e7\u00fcn d\u00f6y\u00fc\u015f DB-nin n\u00fcsx\u0259sini \u0259ld\u0259 etm\u0259k t\u0259l\u0259bl\u0259rimizi tam t\u0259min etdi.<\/li>\n<li>Texnologiya il\u0259 ba\u011fl\u0131 anlay\u0131\u015f t\u0259l\u0259b olunur: ZFS-in n\u0259 oldu\u011fu v\u0259 onunla nec\u0259 i\u015fl\u0259m\u0259k laz\u0131m oldu\u011funu ba\u015fa d\u00fc\u015fm\u0259k laz\u0131md\u0131r.<\/li>\n<li>Biz ZFS-in bir milyondan \u00e7ox ki\u00e7ik fayllarla i\u015fl\u0259m\u0259si \u00fc\u00e7\u00fcn cari v\u0259ziyy\u0259ti yoxlamad\u0131q. Lakin problemin davam etdiyini d\u00fc\u015f\u00fcn\u00fcr\u00fck, buna g\u00f6r\u0259 d\u0259 bu fayl sistemini h\u0259r hans\u0131 fayl saxlama yerl\u0259ri \u00fc\u00e7\u00fcn t\u00f6vsiy\u0259 etm\u0259zdim.<\/li>\n<\/ul>\n<p><\/p>\n<h3 id=\"chto-dalshe\">Sonra ne olacak?<\/h3>\n<p><\/p>\n<p>Test m\u00fchitind\u0259 daha he\u00e7 n\u0259 etm\u0259y\u0259 ehtiyac\u0131m\u0131z yoxdur, n\u0259tic\u0259 bizi qane edir. G\u0259l\u0259c\u0259kd\u0259 test m\u00fchitinin replikasiyas\u0131nda test etm\u0259k \u00fc\u00e7\u00fcn laz\u0131m olmayan c\u0259dv\u0259ll\u0259ri istisna etm\u0259k \u00fc\u00e7\u00fcn konfiqurasiya \u0259lav\u0259 etm\u0259yi d\u00fc\u015f\u00fcn\u00fcr\u00fck, bu Baza h\u0259cmini daha da azaldacaq. BTRFS sistemini v\u0259 onun inc\u0259 b\u0259rpa texnologiyas\u0131n\u0131n t\u0259tbiqini s\u0131naqdan ke\u00e7irm\u0259dik. Ancaq art\u0131q \u0259sas m\u0259qs\u0259dimiz\u0259 \u00e7at\u0131ld\u0131\u011f\u0131na g\u00f6r\u0259 bel\u0259 bir v\u0259zif\u0259y\u0259 ehtiyac yoxdur. \u00dcmumilikd\u0259, \u0259lb\u0259tt\u0259 ki, yuxar\u0131da t\u0259svir edil\u0259n yana\u015fmadan uzaqla\u015fma\u011f\u0131 arzulay\u0131r\u0131q \u2014 test m\u00fchitin\u0259 i\u015f\u00e7i DB miqrasiya etm\u0259k, ayr\u0131 bir test DB d\u00f6ng\u0259si yaratmaq, \u0259sas veril\u0259nl\u0259r bazas\u0131n\u0131 par\u00e7alamaq. Bunun \u00e7oxunu art\u0131q h\u0259yata ke\u00e7iririk, bu bar\u0259d\u0259 g\u0259l\u0259c\u0259k m\u0259qal\u0259l\u0259rimizd\u0259 m\u00fctl\u0259q m\u0259lumat ver\u0259c\u0259yik. <\/p>\n<p><\/p>\n<h3 id=\"itogi\">Yekunlar<\/h3>\n<p><\/p>\n<p>\u0130lkin v\u0259zif\u0259 qeyri-adi bir \u015f\u0259kild\u0259 h\u0259ll edilib. Ara n\u0259tic\u0259l\u0259rd\u0259 t\u0259tbiq olunmu\u015f h\u0259r bir texnologiyan\u0131n \u00fcst\u00fcnl\u00fckl\u0259ri v\u0259 m\u0259nfi c\u0259h\u0259tl\u0259ri t\u0259svir olunub, buna g\u00f6r\u0259 d\u0259 hans\u0131n\u0131n v\u0259 n\u0259 vaxt istifad\u0259 edil\u0259c\u0259yini q\u0259rarla\u015fd\u0131raq:<\/p>\n<p><\/p>\n<ul>\n<li>Ince LVM \u2014 ki\u00e7ik DB-l\u0259r \u00fc\u00e7\u00fcn v\u0259 ZFS-i \u00f6yr\u0259nm\u0259y\u0259 vaxt ay\u0131rmaq ist\u0259m\u0259dikd\u0259.<\/li>\n<li>ZFS \u2014 onunla \u00e7al\u0131\u015fma\u011f\u0131 bil\u0259nl\u0259r \u00fc\u00e7\u00fcn v\u0259 ya h\u0259r hans\u0131 bir v\u0259ziyy\u0259td\u0259 \u00f6yr\u0259nm\u0259y\u0259 vaxt ay\u0131rmaq imkan\u0131 varsa. <\/li>\n<\/ul>\n<p><\/p>\n<p>Daha \u00fcst s\u0259viyy\u0259d\u0259, bu m\u0259qal\u0259 iki fayl sisteminin texnologiyas\u0131n\u0131 m\u00fcqayis\u0259 etm\u0259kd\u0259n \u00e7oxdur. M\u0259nim ifad\u0259 etm\u0259k v\u0259 m\u00f6hk\u0259ml\u0259ndirm\u0259k ist\u0259diyim \u0259sas fikir budur ki, biznes \u00fc\u00e7\u00fcn kritik v\u0259ziyy\u0259tl\u0259rd\u0259 qeyri-adi d\u00fc\u015f\u00fcnm\u0259kd\u0259n \u00e7\u0259kinm\u0259m\u0259li v\u0259 yaln\u0131z haz\u0131r reseptl\u0259r\u0259 istinad etm\u0259m\u0259liyik. Bir zamanlar, texniki departamentimiz bir yerd\u0259 ba\u015f\u0131n\u0131 t\u0259rp\u0259tm\u0259k v\u0259 \u00fc\u00e7 terabaytl\u0131q veril\u0259nl\u0259r bazas\u0131 kopyalar\u0131n\u0131 bir d\u0259qiq\u0259d\u0259n az m\u00fcdd\u0259td\u0259 yaratma v\u0259zif\u0259sinin icra edilm\u0259z oldu\u011funu dem\u0259k olard\u0131, riskli texnologiyalara ehtiyac\u0131m\u0131z yoxdur, g\u0259lin d\u00fczg\u00fcn ed\u0259k. Bu m\u00fcmk\u00fcn idi, lakin biz t\u0259xmin\u0259n alt\u0131 aydan bir il\u0259 q\u0259d\u0259r vaxt itir\u0259c\u0259kdik v\u0259 m\u00fc\u015ft\u0259ri s\u0259yah\u0259tl\u0259rini (s\u0259yah\u0259tl\u0259r bizim \u0259sas biznes g\u00f6st\u0259ricimizdir) testl\u0259r olmadan v\u0259 t\u0259tbiq zaman\u0131 itir\u0259c\u0259kdik. Qeyri-adi yana\u015fmayla, t\u0259tbiq \u00fc\u00e7\u00fcn \u00e7ox vaxt itirm\u0259dik, yeni v\u0259 unudulmu\u015f k\u00f6hn\u0259 texnologiyalardan t\u0259cr\u00fcb\u0259 qazand\u0131q, v\u0259 m\u0259hz ehtiyac duydu\u011fumuz anda test etm\u0259yi t\u0259min etdik. \u015e\u00fcbh\u0259siz ki, bu, b\u00fct\u00fcn g\u00f6st\u0259ricil\u0259rimiz\u0259 m\u00fcsb\u0259t t\u0259sir etdi. Se\u00e7im h\u0259mi\u015f\u0259 sizd\u0259dir, biz is\u0259 \u00f6z imkanlar\u0131m\u0131zla maraql\u0131 cari v\u0259 g\u0259l\u0259c\u0259k nailiyy\u0259tl\u0259rimizi blogumuzda payla\u015fma\u011fa davam ed\u0259c\u0259yik.<\/p>\n<p>M\u0259nb\u0259: <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.0.1 - 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\/az\/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.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"az_AZ\" \/>\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\/az\/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\udd47Linux fayl sisteml\u0259rinin inc\u0259 ehtiyat sur\u0259tl\u0259ri. \u00dc\u00e7 terabaytl\u0131q MySQL DB-nin i\u015fl\u0259m\u0259 n\u00fcsx\u0259l\u0259rini 20 saniy\u0259y\u0259 nec\u0259 yaratmaq olar | ProHoster","description":"","canonical_url":"https:\/\/prohoster.info\/az\/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":"az_AZ","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\/az\/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\/az\/wp-json\/wp\/v2\/posts\/74327","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/comments?post=74327"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/posts\/74327\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/media\/74328"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/media?parent=74327"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/categories?post=74327"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/az\/wp-json\/wp\/v2\/tags?post=74327"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}