Začnu stručně: máme Discourse! Najdete ho na
https://discourse.vpsfree.cz.
V roce 2009 jsme původně začínali s fórem, které mělo sloužit jako
poradna a místo pro diskuzi obecně, ale v podstatě nikdo ho nepoužíval.
Možná tam byly tři posty, které nebyly ode mě. Pak jsme přešli na
mailing listy, které mají tu výhodu, že příchozího mailu si všimne
mnohem víc lidí. To zafungovalo, ale zhruba, když jsme míjeli velikost
1000 členů, se přesně tenhle faktor otočil zas proti nám. Až příliš
často uvažujeme nad tím, zda se svojí prkotinou spamovat tolik lidí.
Za sebe musím říct, že mám pokaždé obrovskou radost, když se na
community-listu povede něco vyřešit. Chtěl bych toho vidět víc, mnohem
víc, nemyslím, že by nebylo, co řešit, o čem se bavit, jen ten formát
mailing listu se nám už asi trochu přežil.
Discourse vypadá, že by pro nás mohl spojit to nejlepší z obou světů –
je možné ho použít mailem, ale organizací má spíš jako fórum.
Když se nám povede, že nám to na Discourse začne víc žít, můžeme taky
zvážit přechod z IRC na Discourse Chat. V IRC místnosti teď už taky visí
už jen okolo 50 lidí ze špičkových cca 100, v souladu s tím, jak
relevance IRC upadá.
Mimo jiné, na #vpsfree teď visí bot vpsfbr0, je to instance
matterbridge, přes kterou by nakonec mělo jít přemostit aspoň základním
způsobem všechny podstatnější IM, zatím je nastavený jako most s
Matrixem - https://view.matrix.org/room/!vOrcaItWgYDyYypqCI:matrix.org/
Do vpsFree Discourse se přihlašuje buďto přihlašovacími údaji vpsAdminu
(pro členy) nebo se dá vytvořit běžný účet (pro nečleny). Aby byla
trochu přidaná motivace se tam přijít podívat, napadlo nás, že bychom
mohli tuhle příležitost využít k nabídnutí všeho toho hardware, který je
už rok vypnutý a nebudeme ho určitě potřebovat.
Co bude dál s mailing listy:
news-list ještě chvíli podržíme v podobě, jak fungoval, ale po nějaké
době (půl roku až rok) se přesune na kombinaci Discourse (kde se dá o
těch věcech potom diskutovat) a blog (jako nástěnka pro věřejnost).
outage-list – vpsAdmin už dlouho umí reportovat výpadky dotčeným členům
rovnou a celá historie je dostupná bez přihlášení – tam tedy můžeme
přestat posílat rovnou
community-list – tam na konci roku vypneme možnost posílat do něj nové
příspěvky s automatickou odpovědí, že už dál diskutujeme jen na
Discourse
No a tím se rozloučíme s mailing listy :).
Díky všem, kdo jste na nich byli aktivní, přijměte prosím pozvání na
novou platformu – pojďme to zkusit pojmout jako novou příležitost k
výměně zkušeností. Doufám, že snad s menším třením oproti mailing
listům.
/snajpa
Ahoj,
(English below)
TL;DR ve VPS lze nově používat distribuci Guix.
GNU Guix System [1] je linuxová distribuce založená na správci balíčků
Guix. Funguje to velice podobně jako NixOS [2] a Nix, až na to, že Guix
a celý systém se konfiguruje pomocí Guile Scheme. Ve Scheme jsou opravdu
veškeré součásti systému, včetně init systému Shepherd [3].
Na rozdíl od klasických distribucí se Guix a NixOS konfigurují
deklarativně: v konfiguračním souboru nadefinujeme kompletní podobu
výsledného systému, tj. jaké má obsahovat uživatele/skupiny, služby a
jejich nastavení. Ať už se jedná o aktualizaci nebo rollback, mezi
různými verzemi systému se lze snadno přepínat buď za běhu, nebo při
bootu v zavaděči, resp. u nás ve Start Menu [4]. Guix oproti NixOS
obsahuje jen Free Software.
Protože ve vpsFree používáme NixOS [5] skoro na všechno, zajímalo mě
taky, jak je na tom Guix. Bohužel Scheme pořádně neznám a ani mě to moc
neláká -- je tam příliš mnoho závorek :) Před rokem se jeden člen snažil
[6] šablonu pro Guix vytvořit, ale sám jsem neviděl cestu, jak na to. Až
před pár dny jsem narazil na blog [7], který obsahoval potřebné
informace. Hlavní problém byl, že ve VPS nemáme zavaděč a taky se
nepřipojuje kořenový souborový systém -- je připojen už před spuštěním
/sbin/init ve VPS. V konfiguraci však zavaděč i kořenový systém být
musí, jinak se systém nesestaví.
Nakonec to není žádná věda: jako zařízení pro zavaděč stačí /dev/null
[8] a volba --no-bootloader, s kořenovým systémem je to podobné [9].
Pokud by někdo měl zájem to vyzkoušet, VPS s Guixem si můžete vytvořit
na node1.stg (staging). Jinde zatím nebude fungovat integrace pro
nastavení sítě. Více informací viz KB:
https://kb.vpsfree.org/manuals/distributions/guix
Jsou tam ještě nějaké nedostatky, které už nejspíš řešit nebudu, aspoň
ne teď. Základ včetně integrace do vpsAdminu a Start Menu je zdá se
funkční. Sami pro Guix využití nemáme, dělal jsem to spíš ze
zajímavosti. Jestli Guix někdo použijete, budeme rádi za zpětnou vazbu.
ENGLISH:
TL;DR VPS can now use Guix distribution.
GNU Guix System [1] is a linux distribution based on Guix package
manager. It is very similar to NixOS [2] and Nix, except that Guix is
configured using Guile Scheme. Indeed, most of the system components
including the init system Shepherd [3] are written in Scheme.
Unlike other well-known linux distributions, Guix and NixOS are
configured declaratively: users/groups and all services with their
settings that should a part of the target system are defined in a config
file. It is possible to switch between different system configurations,
be it an upgrade or downgrade. System versions can be switched at
runtime or from the bootloader -- in our case, from the Start Menu [10].
Unlike NixOS, Guix contains only Free Software, as it is a part of the
GNU project.
At vpsFree.cz, we use NixOS [5] almost everywhere. I was thus interested
to see the state Guix is in. Unfortunately, I'm not familiar with
Scheme, there are far too many parentheses! A year ago, one of our
members tried to create [6] template for Guix, but we haven't been able
to make it work. A few days ago, I've discovered a blogpost [7] that
helped me understand the missing pieces. Our main issue was that inside
the VPS, there's no bootloader and no need to mount the root file
system, as it is mounted even before its /sbin/init is started. Guix
configuration however requires them to be configured.
In the end it's pretty straightforward. /dev/null is used [8] as a
device for the bootloader together with option --no-bootloader. Mounting
of the root file system can be bypassed in a similar way [9].
If someone would like to give it a go, you can create VPS with Guix on
node1.stg (staging). For more information, see KB:
https://kb.vpsfree.org/manuals/distributions/guix
There are several known issues, but the base system appears to be
operational. Network configuration is integrated with vpsAdmin and the
Start Menu can be used to run older system generations. As we do not
have any actual use for Guix ourselves, I'm going to leave it as it is
for now. We'll be glad for any feedback if you'll run anything on Guix.
[1] https://guix.gnu.org
[2] https://nixos.org
[3] https://kb.vpsfree.cz/navody/vps/start_menu
[4] https://www.gnu.org/software/shepherd/
[5] https://github.com/vpsfreecz/vpsfree-cz-configuration
[6] https://github.com/vpsfreecz/vpsadminos-image-build-scripts/pull/47
[7] https://www.thedroneely.com/posts/guix-in-a-linux-container/
[8]
https://github.com/vpsfreecz/vpsadminos/blob/14ac41e78566cdddc28fa40e2d7975…
[9]
https://github.com/vpsfreecz/vpsadminos/blob/14ac41e78566cdddc28fa40e2d7975…
[10] https://kb.vpsfree.org/manuals/vps/start_menu
Jakub
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
Ahoj,
(English below)
# Otisky SSH klíčů
V detailu VPS ve vpsAdminu nově najdete otisky SSH host klíčů
(fingerprints). Při prvním přihlášení přes SSH tak můžete zkontrolovat
identitu serveru. Otisky klíčů se vyčítají ze souborů
/etc/ssh/ssh_host_*.pub ve VPS. Klíče se čtou po každém startu VPS a pak
jednou za hodinu.
# Úpravy VPS adminy vpsFree
Šablony distribucí, ze kterých se vytváří nové VPS, mohou mít nastavení
specifické pro naše prostředí. Může se stát, že bug nebo nová vlastnost
aplikací či našeho prostředí bude vyžadovat změnu konfigurace systému.
Týká se to prakticky jen základního systému, tj. nastavení, které jsou
součástí šablon. Ve vpsAdminu máte možnost si nastavit, jestli o takové
úpravy máte zájem. Ve výchozím stavu je to povoleno. Pokud bychom ve VPS
něco měnili, budeme o tom informovat emailem.
Pro představu, nedávno jsme z kernelu odstranili cglimit cgroupu -- náš
vlastní controller, který se ukázal jako zbytečný. Distribuce se systemd
si s tím poradily samy, ale třeba Alpine/Devuan/Void mají seznam cgroups
zapsaný v init skriptu, takže jsme jej v existujících VPS museli upravit.
# cgroups v2
Tento rok bychom rádi započali přechod na cgroups v2. cgroups v Linuxu
se používají na účtování a limitaci skupin procesů. V našem prostředí je
to jeden ze základních prostředků pro izolaci VPS, používáme to primárně
na nastavení limitu paměti a času CPU. Na cgroups samozřejmě staví
všechny kontejnerové řešení jako docker, apod.
V současné době používáme cgroups v1 v hybridní hierarchii a právě
protože VPS jsou kontejnery, verze cgroups je daná hostitelem. systemd v
roce 2024 nejspíše přestane cgroups v1 podporovat, takže na to chceme
být připraveni. Aktuální distribuce už v2 podporují, ty starší jako
CentOS 7 budeme nadále provozovat na nodech s v1.
Ve vpsAdminu lze u VPS nastavit, jakou verzi cgroups VPS vyžaduje. Ve
výchozím stavu se to řídí šablonou distribuce. Pokud mají aplikace ve
VPS speciální požadavky, můžete si vynutit cgroups v1 a zabránit tak
budoucí migraci na v2. Naším cílem bude přesunout všechno co jde na
cgroups v2. Více info a seznam distribucí podporujících cgroups v2
najdete v KB:
https://kb.vpsfree.cz/navody/vps/cgroups
Žádnou akci z vaší strany to nevyžaduje, o případném přesunu VPS na
cgroups v2 budeme informovat individuálně v následujících měsících.
ENGLISH:
# SSH host key fingerprints
You can now see SSH host key fingerprints in VPS details in vpsAdmin.
You can check that the fingerprints match on your first SSH login,
making sure that you're connecting to your server. Key fingerprints are
read from /etc/ssh/ssh_host_*.pub files found inside the VPS. The files
are read on every VPS start and then once an hour.
# VPS modifications by vpsFree admins
New VPS are created from distribution templates and those can have
settings specific for our environment. It can happen that a bug or a new
feature in applications or our platform will require or benefit from
configuration change. You can configure whether you wish to have your
VPS updated by vpsFree admins should the need arise in VPS details in
vpsAdmin. It is enabled by default. We modify only the base system
configuration files and we will notify you by email when any changes are
made.
For example, we have recently removed the cglimit cgroup controller from
our kernel. It was our own creation and we've discovered it was only a
source of bugs. VPS using systemd handled this removal without any
problem, but distributions such as Alpine/Devuan/Void have the list of
cgroup controllers hardcoded in their init script. We've thus updated
the init script to not emit warning about cglimit mount failure on boot.
# cgroups v2
This year, we would like to begin transition to cgroups v2. cgroups in
Linux are used to account and limit groups of processes. On vpsAdminOS,
it is a fundamental component used to create a VPS. We use it primarily
to limit memory and CPU usage. cgroups are of course used by all other
container systems, such as docker, etc.
At this time, we're using cgroups v1 in a hybrid layout. Since VPS are
containers, the cgroup version is determined by the host. As systemd
will possibly remove support for cgroups v1 in 2024, we'd like to be
ready. Current distributions already support cgroups v2, the older ones
like CentOS 7 will be kept on nodes with cgroups v1.
Our goal will be to move as many VPS as possible to cgroups v2 nodes. By
default, we look at the distribution used inside the VPS to see if it
supports cgroups v2. If you wish, you can configure your cgroups version
preference in VPS details in vpsAdmin and pin it to cgroups v1 to
prevent future migration. More information about cgroups v2 and a list
of supported distributions can be found in KB:
https://kb.vpsfree.org/manuals/vps/cgroups
No action from you is needed at this time. We'll keep you updated about
the upcoming migration in the months to follow.
Jakub
Situace na trhu s energiemi je nepředvídatelná, na jaře se nás dotklo
první výraznější zdražení, které jsme zvládli ještě pojmout díky rezervě
v rozpočtu. Otázkou je, jak moc dlouhodobě udržitelné to bude bez
zvyšování členských příspěvků.
Než sáhneme ke zvyšování příspěvků, chtěli bychom vyzkoušet jiné
možnosti. Zejména využít některých rezerv ve stávajícím hardware a
přestavba či nákup nových serverů s výkonnější konfigurací.
Více v blogu:
https://blog.vpsfree.cz/vykonnejsi-servery-jako-lek-na-zvysovani-cen-energi…
--
Petr Krčmář
vpsFree.cz
Ahoj,
(English below)
Při výpadku napájení minulý týden v Praze [1] jsme přišli o standardní
prostředky, které používáme pro komunikaci s členy, tj. zejména o
hlášení výpadků z vpsAdminu a o naši podporu. Zachránil nás akorát účet
na Twitteru [2] a kanál na IRC [3], kde jsme mohli členy informovat o
tom, co se děje. Chtěl jsem tuto situaci trochu zlepšit, když by se něco
podobného stalo znovu.
Představuji tedy https://status.vpsf.cz. Jedná se o aplikaci, která
průběžně kontroluje stav naší infrastruktury a vybraných služeb.
Kontroly jsou automatické, tj. když něco aktuálně nepojede, hned to
půjde vidět.
status.vpsf.cz běží na APU [4] s LTE v racku v Praze, tj. nezávisle na
síti od MasterDC. Připojen je na vlastní malou UPS, takže nějakou dobu
vydrží běžet i při výpadku napájení v DC.
Zobrazují se tam i nahlášené výpadky/odstávky z vpsAdminu a pokud zrovna
vpsAdmin nebude fungovat, informace o situaci napíšeme rovnou na
status.vpsf.cz.
ENGLISH:
During the power outage in Prague last week [5], we've lost our usual
means of communication with our members, mainly the outage reports from
vpsAdmin and our email support. We've been left with out Twitter account
[2] and the IRC channel [6] to let you know about the issue. I've been
trying to improve this situation.
I would like to introduce https://status.vpsf.cz. It is an application
that continuously monitors the state of our infrastructure and selected
services. The checks are automated, i.e. when something won't work as
expected, it will be immediately visible.
status.vpsf.cz runs on APU [4] with LTE in our rack in Prague. It's
independent on MasterDC's network. It also has its own little UPS, so it
should continue to work even after a power outage in the DC.
status.vpsf.cz shows reported outages and maintenances from vpsAdmin and
should vpsAdmin not be available, we will write information about the
situation directly on the status page.
[1] https://blog.vpsfree.cz/post-mortem-par-slov-k-vypadku/
[2] https://twitter.com/vpsfree_cz
[3] https://kb.vpsfree.cz/informace/chat#irc
[4] https://www.pcengines.ch/apu2.htm
[5] https://vpsadmin.vpsfree.cz/?page=outage&action=show&id=904
[6] https://kb.vpsfree.org/information/chat#irc
Jakub
Ahoj,
(English below)
Připravujeme nové menu, které se zobrazí v konzoli [1] při startu VPS.
Kromě normálního startu VPS umožňuje spustit shell nebo upravit
parametry init procesu. Je to taková alternativa např. GRUB menu v našem
prostředí. Naše VPS jsou kontejnery a klasický zavaděč tak neobsahují.
Uživatelé NixOS v menu najdou také možnost nastartovat systém ze starší
verze. Každá úprava konfigurace či aktualizace NixOS vytváří novou
generaci systému a standardně si v zavaděči můžete vybrat, kterou chcete
použít, např. když nové nastavení nefunguje správně. Nyní je to možné i
ve VPS pomocí start menu.
Spuštění shellu může často posloužit místo nouzového režimu [2] na
rychlou opravu systému, který třeba nestartuje. Jako shell se použije
/bin/sh z disku VPS a po jeho ukončení se opět objeví start menu.
Start menu je možné vypnout/zapnout ve vpsAdminu. Podporuje pouze VPS na
vpsAdminOS. Nastavovat lze také dobu, po kterou start menu čeká na
uživatele, než samo nastartuje systém VPS. Přednastaveno je 5 sekund.
Ukázka viz KB:
https://kb.vpsfree.cz/navody/vps/start_menu
Aktuálně je menu zapnuto na node1.stg (Staging). Na produkčních VPS si
ho můžete individuálně zapnout v detailu VPS nastavením timeoutu, třeba
na 5 sekund. Během tohoto nebo příštího týdne ho pak zapneme na všech VPS.
ENGLISH:
We're preparing a new menu that can be seen in the remote console [3],
when a VPS is being started. It allows you to run a shell or customize
the init command and parameters. It's an alternative for example to the
GRUB menu in our environment. Since our VPS are containers, they do not
have a standard bootloader.
NixOS users will also be able to start the system from an older
generation. On NixOS, every configuration change or update creates a new
system version. Usually you can use the bootloader to select which
version to boot from, e.g. when the newest version is not functioning
properly. Now this can be achieved using the start menu.
The shell can be used to quickly fix something in a VPS which is not
starting, as an alternative to the rescue mode [4]. The menu starts
/bin/sh from the VPS and after the shell exits, the menu reappears.
The start menu can be enabled/disabled in vpsAdmin. It is supported only
on vpsAdminOS. You can also configure the time for which the menu waits
for the user, before starting the VPS. We've set this to 5 seconds.
For preview, see KB:
https://kb.vpsfree.org/manuals/vps/start_menu
Currently, the menu is enabled on node1.stg (Staging). You can enable it
on production VPS in VPS details by setting the timeout, e.g. to 5
seconds. We will be enabling it on all VPS in the coming days.
[1] https://kb.vpsfree.cz/navody/vps/konzole
[2] https://kb.vpsfree.cz/navody/vps/vpsadminos/oprava#nouzovy_rezim
[3] https://kb.vpsfree.org/manuals/vps/console
[4] https://kb.vpsfree.org/manuals/vps/vpsadminos/recovery#rescue_mode
Jakub
Ahoj,
(English below)
Terraform [1] je nástroj pro správu infrastruktury pomocí konfiguračních
souborů. Náš vpsAdmin provider plugin [2] se dočkal značných změn, zejména:
- je možné vytvářet datasety na NASu a subdatasety VPS,
- datasety NASu se dají exportovat přes NFS a přes Terraform získat
informace pottřebné k mountu,
- subdatasety VPS je možné připojit přes vpsAdmin,
- u VPS jde nastavovat jednotlivé features, DNS resolver
(/etc/resolv.conf) a taky měnit informaci o distribuci po
aktualizaci uvnitř VPS.
Ukázka konfigurace zde:
https://github.com/vpsfreecz/terraform-provider-vpsadmin/tree/master/exampl…
ENGLISH:
Terraform [1] is a tool for infrastructure administration using
configuration files. Our provider plugin for vpsAdmin [2] was upgraded,
the changes include:
- it is now possible to create datasets on NAS and VPS subdatasets,
- NAS datasets can be exported over NFS and mount information can be
read from terraform,
- VPS subdatasets can be mounted using vpsAdmin,
- VPS have configurable features, DNS resolver (/etc/resolv.conf) and
you can also change the distribution info after the VPS was
upgraded.
Example configuration can be seen here:
https://github.com/vpsfreecz/terraform-provider-vpsadmin/tree/master/exampl…
[1] https://terraform.io
[2] https://registry.terraform.io/providers/vpsfreecz/vpsadmin/latest/docs
Jakub