Ahoj,
do naší Knowledge Base [1] je nyní možné se přihlásit pomocí údajů z
vpsAdminu. Po delší době opět můžou všichni členové přispívat návody a
tipy ohledně správy VPS, aplikací uvnitř, apod.
Pro propojení DokuWiki s vpsAdminem používáme vlastní auth plugin [2].
[1] https://kb.vpsfree.cz/
[2] https://github.com/vpsfreecz/haveapi-dokuwiki
Jakub
Ahoj,
v tomto mailu popisuji důležité změny v nové verzi vpsAdminu pro koncové
uživatele. Je to trochu delší text, ale doporučuji to aspoň proletět.
Návody na používání nových funkcí budou během několika dní k dispozici v
KB. Doporučuji se na ně před použitím funkce podívat a v případě
nejasnosti se raději zeptat.
Nové funkce zatím nedoporučuji využívat na produkční nasazení. Počkejte
prosím pár týdnů, než se to vyladí. Jsou to tisíce řádek nového kódu a
není reálné očekávat na 100 % vyladěnou věc.
Nalezené chyby prosím hlaste na podporu.
Prostředí
---------
Všechny nody jsou rozděleny do "prostředí" (environment). V našem
případě jsou zavedeny prostředí produkce, playground a storage praha.
Každý člen má v rámci prostředí přiděleny prostředky (paměť, CPU,
diskový prostor a IP adresy), které na nodech spadajících do daného
prostředí můžou využívat.
Prostředí můžou mít různé nastavení - dovolené počty VPS, apod.
Přehled přidělených prostředků v prostředích je vidět v Edit profile ->
Cluster resources. Nastavení prostředí v Edit profile -> Environment
configs.
VPS - vytváření
----------------
Členům je dovoleno vytvářet VPS v playground i produkci a to za
předpokladu, že má k dispozici dostatek prostředků a umožňuje to jeho
nastavení prostředí.
Vytvoření nové VPS se skládá ze tří kroků - výběr prostředí, výběr
lokace a následně hostname, distribuce a parametry.
Vytváření více produkčních VPS je zatím povoleno pouze uživatelům, kteří
o to požádají a chtějí tuto funkci otestovat.
VPS - IP adresy
---------------
Člen má přidělenu 1 IPv4 adresu a 32 IPv6 adres v každém prostředí. Tyto
adresy může libovolně rozdělit mezi VPS. Více IPv4 je stejně jako
předtím za poplatek [1], IPv6 na dotaz.
Při přidělení adresy k produkční VPS se adrese nastaví vlastník. Takovou
IP adresu potom nemůže nikdo jiný vybrat, i když zrovna není používána.
Člen musí nejdříve využít všechny vlastněné IP adresy a až poté lze
vybrat adresy nové.
VPS - heslo roota
-----------------
Při nastavování hesla roota lze vybrat ze dvou typů generovaných hesel.
Jednoduché heslo se snadněji opíše do webové konzole VPS, kde bohužel
nefunguje copy&paste a opisovat dlouhé heslo je otrava.
VPS - volba distribuce
----------------------
Formulář pro reinstalaci distribuce nyní umožnuje pouhou aktualizaci
informace o distribuci, která je ve VPS. Toto můžete použít, když např.
systém aktualizujete na novou verzi a distribuce zobrazená ve vpsAdminu
pak neodpovídá realitě.
Reinstalace systému _maže_ všechny subdatasety VPS, více o datasetech níže.
VPS - parametry
---------------
V detailu VPS je možné měnit parametry VPS. Minimální konfigurace VPS je
1 CPU, 1 GB RAM a 10 GB disku. Maximální konfigurace je 8 CPU, 16 GB
RAM, diskový prostor není omezen.
Swap se sice zobrazuje mezi parametry, ale standardně jej nepřidělujeme,
protože swap v OpenVZ se chová jako rozšíření paměti [2].
Pokud chcete vytvořit novou VPS, je nutné pro ni udělat místo - snížit
parametry jiné VPS.
VPS - features
--------------
Features lze zapínat/vypínat jednotlivě. Při jakékoliv změně dojde k
restartu VPS.
Doporučuji si nastavit jen features, které potřebujete. Např. zapnuté
NFS nebo bridge blokuje online migraci.
VPS - swap
----------
Teď nemám na mysli odkládací prostor paměti, ale swap ve smyslu
prohození VPS mezi nody, v našem případě nejčastěji mezi playground a
produkcí. Prohodit jde pouze VPS, které se nacházejí v odlišných
lokacích (Praha, Playground, Brno). V rámci jedné lokace můžete
jednoduše přehodit IP adresy a je to.
Před vykonáním akce je v tabulce zobrazen stav VPS před a po provedení
swapu.
VPS - klonování
---------------
Klonovat lze buď do nové nebo do existující VPS. V případě klonování do
existující VPS je původní VPS se všemi subdatasety smazáno!
Datasety
--------
Dataset ve vpsAdminu reprezentuje přímo ZFS dataset na disku. Datasety
se používají na data VPS i NAS. Koncept datasetu nahrazuje exporty z
NASu. S datasetem VPS lze pracovat stejně jako s NASem.
Proč se vůbec s datasety obtěžovat? Zejména kvůli možnosti nastavení
kvóty a ZFS properties pro různé data/aplikace.
Datasety VPS se nacházejí v detailu VPS a datasety NASu v menu NAS.
Operace, které s nimi jdou provádět, jsou stejné. vpsAdmin umožňuje
vytváření subdatasetů a nastavování ZFS properties.
Pomocí properties lze optimalizovat výkon databází, apod. Ve většině
případů je nemusíte vůbec řešit.
Rozdíl mezi datasety VPS a NASu je v nastavování kvóty. Pro datasety VPS
se používá refquota - místo zabrané snapshoty není zahrnuto. Datasety
NASu naopak quota - místo zabrané snapshoty je zahrnuto. vpsAdmin
automaticky nabízí správný typ kvóty.
Rezervovaná jména datasetů jsou: private, vpsadmin, branch-*, tree.*.
Tyto názvy nelze použít.
Snapshoty
---------
Zálohování probíhá pomocí zfs snapshotů, které jsou vidět v menu
Backups, kde jdou také vytvářet a mazat.
Zálohování VPS probíhá tak, že každý den v 01:00 se v rámci jednoho node
udělá snapshot všech datasetů najednou. Poté jsou snapshoty přesunuty na
backuper.prg.
Pozor na to, že NAS _není_ zálohován na backuper.prg. Snapshoty jsou
pouze lokální a slouží jen jako ochrana proti nechtěnému smazání dat, apod.
Mounty
------
Mounty byly přesunuty z menu NAS do detailů VPS. Mountovat lze datasety
i snapshoty. Do jakékoliv VPS jde mountnout jakýkoliv dataset či
snapshot. Mounty jednotlivých snapshotů nahrazují trvalý mount záloh do
/vpsadmin_backuper.
Každý snapshot může být v jednu chvíli připojen pouze jednou, datasety
toto omezení nemají.
Nedoporučuji mountpointy zanořovat v nesprávném pořadí. Situace, kdy
dataset 'raz/dva' je připojen nad dataset 'raz' není ošetřena.
Mount lze pouze vytvořit a smazat. Nelze jej v průběhu jen tak odpojit a
znovu připojit.
Obnova záloh
------------
Obnovení VPS ze zálohy (snapshotu) funguje stejně, jako doposud. Obnova
vždy funguje na úrovni datasetu. Když má VPS subdatasety a rootfs je
obnoven ze zálohy, subdatasety obnoveny nejsou. Tzn. je možno obnovit
jakýkoliv dataset, aniž by to mělo vliv na ostatní datasety. Při obnově
jsou všechny snapshoty zachovány, díky větvení záloh [3] na backuperu.
NAS je možné snapshotovat pouze manuálně. Jelikož ale není zálohován na
backuper, obnova se chová stejně jako zfs rollback -r, tzn. obnova na
starší snapshot _smaže_ všechny novější snapshoty. Je to nevratná operace.
Pro obnovu dat ze zálohy na NASu bez smazání snapshotů si zvolený
snapshot moutněte do VPS a data vykopírujte.
Stahování záloh
---------------
Stahování snapshotů je nyní součástí vpsAdminu. Vygenerované archivy
jsou vidět v menu Backups -> Downloads. Odkazy jsou platné týden místo
původních 3 dní.
Transakce
---------
Transakce nyní spadají do skupin nazvaných "transaction chain". Každá
operace (vytvoření VPS, start, stop, klon, atd.) je reprezentována
jedním chainem, který seskupuje více transakcí. V transaction logu v
pravém panelu se zobrazuje seznam 10 posledních chainů a jejich postup v
procentech. Kliknutím na ID chainu lze vidět, jaké transakce obsahuje.
V ideálním případě se chain buď provede úplně a nebo vůbec. Pokud k
dojde k neočekávané či neošetřené chybě, bude muset zasáhnout administrátor.
Chainy se starají také o udržování konzistence databáze. Změny v
databázi se provedou, jen když chain doběhne úspěšně. Může to být trochu
matoucí, když se např. po změně hostname stále zobrazuje to staré. Po
dokončení chainu se hostname aktualizuje a bude správně. Zatím nevím,
jak to udělat víc user-friendly.
Zámky objektů
-------------
S každým objektem (VPS, dataset, snapshot, apod.) lze v jednu chvíli
provádět jen jednu operaci. Zámky slouží k zaručení konzistence, aby si
pod sebou vpsAdmin sám nepodřezal větev, což se občas stalo.
Pokud na vás vyskočí chybová hláška "Resource is locked. Please try
again." znamená to, že objekt, se kterým chcete něco udělat, je uzamčen
a musíte počkat, až bude k dispozici.
Pozastavování objektů, expirace
-------------------------------
Administrátoři mají nově možnost pozastavit jednotlivé VPS, což budeme
využívat v případě hacknutí VPS.
Expirace členství už nebude hlídat člověk, ale vpsAdmin. Pokud členský
příspěvek neuhrádíte do data uvedeného v notifikačním mailu, účet bude
pozastaven. Za další tři týdny dojde k ukončení členství, viz finanční
řád [4].
Networking
----------
Je možné se podívat na datové přenosy z minulých let.
Autentizace
-----------
vpsAdmin nyní ukládá hesla pomocí bcrypt. Heslo se při přihlášení
automaticky aktualizuje.
V Edit profile -> Authentication tokens je seznam autentizačních tokenů,
které se používají při vybrání autentizační metody 'token' v HaveAPI [5].
Webové rozhraní vpsAdminu tokeny využívá. Zmiňuji se o tom, protože přes
CLI nebo klientskou knihovnu obecně si můžete vytvořit token s trvalou
platností. Na této stránce můžete tokenu nastavit popisek či ho smazat
(odepřít přístup aplikaci, která jej využívá).
Mód údržby
----------
Do módu údržby (maintenance mode) můžeme přepnout buď celý cluster,
jednotlivé protředí, lokace, nody či VPS. V titulku ikony módu údržby je
napsán důvod.
API
---
Většina aplikační logiky vpsAdminu byla přesunuta do API [6]. Webové
rozhraní teď slouží prakticky jen jako prostředník mezi uživatelem a
API. Využívá k tomu klientské knihovny v PHP [7] a JS [8].
API obsahuje vše krom správy přihlášek k členství, změn uživatelských
účtů a datových přenosů.
Aktuální stav funkcí
--------------------
- Klonování VPS - zakázáno, musí se ověřit
- Swapování VPS - zakázáno, musí se ověřit
- Vytváření více produkčních VPS umožněno na dotaz
[1]
https://github.com/vpsfreecz/oficialni-dokumenty/blob/devel/financni_rad.md…
[2] http://openvz.org/VSwap
[3] https://projects.vpsfree.cz/vpsadmin-doc/storage/branching/
[4]
https://github.com/vpsfreecz/oficialni-dokumenty/blob/devel/financni_rad.md
[5] https://github.com/vpsfreecz/haveapi-client-php#usage
[6] https://api.vpsfree.cz
[7] https://github.com/vpsfreecz/haveapi-client-php
[8] https://github.com/vpsfreecz/haveapi-client-js
Jakub