47
szerkesztés
Módosítások
→Virtuális volume-ok le és felcsatolása másik gépre (javítás karbantartás stb...)
==Ismertető==
OpenStack verzió: ROCKYUSSURI
22 perces ismertető, ami az NWS 2016-on hangzott el. http://videotorium.hu/hu/recordings/details/13396,Cloud4Education_-_Kezdo_lepesek
A táblázatban látható root lemezek mérete természetesen a virtuális gép létrehozásakor változtatható.
===Régiók - Zónák===
A C4E nemrég véghezvitt bővítései miatt a felhasználóknak lehetőségük van földrajzilag elosztani (Régiók) és géptermen belül izolálni (Zónák) az igényelt erőforrásokat.
Jelenleg két régiónk van: "RegionOne" és "RegionTwo".
Mindkét fenti régióban elérhető 2-2 zóna: "Zone1" és "Zone2"
===Felhasználói felület bemutatása===
Az általunk megépített rendszerben végül két fajta hálózat kapott helyet:
* Az egyik típus, amit Flat néven kereszteltünk el. Ennek lényege, hogy a létrehozott virtuális gépek egy előre meghatározott publikus IP tartományból DHCP segítségével felvesznek egy címet, majd a csomagok haladásának iránya közvetlenül a compute gépek felé történik, ezzel nem terhelve a network gépeket.
** <small>A '''Flat1''' névre keresztelt hálózathoz tartozó szabad IPv4 címek száma '''nagyon kevés''', ezért kérjük a felhasználóinkat, hogy lehetőség szerint, amennyiben FLAT típusú hálózatot szeretnének hozzáadni az újonnan létrehozott virtuális gépekhez, a '''Flat2 és Flat3''' nevű hálózatot válasszák. Megértésüket és együttműködésüket köszönjük!</small>
* A másik hálózati típus, amely az Smart nevet kapta. Ez a hálózati típus nagyban különbözik az előző megoldástól, mivel ennél a típusnál a felhasználóknak lehetőségük van egy, vagy akár több privát hálózat, valamint egy vagy több ezekhez tartozó virtuális router létrehozására. A virtuális router-hez lehetőség van hozzárendelni IP címeket a privát, valamint egy publikus hálózatból is és ennek következtében a virtuális gépek forgalmában egy úgynevezett hálózati címfordítás történik. Ennek előnye az előző megoldással szemben, hogy kevésbé IP cím pazarló a publikus címek tekintetében, valamint a neutron funkciójának köszönhetően képes több network gép között tartalékolt lenni.
====External (L3) hálózat létrehozása====
====Router létrehozása és Interfészek hozzáadása====
A lenti példa szemlélteti, hogy hogyan engedélyezhetjük az SSH és ICMP forgalmakat minden külső hálózatból:
[[File:Sec_gr1Add_rule1.png|723px|Szabály létrehozása]]
[[File:Sec_gr2Add_rule2.png|723px|Szabály létrehozása]]
[[File:Sec_gr3Sec_grp.png|723px|Szabály létrehozása]]
====LBaaS====
A C4E az "OpenStack Octavia" alapú LoadBalancer-t kínálja a felhasználóknak, HAProxy backenddel.Az LBaaS funkció jelenleg nem elérhetőesetleges titkosított kapcsolatok terminálásakor a "Barbican" tanúsítvány manager eszköz biztosítja a privát kulcsok biztonságos tárolását. A terheléselosztó konfigurációs beállításai két fajta módon tehető meg: 1. Horizon grafikus felületen a NETWORK menüpont alatt, 2. CLI használatával, amelyhez a standard OpenStack CLI eszközön felül az alábbi csomagok telepítése is szükséges. (Debian/Ubuntu rendszeren)<pre>$ apt install python-barbicanclient python3-octaviaclient</pre> [[Cloud for Education#C4E_.28Openstack.29_Publikus_API|Általános CLI használati információk]] '''Rövid ismertető:''' [[File: Octavia-component-overview.jpg |724px|Octavia component overview]]
A rendszer alapvető elosztottsága miatt nincs központi "leállás", minden egyes terheléselosztó pont annyira stabil, mint a C4E-ben futó többi virtuális gép. Alapvetően egy adott projekt egy adott terheléselosztójához tartozó amphora image hibája (virtuális gép leáll, lefagy) esetén a Health Managerre hagyatkozunk.
A szabály létrehozása után szükség van gép újraindításán túl akár egy csoportrendszerre'''új amphorae virtuális gép'''et is létre tud hozni a háttérben, amely és a szabályokat fogja tartalmaznimár '''meglévő konfiguráció'''t alkalmazni rá. Ehhez válasszuk a „Firewall Policies” lehetőségetArra azonban figyelni kell, hogy egy újraindítás, majd vagy egy új image létrehozása néhány perces kiesést jelenthet az alábbi ábrákon látható módon hozzuk létre a csoportot és adjuk hozzá az előbb létrehozott mindent tiltó szabályt.[[File:Fwaas2adott projekthez tartozó terheléselosztó szolgáltatásban, de ilyenre alapvetően nem számítunk.png|724px|Szabályrendszer létrehozása]]
'''Amennyiben beragadt/hibás terheléselosztót észlelnek, kérjük forduljanak ügyfélszolgálatunkhoz!'''
Ennek a megoldása, hogy "szét kell szedni" a terheléselosztót, amelyhez a következő lépésekre van szükség:
* törölni kell a pool-t, a listener-t, a monitort
* majd végül magát a terheléselosztót
===Lemez típusok===
==Virtuális gép indítása==
Az előfeltételek teljesítése után elkészíthető a kívánt virtuális gép. Ehhez válasszuk a bal oldali menüből a „Compute”, azon belül pedig az „Instances” lehetőséget, majd a bal jobb felső sarokban válasszuk a „Launch Instance” gombot és az alábbi képeken látható módon készítsük el a gépet. ===VM elenevezése===Első lépésben válasszunk egy nevet az újonnan létrehozni kívánt virtuális gépnek, majd adjuk ezt meg az "Instance Name" mező értékének. [[File:Li1.png|726px|VM Name]] ===Image választás===A "Next" gombra kattintva, a VM forrásával kapcsolatos beállításokat szükséges elvégezni. A következő ábrán látható módon válasszunk ki a rendelkezésre álló lemezképfájlok közül egyet, valamint állítsuk be a kívánt lemez méretet.
[[File:Launch1Li2.png|726px|VM indításaSource]]
===Kulcspár és security group társításaFlavor választás===A következő ábrán látható módon a VM létrehozásakor kiválaszthatjuk az előzőleg feltöltött publikus kulcsunkat, vagy feltölthetünk egy teljesen újat is a létrehozás közben, valamint megadhatjuk, hogy melyik Security Group vonatkozzon a virtuális gépünkre.
[[File:launch2Li3.png|726px|SecurityGroup kiválasztásaVM Select flavor]]
===Hálózat kiválasztása===
Következő lépésként meg kell adni a használni kívánt hálózatot. Ez legyen a példában létrehozott „Internal” hálózat.
[[File:launch3Li4.png|726px|Hálózat kiválasztásaVM Select network]] ===Security group társítása===Az ábrán látható módon megadhatjuk, hogy mely Security Group(-ok) vonatkozzon a virtuális gépünkre. [[File:Li5.png|726px|VM Select sec_grp]] ===Publikus kulcs társítása===Az ábrán látható módon a VM létrehozásakor kiválaszthatjuk az előzőleg feltöltött publikus kulcsunkat, vagy feltölthetünk egy teljesen újat is a létrehozás közben.
[[File:Li6.png|726px|VM Select pub_key]]
A „Launch” lehetőséget választva elkezdhetjük a virtuális gép létrehozását. A folyamat elkészültekor az „Instances” fül alatt láthatjuk az eddig létrehozott virtuális gépeinket és azok állapotát.
[[File:launch4Li7.png|726px|Létrehozott VM lista]]
A folyamat elvégzése után elkészült az első virtuális gép, amelynek elérése több féle módon történhet.
* A virtuális géphez hozzárendelünk egy publikus IP címet, majd a virtuális router segítségével háttérben a neutron 1:1 NAT alkalmazásával ennek megfelelően konfigurálja a virtuális routert, és így távolról is bejelentkezhetünk rá, Linux disztribúció esetén például SSH, Windows esetén RDP szolgáltatás segítségével.
* A weboldalba ágyazott VNC konzol segítségével vezérelhetjük gépünket, azonban egyes előre gyártott lemezképfájlból készített virtuális gépek nem támogatják csak a kulcsos autentikációt, így sajnos ezeknél a gépeknél ez a módszer nem elérhető.
====Floating IP hozzárendelése====
Csak smart hálózat esetén elérhető a floating ip.
Flat esetén van IPv4 és IPv6 és nincs NAT, cserébe az IP minden esetben dinamikus, nem fixálható.
SMART esetén lehet létrehozni floating IP-t, de itt nincs IPv6 és saját hálóz definiálása szükséges.
Az előzőekben létrehozott Ubuntu operációs rendszerrel ellátott virtuális gépünk a második lehetőséget nem támogatja, így szükségünk van a gép eléréséhez egy publikus IP címre, amelynek allokálása és géphez rendelése a következőképpen történik.
Első lépésben válasszuk a „Compute” „Project” alatt található „Access & Security” „Network” lehetőséget, majd azon belül a „Floating IPs” menüpontot és kattintsunk a jobb felső sarokban lévő „Allocate IP To Project” gombra. A megjelenő ablakban ki kell választani a kívánt Smart hálózatot, amelyből a publikus IP címet szeretnénk használni (Ez nyilván az a hálózat, amelyiket a router átjárójának is választottunk), majd az „Allocate IP” lehetőséget kell választani.
[[File:Allocate1Allocate_ip1.png|726px|Floating IP igénylése]]
A következő ábrán látható a Projekthez allokált IP címek listája, amelyek következő lépésként hozzárendelhetők 1-1 virtuális géphez. Ehhez válasszuk az ábrán látható IP cím mellett található „Associate” lehetőséget, majd válasszuk ki a listából azt a virtuális gépet, amelyiken az IP címet használni szeretnénk.
[[File:Allocate2Allocate_ip2.png|726px|Rendelkezésre álló IP címek listája]]
[[File:Allocate3Allocate_ip3.png|726px|Floating IP géphez rendelése]]
A sikeres hozzárendelés után a gépünk már rendelkezik publikus IP címmel, amelyen keresztül külső hálózatokból is elérhetjük a gépet, amennyiben ezt a Security Group-ban, vagy a Firewall alatt engedélyezzük.
===Kiegészítés Windows gépek elkészítéséhez===
MS Windows gépek elkészítésénél fontos, hogy előbb a feltöltött image-ből készítsünk egy volume-ot és annak elkészülte után készítsük felé a VM-et, így a VM build nem fog timeout hibára futni a nagyméretű image konverzió miatt.
====gyakorlati példa egy win2022 vm indítására:====
* szükséges egy megfelelő qcow, vagy vmdk file
<code>aria2c https://s3.bigstack.co/downloads/cloud-image/win2022en-standard-minimal.vmdk</code>
* vmdk esetén szükség lehet egy konverzióra <code>apt install qemu-utils</code>
<code>qemu-img convert -p -f vmdk -O qcow2 win2022en-standard-minimal.vmdk win2022en-standard-minimal.qcow2</code>
* fel kell tölteni az imaget:
<code>openstack image create win2022en-standard-minimal--disk-format=qcow2 --progress --private --file /mnt/big/openstackimage/win2022en-standard-minimal.qcow2</code>
* létrehozni belőle a volumeot (itt ez hosszabb ideig eltarthat a volume méretétől függően):
<code>openstack volume create --size 60 --availability-zone Zone1 --image win2022en-standard-minimal window22standardminimal</code>
* amin a volumet available státuszra vált:
<code>openstack volume list | grep window22standardminimal</code>
indíthatunk belőle vmet:
<code>openstack server create --flavor mem1.xlarge --network Flat1 --volume window22standardminimal --availability-zone Zone1 [handle]win22stdmin</code>
* ezek után a c4e web konzolon a telepítés befejezése / Rendszergazda jelszó megadása szükséges.
===Meglévő VM-ek költöztetése C4E rendszerbe===
Amennyiben más szolgáltatásból költöztetnénk VM-et a C4E -be akkor fizikai gép esetén a boot diskről egy volume fájlt kell létrehozni, ideális esetben QCOW2 formátumban, így csökkenthető a C4E-be feltöltés utáni konverzió. Fontos, hogy érdemes minden esetben a nagyobb méretű image-ek, feltöltésénél az Openstack API-t használni. Lásd API szekció. A C4E és az Openstack API lehetőséget biztosít más image típusok konverziójára, itt érdemes a megnövekedett konverziós idővel számolni.
==Virtuális gépek kezelése==
# Igennel kell válaszolni, hogy automatikusan elinduljon az iSCSI a továbbiakban
# A megnyitott ablakban a "Konfiguráció" fül alatt a "Kezdeményező neve:" részhez be kell állítani az IQN-t, amit a storage igénylésekor megadtunk (ehhez az alatta lévő módosítás gombra kell kattintani)
===Virtuális gépek migrálása Régiók között===
A migráláshoz CLI elérés, és elegendő tárhely szükséges! A jobb teljesítmény érdekében a migrálást végző gép akár a felhőben is futtatható, így nem limitál az otthoni sávszélesség.
# A virtuális gépről először snapshot-ot kell készíteni
# Az elkészült snapshot-ból újra létre kell hozni egy volume-ot (virtuális gép nélkül)
# A létrejött új volume-nál megjenik egy opció: Upload to Image (ez a diszk méretétől hosszú ideig is eltarthat!)
# A létrejött image innentől letölthető a CLI-n keresztül:<pre> glance image-download --file $FILENAME $UUID</pre>
# A letöltött file-t például így kell feltölteni: <pre>openstack image create --min-disk 5 --disk-format raw --container-format bare --file /tmp/valami.raw --property murano_image_info='{"title": "Migralt virtualis gep", "type": "linux"}' NewVM </pre>
===Virtuális volume-ok le és felcsatolása másik gépre (javítás karbantartás stb...)===
Előfordulhat hogy a VM-ek root volume-ja korruptálódott valamiért és javítani kellene. Az egyik legegyszerűbb megoldás ha felcsatoljuk máshová és ott futtatunk javító programot (chkdsk, fsck stb...)
1. Első lépésben a problémás gépet le kell állítani <br>
[[Fájl:Instance-select.jpg|924px|keretnélküli|semmi]] <br>
2. Az C4E felületén kiválasztjuk a gépet az compute menüpont / instances közül, majd rákattintva az overview lap alján láthajuk a rá csatolt köteteket, itt kiválasztjuk a problémás kötet-et, ha gyorsprovisioning volt akkor egy random ID-t látunk név helyett ezt érdemes a vágolapra másolni majd. <br>
[[Fájl:2-select-volume.png|924px|keretnélküli|semmi]] <br>
3. Ha a kötetre kattintottunk akkor megjelenik a jobb felső sarokban egy Edit Volume menüpont és mellette egy legördülő nyíl, ebből a legördülő listából kell kiválasztani a Manage Attachements pontot. <br>
[[Fájl:3-manage attachementsv2.png|924px|keretnélküli|semmi]] <br>
4. Ahogy rákattintottunk látjuk, hogy kire van csatolva (ha van) itt kell detach-ot nyomni, a megerősítés után hamarosan available re vált a kötet státusza <br>
[[Fájl:4 detach panel.png|424px|keretnélküli|semmi]] <br>
5. Ha nem vitt át a rendszer akkor a bal oldali menüben a Volumes/Volumes pont alatt vannak felsorolva a projekt kötetei, innen ki kell választani az előbb lecsatoltat (szűrhető ID-re a lista a filter résznél) ha megvan ismét rákattintunk és jobb felül a legördülőből kiválasztjuk a Manage Attachements-et. <br>
[[Fájl:5 - manage-attach.png|924px|keretnélküli|semmi]] <br>
6. Kiválasztjuk a listából, hogy melyik instance-ra szeretnénk csatolni és kattintunk az Attach Volume -ra. <br>
[[Fájl:6-attach volume to instance.png|424px|keretnélküli|semmi]] <br>
7. Rövid időn belül megjelenik az oprendszerben a VM-en belül a disk és neki lehet állni a javítási feladatoknak. <br>
[[Fájl:7-csatolt.png|524px|keretnélküli|semmi]] <br>
A visszacsatolás ellenkező sorrendben történik, majd el kell indítani az eredetileg hibás instance-ot.
== C4E (Openstack) Publikus API ==
Amennyiben az IP valóban hazai cím, és még nem szerepel a tűzfalban, rövid távon permanensen az egész alhálózat számára elérhetővé tesszük az API-t.
<big> '''FONTOS!''' </big> Minden itt leírt dokumentáció a C4E openstack jelenlegi (MitakaRocky) verziójához készült!
Kialakításra került a C4E publikus API elérése. Ahhoz, hogy a felhasználók ezt igénybe tudják venni, az alábbiak szükségesek:
* Első lépésben küldeni Meg kell egy levelet az alábbiakkal nyitni a '''cloud@: https://keystone.c4e.niif.hu''' címre:/regsite/apipwgen oldalt.** C4E projekt(ek) neveÚj jelszó beállítását kérni.** C4E usernév (ez szinte biztosan az eppn)A kapott jelszót felírni.** Privát kezelésben lévő belföldi mobiltelefon száma, ahova SMS formájában küldjük el az eléréshez szükséges Ajánlott a kapott jelszót A levélnek arról az e-mail címről kell származnia, ami az adott intézmény IdP-je adott át utólag a C4Ewebfelületen (vagy CLI-nek az eppn mellettből) módosítani!
=== Kezdő lépések: környezet kialakítása (Debian/Ubuntu) ===
Első körben hozzá kell adni a repository-t az apt konfigurációjához, frissíteni a csomaglistát, majd telepíteni a szükséges csomagokat:
<pre>
apt-get update
apt-get install python-openstackclient
</pre>
<pre>
curl http://osbpo.debian.net/osbpo/dists/pubkey.gpg | sudo apt-key add -
echo "deb http://osbpo.debian.net/osbpo buster-rocky-backports main" >>/etc/apt/sources.list.d/openstack.list
echo "deb http://osbpo.debian.net/osbpo buster-rocky-backports-nochange main" >>/etc/apt/sources.list.d/openstack.list
apt-get update
apt-get install python-openstackclient
* Az <big>''' Access & Security -> API Access '''</big> oldalon a <big>''' Download OpenStack RC File v3 '''</big> opciót választani
* Az rc file-t a kezelő gépre juttatni (ha nem ott lenne)
* <big>Fel kell venni</big> az rc file-ba az alábbi sort: '''export OS_VOLUME_API_VERSION=3'''
* Az rc file-ban specifikálni <big>kell</big> a régiót, pl.: '''export OS_REGION_NAME="RegionTwo"''' (vagy RegionOne)
A harmadik lépés, hogy betöltjük az rc file-t, majd a jelszó beírása után elérhetővé válik a C4E API