Ahoj,
(English below)
Pravidelně se stává, že někomu ve VPS dojde místo na disku. vpsAdmin sice posílá upozornění od 90 % zaplnění, ani to ale ve všech případech nepomůže tomu předejít. S plným diskem přestávají fungovat vaše aplikace, které s diskem pracují, a také to může znemožnit login do VPS a uvolnění místa.
Každou jednotlivou VPS řešíme i my jako administrátoři vpsFree.cz, protože ZFS s prací nad plnými datasety (disky VPS) aspoň historicky mívalo problémy. Souvisí to s tím, že ZFS kvůli dynamické velikosti bloku a kompresi dopředu neví, kolik místa budou data na disku zabírat. Aby nebyla překročena nastavená kvóta datasetu, dochází k předčasnému uzavírání txgs -- transakční skupiny, v rámci kterých se data v pravidelných intervalech zapisují na disk. Vyšší frekvence txgs potom zpomaluje chod všech VPS.
Další faktor je, že jsme v těchto situacích naráželi na chyby souběhu, které mohou vést k zastavení IO na nodu a nutnosti resetu. Naše ZFS je upravené tak, aby se txgs neuzavíraly předčasně a naopak umožňujeme v jedné txg nastavenou kvótu překročit. I tak ale nechceme riskovat výpadek a při zaplnění datasetu VPS nám monitoring posílá SMS. Když se takových VPS najde víc a členové nereagují, je to pro nás dost vyčerpávající.
vpsAdmin proto nyní bude automaticky zvětšovat datasety ve VPS, kde dochází místo. Ke zvětšení dojde, když bude zbývat méně než 512 MiB, popř. méně než 1 % celkové kapacity. Disk navyšujeme o 20 GiB nebo o 10 % kapacity podle toho, co je větší. K rozšíření může dojít až 3x a k řešení máte 30 dní od prvního rozšíření. Po uplynutí této doby se bude VPS vypínat, dokud se využití datasetu nevrátí do mezí původní velikosti, nebo se nedomluvíme na trvalém rozšíření kapacity.
Ke zmenšení na původní velikost dojde automaticky, když bude k dispozici alespoň 1 GiB a 5 % volného místa. Velikost můžete taky upravit kdykoli ve vpsAdminu v detailu VPS.
ENGLISH:
It happens fairy regularly that VPS run out of disk space. vpsAdmin is sending notifications when disk usage is 90 % or more, but that still won't prevent it. When the disk is full, your applications are likely to stop working and it may not be possible to login to the VPS and free some space.
We as vpsFree.cz administrators are also involved with every VPS which completely runs out of disk space. It is because ZFS at least historically wasn't so good at operating on datasets (VPS disks) nearing or at their quota. Due to dynamic block size and compression, ZFS does not know how much space on disk the data will actually take. In order to not exceed the dataset's quota, it tends to prematurely close txgs -- transaction groups in which data is written to disk in regular intervals. Higher txgs frequency is then negatively impacting IO performance of all VPS.
Another factor is that on multiple occasions, we've encountered rare race conditions which led to ZFS deadlock, i.e. no writes were being made at all and we've had to reset the node. While our ZFS is patched to allow datasets exceeding their quota within one txg, we don't want to risk an unnecessary outage because of this, so our monitoring system is sending us SMS. When it happens often and members are not responding to us, it's rather tiring for us.
From now on, vpsAdmin will automatically expand VPS datasets which are nearing their quota. Datasets are expanded when there's less than 512 MiB or 1 % of free space. We add either 20 GiB or 10 % of original size, whichever is higher. Datasets can be expanded three times and you'll have 30 days since the first expansion to resolve the issue. After that, the VPS will be stopped until the used space will fit within the original quota or the dataset is expanded permanently.
Expanded datasets are shrunk back when there is at least 1 GiB and 5 % of free space with respect to the original size. You can also change the dataset size in VPS details in vpsAdmin at any time.
Jakub