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).