MetaCloud testbed - příklad práce s cloudem

From MetaCentrum
Jump to: navigation, search

(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?