Ahoj,
(English version below)
aktuálně na všech nodech k provozu VPS používáme kontejnerovou
virtualizaci OpenVZ Legacy. Protože už dosluhuje, vývoj skončil a nové
distribuce jej přestávají podporovat, řešíme přechod na novější řešení
v podobě vpsAdminOS [1,2]. Jedná se o distribuci založenou na NixOS [3]
a not-os [4], která bude na nodech sloužit jako hypervizor pro provoz VPS.
Pro správu VPS (kontejnerů) jsme vytvořili vlastní utilitu `osctl`,
která se funkcemi vyrovná `vzctl` z OpenVZ, popř. LXD [5]. Řeší hlavně
nastavení user namespaces [6] pro správnou izolaci VPS a cgroups pro
limity paměti, CPU, atd. Ke spouštění kontejnerů se používá LXC [5].
vpsAdminOS není omezen jen na infrastrukturu vpsFree.cz. Pokud někde
provozujete OpenVZ Legacy a nevíte co dál, můžete zvážit vpsAdminOS,
který je na migraci kontejnerů z OpenVZ připraven [7].
Na vpsAdminOS pracujeme zhruba od podzimu 2017 a nyní si všichni členové
mohou vyzkoušet, jak VPS nad novým systémem fungují. Naším cílem je, aby
migrace VPS z OpenVZ na vpsAdminOS proběhly bezpovšimnutí, nicméně
záleží na tom, co ve VPS provozujete. Doporučujeme všem, aby si novou
VPS vyzkoušeli a hlásili nám případné problémy a nedostatky. Než
přistoupíme k migraci produkčních VPS, je potřeba ten OS a integraci
s vpsAdminem vyladit.
V podstatě máte k dispozici další playground VPS, podmínky jsou podobné.
Jen to může být trochu divočejší -- nehlášené výpadky, restarty když
budeme potřebovat něco aktualizovat, atd. Ve vpsAdminu ve formuláři na
vytvoření VPS vyberte lokaci *Staging*. K dispozici jsou zatím tyto
distribuce: Alpine, Arch, CentOS, Debian, Fedora, Gentoo, NixOS, Ubuntu.
Časem budou přibývat další.
Na testování a hlášení chyb máte cca několik týdnů až měsíců, podle toho
jak nám to půjde. Více informací o změnách v OS, vpsAdminu a plánu
přechodu viz KB:
https://kb.vpsfree.cz/navody/vps/vpsadminos
ENGLISH:
We're currently using container virtualization OpenVZ Legacy to run VPS.
Since it's slowly dying, isn't developed anymore and modern
distributions stopped supporting it, we're going to upgrade to a newer
solution we've called vpsAdminOS [1,2]. It's a Linux distribution based
on NixOS [3] and not-os [4], which will serve as a hypervisor for VPS
on our nodes.
VPS are managed using our own utility called `osctl`, which is
comparable to `vzctl` from OpenVZ or LXD [5]. It's main purpose
is to set up user namespaces [8] to isolate VPS and to configure cgroups
for resource management, such as CPU or memory. Under the hood,
it's using LXC [5] to start containers. vpsAdminOS is not limited
to vpsFree.cz, it's designed to be independent of the specifics of our
infrastructure. If you're using OpenVZ Legacy on some servers
and you're looking for a replacement, you can consider vpsAdminOS.
We've also made a tool [7] which can convert containers from OpenVZ into
vpsAdminOS.
We've been working on vpsAdminOS since the fall of 2017 and now all
members can finally give it a try and test VPS on the new system. Our
goal is to make the transition from OpenVZ to vpsAdminOS as seamless
as possible, but it depends on what programs and configuration
you're using. That's why we're giving everyone the opportunity to try
out a VPS on the new system and report issues. Before we can start
migrating production VPS, we need to implement missing functions
and iron it out.
Essentialy, what you get is another playground VPS, the terms of use
are very similar. It can be a bit rougher though, there may be
unexpected reboots and outages when we need to fix issues and deploy new
system versions. To create a VPS on vpsAdminOS, select location
*Staging* in the form for VPS creation. The following distributions
are supported: Alpine, Arch, CentOS, Debian, Fedora, Gentoo, NixOS,
Ubuntu. More will be added in the future.
The staging environment will remain open for several weeks or months,
depending on how many issues we'll discover. You can read more
information about changes in the OS and vpsAdmin in KB:
https://kb.vpsfree.org/manuals/vps/vpsadminos
[1] https://vpsadminos.org
[2] https://github.com/vpsfreecz/vpsadminos
[3] https://nixos.org
[4] https://github.com/cleverca22/not-os
[5] https://linuxcontainers.org
[6] https://kb.vpsfree.cz/navody/vps/vpsadminos#user_namespaces
[7] https://vpsadminos.org/migration-paths/openvz-legacy/
[8] https://kb.vpsfree.org/manuals/vps/vpsadminos#user_namespaces
Jakub
Ahoj,
koukam na https://kb.vpsfree.cz/navody/vps/api
Pro spravu Amazonu pouzivam v praci Terraform, skvely nastroj pro
managovani cloudovych resourcu.
Viz
- https://www.terraform.io/docs/providers/aws/index.html
- https://www.terraform.io/
Uvazovali jste nad vytvoreni providera pro vpsfree?
Ja okamzite jak jsem vpsfree uvidel :)
Otazky:
a) mel bys zajem pouzivat Terraform pro managovani vpsfree?
-> Napis mi jake resources (API) byste chteli implementovat jako prvni
b) byl bys ochotny prispivat do opensource repa na github pokud se o
featuru ukaze zajem?
-> staci rict ANO :)
c) na koho se mam obratit v pripade ze zkusim udelat prototyp a narazim na
problemy s API?
Diky za odpovedi/feedback
Ondra
PS: Zatim se ptam jestli o featuru by byl zajem, neslibuju, ze neco udelam.
Ale snad to prijde :)
--
Ondřej Plátek
Ahojte,
rozsiril se nam tu takovy nesvar - nove prichozi clen prijde, vyrobi si
VPSky, kde jen muze; tam naspousti minery a kdyz mu to vypneme, strasne
se takovy dotycny divi, ze to preci nebylo nikde napsane...
Tak ted uz to bohuzel napsane je:
https://kb.vpsfree.cz/informace/co_nedelat#co_na_vps_nedelat
Vsichni, co vpsFree delame kazdy den, bytostne nenavidime zakazy. Ale
jestli neco nesnasime vic, je to ocividny zneuzivani dobry vule :(
Diky moc za pochopeni.
/snajpa
PS.:
... abych sem taky propasoval neco pozitivniho...
Kdo mate zajem osahat si Debian na 64bit ARMu, se kterym pujdeme kreslit
system, napiste, dam pristup do kontejneru ;)
Mam zatim rozbehane LXC nad 4.9.111 jadrem a vypada to slibne, Wordpress
v defaultu to chrousta za 42ms :)
Cortex A72 @ 1.8 GHz + DDR4 Unregistered ECC @ 2100MHz, aneb prvni ARM
co nepovazuju za hracku :))
Díky všem za jejich reakci a omlouvám se za moje poněkud delší odezvy. Sedím
zrovna za pultem a zatím co odpovídám, tak ještě obsluhuji zákazníky :-D
V podstatě se mi zdá jako nejjednodušší řešení to, co míše Martin. Můj problém
ale je, že úplně přesně nevím, jak bych to měl v PHP implementovat. Tedy
první, co mě napadlo je, že bych použil dvě databáze - vzdálenou přes SSH
tunel a lokální. Standardně bych pracoval se vzdálenou databází a pokud by se
PHP nepodařilo ke vzdálené databázi připojit, tak by začalo pracovat s lokální
databází a ukládalo si účtenky, které vystavilo pro pozdější synchronizaci.
Jakmile by se spojení obnovilo, tak by se appka pokusila všechno z lokální
databáze nahrát do vzdálené databáze na server.
Hned první, co mě ale napadá je, jak appka pozná, že je spojení přerušeno/
navázáno? Tedy pokud budu při každém požadavku čekat na timeout vzdálené
databáze, tak se ta aplikace asi brutálně zpomalí, ikdyž tam dám třeba jen 1s
timeout.
Čím si však vůbec nejsem jistý, jakým způsobem bych měl řešit tu cache
produktů? To mám třeba co hodinu stahovat celou produktovou tabulku ze
vzdálené databáze a ukládat ji lokálně? Jde sice jen o cca. 2 tisíce produktů
a dvě pokladny, ale přesto...
Neviděl jste někdo nějakou implementaci takového problému, že bych se mohl
podívat na kód?
Dne pondělí 2. července 2018 13:18:36 CEST jste napsal(a):
> Dne 2.7.2018 v 11:26 Jan B. Kolář napsal(a):
> > Začal jsem si tedy pohrávat s myšlenkou, že bych aplikaci přesunul na
> > každou pokladnu zvlášť (tzn. na pokladně by běžel nginx, PHP a mysql) a
> > na server si dělal jen replikaci databází, abych pak mohl dělat z
> > pokladen výkazy, aniž by byly v běhu.
>
> Nebylo by jednodušší používat lokální databázi na pokladnách jen jako
> cache produktů a buffer účtenek? Databáze na serveru bude hlavní.
> Pokladny si z ní v definovaných intervalech budou aktualizovat cache
> produktů a průběžně do ní budou zapisovat nové účtenky, které se
> serverem Ministerstva vyřídí samy. Když ale selže spojení s hlavní
> databází, účtenka se zapíše do bufferu a na server se uloží až
> dodatečně, až se spojení zase obnoví.
>
> S pozdravem,
> Maritn Doucha
--
Jan B. Kolář
Zažeň nudu
Hodolanská 17, 779 00 Olomouc
tel: +420 605 800 859
e-mail: janbivoj.kolar(a)zazen-nudu.cz
www.zazen-nudu.cz
Ahoj,
chtěl jsem Vás poprosit o radu s jedním problémem, který teď řeším.
Když byl loni blázinec kolem EET, rozhodl jsem se jít vlastní cestou a pro
svoje prodejny nasadil pokladní software v PHP (v PHP umím programovat, takže
jsem si byl schopen do programu udělat implementaci EET). Celá věc mi běží na
serveru a pokladny se tam připojují pomocí SSH tunelu.
Co mi však začalo dělat starosti jsou výpadky připojení. Za celý rok jich
bylo jen pár, přesto bych však nechtěl dostat pokutu za to, že v době výpadku
nedávám lístky.
Začal jsem si tedy pohrávat s myšlenkou, že bych aplikaci přesunul na každou
pokladnu zvlášť (tzn. na pokladně by běžel nginx, PHP a mysql) a na server si
dělal jen replikaci databází, abych pak mohl dělat z pokladen výkazy, aniž by
byly v běhu.
Až po sem myšlenka dobrá, jenže dnes mi došlo, že budu potřebovat některá data
sdílet mezi pokladnami - například seznam produktů. Ten potřebuji mít
přístupný lokálně, aby šlo produkty účtovat v případě výpadku, ale zároveň ho
také potřebuji synchronizovat, aby se produkt do seznamu nemusel přidávat na
každé pokladně zvlášť. No a tady nevím, jak k tomu mám přistoupit :-(
Neřešil jste někdo podobný problém? Napadlo mě, zda nemít pro sdílená data
druhou databázi, která by byla na serveru a replikovala se na pokladny.
Přiznám se ale, že nevím, jak bych v tomto případě řešil zápisy do master
databáze na serveru a čtení z lokální slave databáze na pokladně.
Ocením jakoukoliv radu nebo odkaz.
Všechny zdraví
Honza
--
Jan B. Kolář
Zažeň nudu
Hodolanská 17, 779 00 Olomouc
tel: +420 605 800 859
e-mail: janbivoj.kolar(a)zazen-nudu.cz
www.zazen-nudu.cz