
, . (thin provisioning) Linux , CI/CD- . , production MySQL, «» , .
: ?
, . ? . .
( 2018 15 ), , , . :
- MySQL 1000 2,5 , .
- . « », JOIN’ .
- .
- .
. Postman PHP-, . , : , , . .
, : . .
. , .
« »?
( — sparse volumes), , . just-enough (, ) just-in-time ( ). , , . , , LVM2, ZFS, BTRFS. . , (data- MySQL).
, Thin LVM
« Thin LVM, MySQL ».
LVM , . — MySQL, MySQL. , . :
- 2 x Intel Silver 4114 (10x2,2 HT)
- 8 x 32 DDR4
- 8 x 1920 Intel SSD RAID- Adaptec RAID-10
RAID- RAID MD . , :
RAID-10: Volume Group (VG) ( 6,7 ) (Logical Volume, LV) 50 . c MySQL. , pool, /var/lib/mysql 3,5 ( ):
lvcreate -l 100%FREE -T vga/thin
lvcreate -V 3.5T -T vga/thin -n mysql
ext4, , . API, , MySQL . , bash, API HTTP → bash open source- goexpose, Go.
- bash- open source, :
snapmain:
- .
- snapmain.
- snapmain.
- MySQL .
snapmain:
- ().
- . , 5 .
- , LV- .
3.1 , kill -9 MySQL LV-. - snapmain .
- .
- () MySQL.
- .
- .
:
- ().
- MySQL kill -9.
- .
- LV- .
:
lvcreate -n stage_3307 -s vga/snapmain
lvchange -ay -K vga/stage_3307
mount -o noatime,nodiratime,data=writeback /dev/mapper/vga-stage_3307 /mnt/stage_3307
, . SSD-. - Thin LVM: 4 . :
- /var/lib/mysql.
- , .
- , .
- , .
- - 100% , .
- .
, ( ):
RAID-:
:
- /var/lib/mysql noatime,nodiratime,data=writeback
- ext4 tune2fs.
MySQL:
- innodb_flush_method = O_DSYNC ( , ).
- , .
- innodb_buffer_pool_size = 4G ( InnoDB, MySQL , ).
, MySQL. , . , innodb_parallel_doublewrite_path /dev/shm, 5 .
MySQL , ? . , . , .
. , , :

Thin LVM: iostat, , , .
, : YOLO-. - ext4 , . , .
Thin LVM:
- Thin pool data %
- Thin pool metadata %
( ), .
. fstrim -v /var/lib/mysql.
:
, ZFS
- ZFS, ZFS Solaris. FreeBSD . Linux, . - B-tree (, InnoDB MySQL) ZFS . . ext4 xfs, . , ZFS , Linux-, , ( , - ZFS ), .
( RAID-). SSD- 1920 . ZFS, 50 MD RAID-10 . 1950 ZFS- RAID-10:
zpool create zpool mirror /dev/sda2 /dev/sdb2 mirror /dev/sdc2 /dev/sdd2 mirror /dev/sde2 /dev/sdf2 mirror /dev/sdg2 /dev/sdh2
MySQL:
zfs create zpool/mysql
zfs set compression=gzip zpool/mysql
zfs set recordsize=128k zpool/mysql
zfs set atime=off zpool/mysql
zfs create zpool/mysql/data
zfs set recordsize=16k zpool/mysql/data
zfs set primarycache=metadata zpool/mysql/data
zfs set mountpoint=/var/lib/mysql zpool/mysql/data
, gzip. 3 1,6 , , , , — , ZFS! gzip 4 , .
. c LVM- MySQL. ZFS, . :
zfs set snapdir=visible zpool/mysql/data
zfs create zpool/stage_3307
zfs clone zpool/mysql/data@snapmain zpool/stage_3307/data
zfs set mountpoint=/mnt/stage_3307 zpool/stage_3307/data
: ZFS- l2arc zil. , , , , . — . . zpool status:
logs
/dev/shm/zil_slog.img ONLINE 0 0 0
cache
/dev/shm/l2arc.img ONLINE 0 0 0
: ( ) 50-60 %.
, ( Thin LVM):

: 40 , MySQL 20 . , .
:
- .
- : , ZFS .
- ZFS ( 1 ) . , , - .
?
, . , , , . BTRFS . , , . , , — , , . , .
, . , , :
— . , , , , , . - , , , . , - ( — -) . , , , , . , . , .