MetaCloud testbed - příklad práce s cloudem
(English version) Pro lepší představu jak pracovat s cloudem jsme pro vás připravili seznam případu použití cloudu, seřazených od nejjednodušších k nejsložitějším. Na závěr jsou zařazeny ještě možnosti ukládání dat v rámci cloudu. Přečtěte si všechny případy použití a popřemýšlejte, který z nich by nejlépe splnil očekávání, které od použití cloudu máte. Máte-li natolik specifický požadavek, že ho naše případy nepokrývají, napište nám.
Veškeré postupy jsou napsány pro naše webové rozhraní.
Základní případy použití
Vytvoření virtuálního stroje (VM) s neperzistentním obrazem
Využití: Nejrychlejší a nejjednodušší spuštění virtuálního stroje, pokud není potřeba ukládat data přímo v něm.
Použití v praxi: Stroje s nepersistentním obrazem se často využívají jako "slave", které zpracují úlohu a po odeslání vypočtených dat zase zaniknou.
Vytvoření krok za krokem:
- klikněte na položku Virtual Resources v levém menu a následně na jednu z položek Templates
- v Templates menu vyberete template, který chcete spustit
- a kliknutím na Instantiate v pravém horním menu ho spustíte. Zadáte jméno a počet VM, které mají vzniknout. Při tvorbě více strojů naráz je možné v názvu použít proměnnou "%i", která vloží do názvu číslo stroje. Například při tvoření tří instancí a jejích pojmenování "server-%i", bude název výsledných strojů: server-0, server-1, server-2.
- přes ssh se můžete přihlásit na Váš virtuální stroj, jehož adresa se zobrazí v sloupci IP(s) v přehledu Vašich Virtuálních strojů (Virtual Resources -> Virtual machines).
Všechny námi poskytované obrazy virtuálních strojů jsou neperzistentní, tzn. veškerá data se na stroji neukládají a po vypnutí virtuálního stroje se ztrácí.
Vytvoření virtuálního stroje s perzistentním obrazem
Využití: Chová se stejně jako běžný vzdálený "fyzický" stroj. Uchovává si svůj stav i po vypnutí.
Použití v praxi: Tento typ může sloužit pro experimenty a ladění image nebo aplikací pro použití v MetaCentru (nebo kdekoli jinde). Případně jako "běžný" vzdálený stroj.
Vytvoření krok za krokem: V sekci Templates vybere template a kliknete na Instantiate, následně zvolte Instantiate as persistent.
Druhá cesta je jít do sekce Virtual machines a kliknout na tlačítko Create. Vyberte template a zvolte Instantiate as persistent. Počet vzniklých VM je vždycky 1 kvůli persistenci template.
Když nyní nastartujete stroj, veškeré změny, které v něm provedete, zůstanou uloženy i po vypnutí. Daný persistentní obraz může být připojen v jeden čas pouze k jednomu běžícímu virtuálnímu stroji. Pokud potřebujete strojů s takto upraveným obrazem nastartovat zaráz více, stroj s persitentním image uveďte do stavu SHUTDOWN (všechny změny v image se zároveň uloží), image přepněte na nepersistentní (menu Images -> vyberte Váš obraz -> More -> Make non persistent). Nyní tento obraz můžete připojit k virtuálnímu stroji, kde vytvoříte víc instancí.
Vytvoření libovolného počtu stejných instancí VM se stejným customizovaným image
Využití: Libovolné množství instancí stejného VM, které mají stejné vlastnosti, snadno se vytvoří a opět vypnou, ale není možné v nich ukládat data.
Použití v praxi: Učitel učí předmět s 20 studenty, pro každého z nich musí připravit stroj, který bude student používat pro praktická cvičení a experimenty.
Rozdíl od předchozího bodu: Práce s kontextualizací. Víc virtuálních strojů nemůže sdílet jeden persistentní image OS, proto je nutné ho nejprve nakonfigurovat a až pak spustit v n instancích.
Vytvoření krok za krokem:
- Vytvořit 1 VM s persistentním obrazem. Během vytváření nastavíme kontextualizaci SSH.
- Spustit virtuální stroj
- Podle vlastních požadavků stroj nastavit, nainstalovat a odladit potřebné aplikace...
- Stroj vypnout převedením do stavu SHUTDOWN. Změny v image budou automaticky uloženy.
- Image změnit na nepersistentní.
- Vytvořit libovolný počet instancí virtuálního stroj s upraveným nepersistentním image.
Kontextualizace SSH
- V seznam Templates vyberte template a klikněte na More -> Update.
- V průvodci najděte Contextualization a Add SSH contextualization
- Pokud se chcete na stroj přihlašovat pouze vy, zadejte veřejnou část svého SSH klíče.
- Pokud template chcete nastavit tak, aby stroj používal SSH klíč jeho uživatele obecně (ne nutně Vás), vložte proměnnou: SSH_PUBLIC_KEY. Toto se používá v situaci, kdy vytvoříte template, který uložíte jako veřejný, aby s ním další uživatelé mohli pracovat.
Vytvoření libovolného počtu různých instancí VM
Použití v praxi: Postavení jednorázové ukázkové/testovací infrastruktury do projektu s malým počtem uzlů.
Upozornění: Jakmile se počet strojů stane neúnosným na ruční údržbu (z naší zkušenosti při několika desítkách strojů) je čas začít přemýšlet o postupu o využití nástrojů jako je Chef nebo Puppet, které slouží pro automatizovanou orchestraci služeb (viz další příklad).
Vytvoření
- Kombinace předcházejících postupů.
Pokročilý případ použití
Libovolné množství vzájemně spolupracujících strojů spravovaných programy Puppet nebo Chef
Využití: Toto je doporučené použití cloudové infrastruktury. Puppet/Chef zajišťují automatizovanou orchestraci služeb, balíčků, řeší přístup do souborů, ale fungují i jako management tool pro cloud. Oběma se také deklaruje požadovaný stav systému, ne jednotlivé kroky k němu vedoucí. Chef nepotřebuje pro svůj běh server, dostane soubor "cookbook" a umí podle něj nastavit konfiguraci. Puppet potřebuje centrální server -- Puppet mastera, který hlídá virtuální stroje v cloudu.
Výroba:
- V config skriptu nutná instalace a spuštění Puppeta/Chefa. Máte-li zájem o vytvoření clusteru na míru Vaším požadavku, kontaktujte nás!
Použití v praxi: Vytvoření cloudu na míru pro větší projekty. Například projekt Peach note využívá prvky tohoto a předcházejícího případu využití.
Rozdíl od předchozího bodu: Přidaný prvek snadné znovuspustitelnosti nastavení. Díky využití orchestračního software je postavení clusteru záležitostí dobře napsané iniciální konfigurace v Chef/Puppet. Znovuspuštění celého clusteru je pak mnohem jednodušší.
Příklady ukládání dat
Nechci trvale ukládat data.
Co se stane s daty po vypnutí stroje je mi jedno. Chci jen /scratch, /tmp nebo swapovací disk.
Postup: Založí se nový Volatile disk v nastavení template.
Výhoda: Rychlé vytvoření a spuštění VM. Připojení volatile disku je možné i za běhu virtuálního stroje.
Nevýhoda: Disk nemá ID ani vlastníka. Data z něj nejdou uložit. Ani pomocí funkce Snapshot. Prostě nikdy. Je možné je v rámci běhu stroje zkopírovat na jiný stroj (třeba pomocí scp).
Chci trvalý (persistentní) datový disk připojený na stroj.
Postup: Image typu Datablock připojující se na VM.
Výhoda: Použití jako v běžném počítači.
Nevýhoda: Pomalé nastavení, pomalé vypínání stroje, pomalé ukládání. Disk s více jak desítkami GB je problém, protože při ukládání stroje může nastat korupce dat. Jeden persistentní disk může být připojen v jeden čas pouze k jednomu virtuálnímu stroji. Toto omezení je kvůli hrozbě vzájemného přepisu dat.
Chci datový storage, kam budou mít přístup všechny mé VM.
Postup č.1: Vytvořit jeden virtuální stroj s persistentními Datablocky, který bude sloužit jako NFS (nebo jakýkoli jiný distribuovaný file system) server, všechny ostatní virtuální stroje se budou přihlašovat na tento stroj a brát z něj/vkládat na něj data. To vše automatizovaně, v rámci skriptu ale už mimo kontrolu Open Nebula.
Výhoda: Pseudodistribuovaný file systém.
Nevýhoda: Komplikovanější na nastavení a synchronizaci.
Nejčastější použití: Lze využívat prakticky s jakýmkoli případem užití. Nejčastěji tak, že stroje si stáhnou ze storage data, spočítají je a po výpočtu odešlou zpět na storage výsledky.
Kam dál?
Už jste identifikovali, který případ užití sedí na Vaši situaci?