58
« kdy: 14. 09. 2016, 19:15:04 »
Zravím,
sháním nějaký tip nebo radu ohledně partitioningu v MariaDB vs. diskové oddíly na na serveru. Mám DB s jednoduchými shodnými tabulkami, do které denně přibude cca 20 milionu řádků. Za den je to podle použitého engine cca 43GiB (InnoDB), 17 GiB (InnoDB compressed), 18.5GiB (Aria) dat. Během práce DB vzniká cca 30 GiB dat binárních logů za hodinu - masivně se updatuje a insertuje jedna z tabulek.
Na serveru HP DL380 G9 mam 4x 400GB SSD a 4x 900GB HDD na P440 Smart Array, server ma 256GB RAM. Hledám optimální způsob využití diskového prostoru. Zatím mam range partitioning po dnech spolu se subpartitions podle key. To samo o sobě funguje dobře. Stačí každý den vytvořit novou partition a dropnout staré. Momentálně jsou SSD disky v RAID 1+0, což dělá cca 716 GiB místa pro data a logy databáze. HDD mám také RAID1+0.
Potřeboval bych nějak využít volný prostor na SSD a HDD tak, aby ideálně partitions se starými daty byly na HDD a nově vznikajicí na SSD. Při definici partitions se dá říct, kde data fyzicky budou, ale změnit to po naplnění partition jde jen za cenu přesunu dat a to trvá i hodinu. MySQL umí v posledních verzích general tablespaces, ale přesun dat mezi nimi je jak se zdá také za cenu rebuildu partition. Což dost nasazení partitioningu v mém případě dost omezuje.
Zatím nejnadějnější se mi jeví nasadit lvmcache. Část SSD kapacity použil jako tu cache pro HDD RAID a zbytek pro binární logy DB. Ale je to tak trochu skoda tech SSD. Ve finále by DB měly být dvě a měla by mezi nimi běžet Master-Slave replikace.
Nečekám řešení, potřeboval bych spíš nasměrovat, pokud někdo zkušenější něco podobného řešil.
A.