Bloková storage jako datový disk

Instance z předchozího příkladu používá ephemeral disky, tedy „jak přijde, tak odejde“. V okamžiku, kdy instanci zrušíte, vygumují se všechny zabrané zdroje a vrátí se k dalšímu využití. Z toho je patrné, že můžeme chtít aplikační stav ukládat na nějaké trvalejší místo – databázi, objektové úložiště nebo blokový volume na storage. A to si právě teď vyzkoušíme na příkladu StoreVirtual VSA (ale ovládání je identické při použití 3PAR nebo storage třetí strany).

Navštivte záložku Volumes.

Klikněte na Create Volume

Dejte disku jméno, jako zdroj nic nepoužívejte (zatím necháme volume prázdný) a zvolte Typ (ten připravil administrátor HPE Helion OpenStack – v našem případě jde o Volume na StoreVirtual s tenkým provosioningem a bez adaptivní optimalizace – víc o tom, jaké storage lze takto nabídnout v pozdější části labu). Ještě si v pravé části všimněte, že váš projekt má určitá omezení, která byla definována administrátorem Helion OpenStack.

Klikněte na Create Volume

To bychom měli … v rámci labu nemáte přístup do StoreVirtual konzole, ale klidně požádejte o nahlédnutí – uvidíte zhruba toto (je to ten nejmladší a nepřipojený):

Pojďme ho tedy připojit k instanci. Klikněte na Manage Atachements, které je schované pod menu se třemi tečkami.

Vyberte jednu z našich instancí a klikněte na Attach Volume

Prohlédněte si výsledek

Podobně to vypadá ve StoreVirtual konzoli (tam v rámci labu přístup nemáte, ale váš průvodce vám výsledek může ukázat).

Pojďme teď na disk něco zapsat. Skočte do konzole příslušné VM, vytvořte na disk file systém, přimountujte si ho, vytvořte na něm soubor a vypište si obsah disku.

  sudo fdisk /dev/vdb

následně použijte volbu pro vytvoření nové partition – zmáčněte n + enter a na následující otázky pouze odklepněte výchozí hodnotu. Nakonec zmáčkněte w + enter, čímž se změny zapíší.

Pokračujeme dál – vytvoříme filesystem, přimountujeme si ho, vytvoříme nějaký soubor a přesvědčíme se, že tam je.

  sudo mkfs.ext3 /dev/vdb

  sudo mkdir /mujdisk

  sudo mount /dev/vdb /mujdisk

  sudo touch /mujdisk/mujsoubor.txt

  ls /mujdisk

Udělejte snapshot – správně bychom měli disk odpojit, aby byla zajištěna aplikační konzistence dat. V našem případě tam ale aplikace neběží a pole pro nás udělá crash konzistentní snapshot, což nám v tuto chvíli stačí.

Klikněte na Create Volume Snapshot. Dostanete se na seznam snapshotů.

Vytvoříme z něj další volume

Klikněte na Create Volume

Všimněte si, že s nepřipojeným Volume lze dělat ještě další věci – například ho zvětšit nebo provést jeho backup (to se uloží jako objekt do objektové storage – o tom později), převést do jiného projektu, přesunout na jinou storage apod. Další možnost je z Volume vytvořit nový startovací image, ale o tom později.

Připojte Volume k naší druhé VM – už víte jak na to.

Jděte do konzole, přimapujte si file systém a podívejte se, jestli tam je náš soubor.

  sudo mkdir /zasedisk

  sudo mount /dev/vdb /zasedisk

  ls /zasedisk

Bootování VM ze storage

Vytvořme si další VM a tentokrát budeme chtít, aby se vytvořil bootovací volume v naší storage, obraz se do něj nakopíroval a VM z něj nabootovala.

Jděte do záložky Compute, Instances a klikněte na Launch Instance.

Pojmenujte vaší novou VM.

Budeme chtít bootovat z image, ale tak, že se vytvoří Volume v naší storage. Dále můžeme definovat, zda se má Volume automaticky zrušit v případě, že smažeme naší instanci (VM).

Vyberte si Cirros a klikněte Next

Použijte velikost m1.tiny a klikněte na Next

Přidejte síť a klikněte na Launch Instance.

Počkejte až VM nabootuje.

Podívejte se na Volume, který vám průvodce vyrobil.

Skočte do konzole této nové VM. Teď bychom si mohli třeba něco nainstalovat nebo jinak si operační systém upravit. My děláme jedinou věc – vytvoříme v něm nějaký soubor.

  touch byl_jsem_tu.txt

  ls

Instanci teď vypněte.

První co si zkusíme je udělat snapshot tohoto Volume a z něj vyvoříme nový bootovatelný Volume – už víte jak na to.

Vytvořte snapshot.

Snapshot máme připraven a zůstává uložen v naší storage. Tam ho můžeme kdykoli použít k vytvoření nového Volume, z kterého můžeme nabootovat instanci. Udělejme to v jednom kroku přímo z průvodce spuštěním instance. Jděte do Instances a spusťte Launch Instance průvodce.

Vyplňte jméno

Jako zdroj instance použijeme náš snapshot

Dokončete průvodce tak jako v předchozích částech, tedy použijte m1.tiny Flavor a přidejte naší síť.

Ověřme si, že nový Volume existuje

Po nabootování se podívejte do konzole – je tam náš soubor?

Nový Image z Volume

Tak to se nám povedlo. Dokonce tak, že bychom z toho chtěli vytvořit nový image, který můžeme používat dál – bez ohledu na to, jestli bude ve storage nebo lokálně. Způsobů, jak to udělat, je víc. Nejprve si pojďme změnit generovaný název Volume připojeního do isntance bootSAN na něco lidsky čitelnějšího.

Teď ukončíme instanci bootSAN

Vraťte se do Volumů a pojďme vzít tento obraz ze storage a uploadovat ho do OpenStacku jako nový image.

Dejte mu nějaké hezké jméno

Podívejte se do Compute, Images. Rovnou odtud můžeme spustit průvodce vytvořením instance – klikněte na Launch.

Už víte dobře jak se to dělá – vytvořte instanci z tohoto obrazu.

Až nastartuje, připojte se do konzole

Vypište si soubory - je to skutečně námi vytvořená image?

Volume backup

Ukázali jsme si, že OpenStack si dokáže ze storage vyžádat kopii Volume ve formě souboru, z kterého následně udělá Image pro servery, s kterou pak lze dál pracovat (například spouštět na lokálních discích či libovolné jiné storage připojené do OpenStack). Pokud se nejedná o bootovací, ale o datový Volume, můžeme chtít něco podobného pro jeho zálohu. Chceme ho vzít a dostat ve formě souboru.

Najděte náš Volume a klikněte na Create Backup

Pojmenujte svojí zálohu a můžete také specifikovat jméno kontejneru. Jde o to, že záloha se uloží do openStack Swift, tedy objektové storage a kontejner je přihrádka na objekty.

Backup můžete restorovat nebo smazat

Můžete si ho i stáhnout k sobě – soubor se uložil do objektové storage, která je součástí OpenStack (podrobněji později). Najdete je v Object Store, Containers a v kontejneru volumebackups.

Proč použít Backup místo Snapshot? V případě Snapshot jde o velmi rychlou operaci řešenou přímo vaší storage, ale Volume, z kterého vznikl, není možné smazat (a nechat si jen Snapshot). Možná potřebujete disk skutečně zazálohovat a nechcete, aby příslušné Volume dále existovaly – přesto chcete mít možnost třeba za půl roku ze zálohy Volume znovu vytvořit.

Jsme na konci této části. Pojďme si prostředí trochu vyčistit, ať máme dostatek zdrojů pro další práci. Z instancí ponechejte jen ty první dvě, které jsme vytvořili úplně na začátku. Ostatní zaškrtněte a klikněte na Terminate Instances.

Dále vymažte všechny Volume Backup, Volume Snapshot a nakonec samotné Volume (nejdřív je odpojte).