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