„Cloud for Education” változatai közötti eltérés

Innen: KIFÜ Wiki
(Mindenki számára elérhető Image-ek*)
 
(146 közbenső módosítás, amit 8 másik szerkesztő végzett, nincs mutatva)
1. sor: 1. sor:
=Cloud 4 Education=
+
== Hozzáférés ==
 +
 
 +
A szolgáltatás elérési helye https://c4e.niif.hu.
 +
 
 +
 
 +
== Karbantartások ==
 +
 
 +
A C4E szolgáltatást nyújtó gépekre az alábbi ütemezés szerint telepítjük a frissítéseket:
 +
 
 +
* Minden hónap '''második hétfőjén''' nap közben (délelőtt 10 órától) megkezdődik a rendszer vezérlő gépeinek frissítése (Adatbázis, vezérlő gépek, terheléselosztó, hálózati node-ok)
 +
A művelet során néhányszor 2-3 percre '''elérhetetlen lehet a webfelület''', illetve a hálózati csomópontok újraindításának következtében néhányszor 1-2 percre a '''Smart''' hálózatok elérése akadozhat, amíg a tartalék irány működésbe nem lép.
 +
 
 +
* Minden hónap '''második hétfőjén''' este egy második frissítési ciklust is tartunk az alábbiak szerint
 +
** Páratlan hónapokban a '''Compute''' gépeket frissítjük, ami azzal jár, hogy futó virtuális gépeket elmigráljuk a fizikai gépekről. A folyamat során néhányszor 1 percre a futó virtuális erőforrások elérhetetlenek lehetnek, illetve folyamatosan íródó memóriájú gépeknél előfordul, hogy csak a virtuális gép leállításával/elindításával lesz sikeres a migráció.
 +
*** A több zónás működésnek köszönhetően, egyidőben csak egy zónába tartozó virtuális gépeket érintenek a fent említett esetleges rövid kimaradások, mivel a zónákhoz tartozó erőforrások frissítése külön történik!
 +
** Páros hónapokban a diszk alrendszert '''(CEPH)''' frissítjük. Ilyenkor a háttérben '''adatszinkronizáció zajlik''', ami '''lassíthat egyes IO kéréseket''', de a felhasználók felé ez a művelet eddigi tapasztalataink alapján többnyire transzparens.
  
 
==Ismertető==
 
==Ismertető==
 +
OpenStack verzió: ROCKY
 +
 +
22 perces ismertető, ami az NWS 2016-on hangzott el. http://videotorium.hu/hu/recordings/details/13396,Cloud4Education_-_Kezdo_lepesek
  
 
===Igényelhető virtuális erőforrás-csomagok (flavor)===
 
===Igényelhető virtuális erőforrás-csomagok (flavor)===
9. sor: 27. sor:
  
 
A táblázatban látható root lemezek mérete természetesen a virtuális gép létrehozásakor változtatható.
 
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===
 
===Felhasználói felület bemutatása===
  
 
====Dashboard áttekintés====
 
====Dashboard áttekintés====
[[File:Dash_overview.png|665px|Dashboard]]
+
[[File:dashboard_overview.jpg|665px|Dashboard]]
  
Bejelentkezés után a felhasználóhoz tartozó kvóta kihasználtságai láthatjuk, ezen kvóták szabályozása admin felhasználóval tehető meg. A kihasználtságon felül lehetőség van arra, hogy a felhasználó lekérdezze egy adott periódus alatt használt vCPU, Disk és RAM mennyiségét, valamint ezek az információk letölthetők excel táblázat formájában is.  A bal oldali menüstruktúra több részből tevődik össze, amelyből a két legfontosabb a „Compute” és a „Network” opció. A „Compute” menüpont alatt találhatók azok a funkciók, amelyek ahhoz szükségesek, hogy virtuális gépeket tudjunk igénybe venni és az ehhez tartozó adminisztratív teendőinket is itt tudjuk elvégezni. A „Network” menüpont alatt kezelhetjük a virtuális gépeinkhez szükséges hálózatokat. Itt hozhatunk létre virtuális routereket, hálózatokat, valamint itt állíthatunk be terheléselosztókat és definiálhatunk tűzfalszabályokat. A következőkben bemutatásra kerül, hogyan tud egy felhasználó néhány kattintás segítségével egy lemezképfájlt feltölteni, majd a képfájlból virtuális gépet létrehozni, valamint a rendelkezésre álló funkciókat igénybe venni.
+
Bejelentkezés után a projekthez tartozó kvóta használtsága látható, ezen kvóták szabályozása admin felhasználóval tehető meg. A használtság áttekintésén felül lehetőség van arra, hogy a felhasználó lekérdezze egy adott periódus alatt használt vCPU, Disk és RAM mennyiségét, valamint ezek az információk letölthetők excel táblázat formájában is.  A bal oldali menüstruktúra több részből tevődik össze, amelyből a két legfontosabb a Project fül alatt talákható „Compute” és a „Network” opció. A „Compute” menüpont alatt találhatók azok a funkciók, amelyek ahhoz szükségesek, hogy virtuális gépeket tudjunk igénybe venni és az ehhez tartozó adminisztratív teendőinket is itt tudjuk elvégezni. A „Network” menüpont alatt kezelhetjük a virtuális gépeinkhez szükséges hálózatokat. Itt hozhatunk létre például virtuális routereket, hálózatokat, valamint adminisztrálhatjuk őket. A következőkben bemutatásra kerül, hogyan tud egy felhasználó néhány kattintás segítségével egy lemezképfájlt feltölteni, majd a képfájlból virtuális gépet létrehozni, valamint a rendelkezésre álló funkciókat igénybe venni.
  
 
====Új image feltöltés====
 
====Új image feltöltés====
A virtuális gép létrehozásához szükség van lemezképfájlra, amelyet egy működő http url-ről könnyedén letölthetünk a „Compute” menüpont alatt található „Images” lehetőség használatával, vagy használhatjuk az előre feltöltött image-eket, amelyeket az admin jogosultságú felhasználók biztosítanak számunkra. Az „images” lehetőséget választva látható a rendelkezésre álló lemezképfájlok listája. A jobb felső sarokban a „Create Image” lehetőséget választva készíthetünk lemezképet. Az alábbi példa egy Ubuntu 14.04 verziójú lemezkép letöltését szemlélteti.
+
A virtuális gép létrehozásához szükség van lemezképfájlra, amelyet egy működő http url-ről könnyedén letölthetünk a „Compute” menüpont alatt található „Images” lehetőség használatával, vagy használhatjuk az előre feltöltött image-eket, amelyeket az admin jogosultságú felhasználók biztosítanak számunkra. Az „images” lehetőséget választva látható a rendelkezésre álló lemezképfájlok listája. A jobb felső sarokban a „Create Image” lehetőséget választva készíthetünk lemezképet. Az alábbi példa egy Ubuntu 18.04 (Bionic) verziójú lemezkép letöltését szemlélteti.
  
[[File:Image_create.png|724px|Image készítés]]
+
[[File: Upload_image.png |724px|Image készítés]]
  
 
A fenti ábrán látható módon, néhány szükséges információt meg kell adni, ilyenek például:  
 
A fenti ábrán látható módon, néhány szükséges információt meg kell adni, ilyenek például:  
 
* Név  
 
* Név  
* Lemezképfájl helye: A letölteni kívánt lemezképfájl internetes elérhetősége  
+
* Lemezképfájl helye: A feltölteni kívánt lemezképfájl internetes elérhetősége url-ről történő feltöltés esetén
* Format: QCOW2 – QEMU Emulator
+
* Format: például QCOW2 – QEMU Emulator
  
=====Mindenki számára elérhető Image-ek*=====
+
Fontos: Kizárólag a saját projektek alá van jogosultsága a felhasználóknak lemezképfájlokat feltölteni!
 +
 
 +
=====Mindenki számára elérhető Image-ek* (Forrás: http://docs.openstack.org/image-guide/obtain-images.html)=====
 
{| class="wikitable" border="1"   
 
{| class="wikitable" border="1"   
 
|-   
 
|-   
61. sor: 88. sor:
 
| fedora  
 
| fedora  
 
| 5 GB  
 
| 5 GB  
 +
|-
 +
| Windows 7 Pro SP1
 +
| setupuser/Qwer1234
 +
| 17 GB
 +
 +
|-
 
|}
 
|}
  
 
  * Minden Linux alapú image-ből készített virtuális gépnél az alapértelmezett felhasználó jelszó nélkül sudo képes!
 
  * Minden Linux alapú image-ből készített virtuális gépnél az alapértelmezett felhasználó jelszó nélkül sudo képes!
  
Természetesen a későbbiekben a lista bővülni fog a népszerű Operációs Rendszerek képfájljaival, köztük a Windows néhány verziójával is!
+
===Kulcspár létrehozása/publikus kulcs feltöltése===
 
+
A „Compute” menüpont alatt található "Key Pairs" lehetőséget választva hozzáadhatunk saját kulcspárokat, így a neutron szerverek által futtatott metadata szolgáltatás eljuttatja a publikus kulcsunkat a létrehozott virtuális gépre és a privát kulcsunkkal könnyedén tudunk autentikálni a létrehozott gépeken. Ehhez válasszuk a hozzáadás lehetőséget és adjuk meg a publikus kulcsunkat a következő ábrán látható módon.
====Kulcspár létrehozása/publikus kulcs feltöltése====
 
A „Access & Security” fülre kattintva, hozzáadhatunk saját kulcspárokat, így a neutron szerverek által futtatott metadata szolgáltatás eljuttatja a publikus kulcsunkat a létrehozott virtuális gépre és a privát kulcsunkkal könnyedén tudunk autentikálni a létrehozott gépeken. Ehhez válasszuk a hozzáadás lehetőséget és adjuk meg a publikus kulcsunkat a következő ábrán látható módon.
 
  
 
EGYES CLOUD LEMEZKÉPFÁJLOK KIZÁRÓLAG KULCS HASZNÁLATÁVAL VEHETŐK IGÉNYBE!
 
EGYES CLOUD LEMEZKÉPFÁJLOK KIZÁRÓLAG KULCS HASZNÁLATÁVAL VEHETŐK IGÉNYBE!
  
[[File:Key_pair.png|726px|Publikus kulcs importálása]]
+
[[File:Import_pubkey.png|726px|Publikus kulcs importálása]]
  
====Hálózati típusok====
+
===Hálózati típusok===
 
Az általunk megépített rendszerben végül két fajta hálózat kapott helyet:  
 
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.  
 
* 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.
 
* 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.
  
Az Flat típusú hálózat felvételére kizárólag admin jogosultságú felhasználónak van lehetősége két féle módon. Az egyik lehetőség, hogy a létrehozott Flat hálózat shared típusú, vagyis megosztott hálózat, ami azt jelenti, hogy a hálózat minden tenant számára látható. A másik lehetőség, hogy a létrehozott hálózatot nem osztjuk meg másik tenanttal, azonban hozzárendeljük egy bizonyos tenant-hoz, ezzel garantálva, hogy egy IP cím tartományt csak egy tenant használ kizárólag.   
+
Az Flat típusú hálózat felvételére kizárólag admin jogosultságú felhasználónak van lehetősége két féle módon. Az egyik lehetőség, hogy a létrehozott Flat hálózat shared típusú, vagyis megosztott hálózat, ami azt jelenti, hogy a hálózat minden projekt számára látható. A másik lehetőség, hogy a létrehozott hálózatot nem osztjuk meg másik projekttel, azonban hozzárendeljük egy bizonyos projekthez, ezzel garantálva, hogy egy IP cím tartományt csak egy projekt használ kizárólag.   
  
 
Az Smart hálózat és egy hozzá tartozó virtuális router felvételét az alábbiakban mutatjuk be.
 
Az Smart hálózat és egy hozzá tartozó virtuális router felvételét az alábbiakban mutatjuk be.
  
=====External (L3) hálózat létrehozása=====
+
====External (L3) hálózat létrehozása====
A „Project” menüpont alatt található „Network” lehetőséget választva láthatók a hálózattal kapcsolatos lehetőségeink. A hálózat létrehozásához első lépésként a „Networks” lehetőséget kell választanunk, ahol láthatók a már korábban létrehozott hálózatok, valamint itt érhetők el a Flat típusú hálózatok is, amennyiben egy admin jogosultságú felhasználó megosztott, vagy a tenant-hoz rendelt egy ilyen típusú hálózatot.
+
Segédlet L3 (SMART) hálózat létrehozásához az alábbi oldalon tekinthető meg:
 +
 
 +
[[Cloud for Education/network l3|L3 hálózat létrehozása]]
 +
 
 +
====Router létrehozása és Interfészek hozzáadása====
  
Új hálózat létrehozásához a bal felső sarokban válasszuk a „Create Network” lehetőséget, majd a következő képeken látható módon töltsük ki a szükséges mezőket.
+
A hálózat sikeres elkészítése után szükség van egy virtuális router létrehozására, amelyen keresztül fog a hálózati címfordítás történni. A router létrehozása a következő képeken látható
  
[[File:Create_net1.png|727px|hálózat létrehozása]]
+
[[File:Create_router.png|727px|Router létrehozás]]
  
[[File:Create_net2.png|723px|hálózat létrehozása]]
 
  
A fentebb látható menüben az átjáró IP címét nem kötelező megadni, ilyenkor automatikusan a megadott tartomány első IP címét fogja átjárónak beállítani. Ebben az esetben 192.168.66.1 címet.
 
  
[[File:Create_net3.png|723px|hálózat létrehozása]]
+
A Virtuális router létrehozásánál az „External Network”, azaz a külső hálózatok listájánál a rendelkezésre álló Smart hálózatok közül van lehetőség választani. Miután ez megtörtént, a router-hez szükség van egy másik interfész hozzáadására is, az előzőleg létrehozott belső hálózatból. Ennek hozzáadásához a „Routers” menüpontot választva, a forgalomirányítók listájából válasszuk ki az előbbiekben létrehozott „Internal-Router”-t, majd az „Interfaces” fülön az „Add Interface” lehetőséget választva, adjunk hozzá egy interfészt a következő ábrán látható módon.
  
Ha minden szükséges és kötelező mezőt kitöltöttünk, akkor a „create” gombra kattintva a rendszer létrehozza a hálózatot a kívánt paramétereinkkel, amelyet a Networks menüpont alatt megtekinthetünk.
+
[[File:Add_if.png|723px|Router létrehozás]]
  
=====Router létrehozása és Interfészek hozzáadása=====
+
====Security group-ok====
  
A hálózat sikeres elkészítése után szükség van egy virtuális router létrehozására, amelyen keresztül fog a hálózati címfordítás történni. A router létrehozása a következő képeken látható
+
A virtuális gépek eléréséhez szükség van tűzfalszabályok definiálására, amelyre a „Security Groups” fülön van lehetőség. Alapértelmezetten egy „Default” security group jön létre, amelyben a következő forgalmak vannak alapértelmezetten engedélyezve:
 +
* Bejövő forgalom esetén: Kizárólag az azonos Security Group-ban elhelyezett virtuális gépekről érkező forgalmak
 +
* Kimenő forgalom esetén: Minden forgalom engedélyezve van
 +
 
 +
A lenti példa szemlélteti, hogy hogyan engedélyezhetjük az SSH és ICMP forgalmakat minden külső hálózatból:
 +
 
 +
[[File:Add_rule1.png|723px|Szabály létrehozása]]
 +
 
 +
[[File:Add_rule2.png|723px|Szabály létrehozása]]
 +
 
 +
[[File:Sec_grp.png|723px|Szabály létrehozása]]
 +
 
 +
 
 +
Természetesen nem kötelező a Default security group-ot módosítani, létrehozható másik szabályrendszer is, és hozzárendelhető akár több csoport is egy virtuális géphez. A szabályok hozzáadásával lehetőség van a gép távoli elérésére a megadott protokollon keresztül.
  
[[File:Create_router1.png|727px|Router létrehozás]]
+
====LBaaS====
 +
A C4E az "OpenStack Octavia" alapú LoadBalancer-t kínálja a felhasználóknak, HAProxy backenddel.
 +
Az 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,
  
A Virtuális router létrehozásánál az „External Network”, azaz a külső hálózatok listájánál a rendelkezésre álló Smart hálózatok közül van lehetőség választani. Miután ez megtörtént, a router-hez szükség van egy másik interfész hozzáadására is, az előzőleg létrehozott belső hálózatból. Ennek hozzáadásához a „Routers” menüpontot választva, a forgalomirányítók listájából válasszuk ki az előbbiekben létrehozott „Internal_Router”-t, majd az „Interfaces” fülön az „Add Interface” lehetőséget választva, adjunk hozzá egy interfészt a következő ábrán látható módon.
+
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.
  
[[File:Create_router2.png|723px|Router létrehozás]]
+
(Debian/Ubuntu rendszeren)
 +
<pre>$ apt install python-barbicanclient python3-octaviaclient</pre>
  
=====Security group-ok=====
+
[[Cloud for Education#C4E_.28Openstack.29_Publikus_API|Általános CLI használati információk]]
  
A virtuális gépek eléréséhez szükség van tűzfalszabályok definiálására, amelyre a „Security Groups” fülön van lehetőség. Alapértelmezetten egy „Default” security group jön létre, amelyben az azonos security groupban található gépekről érkező forgalmak vannak engedélyezve. Ha szeretnénk példának okáért engedélyezni az ICMP és SSH kapcsolatokat, akkor a következő ábrán látható módon vegyük fel ezeket a szabályokat az „Add Rule” lehetőséggel.
+
'''Rövid ismertető:'''
  
[[File:Sec_gr1.png|723px|Szabály létrehozása]]
+
[[File: Octavia-component-overview.jpg |724px|Octavia component overview]]
  
[[File:Sec_gr2.png|723px|Szabály létrehozása]]
+
Az Octavia LBaaS rendszer az alábbi főbb komponensekből áll:
 +
* Amphorae: Különálló virtuális gépek, amik egy Ubuntu alapú Amphora image-ből példányosodnak, mikor a felhasználó új terheléselosztót hoz létre
 +
** A sablon image-ből létrehozott virtuális gépek nem számítanak bele a felhasználói kvótába, azok flavor-je specifikus, belépni rájuk a felhasználó nem tud
 +
* Octavia&Barbican API
 +
* Controller Worker (az API kérések alapján vezérli a háttérkomponenseket)
 +
* Health Manager (figyeli a már létrehozott "Amphorae" virtuális gépeket, és azok állapotát, hiba esetén failover műveleteket hajt végre)
 +
* Housekeeping Manager (a hibás/törölt maradványok eltávolításáért felel)
 +
* Driver Agent (információkat fogad az egyes amphora példányokon futó Haproxy drivertől)
  
[[File:Sec_gr3.png|723px|Szabály létrehozása]]
+
A fentiek közül a felhasználónak csupán az API-val kell kommunikálnia, akár a Horizon felületén, akár a CLI-ből szeretné létrehozni és managelni a LoadBalancer-t.
  
 +
'''Segédlet a létrehozáshoz példákkal illusztrálva:'''
 +
* Példa [[Cloud for Education/LBaaS gui|GUI]] igénybevételével
 +
* Példa [[Cloud for Education/LBaaS cli|CLI]] használatával
  
Természetesen nem kötelező a Default security group-ot módosítani, létrehozható másik szabályrendszer is, és hozzárendelhető akár több csoport is egy virtuális géphez. A szabályok hozzáadásával lehetőség van a gép távoli elérésére a megadott protokollon keresztül.
+
'''Működés/Hibatűrés:'''
  
=====LBaaS=====
+
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.  
Az LBaaS funkció jelenleg nem elérhető.
 
  
=====FWaaS=====
+
A gép újraindításán túl akár egy '''új amphorae virtuális gép'''et is létre tud hozni a háttérben, és a már '''meglévő konfiguráció'''t alkalmazni rá.
 
+
Arra azonban figyelni kell, hogy egy újraindítás, vagy egy új image létrehozása néhány perces kiesést jelenthet az adott projekthez tartozó terheléselosztó szolgáltatásban, de ilyenre alapvetően nem számítunk.
Egy másik hálózati lehetőség a tűzfal alkalmazása. Alapértelmezetten a már bemutatott Security Group felel a virtuális gépek elérhetőségének szabályozásáról, azonban lehetőségünk van egy sokkal részletesebben szabályozható technika alkalmazására is. A tűzfal működéséhez fontos, hogy a Default Security Group-ban engedélyezni kell a ki és bemenő forgalmat bárhonnan, mivel a korlátozásokat és a konkrét szabályokat a tűzfal modulban vehetjük fel.
 
 
 
A tűzfal létrehozásához és konfigurálásához válasszuk a „Network” menüpont alatt található „Firewalls” lehetőséget. Mint ahogy az a menüstruktúrában is látszik, a tűzfal három részből tevődik össze:
 
* Firewall Rules
 
* Firewall Policies
 
* Firewalls
 
 
 
Első lépésként létre kell hoznunk a szabályokat, majd a szabályokat egy csoportba kell foglalni, végül létre kell hozni egy tűzfalat, majd hozzárendelni a szabálycsoporthoz és a virtuális router-hez. Szabályok létrehozásához válasszuk a „Firewall Rules” lehetőséget, majd az alábbi ábrán látható módon hozzunk létre egy minden befelé jövő forgalmat tiltó szabályt egy előre létrehozott virtuális gépre nézve, amely példánkban a 192.168.66.14 címet kapta.
 
  
[[File:Fwaas1.png|726px|Szabály létrehozása]]
+
Fontos, hogy egy korábbi tervezett leállításkor (ahol kézzel többször leállítottuk a már meglévő terheléselosztókat) a Health Manager sajnálatos módon nem tudta a többszöri leállítást és újraindítást (egymásra futva) megfelelően kezelni.
 +
Itt a karbantartás végén adminisztrátori beavatkozásra volt szükség, kézzel kellett failovert kérni minden terheléselosztóra.
 +
Erre a forgatókönyvre se számítunk üzemszerű használat mellett (maximum egy esetleges tervezett leálláskor, nem várt komolyabb hiba javításakor) de erre minden esetben nagy figyelmet fordítanak a karbantartást/javítást végző kollégák.
  
 +
'''Amennyiben beragadt/hibás terheléselosztót észlelnek, kérjük forduljanak ügyfélszolgálatunkhoz!'''
  
A szabály létrehozása után szükség van egy csoportrendszerre, amely a szabályokat fogja tartalmazni. Ehhez válasszuk a „Firewall Policies” lehetőséget, majd 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.
+
'''Terheléselosztó törlése:'''
[[File:Fwaas2.png|724px|Szabályrendszer létrehozása]]
 
  
[[File:Fwaas3.png|723px|Szabály hozzárendelés]]
+
Sajnálatos módon előfordulhat, hogy egy-egy terheléselosztó nem törölhető és hibaüzenet figyelmeztet erre. ('''CLI-n van rá force opció!''')
  
 +
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
  
A szabályok érvényre juttatásához szükség van egy tűzfal létrehozására, amelyhez hozzárendeljük a szabályrendszerünket és a virtuális átjárónkat. Ezt az alábbi módon hozzuk létre.
+
====FWaaS====
[[File:Fwaas4.png|728px|Tűzfal létrehozása]]
+
 
 +
Az FWaaS funkció jelenleg nem elérhető.
  
[[File:Fwaas5.png|728px|Router hozzárendelés tűzfalhoz]]
+
===Lemez típusok===
  
 +
{| class="wikitable" border="1" 
 +
|- 
 +
| Lemez típus
 +
| Sebesség
 +
| Méret
 +
| Technológia
 +
| Javasolt használat
 +
|- 
 +
| SDS-Nearline
 +
| +
 +
| +++
 +
| Skálázódó szoftveres tároló
 +
| Tömeges adattárolás, alacsony kihasználtságú VM lemeze.
 +
|-
 +
| SDS-SAS
 +
| ++
 +
| ++
 +
| Skálázódó szoftveres tároló
 +
| Általános célú adattárolás, változó adatok, normál kihasználtságú VM lemeze.
 +
|-
 +
| SAN-Nearline
 +
| +
 +
| +++
 +
| Klasszikus SAN storage
 +
| Tömeges adattárolás, alacsony kihasználtságú VM lemeze.
 +
|-
 +
| SAN-SAS
 +
| ++
 +
| ++
 +
| Klasszikus SAN storage
 +
| Általános célú adattárolás, változó adatok, normál kihasználtságú VM lemeze.
 +
|-
 +
| SAN-SSD
 +
| +++
 +
| +
 +
| Klasszikus SAN storage
 +
| Gyakran változó adatok, magas kihasználtságú VM lemeze.
 +
|-
 +
 +
|}
  
Ezzel elértük, hogy minden bejövő forgalmat eldobjon a tűzfalunk. Ha engedélyezni szeretnénk egy befelé irányuló kapcsolatot, példánkban az SSH protokollt, akkor első lépésben a már megismert módon hozzunk létre egy szabályt, de ezúttal engedélyezőt.
+
==Virtuális gép indítása==
[[File:Fwaas6.png|724px|További szabály létrehozá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 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.
  
A szabály létrehozása után hozzá kell adni a létező szabályrendszerhez. A szabályok értelmezése lineáris, tehát minél később található meg a listában egy adott szabály, a csomag annál később jut el odáig. Abban az esetben, ha a lista bármely szabálya illeszkedik az adott csomagra, az adott szabály függvényében a csomag eldobásra, vagy átengedésre kerül. Ennek értelmében a következő ábrán látható módon szúrjuk be a szabályrendszerbe a létrehozott szabályt.
+
[[File:Li1.png|726px|VM Name]]
[[File:Fwaas7.png|726px|Szabály beszúrása]]
 
  
====Virtuális gép indítása====
+
===Image választás===
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 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.
+
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:Launch1.png|726px|VM indítása]]
+
[[File:Li2.png|726px|VM Source]]
  
=====Kulcspár és security group társítása=====
+
===Flavor 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:launch2.png|726px|SecurityGroup kiválasztása]]
+
[[File:Li3.png|726px|VM Select flavor]]
  
=====Hálózat kiválasztása=====
+
===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.
 
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:launch3.png|726px|Hálózat kiválasztása]]
+
[[File:Li4.png|726px|VM 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.
 
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:Li7.png|726px|Létrehozott VM lista]]
[[File:launch4.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 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 1:1 NAT alkalmazásával 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 virtuális géphez hozzárendelünk egy publikus IP címet, majd a 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ő.
 
* 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=====
+
====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.
 
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” alatt található „Access & Security” 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.
+
Első lépésben válasszuk a „Project” alatt található „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:Allocate1.png|726px|Floating IP igénylése]]
+
[[File:Allocate_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.
 
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:Allocate2.png|726px|Rendelkezésre álló IP címek listája]]
+
[[File:Allocate_ip2.png|726px|Rendelkezésre álló IP címek listája]]
  
[[File:Allocate3.png|726px|Floating IP géphez rendelése]]
+
 
 +
[[File:Allocate_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.
 
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.
  
====Virtuális gépek kezelése====
+
===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===
  
=====Snapshot létrehozása/indítás snapshotból=====
+
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==
 +
 
 +
===Snapshot létrehozása/indítás snapshotból===
  
 
További lehetőség a létrehozott virtuális géppel kapcsolatban, hogy bármikor készíthetünk róla egy úgynevezett pillanatképet, amelyből később létrehozhatunk egy másik virtuális gépet, folytatva ott a munkát, ahol a pillanatkép készült, a régi gépet pedig leállíthatjuk, vagy törölhetjük. Ehhez a már ismert „Compute” menüpont alatt válasszuk a „Volume” lehetőséget. A kilistázott Volume-ok között válasszuk ki a megfelelőt, majd az „Actions” szekcióban található legördülő menüből válasszuk a „Create Snapshot” lehetőséget. Az ábrán látható módon adjunk neki egy nevet, majd készítsük el a pillanatképet.
 
További lehetőség a létrehozott virtuális géppel kapcsolatban, hogy bármikor készíthetünk róla egy úgynevezett pillanatképet, amelyből később létrehozhatunk egy másik virtuális gépet, folytatva ott a munkát, ahol a pillanatkép készült, a régi gépet pedig leállíthatjuk, vagy törölhetjük. Ehhez a már ismert „Compute” menüpont alatt válasszuk a „Volume” lehetőséget. A kilistázott Volume-ok között válasszuk ki a megfelelőt, majd az „Actions” szekcióban található legördülő menüből válasszuk a „Create Snapshot” lehetőséget. Az ábrán látható módon adjunk neki egy nevet, majd készítsük el a pillanatképet.
214. sor: 358. sor:
  
 
[[File:Create_snapshot2.png|724px|Snapshot létrehozás]]
 
[[File:Create_snapshot2.png|724px|Snapshot létrehozás]]
 +
 +
==="Extrém" diszkigény kielégítése===
 +
 +
Előfordul, hogy valamilyen projekthez nagyobb (TB-os nagyságrendű) területre van szükség, mint amit a kvóta megenged. Habár a kvóta növelésével könnyen orvosolhatnánk egyes felhasználók helyigényét, ezt sajnos <big>nem áll módunkban</big> megtenni, ugyanis azzal felborulna a kiosztott erőforrások közötti egyensúly (nem lenne terület, ahonnan bootoljanak az új gépek, a CPU/RAM pedig kihasználatlan maradna) valamint bizonyos szolgáltatások (jellemzően az adatbázis-szerverek) számára nem előnyös a CEPH alapú háttértár.
 +
 +
A fenti probléma megoldására lehetőséget teremtettünk a Storage szolgáltatásunkban résztvevő egyik Eternus tárolóeszköz integrálására a C4E alá. Ez azt jelenti, hogy a C4E rendszerében konfigurálásra került egy "iSCSI1" és "iSCSI2" nevű hálózat, melynek használatával közvetlen Layer2 kapcsolattal éri el az Eternus egységet a felhasználó virtuális számítógépe, szemben a többi tárolónkkal, amihez a publikus hálózaton keresztül (route-olva) lehet hozzáférni.
 +
 +
'''<big>FONTOS!''' Az "iSCSI1" és "iSCSI2" hálózat '''NEM nyújt publikus elérést''', azon keresztül '''csak az iSCSI targetek''' elérése lehetséges!</big>
 +
 +
 +
'''<big>FONTOS! A fenti tároló nem önkiszolgáló! ''' A használathoz előbb '''[https://webform.niif.hu/content/storage-igenyles ''területigénylést kell benyújtani'']''', ahol be kell jelölni a ''' "A terület(ek)re a C4E szolgáltatás keretében használt virtuális gépe(i)mről kívánok csatlakozni!"''' opciót a második oldalon, majd a '''pozitív elbírálás után''' a megadott paraméterekkel lehet csatlakozni a tárolóhoz!</big>
 +
 +
 +
 +
==== Csatlakozás Linux alapú operációs rendszer alól ====
 +
 +
 +
===== Óvintézkedés! =====
 +
 +
Sajnos az iSCSI jelenléte boot időben előfordul, hogy a virtuális gépet megállítja a boot során. Ez alapból nem lenne probléma, viszont a sablon image-ek alapértelmezetten egy read only konzolra küldik az emergency shell kimenetét, amin nem lehet módosításokat végezni.
 +
 +
<big>'''FONTOS!''' Az esetleges konfigurációs hibákból adódó hibás virtuális gépek javításában '''NEM tudunk''' segíteni, az esetleges adatvesztésért felelősséget nem vállalunk!</big>
 +
 +
A fentiekből kifolyólag célszerű átállítani az extlinux rendszerbetöltőt az iSCSI-t használó gépeken az alábbiak szerint:
 +
 +
* Az eredeti állomány:
 +
<pre>
 +
debian@iscsiteszt-5:~$ cat /extlinux.conf
 +
default linux
 +
timeout 1
 +
label linux
 +
kernel boot/vmlinuz-3.16.0-4-amd64
 +
append initrd=boot/initrd.img-3.16.0-4-amd64 root=/dev/vda1 console=tty0 console=ttyS0,115200 ro quiet
 +
</pre>
 +
 +
* Átírás után (az utolsó sor végén '''helyet cserél''' a két console paraméter, és a '''tty0-ból tty1 lesz'''):
 +
 +
<pre>
 +
debian@iscsiteszt-5:~$ cat /extlinux.conf
 +
default linux
 +
timeout 1
 +
label linux
 +
kernel boot/vmlinuz-3.16.0-4-amd64
 +
append initrd=boot/initrd.img-3.16.0-4-amd64 root=/dev/vda1 console=ttyS0,115200 console=tty1 ro quiet
 +
</pre>
 +
 +
Ezen módosítás azonban több ismert hátránnyal jár:
 +
 +
* Nem lesz elérhető a boot során keletkező read-only konzolkimenet (bootidőben persze látszik a VNC konzolon)
 +
* Firefox és Chrome újabb verziói alatt problémák lehetnek a VNC konzol elérésével/válaszidejével (ez sajnos egy fejlesztők által ismert, de még nem javított hiba)
 +
 +
===== Előkészületek =====
 +
* Konfigurálni kell az interfészeket
 +
Ez az Debian base image-nél alapból konfigurálva van az alábbi módon:
 +
<pre>
 +
root@iscsiteszt:/home/debian# cat /etc/network/interfaces 
 +
# This file describes the network interfaces available on your system 
 +
# and how to activate them. For more information, see interfaces(5).   
 +
# The loopback network interface  auto lo  iface lo inet loopback 
 +
 +
# The normal eth0 
 +
auto eth0 
 +
iface eth0 inet dhcp   
 +
 +
# Maybe the VM has 2 NICs? 
 +
allow-hotplug eth1 
 +
iface eth1 inet dhcp   
 +
 +
# Maybe the VM has 3 NICs? 
 +
allow-hotplug eth2 
 +
iface eth2 inet dhcp
 +
</pre>
 +
 +
Ennek hatására az eth1 és eth2 interfész címei:
 +
<pre>
 +
root@iscsiteszt:/home/debian# ip a
 +
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
 +
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
 +
    inet 127.0.0.1/8 scope host lo
 +
      valid_lft forever preferred_lft forever
 +
    inet6 ::1/128 scope host
 +
      valid_lft forever preferred_lft forever
 +
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 +
    link/ether fa:16:3e:f0:84:6d brd ff:ff:ff:ff:ff:ff
 +
    inet 193.224.22.182/24 brd 193.224.22.255 scope global eth0
 +
      valid_lft forever preferred_lft forever
 +
    inet6 fe80::f816:3eff:fef0:846d/64 scope link
 +
      valid_lft forever preferred_lft forever
 +
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 +
    link/ether fa:16:3e:17:05:1e brd ff:ff:ff:ff:ff:ff
 +
    inet 192.168.168.53/23 brd 192.168.169.255 scope global eth1
 +
      valid_lft forever preferred_lft forever
 +
    inet6 fe80::f816:3eff:fe17:51e/64 scope link
 +
      valid_lft forever preferred_lft forever
 +
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
 +
    link/ether fa:16:3e:f1:ba:0a brd ff:ff:ff:ff:ff:ff
 +
    inet 192.168.170.51/23 brd 192.168.171.255 scope global eth2
 +
      valid_lft forever preferred_lft forever
 +
    inet6 fe80::f816:3eff:fef1:ba0a/64 scope link
 +
      valid_lft forever preferred_lft forever
 +
</pre>
 +
 +
'''<big>FONTOS!''' Ezen interfészek akár statikus címhasználatra is konfigurálhatók, de a C4E biztonsági megoldásai miatt kizárólag '''a C4E felületén megjelenő IP címek''' esetén lesz képes csomagot forgalmazni a virtuális gép a tároló felé! </big>
 +
 +
* Csomagtelepítés (Debian alapú rendszeren)
 +
<pre>apt-get install open-iscsi multipath-tools</pre>
 +
 +
* Multipath konfigurálása (Debian alatt létre kell hozni a fájlt)
 +
<pre>
 +
root@iscsiteszt:/home/debian# cat /etc/multipath.conf
 +
devices {
 +
        device {
 +
                vendor                  "FUJITSU"
 +
                product                "ETERNUS_DXL"
 +
                prio                    alua
 +
                path_grouping_policy    group_by_prio
 +
                no_path_retry          queue
 +
                failback                immediate
 +
        }
 +
}
 +
</pre>
 +
 +
* Multipath daemon újraindítása
 +
<pre>root@iscsiteszt:/home/debian# service multipath-tools restart</pre>
 +
 +
* iSCSI Initiator name konfigurálása (ezt meg kellett adni az igényléskor... természetesen most lehet módosítani az állományt, később viszont fontos az ott olvasható figyelmeztetés)
 +
<pre>
 +
root@iscsiteszt:/home/debian# cat /etc/iscsi/initiatorname.iscsi
 +
## DO NOT EDIT OR REMOVE THIS FILE!
 +
## If you remove this file, the iSCSI daemon will not start.
 +
## If you change the InitiatorName, existing access control lists
 +
## may reject this initiator.  The InitiatorName must be unique
 +
## for each iSCSI initiator.  Do NOT duplicate iSCSI InitiatorNames.
 +
InitiatorName=iqn.2017-03.hu.niif.test:c4e
 +
</pre>
 +
 +
* iSCSI daemon újraindítása
 +
<pre>root@iscsiteszt:/home/debian# service open-iscsi restart</pre>
 +
 +
 +
===== Targetek konfigurálása =====
 +
 +
====== The easy way ======
 +
Egy letölthető bash szkript, ami megcsinál mindent: '''[[:File:Iscsi-site-admin-c4e.sh|iscsi-site-admin-c4e.sh]]'''
 +
 +
====== The hard way ======
 +
 +
A következő lépés az iSCSI targetekhez történő csatlakozás. (A leírásban az username és password paraméterek a felhasználót (initiatort, azaz a virtuális gépet) azonosító egyedi paraméterek, míg az username_in és password_in a Mutual CHAP (bidirectional) azonosításhoz használható (target-et, azaz magát az Eternus tárolót azonosító) paraméterek. (Az username_in, azaz a <target CHAP felhasználó> tipikusan "eternus"...)
 +
 +
Az alábbi parancsköteg jelszavait kell megfelelően lecserélni, majd a konzolra bemásolva csatlakozni a tárolóhoz:
 +
 +
<big>--- Target 001 ---</big>
 +
<pre>
 +
iscsiadm -m node -p 192.168.168.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca0-host1 -o new
 +
iscsiadm -m node -p 192.168.168.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca0-host1 -o update -n node.session.auth.username -v <initiator CHAP felhasználó>
 +
iscsiadm -m node -P 192.168.168.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca0-host1 -o update -n node.session.auth.password -v <initiator CHAP jelszó>
 +
iscsiadm -m node -p 192.168.168.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca0-host1 -o update -n node.session.auth.username_in -v <target CHAP felhasználó>
 +
iscsiadm -m node -P 192.168.168.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca0-host1 -o update -n node.session.auth.password_in -v <target CHAP jelszó>
 +
iscsiadm -m node -P 192.168.168.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca0-host1 -l
 +
 +
iscsiadm -m node -P 192.168.168.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca0-host1 --op update -n node.startup -v automatic
 +
</pre>
 +
 +
<big>--- Target 011 ---</big>
 +
<pre>
 +
iscsiadm -m node -p 192.168.170.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca1-host1 -o new
 +
iscsiadm -m node -p 192.168.170.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca1-host1 -o update -n node.session.auth.username -v <initiator CHAP felhasználó>
 +
iscsiadm -m node -P 192.168.170.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca1-host1 -o update -n node.session.auth.password -v <initiator CHAP jelszó>
 +
iscsiadm -m node -p 192.168.170.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca1-host1 -o update -n node.session.auth.username_in -v <target CHAP felhasználó>
 +
iscsiadm -m node -P 192.168.170.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca1-host1 -o update -n node.session.auth.password_in -v <target CHAP jelszó>
 +
iscsiadm -m node -P 192.168.170.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca1-host1 -l
 +
 +
iscsiadm -m node -P 192.168.170.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca1-host1 --op update -n node.startup -v automatic
 +
</pre>
 +
 +
<big>--- Target 101 ---</big>
 +
<pre>
 +
iscsiadm -m node -p 192.168.168.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca0-host1 -o new
 +
iscsiadm -m node -p 192.168.168.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca0-host1 -o update -n node.session.auth.username -v <initiator CHAP felhasználó>
 +
iscsiadm -m node -P 192.168.168.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca0-host1 -o update -n node.session.auth.password -v <initiator CHAP jelszó>
 +
iscsiadm -m node -p 192.168.168.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca0-host1 -o update -n node.session.auth.username_in -v <target CHAP felhasználó>
 +
iscsiadm -m node -P 192.168.168.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca0-host1 -o update -n node.session.auth.password_in -v <target CHAP jelszó>
 +
iscsiadm -m node -P 192.168.168.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca0-host1 -l
 +
 +
iscsiadm -m node -P 192.168.168.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca0-host1 --op update -n node.startup -v automatic
 +
</pre>
 +
 +
<big>--- Target 111 ---</big>
 +
<pre>
 +
iscsiadm -m node -p 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 -o new
 +
iscsiadm -m node -p 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 -o update -n node.session.auth.username -v <initiator CHAP felhasználó>
 +
iscsiadm -m node -P 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 -o update -n node.session.auth.password -v <initiator CHAP jelszó>
 +
iscsiadm -m node -p 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 -o update -n node.session.auth.username_in -v <target CHAP felhasználó>
 +
iscsiadm -m node -P 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 -o update -n node.session.auth.password_in -v <target CHAP jelszó>
 +
iscsiadm -m node -P 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 -l
 +
 +
iscsiadm -m node -P 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 --op update -n node.startup -v automatic
 +
</pre>
 +
 +
Az egyes csoportok beillesztése után (konkrétan a csoportok utolsó előtti parancsa miatt) minden targetre be kell jelentkezzen, és az alábbihoz hasonló üzeneteknek kell megjelenni:
 +
<pre>
 +
root@iscsiteszt-5:/home/debian# iscsiadm -m node -P 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 -l
 +
Logging in to [iface: default, target: iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1, portal: 192.168.170.2,3260] (multiple)
 +
Login to [iface: default, target: iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1, portal: 192.168.170.2,3260] successful.
 +
</pre>
 +
 +
Miután mind a négy targetre sikerült a bejelentkezés, már csak a multipath ellenőrzése van hátra, ahol a lentihez hasonló kimenetnek kell megjelenjen:
 +
<pre>
 +
root@iscsiteszt-5:/home/debian# multipath -ll
 +
3600000e00d280000002825d2001a0000 dm-0 FUJITSU,ETERNUS_DXL
 +
size=200G features='1 queue_if_no_path' hwhandler='0' wp=rw
 +
|-+- policy='service-time 0' prio=50 status=active
 +
| |- 3:0:0:0 sdd 8:48  active ready running
 +
| `- 5:0:0:0 sdb 8:16  active ready running
 +
`-+- policy='service-time 0' prio=10 status=enabled
 +
  |- 2:0:0:0 sda 8:0  active ready running
 +
  `- 4:0:0:0 sdc 8:32  active ready running
 +
</pre>
 +
 +
Itt jól látszik, hogy mind a négy útvonal ép, és az első kettő az aktív, a másik kettő pedig bármikor rendelkezésre áll. Amennyiben a path-ok nem jelennének meg, az alábbi parancs segítségével újratölthető a devmap:
 +
multipath -r
 +
 +
===== Szépészeti beavatkozások =====
 +
 +
Az iSCSI un. WWID-ket használ (ami a <code>multipath -ll</code> kimenetében jól látszik) az egyes területek azonosítására, ami sajnos olvashatatlan, és körülményes tud lenni. Az egyszerűbb megnevezések érdekében lehetőség van a korábban szerkesztett <code>multipath.conf</code> állomány bővítésére az alábbi módon (a teljes állomány látható, a fent található Eternus releváns konfigurációval együtt):
 +
 +
<pre>
 +
root@iscsiteszt-5:/home/debian# cat /etc/multipath.conf
 +
devices {
 +
        device {
 +
                vendor                  "FUJITSU"
 +
                product                "ETERNUS_DXL"
 +
                prio                    alua
 +
                path_grouping_policy    group_by_prio
 +
                no_path_retry          queue
 +
                failback                immediate
 +
        }
 +
}
 +
multipaths {
 +
        multipath {
 +
                wwid 3600000e00d280000002825d2001a0000
 +
                alias terulet1
 +
        }
 +
        multipath {
 +
                wwid 3600000e00d280000002825d2001b0000
 +
                alias terulet2
 +
        }
 +
}
 +
 +
</pre>
 +
 +
Ha kész az átnevezés (és persze nincsenek a területek csatolva sehol), újra kell olvastatni a devmapot (esetleg újra kell indítani a szervert):
 +
multipath -r
 +
 +
<pre>
 +
root@iscsiteszt-5:/home/debian# multipath -r
 +
Mar 23 11:13:37 | 3600000e00d280000002825d2001a0000: rename 3600000e00d280000002825d2001a0000 to terulet1
 +
rename: terulet1 (3600000e00d280000002825d2001a0000) undef FUJITSU,ETERNUS_DXL
 +
size=200G features='1 queue_if_no_path' hwhandler='0' wp=undef
 +
|-+- policy='service-time 0' prio=50 status=undef
 +
| |- 3:0:0:0 sdd 8:48  active ready running
 +
| `- 5:0:0:0 sdb 8:16  active ready running
 +
`-+- policy='service-time 0' prio=10 status=undef
 +
  |- 4:0:0:0 sdc 8:32  active ready running
 +
  `- 6:0:0:0 sda 8:0  active ready running
 +
Mar 23 11:13:37 | 3600000e00d280000002825d2001b0000: rename 3600000e00d280000002825d2001b0000 to terulet2
 +
rename: terulet2 (3600000e00d280000002825d2001b0000) undef FUJITSU,ETERNUS_DXL
 +
size=200G features='1 queue_if_no_path' hwhandler='0' wp=undef
 +
|-+- policy='service-time 0' prio=50 status=undef
 +
| |- 4:0:0:1 sdg 8:96  active ready running
 +
| `- 6:0:0:1 sdf 8:80  active ready running
 +
`-+- policy='service-time 0' prio=10 status=undef
 +
  |- 3:0:0:1 sdh 8:112 active ready running
 +
  `- 5:0:0:1 sde 8:64  active ready running
 +
</pre>
 +
 +
==== Csatlakozás Windows alapú operációs rendszer alól (hamarosan) ====
 +
 +
===== Előkészületek =====
 +
 +
A gépet természetesen hozzá kell adni a megfelelő "Eternus7 - iSCSI1" és "Eternus7 - iSCSI2" hálózatokhoz.
 +
 +
Sajnos a Windows Multipath rendszere nem képes korrektül kezelni az Eternus tárolókat, ezért első lépésként fel kell telepíteni a Fujitsu Eternus MultiPath Drivert (EMPD)
 +
A cikk írásakor ez a V2.0L23-as (2016/12/21) verziója, amit az alábbi módon lehet letölteni:
 +
 +
# http://www.fujitsu.com/fts/support/
 +
# táblázatban katt: Storage
 +
# "Ask Fujitsu! We are here to help" ablakban a "Please select the product group"-nál "ETERNUS DX" kiválasztása
 +
# "Please select the product family"-nél "ETERNUS DX200 S3" kiválasztása
 +
# A megjelenő oldalon a megfelelő Windows verzió kiválasztása
 +
# Driver fül alatt "Device Driver"-t nyissuk ki egy kattintással
 +
# legfrissebb elérhető driver ("EMPD - Multipath Driver for Windows ...") letöltése "Direct download"-ra kattintással
 +
#*("I have read and agree to the terms and conditions." checkbox bepipálásával elfogadva a felhasználási feltételeket)
 +
# Az állomány egy exe, ami kicsomagol egy mappát, amiben lesz egy iso állomány.
 +
# Az iso-t csatolva az English/setup.exe lesz az, amit fel kell telepíteni a többutas tároló megfelelő működéséhez.
 +
 +
===== Initiator konfigurálása =====
 +
 +
# A "Felügyeleti eszközök" közül az "iSCSI-kezdeményező" / "iSCSI-Initiator" -t kell választani
 +
# 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>
 +
 +
== C4E (Openstack) Publikus API ==
 +
 +
<big> '''FONTOS!''' </big> Az API külvilági elérését csomagszűrő tűzfal védi, és kizárólag az általunk ismert magyarországi IP(v4/v6) címekről érhető el.
 +
Akkor, ha timeout hiba merülne fel, a cloud@niif.hu címen kell jelezni az elérés igényét, és a kérdéses IP címet.
 +
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 (Rocky) verziójához készült!
 +
 +
 +
=== Kezdő lépések: jelszó szerzése ===
 +
 +
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:
 +
 +
* Meg kell nyitni a: https://keystone.c4e.niif.hu/regsite/apipwgen oldalt.
 +
* Új jelszó beállítását kérni.
 +
* A kapott jelszót felírni.
 +
* Ajánlott a kapott jelszót utólag a webfelületen (vagy CLI-bő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:
 +
 +
Ubuntu 18.04 (ajánlott)
 +
<pre>
 +
add-apt-repository cloud-archive:rocky
 +
apt-get update
 +
apt-get install python-openstackclient
 +
</pre>
 +
 +
Debian Buster:
 +
<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
 +
</pre>
 +
 +
Telepítés SNAP-ből:
 +
<pre>
 +
sudo snap install openstackclients --classic
 +
</pre>
 +
 +
Második körben be kell szerezni a szükséges <big>'''openrc'''</big> file-t az api eléréséhez:
 +
* Be kell jelentkezni a C4E-be (IdP-n keresztül természetesen)
 +
* Ki kell választani az elérni kívánt projektet, ha több lenne (az rc file-ok projektfüggők!)
 +
* 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
 +
 +
<pre>
 +
debian@apitest:~$ source cloudadmin_v3.rc
 +
Please enter your OpenStack Password:
 +
 +
debian@apitest:~$ openstack server list
 +
+--------------------------------------+-----------------+--------+----------------------------------------------------------------------------------+
 +
| ID                                  | Name            | Status | Networks                                                                        |
 +
+--------------------------------------+-----------------+--------+----------------------------------------------------------------------------------+
 +
| 3ac59936-cdae-4822-9855-60fabeff135f | apitest        | ACTIVE | Flat1=2001:738:0:519:f816:3eff:fedd:d5e8, 193.224.22.225                        ||
 +
+--------------------------------------+-----------------+--------+----------------------------------------------------------------------------------+
 +
debian@apitest:~$
 +
</pre>
 +
 +
=== API használata ===
 +
 +
Az API használatával kapcsolatban a mindenkori Openstack dokumentáció a mérvadó: https://developer.openstack.org/api-guide/quick-start/api-quick-start.html#
 +
 +
Ugyanezen oldalról egy (hálózat/ssh kulcs nélküli!) instance elindításának kezdő lépései: https://developer.openstack.org/api-guide/quick-start/api-quick-start.html#launch-an-instance
 +
 +
Az openstack parancs elérhető funkciói (ebből természetesen van, ami a felhasználó számára nem, illetve olyan is, ami nincs implementálva!):
 +
 +
Részlet az <big>'''openstack --help'''</big> kiementéből:
 +
 +
<pre>
 +
Commands:
 +
  access token create  Create access token command
 +
  aggregate add host  Add host to aggregate
 +
  aggregate create  Create a new aggregate
 +
  aggregate delete  Delete an existing aggregate
 +
  aggregate list  List all aggregates
 +
  aggregate remove host  Remove host from aggregate
 +
  aggregate set  Set aggregate properties
 +
  aggregate show  Show a specific aggregate
 +
  backup create  Create backup command
 +
  backup delete  Delete backup command
 +
  backup list    List backup command
 +
  backup restore  Restore backup command
 +
  backup show    Show backup command
 +
  complete      print bash completion command
 +
  compute agent create  Create compute agent command
 +
  compute agent delete  Delete compute agent command
 +
  compute agent list  List compute agent command
 +
  compute agent set  Set compute agent command
 +
  compute service list  List service command
 +
  compute service set  Set service command
 +
  console log show  Show console-log command
 +
  console url show  Show console-url command
 +
  consumer create  Create consumer command
 +
  consumer delete  Delete consumer command
 +
  consumer list  List consumer command
 +
  consumer set  Set consumer command
 +
  consumer show  Show consumer command
 +
  container list  List containers
 +
  container show  Show container information
 +
  credential create  Create credential command
 +
  credential delete  Delete credential command
 +
  credential list  List credential command
 +
  credential set  Set credential command
 +
  credential show  Show credential command
 +
  domain create  Create domain command
 +
  domain delete  Delete domain command
 +
  domain list    List domain command
 +
  domain set    Set domain command
 +
  domain show    Show domain command
 +
  endpoint create  Create endpoint command
 +
  endpoint delete  Delete endpoint command
 +
  endpoint list  List endpoint command
 +
  endpoint set  Set endpoint command
 +
  endpoint show  Show endpoint command
 +
  extension list  List extension command
 +
  flavor create  Create flavor command
 +
  flavor delete  Delete flavor command
 +
  flavor list    List flavor command
 +
  flavor show    Show flavor command
 +
  group add user  Add user to group
 +
  group contains user  Checks that user is in a specific group
 +
  group create  Create group command
 +
  group delete  Delete group command
 +
  group list    List groups
 +
  group remove user  Remove user to group
 +
  group set      Set group command
 +
  group show    Show group command
 +
  help          print detailed help for another command
 +
  host list      List host command
 +
  host show      Show host command
 +
  hypervisor list  List hypervisor command
 +
  hypervisor show  Show hypervisor command
 +
  identity provider create  Create identity_provider command
 +
  identity provider delete  Delete identity provider
 +
  identity provider list  List identity providers
 +
  identity provider set  Set identity provider
 +
  identity provider show  Show identity provider
 +
  image create  Create/upload an image
 +
  image delete  Delete an image
 +
  image list    List available images
 +
  image save    Save an image locally
 +
  image set      Change image properties
 +
  image show    Show image details
 +
  ip fixed add  Add fixed-ip command
 +
  ip fixed remove  Remove fixed-ip command
 +
  ip floating add  Add floating-ip command
 +
  ip floating create  Create floating-ip command
 +
  ip floating delete  Delete floating-ip command
 +
  ip floating list  List floating-ip command
 +
  ip floating pool list  List floating-ip-pool command
 +
  ip floating remove  Remove floating-ip command
 +
  keypair create  Create keypair command
 +
  keypair delete  Delete keypair command
 +
  keypair list  List keypair command
 +
  keypair show  Show keypair command
 +
  limits show    Show compute and volume limits
 +
  module list    List module versions
 +
  object list    List objects
 +
  object show    Show object information
 +
  policy create  Create policy command
 +
  policy delete  Delete policy command
 +
  policy list    List policy command
 +
  policy set    Set policy command
 +
  policy show    Show policy command
 +
  project create  Create new project
 +
  project delete  Delete project
 +
  project list  List projects
 +
  project set    Set project properties
 +
  project show  Show project command
 +
  project usage list  List resource usage per project.
 +
  quota set      Set quotas for project or class
 +
  quota show    Show quotas for project or class
 +
  request token authorize  Authorize request token command
 +
  request token create  Create request token command
 +
  role add      Adds a role to a user or group on a domain or project
 +
  role assignment list  Lists role assignments according to the given filters
 +
  role create    Create new role
 +
  role delete    Delete existing role
 +
  role list      List roles
 +
  role remove    Remove role command
 +
  role set      Set role command
 +
  role show      Show single role
 +
  security group create  Create a new security group
 +
  security group delete  Delete a security group
 +
  security group list  List all security groups
 +
  security group rule create  Create a new security group rule
 +
  security group rule delete  Delete a security group rule
 +
  security group rule list  List all security group rules
 +
  security group set  Set security group properties
 +
  security group show  Show a specific security group
 +
  server add security group  Add security group to server
 +
  server add volume  Add volume to server
 +
  server create  Create a new server
 +
  server delete  Delete server command
 +
  server image create  Create a new disk image from a running server
 +
  server list    List servers
 +
  server lock    Lock server
 +
  server migrate  Migrate server to different host
 +
  server pause  Pause server
 +
  server reboot  Perform a hard or soft server reboot
 +
  server rebuild  Rebuild server
 +
  server remove security group  Remove security group from server
 +
  server remove volume  Remove volume from server
 +
  server rescue  Put server in rescue mode
 +
  server resize  Convert server to a new flavor
 +
  server resume  Resume server
 +
  server set    Set server properties
 +
  server show    Show server details
 +
  server ssh    Ssh to server
 +
  server suspend  Suspend server
 +
  server unlock  Unlock server
 +
  server unpause  Unpause server
 +
  server unrescue  Restore server from rescue mode
 +
  server unset  Unset server properties
 +
  service create  Create new service
 +
  service delete  Delete service
 +
  service list  List services
 +
  service set    Set service properties
 +
  service show  Show service details
 +
  snapshot create  Create snapshot command
 +
  snapshot delete  Delete snapshot command
 +
  snapshot list  List snapshot command
 +
  snapshot set  Set snapshot command
 +
  snapshot show  Show snapshot command
 +
  token issue    Issue token command
 +
  user create    Create new user
 +
  user delete    Delete user
 +
  user list      List users
 +
  user set      Set user properties
 +
  user show      Show user details
 +
  volume create  Create new volume
 +
  volume delete  Delete volume
 +
  volume list    List volumes
 +
  volume set    Set volume properties
 +
  volume show    Show specific volume
 +
  volume type create  Create new volume type
 +
  volume type delete  Delete volume type
 +
  volume type list  List volume types
 +
  volume type set  Set volume type property
 +
  volume type unset  Unset volume type property
 +
  volume unset  Unset volume properties
 +
</pre>
 +
 +
Az egyes parancsok részletes leírását így lehet elérni:
 +
<pre>
 +
debian@apitest:~$ openstack help server list
 +
usage: openstack server list [-h] [-f {csv,table}] [-c COLUMN]
 +
                            [--max-width <integer>]
 +
                            [--quote {all,minimal,none,nonnumeric}]
 +
                            [--reservation-id <reservation-id>]
 +
                            [--ip <ip-address-regex>]
 +
                            [--ip6 <ip-address-regex>] [--name <name>]
 +
                            [--status <status>] [--flavor <flavor>]
 +
                            [--image <image>] [--host <hostname>]
 +
                            [--instance-name <server-name>] [--all-projects]
 +
                            [--long]
 +
 +
List servers
 +
 +
optional arguments:
 +
  -h, --help            show this help message and exit
 +
  --reservation-id <reservation-id>
 +
                        Only return instances that match the reservation
 +
  --ip <ip-address-regex>
 +
                        Regular expression to match IP addresses
 +
  --ip6 <ip-address-regex>
 +
                        Regular expression to match IPv6 addresses
 +
  --name <name>        Regular expression to match names
 +
  --status <status>    Search by server status
 +
  --flavor <flavor>    Search by flavor ID
 +
  --image <image>      Search by image ID
 +
  --host <hostname>    Search by hostname
 +
  --instance-name <server-name>
 +
                        Regular expression to match instance name (admin only)
 +
  --all-projects        Include all projects (admin only)
 +
  --long                List additional fields in output
 +
 +
output formatters:
 +
  output formatter options
 +
 +
  -f {csv,table}, --format {csv,table}
 +
                        the output format, defaults to table
 +
  -c COLUMN, --column COLUMN
 +
                        specify the column(s) to include, can be repeated
 +
 +
table formatter:
 +
  --max-width <integer>
 +
                        Maximum display width, 0 to disable
 +
 +
CSV Formatter:
 +
  --quote {all,minimal,none,nonnumeric}
 +
                        when to include quotes, defaults to nonnumeric
 +
 +
debian@apitest:~$
 +
</pre>
 +
 +
Amennyiben valamilyen problémába merül fel, célszerű a parancsot -v (-vv -vvv) kapcsolóval futtatni, és egy esetleges hibabejelentésnél a kimenetet csatolni.
  
 
==FAQ==
 
==FAQ==
221. sor: 981. sor:
  
 
===Nem tudom, hogy mi az azonosító és jelszó a példányosított image-emhez.===
 
===Nem tudom, hogy mi az azonosító és jelszó a példányosított image-emhez.===
Mert nem kötötted hozzá a publikus kulcsodat, amit előzőleg feltöltöttél az access & security key pairs fül alatt. Az SSH kulcsos azonosítással történik. A felhasználói nevek a Flavors táblázatban vannak feltüntetve.
+
Mert nem kötötted hozzá a publikus kulcsodat, amit előzőleg feltöltöttél az access & security key pairs fül alatt. Az SSH kulcsos azonosítással történik. A felhasználói nevek a [[C4E#Ig.C3.A9nyelhet.C5.91_virtu.C3.A1lis_er.C5.91forr.C3.A1s-csomagok_.28flavor.29|Flavors]] táblázatban vannak feltüntetve.
 +
 
 +
=== Nem tudok belépni a gépre távolról ===
 +
Az alapértelmezett tűzfalszabályok nem engedélyezik a kívülről jövő kapcsolatokat. Konfigurációjuk leírása a [[#Security_group-ok|Security group-ok]] szakaszban található.
 +
 
 +
=== Nem sikerült a csatlakozás a konzolra ===
 +
 
 +
A hibaüzenet: ''Failed to connect to server (code: 1006)''.
 +
Ilyenkor az F5 gomb megnyomása segít.
  
 
===Nem tudok a létrehozott VM konzolján gépelni===
 
===Nem tudok a létrehozott VM konzolján gépelni===
Ahhoz, hogy gépelni tudjunk, vagy grafikus felülettel rendelkező oprációs rendszer esetén az egérrel dolgozni, a konzol melletti szürke területre kell kattintani és NEM a konzol ablakába.
+
Ahhoz, hogy gépelni tudjunk, vagy grafikus felülettel rendelkező operációs rendszer esetén az egérrel dolgozni, a konzol melletti szürke területre kell kattintani és NEM a konzol ablakába.
 +
 
 +
===Baj van a DNS-el, <code>resolv.conf</code>-fal, stb.===
 +
A C4E networking stackje több irányból konfigurálja egy-egy VM DNS beállításait.
 +
 
 +
==== DHCP oldali beállítások ====
 +
Ahhoz, hogy a DHCP ne írja felül minduntalan a <code>resolv.conf</code> egyes sorait a következőt érdemes tenni:
 +
 
 +
A <code>/etc/dhcp/dhclient.conf</code> állományt értelemszerűen bővíteni kell az alábbi(ak közül szükséges) sorokkal:
 +
<pre>
 +
supersede domain-name "sajatdomain.hu";
 +
supersede domain-search "sajatdomain.hu";
 +
supersede domain-name-servers 8.8.8.8, 8.8.4.4;
 +
</pre>
 +
 
 +
==== Cloudinit oldali beállítások ====
 +
Minden C4E virtuális gépen megtalálható egy ún. "Cloudinit" szkriptrendszer, ami az egyes beállításokat (hostnév, diszknövelés, ssh kulcs, stb.) hivatott beállítani.
 +
Ahhoz, hogy a Cloudinit ne állítsa át a hostnevet, és a hosts állományt, az alábbi konfiguráció szükséges a <code>/etc/cloud/cloud.cfg</code> állományban:
 +
<pre>
 +
# This will cause the set+update hostname module to not operate (if true)
 +
preserve_hostname: true
 +
 
 +
manage_etc_hosts: false
 +
</pre>
 +
 
 +
 
 +
===IPv6 címre van szükségem, a felület szerint kapnom kéne, de mégsem===
 +
Ennek oka, hogy az adott Security Group nem "engedi be" az SLAAC-hoz szükséges hirdetési információkat. A tűzfal alábbiak szerinti bővítése, és egy virtuális gép reboot megoldja a problémát:
 +
 
 +
[[Fájl:ipv6_secgroup.png|665px|ICMPv6 Enable]]

A lap jelenlegi, 2022. november 30., 12:37-kori változata

Tartalomjegyzék

Hozzáférés

A szolgáltatás elérési helye https://c4e.niif.hu.


Karbantartások

A C4E szolgáltatást nyújtó gépekre az alábbi ütemezés szerint telepítjük a frissítéseket:

  • Minden hónap második hétfőjén nap közben (délelőtt 10 órától) megkezdődik a rendszer vezérlő gépeinek frissítése (Adatbázis, vezérlő gépek, terheléselosztó, hálózati node-ok)

A művelet során néhányszor 2-3 percre elérhetetlen lehet a webfelület, illetve a hálózati csomópontok újraindításának következtében néhányszor 1-2 percre a Smart hálózatok elérése akadozhat, amíg a tartalék irány működésbe nem lép.

  • Minden hónap második hétfőjén este egy második frissítési ciklust is tartunk az alábbiak szerint
    • Páratlan hónapokban a Compute gépeket frissítjük, ami azzal jár, hogy futó virtuális gépeket elmigráljuk a fizikai gépekről. A folyamat során néhányszor 1 percre a futó virtuális erőforrások elérhetetlenek lehetnek, illetve folyamatosan íródó memóriájú gépeknél előfordul, hogy csak a virtuális gép leállításával/elindításával lesz sikeres a migráció.
      • A több zónás működésnek köszönhetően, egyidőben csak egy zónába tartozó virtuális gépeket érintenek a fent említett esetleges rövid kimaradások, mivel a zónákhoz tartozó erőforrások frissítése külön történik!
    • Páros hónapokban a diszk alrendszert (CEPH) frissítjük. Ilyenkor a háttérben adatszinkronizáció zajlik, ami lassíthat egyes IO kéréseket, de a felhasználók felé ez a művelet eddigi tapasztalataink alapján többnyire transzparens.

Ismertető

OpenStack verzió: ROCKY

22 perces ismertető, ami az NWS 2016-on hangzott el. http://videotorium.hu/hu/recordings/details/13396,Cloud4Education_-_Kezdo_lepesek

Igényelhető virtuális erőforrás-csomagok (flavor)

A virtuális gépek létrehozásakor több féle "hardvercsomagból" választhatunk, amelyek az alábbi képen tekinthetők meg.

Flavors

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

Dashboard áttekintés

Dashboard

Bejelentkezés után a projekthez tartozó kvóta használtsága látható, ezen kvóták szabályozása admin felhasználóval tehető meg. A használtság áttekintésén felül lehetőség van arra, hogy a felhasználó lekérdezze egy adott periódus alatt használt vCPU, Disk és RAM mennyiségét, valamint ezek az információk letölthetők excel táblázat formájában is. A bal oldali menüstruktúra több részből tevődik össze, amelyből a két legfontosabb a Project fül alatt talákható „Compute” és a „Network” opció. A „Compute” menüpont alatt találhatók azok a funkciók, amelyek ahhoz szükségesek, hogy virtuális gépeket tudjunk igénybe venni és az ehhez tartozó adminisztratív teendőinket is itt tudjuk elvégezni. A „Network” menüpont alatt kezelhetjük a virtuális gépeinkhez szükséges hálózatokat. Itt hozhatunk létre például virtuális routereket, hálózatokat, valamint adminisztrálhatjuk őket. A következőkben bemutatásra kerül, hogyan tud egy felhasználó néhány kattintás segítségével egy lemezképfájlt feltölteni, majd a képfájlból virtuális gépet létrehozni, valamint a rendelkezésre álló funkciókat igénybe venni.

Új image feltöltés

A virtuális gép létrehozásához szükség van lemezképfájlra, amelyet egy működő http url-ről könnyedén letölthetünk a „Compute” menüpont alatt található „Images” lehetőség használatával, vagy használhatjuk az előre feltöltött image-eket, amelyeket az admin jogosultságú felhasználók biztosítanak számunkra. Az „images” lehetőséget választva látható a rendelkezésre álló lemezképfájlok listája. A jobb felső sarokban a „Create Image” lehetőséget választva készíthetünk lemezképet. Az alábbi példa egy Ubuntu 18.04 (Bionic) verziójú lemezkép letöltését szemlélteti.

Image készítés

A fenti ábrán látható módon, néhány szükséges információt meg kell adni, ilyenek például:

  • Név
  • Lemezképfájl helye: A feltölteni kívánt lemezképfájl internetes elérhetősége url-ről történő feltöltés esetén
  • Format: például QCOW2 – QEMU Emulator

Fontos: Kizárólag a saját projektek alá van jogosultsága a felhasználóknak lemezképfájlokat feltölteni!

Mindenki számára elérhető Image-ek* (Forrás: http://docs.openstack.org/image-guide/obtain-images.html)
Operációs Rendszer Bejelentkezési név Minimum diszk méret
Ubuntu 14.04 Trusty Tahr ubuntu 5 GB
Ubuntu 16.04 Xenial ubuntu 5 GB
CentOS 6 centos 8 GB
CentOS 7 centos 8 GB
Debian 8.3 debian 5 GB
CoreOS core 10GB
Fedora 23 fedora 5 GB
Windows 7 Pro SP1 setupuser/Qwer1234 17 GB
* Minden Linux alapú image-ből készített virtuális gépnél az alapértelmezett felhasználó jelszó nélkül sudo képes!

Kulcspár létrehozása/publikus kulcs feltöltése

A „Compute” menüpont alatt található "Key Pairs" lehetőséget választva hozzáadhatunk saját kulcspárokat, így a neutron szerverek által futtatott metadata szolgáltatás eljuttatja a publikus kulcsunkat a létrehozott virtuális gépre és a privát kulcsunkkal könnyedén tudunk autentikálni a létrehozott gépeken. Ehhez válasszuk a hozzáadás lehetőséget és adjuk meg a publikus kulcsunkat a következő ábrán látható módon.

EGYES CLOUD LEMEZKÉPFÁJLOK KIZÁRÓLAG KULCS HASZNÁLATÁVAL VEHETŐK IGÉNYBE!

Publikus kulcs importálása

Hálózati típusok

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.
    • 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!
  • 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.

Az Flat típusú hálózat felvételére kizárólag admin jogosultságú felhasználónak van lehetősége két féle módon. Az egyik lehetőség, hogy a létrehozott Flat hálózat shared típusú, vagyis megosztott hálózat, ami azt jelenti, hogy a hálózat minden projekt számára látható. A másik lehetőség, hogy a létrehozott hálózatot nem osztjuk meg másik projekttel, azonban hozzárendeljük egy bizonyos projekthez, ezzel garantálva, hogy egy IP cím tartományt csak egy projekt használ kizárólag.

Az Smart hálózat és egy hozzá tartozó virtuális router felvételét az alábbiakban mutatjuk be.

External (L3) hálózat létrehozása

Segédlet L3 (SMART) hálózat létrehozásához az alábbi oldalon tekinthető meg:

L3 hálózat létrehozása

Router létrehozása és Interfészek hozzáadása

A hálózat sikeres elkészítése után szükség van egy virtuális router létrehozására, amelyen keresztül fog a hálózati címfordítás történni. A router létrehozása a következő képeken látható

Router létrehozás


A Virtuális router létrehozásánál az „External Network”, azaz a külső hálózatok listájánál a rendelkezésre álló Smart hálózatok közül van lehetőség választani. Miután ez megtörtént, a router-hez szükség van egy másik interfész hozzáadására is, az előzőleg létrehozott belső hálózatból. Ennek hozzáadásához a „Routers” menüpontot választva, a forgalomirányítók listájából válasszuk ki az előbbiekben létrehozott „Internal-Router”-t, majd az „Interfaces” fülön az „Add Interface” lehetőséget választva, adjunk hozzá egy interfészt a következő ábrán látható módon.

Router létrehozás

Security group-ok

A virtuális gépek eléréséhez szükség van tűzfalszabályok definiálására, amelyre a „Security Groups” fülön van lehetőség. Alapértelmezetten egy „Default” security group jön létre, amelyben a következő forgalmak vannak alapértelmezetten engedélyezve:

  • Bejövő forgalom esetén: Kizárólag az azonos Security Group-ban elhelyezett virtuális gépekről érkező forgalmak
  • Kimenő forgalom esetén: Minden forgalom engedélyezve van

A lenti példa szemlélteti, hogy hogyan engedélyezhetjük az SSH és ICMP forgalmakat minden külső hálózatból:

Szabály létrehozása

Szabály létrehozása

Szabály létrehozása


Természetesen nem kötelező a Default security group-ot módosítani, létrehozható másik szabályrendszer is, és hozzárendelhető akár több csoport is egy virtuális géphez. A szabályok hozzáadásával lehetőség van a gép távoli elérésére a megadott protokollon keresztül.

LBaaS

A C4E az "OpenStack Octavia" alapú LoadBalancer-t kínálja a felhasználóknak, HAProxy backenddel. Az 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)

$ apt install python-barbicanclient python3-octaviaclient

Általános CLI használati információk

Rövid ismertető:

Octavia component overview

Az Octavia LBaaS rendszer az alábbi főbb komponensekből áll:

  • Amphorae: Különálló virtuális gépek, amik egy Ubuntu alapú Amphora image-ből példányosodnak, mikor a felhasználó új terheléselosztót hoz létre
    • A sablon image-ből létrehozott virtuális gépek nem számítanak bele a felhasználói kvótába, azok flavor-je specifikus, belépni rájuk a felhasználó nem tud
  • Octavia&Barbican API
  • Controller Worker (az API kérések alapján vezérli a háttérkomponenseket)
  • Health Manager (figyeli a már létrehozott "Amphorae" virtuális gépeket, és azok állapotát, hiba esetén failover műveleteket hajt végre)
  • Housekeeping Manager (a hibás/törölt maradványok eltávolításáért felel)
  • Driver Agent (információkat fogad az egyes amphora példányokon futó Haproxy drivertől)

A fentiek közül a felhasználónak csupán az API-val kell kommunikálnia, akár a Horizon felületén, akár a CLI-ből szeretné létrehozni és managelni a LoadBalancer-t.

Segédlet a létrehozáshoz példákkal illusztrálva:

  • Példa GUI igénybevételével
  • Példa CLI használatával

Működés/Hibatűrés:

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 gép újraindításán túl akár egy új amphorae virtuális gépet is létre tud hozni a háttérben, és a már meglévő konfigurációt alkalmazni rá. Arra azonban figyelni kell, hogy egy újraindítás, vagy egy új image létrehozása néhány perces kiesést jelenthet az adott projekthez tartozó terheléselosztó szolgáltatásban, de ilyenre alapvetően nem számítunk.

Fontos, hogy egy korábbi tervezett leállításkor (ahol kézzel többször leállítottuk a már meglévő terheléselosztókat) a Health Manager sajnálatos módon nem tudta a többszöri leállítást és újraindítást (egymásra futva) megfelelően kezelni. Itt a karbantartás végén adminisztrátori beavatkozásra volt szükség, kézzel kellett failovert kérni minden terheléselosztóra. Erre a forgatókönyvre se számítunk üzemszerű használat mellett (maximum egy esetleges tervezett leálláskor, nem várt komolyabb hiba javításakor) de erre minden esetben nagy figyelmet fordítanak a karbantartást/javítást végző kollégák.

Amennyiben beragadt/hibás terheléselosztót észlelnek, kérjük forduljanak ügyfélszolgálatunkhoz!

Terheléselosztó törlése:

Sajnálatos módon előfordulhat, hogy egy-egy terheléselosztó nem törölhető és hibaüzenet figyelmeztet erre. (CLI-n van rá force opció!)

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

FWaaS

Az FWaaS funkció jelenleg nem elérhető.

Lemez típusok

Lemez típus Sebesség Méret Technológia Javasolt használat
SDS-Nearline + +++ Skálázódó szoftveres tároló Tömeges adattárolás, alacsony kihasználtságú VM lemeze.
SDS-SAS ++ ++ Skálázódó szoftveres tároló Általános célú adattárolás, változó adatok, normál kihasználtságú VM lemeze.
SAN-Nearline + +++ Klasszikus SAN storage Tömeges adattárolás, alacsony kihasználtságú VM lemeze.
SAN-SAS ++ ++ Klasszikus SAN storage Általános célú adattárolás, változó adatok, normál kihasználtságú VM lemeze.
SAN-SSD +++ + Klasszikus SAN storage Gyakran változó adatok, magas kihasználtságú VM lemeze.

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

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.

VM Source

Flavor választás

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

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

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.

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.

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 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 „Project” alatt található „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.

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.

Rendelkezésre álló IP címek listája


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

aria2c https://s3.bigstack.co/downloads/cloud-image/win2022en-standard-minimal.vmdk

  • vmdk esetén szükség lehet egy konverzióra apt install qemu-utils

qemu-img convert -p -f vmdk -O qcow2 win2022en-standard-minimal.vmdk win2022en-standard-minimal.qcow2

  • fel kell tölteni az imaget:

openstack image create win2022en-standard-minimal--disk-format=qcow2 --progress --private --file /mnt/big/openstackimage/win2022en-standard-minimal.qcow2

  • létrehozni belőle a volumeot (itt ez hosszabb ideig eltarthat a volume méretétől függően):

openstack volume create --size 60 --availability-zone Zone1 --image win2022en-standard-minimal window22standardminimal

  • amin a volumet available státuszra vált:

openstack volume list | grep window22standardminimal

indíthatunk belőle vmet: openstack server create --flavor mem1.xlarge --network Flat1 --volume window22standardminimal --availability-zone Zone1 [handle]win22stdmin

  • 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

Snapshot létrehozása/indítás snapshotból

További lehetőség a létrehozott virtuális géppel kapcsolatban, hogy bármikor készíthetünk róla egy úgynevezett pillanatképet, amelyből később létrehozhatunk egy másik virtuális gépet, folytatva ott a munkát, ahol a pillanatkép készült, a régi gépet pedig leállíthatjuk, vagy törölhetjük. Ehhez a már ismert „Compute” menüpont alatt válasszuk a „Volume” lehetőséget. A kilistázott Volume-ok között válasszuk ki a megfelelőt, majd az „Actions” szekcióban található legördülő menüből válasszuk a „Create Snapshot” lehetőséget. Az ábrán látható módon adjunk neki egy nevet, majd készítsük el a pillanatképet.

Snapshot létrehozás


Az elkészült pillanatképből készítsünk egy újabb virtuális gépet, a már ismert módon, azzal a különbséggel, hogy a gépet ezúttal ne image-ből, hanem snapshot-ból indítsuk.

Snapshot létrehozás

"Extrém" diszkigény kielégítése

Előfordul, hogy valamilyen projekthez nagyobb (TB-os nagyságrendű) területre van szükség, mint amit a kvóta megenged. Habár a kvóta növelésével könnyen orvosolhatnánk egyes felhasználók helyigényét, ezt sajnos nem áll módunkban megtenni, ugyanis azzal felborulna a kiosztott erőforrások közötti egyensúly (nem lenne terület, ahonnan bootoljanak az új gépek, a CPU/RAM pedig kihasználatlan maradna) valamint bizonyos szolgáltatások (jellemzően az adatbázis-szerverek) számára nem előnyös a CEPH alapú háttértár.

A fenti probléma megoldására lehetőséget teremtettünk a Storage szolgáltatásunkban résztvevő egyik Eternus tárolóeszköz integrálására a C4E alá. Ez azt jelenti, hogy a C4E rendszerében konfigurálásra került egy "iSCSI1" és "iSCSI2" nevű hálózat, melynek használatával közvetlen Layer2 kapcsolattal éri el az Eternus egységet a felhasználó virtuális számítógépe, szemben a többi tárolónkkal, amihez a publikus hálózaton keresztül (route-olva) lehet hozzáférni.

FONTOS! Az "iSCSI1" és "iSCSI2" hálózat NEM nyújt publikus elérést, azon keresztül csak az iSCSI targetek elérése lehetséges!


FONTOS! A fenti tároló nem önkiszolgáló! A használathoz előbb területigénylést kell benyújtani, ahol be kell jelölni a "A terület(ek)re a C4E szolgáltatás keretében használt virtuális gépe(i)mről kívánok csatlakozni!" opciót a második oldalon, majd a pozitív elbírálás után a megadott paraméterekkel lehet csatlakozni a tárolóhoz!


Csatlakozás Linux alapú operációs rendszer alól

Óvintézkedés!

Sajnos az iSCSI jelenléte boot időben előfordul, hogy a virtuális gépet megállítja a boot során. Ez alapból nem lenne probléma, viszont a sablon image-ek alapértelmezetten egy read only konzolra küldik az emergency shell kimenetét, amin nem lehet módosításokat végezni.

FONTOS! Az esetleges konfigurációs hibákból adódó hibás virtuális gépek javításában NEM tudunk segíteni, az esetleges adatvesztésért felelősséget nem vállalunk!

A fentiekből kifolyólag célszerű átállítani az extlinux rendszerbetöltőt az iSCSI-t használó gépeken az alábbiak szerint:

  • Az eredeti állomány:
debian@iscsiteszt-5:~$ cat /extlinux.conf
default linux
timeout 1
label linux
kernel boot/vmlinuz-3.16.0-4-amd64
append initrd=boot/initrd.img-3.16.0-4-amd64 root=/dev/vda1 console=tty0 console=ttyS0,115200 ro quiet
  • Átírás után (az utolsó sor végén helyet cserél a két console paraméter, és a tty0-ból tty1 lesz):
debian@iscsiteszt-5:~$ cat /extlinux.conf
default linux
timeout 1
label linux
kernel boot/vmlinuz-3.16.0-4-amd64
append initrd=boot/initrd.img-3.16.0-4-amd64 root=/dev/vda1 console=ttyS0,115200 console=tty1 ro quiet

Ezen módosítás azonban több ismert hátránnyal jár:

  • Nem lesz elérhető a boot során keletkező read-only konzolkimenet (bootidőben persze látszik a VNC konzolon)
  • Firefox és Chrome újabb verziói alatt problémák lehetnek a VNC konzol elérésével/válaszidejével (ez sajnos egy fejlesztők által ismert, de még nem javított hiba)
Előkészületek
  • Konfigurálni kell az interfészeket

Ez az Debian base image-nél alapból konfigurálva van az alábbi módon:

root@iscsiteszt:/home/debian# cat /etc/network/interfaces  
# This file describes the network interfaces available on your system  
# and how to activate them. For more information, see interfaces(5).    
# The loopback network interface  auto lo  iface lo inet loopback   

# The normal eth0  
 auto eth0  
 iface eth0 inet dhcp    
 
# Maybe the VM has 2 NICs?  
 allow-hotplug eth1  
 iface eth1 inet dhcp    

# Maybe the VM has 3 NICs?  
 allow-hotplug eth2  
 iface eth2 inet dhcp

Ennek hatására az eth1 és eth2 interfész címei:

root@iscsiteszt:/home/debian# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:f0:84:6d brd ff:ff:ff:ff:ff:ff
    inet 193.224.22.182/24 brd 193.224.22.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fef0:846d/64 scope link
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:17:05:1e brd ff:ff:ff:ff:ff:ff
    inet 192.168.168.53/23 brd 192.168.169.255 scope global eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fe17:51e/64 scope link
       valid_lft forever preferred_lft forever
4: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether fa:16:3e:f1:ba:0a brd ff:ff:ff:ff:ff:ff
    inet 192.168.170.51/23 brd 192.168.171.255 scope global eth2
       valid_lft forever preferred_lft forever
    inet6 fe80::f816:3eff:fef1:ba0a/64 scope link
       valid_lft forever preferred_lft forever

FONTOS! Ezen interfészek akár statikus címhasználatra is konfigurálhatók, de a C4E biztonsági megoldásai miatt kizárólag a C4E felületén megjelenő IP címek esetén lesz képes csomagot forgalmazni a virtuális gép a tároló felé!

  • Csomagtelepítés (Debian alapú rendszeren)
apt-get install open-iscsi multipath-tools
  • Multipath konfigurálása (Debian alatt létre kell hozni a fájlt)
root@iscsiteszt:/home/debian# cat /etc/multipath.conf
devices {
        device {
                vendor                  "FUJITSU"
                product                 "ETERNUS_DXL"
                prio                    alua
                path_grouping_policy    group_by_prio
                no_path_retry           queue
                failback                immediate
        }
}
  • Multipath daemon újraindítása
root@iscsiteszt:/home/debian# service multipath-tools restart
  • iSCSI Initiator name konfigurálása (ezt meg kellett adni az igényléskor... természetesen most lehet módosítani az állományt, később viszont fontos az ott olvasható figyelmeztetés)
root@iscsiteszt:/home/debian# cat /etc/iscsi/initiatorname.iscsi
## DO NOT EDIT OR REMOVE THIS FILE!
## If you remove this file, the iSCSI daemon will not start.
## If you change the InitiatorName, existing access control lists
## may reject this initiator.  The InitiatorName must be unique
## for each iSCSI initiator.  Do NOT duplicate iSCSI InitiatorNames.
InitiatorName=iqn.2017-03.hu.niif.test:c4e
  • iSCSI daemon újraindítása
root@iscsiteszt:/home/debian# service open-iscsi restart


Targetek konfigurálása
The easy way

Egy letölthető bash szkript, ami megcsinál mindent: iscsi-site-admin-c4e.sh

The hard way

A következő lépés az iSCSI targetekhez történő csatlakozás. (A leírásban az username és password paraméterek a felhasználót (initiatort, azaz a virtuális gépet) azonosító egyedi paraméterek, míg az username_in és password_in a Mutual CHAP (bidirectional) azonosításhoz használható (target-et, azaz magát az Eternus tárolót azonosító) paraméterek. (Az username_in, azaz a <target CHAP felhasználó> tipikusan "eternus"...)

Az alábbi parancsköteg jelszavait kell megfelelően lecserélni, majd a konzolra bemásolva csatlakozni a tárolóhoz:

--- Target 001 ---

iscsiadm -m node -p 192.168.168.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca0-host1 -o new
iscsiadm -m node -p 192.168.168.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca0-host1 -o update -n node.session.auth.username -v <initiator CHAP felhasználó>
iscsiadm -m node -P 192.168.168.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca0-host1 -o update -n node.session.auth.password -v <initiator CHAP jelszó>
iscsiadm -m node -p 192.168.168.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca0-host1 -o update -n node.session.auth.username_in -v <target CHAP felhasználó>
iscsiadm -m node -P 192.168.168.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca0-host1 -o update -n node.session.auth.password_in -v <target CHAP jelszó>
iscsiadm -m node -P 192.168.168.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca0-host1 -l

iscsiadm -m node -P 192.168.168.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca0-host1 --op update -n node.startup -v automatic

--- Target 011 ---

iscsiadm -m node -p 192.168.170.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca1-host1 -o new
iscsiadm -m node -p 192.168.170.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca1-host1 -o update -n node.session.auth.username -v <initiator CHAP felhasználó>
iscsiadm -m node -P 192.168.170.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca1-host1 -o update -n node.session.auth.password -v <initiator CHAP jelszó>
iscsiadm -m node -p 192.168.170.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca1-host1 -o update -n node.session.auth.username_in -v <target CHAP felhasználó>
iscsiadm -m node -P 192.168.170.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca1-host1 -o update -n node.session.auth.password_in -v <target CHAP jelszó>
iscsiadm -m node -P 192.168.170.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca1-host1 -l

iscsiadm -m node -P 192.168.170.1 -T iqn.2000-01.hu.niif.c4e:eternus7:cm0-ca1-host1 --op update -n node.startup -v automatic

--- Target 101 ---

iscsiadm -m node -p 192.168.168.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca0-host1 -o new
iscsiadm -m node -p 192.168.168.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca0-host1 -o update -n node.session.auth.username -v <initiator CHAP felhasználó>
iscsiadm -m node -P 192.168.168.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca0-host1 -o update -n node.session.auth.password -v <initiator CHAP jelszó>
iscsiadm -m node -p 192.168.168.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca0-host1 -o update -n node.session.auth.username_in -v <target CHAP felhasználó>
iscsiadm -m node -P 192.168.168.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca0-host1 -o update -n node.session.auth.password_in -v <target CHAP jelszó>
iscsiadm -m node -P 192.168.168.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca0-host1 -l

iscsiadm -m node -P 192.168.168.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca0-host1 --op update -n node.startup -v automatic

--- Target 111 ---

iscsiadm -m node -p 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 -o new
iscsiadm -m node -p 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 -o update -n node.session.auth.username -v <initiator CHAP felhasználó>
iscsiadm -m node -P 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 -o update -n node.session.auth.password -v <initiator CHAP jelszó>
iscsiadm -m node -p 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 -o update -n node.session.auth.username_in -v <target CHAP felhasználó>
iscsiadm -m node -P 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 -o update -n node.session.auth.password_in -v <target CHAP jelszó>
iscsiadm -m node -P 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 -l

iscsiadm -m node -P 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 --op update -n node.startup -v automatic

Az egyes csoportok beillesztése után (konkrétan a csoportok utolsó előtti parancsa miatt) minden targetre be kell jelentkezzen, és az alábbihoz hasonló üzeneteknek kell megjelenni:

root@iscsiteszt-5:/home/debian# iscsiadm -m node -P 192.168.170.2 -T iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1 -l
Logging in to [iface: default, target: iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1, portal: 192.168.170.2,3260] (multiple)
Login to [iface: default, target: iqn.2000-01.hu.niif.c4e:eternus7:cm1-ca1-host1, portal: 192.168.170.2,3260] successful.

Miután mind a négy targetre sikerült a bejelentkezés, már csak a multipath ellenőrzése van hátra, ahol a lentihez hasonló kimenetnek kell megjelenjen:

root@iscsiteszt-5:/home/debian# multipath -ll
3600000e00d280000002825d2001a0000 dm-0 FUJITSU,ETERNUS_DXL
size=200G features='1 queue_if_no_path' hwhandler='0' wp=rw
|-+- policy='service-time 0' prio=50 status=active
| |- 3:0:0:0 sdd 8:48  active ready running
| `- 5:0:0:0 sdb 8:16  active ready running
`-+- policy='service-time 0' prio=10 status=enabled
  |- 2:0:0:0 sda 8:0   active ready running
  `- 4:0:0:0 sdc 8:32  active ready running

Itt jól látszik, hogy mind a négy útvonal ép, és az első kettő az aktív, a másik kettő pedig bármikor rendelkezésre áll. Amennyiben a path-ok nem jelennének meg, az alábbi parancs segítségével újratölthető a devmap:

multipath -r
Szépészeti beavatkozások

Az iSCSI un. WWID-ket használ (ami a multipath -ll kimenetében jól látszik) az egyes területek azonosítására, ami sajnos olvashatatlan, és körülményes tud lenni. Az egyszerűbb megnevezések érdekében lehetőség van a korábban szerkesztett multipath.conf állomány bővítésére az alábbi módon (a teljes állomány látható, a fent található Eternus releváns konfigurációval együtt):

root@iscsiteszt-5:/home/debian# cat /etc/multipath.conf
devices {
        device {
                vendor                  "FUJITSU"
                product                 "ETERNUS_DXL"
                prio                    alua
                path_grouping_policy    group_by_prio
                no_path_retry           queue
                failback                immediate
        }
}
multipaths {
        multipath {
                wwid 3600000e00d280000002825d2001a0000
                alias terulet1
        }
        multipath {
                wwid 3600000e00d280000002825d2001b0000
                alias terulet2
        }
}

Ha kész az átnevezés (és persze nincsenek a területek csatolva sehol), újra kell olvastatni a devmapot (esetleg újra kell indítani a szervert):

multipath -r
root@iscsiteszt-5:/home/debian# multipath -r
Mar 23 11:13:37 | 3600000e00d280000002825d2001a0000: rename 3600000e00d280000002825d2001a0000 to terulet1 
rename: terulet1 (3600000e00d280000002825d2001a0000) undef FUJITSU,ETERNUS_DXL
size=200G features='1 queue_if_no_path' hwhandler='0' wp=undef
|-+- policy='service-time 0' prio=50 status=undef
| |- 3:0:0:0 sdd 8:48  active ready running
| `- 5:0:0:0 sdb 8:16  active ready running
`-+- policy='service-time 0' prio=10 status=undef
  |- 4:0:0:0 sdc 8:32  active ready running
  `- 6:0:0:0 sda 8:0   active ready running
Mar 23 11:13:37 | 3600000e00d280000002825d2001b0000: rename 3600000e00d280000002825d2001b0000 to terulet2
rename: terulet2 (3600000e00d280000002825d2001b0000) undef FUJITSU,ETERNUS_DXL
size=200G features='1 queue_if_no_path' hwhandler='0' wp=undef
|-+- policy='service-time 0' prio=50 status=undef
| |- 4:0:0:1 sdg 8:96  active ready running
| `- 6:0:0:1 sdf 8:80  active ready running
`-+- policy='service-time 0' prio=10 status=undef
  |- 3:0:0:1 sdh 8:112 active ready running
  `- 5:0:0:1 sde 8:64  active ready running

Csatlakozás Windows alapú operációs rendszer alól (hamarosan)

Előkészületek

A gépet természetesen hozzá kell adni a megfelelő "Eternus7 - iSCSI1" és "Eternus7 - iSCSI2" hálózatokhoz.

Sajnos a Windows Multipath rendszere nem képes korrektül kezelni az Eternus tárolókat, ezért első lépésként fel kell telepíteni a Fujitsu Eternus MultiPath Drivert (EMPD) A cikk írásakor ez a V2.0L23-as (2016/12/21) verziója, amit az alábbi módon lehet letölteni:

  1. http://www.fujitsu.com/fts/support/
  2. táblázatban katt: Storage
  3. "Ask Fujitsu! We are here to help" ablakban a "Please select the product group"-nál "ETERNUS DX" kiválasztása
  4. "Please select the product family"-nél "ETERNUS DX200 S3" kiválasztása
  5. A megjelenő oldalon a megfelelő Windows verzió kiválasztása
  6. Driver fül alatt "Device Driver"-t nyissuk ki egy kattintással
  7. legfrissebb elérhető driver ("EMPD - Multipath Driver for Windows ...") letöltése "Direct download"-ra kattintással
    • ("I have read and agree to the terms and conditions." checkbox bepipálásával elfogadva a felhasználási feltételeket)
  8. Az állomány egy exe, ami kicsomagol egy mappát, amiben lesz egy iso állomány.
  9. Az iso-t csatolva az English/setup.exe lesz az, amit fel kell telepíteni a többutas tároló megfelelő működéséhez.
Initiator konfigurálása
  1. A "Felügyeleti eszközök" közül az "iSCSI-kezdeményező" / "iSCSI-Initiator" -t kell választani
  2. Igennel kell válaszolni, hogy automatikusan elinduljon az iSCSI a továbbiakban
  3. 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.

  1. A virtuális gépről először snapshot-ot kell készíteni
  2. Az elkészült snapshot-ból újra létre kell hozni egy volume-ot (virtuális gép nélkül)
  3. 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!)
  4. A létrejött image innentől letölthető a CLI-n keresztül:
     glance image-download --file $FILENAME $UUID
  5. A letöltött file-t például így kell feltölteni:
    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 

C4E (Openstack) Publikus API

FONTOS! Az API külvilági elérését csomagszűrő tűzfal védi, és kizárólag az általunk ismert magyarországi IP(v4/v6) címekről érhető el. Akkor, ha timeout hiba merülne fel, a cloud@niif.hu címen kell jelezni az elérés igényét, és a kérdéses IP címet. 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.

FONTOS! Minden itt leírt dokumentáció a C4E openstack jelenlegi (Rocky) verziójához készült!


Kezdő lépések: jelszó szerzése

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:

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:

Ubuntu 18.04 (ajánlott)

add-apt-repository cloud-archive:rocky
apt-get update
apt-get install python-openstackclient

Debian Buster:

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

Telepítés SNAP-ből:

sudo snap install openstackclients --classic

Második körben be kell szerezni a szükséges openrc file-t az api eléréséhez:

  • Be kell jelentkezni a C4E-be (IdP-n keresztül természetesen)
  • Ki kell választani az elérni kívánt projektet, ha több lenne (az rc file-ok projektfüggők!)
  • Az Access & Security -> API Access oldalon a Download OpenStack RC File v3 opciót választani
  • Az rc file-t a kezelő gépre juttatni (ha nem ott lenne)
  • Fel kell venni az rc file-ba az alábbi sort: export OS_VOLUME_API_VERSION=3
  • Az rc file-ban specifikálni kell 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

debian@apitest:~$ source cloudadmin_v3.rc
Please enter your OpenStack Password:

debian@apitest:~$ openstack server list
+--------------------------------------+-----------------+--------+----------------------------------------------------------------------------------+
| ID                                   | Name            | Status | Networks                                                                         |
+--------------------------------------+-----------------+--------+----------------------------------------------------------------------------------+
| 3ac59936-cdae-4822-9855-60fabeff135f | apitest         | ACTIVE | Flat1=2001:738:0:519:f816:3eff:fedd:d5e8, 193.224.22.225                         ||
+--------------------------------------+-----------------+--------+----------------------------------------------------------------------------------+
debian@apitest:~$

API használata

Az API használatával kapcsolatban a mindenkori Openstack dokumentáció a mérvadó: https://developer.openstack.org/api-guide/quick-start/api-quick-start.html#

Ugyanezen oldalról egy (hálózat/ssh kulcs nélküli!) instance elindításának kezdő lépései: https://developer.openstack.org/api-guide/quick-start/api-quick-start.html#launch-an-instance

Az openstack parancs elérhető funkciói (ebből természetesen van, ami a felhasználó számára nem, illetve olyan is, ami nincs implementálva!):

Részlet az openstack --help kiementéből:

Commands:
  access token create  Create access token command
  aggregate add host  Add host to aggregate
  aggregate create  Create a new aggregate
  aggregate delete  Delete an existing aggregate
  aggregate list  List all aggregates
  aggregate remove host  Remove host from aggregate
  aggregate set  Set aggregate properties
  aggregate show  Show a specific aggregate
  backup create  Create backup command
  backup delete  Delete backup command
  backup list    List backup command
  backup restore  Restore backup command
  backup show    Show backup command
  complete       print bash completion command
  compute agent create  Create compute agent command
  compute agent delete  Delete compute agent command
  compute agent list  List compute agent command
  compute agent set  Set compute agent command
  compute service list  List service command
  compute service set  Set service command
  console log show  Show console-log command
  console url show  Show console-url command
  consumer create  Create consumer command
  consumer delete  Delete consumer command
  consumer list  List consumer command
  consumer set   Set consumer command
  consumer show  Show consumer command
  container list  List containers
  container show  Show container information
  credential create  Create credential command
  credential delete  Delete credential command
  credential list  List credential command
  credential set  Set credential command
  credential show  Show credential command
  domain create  Create domain command
  domain delete  Delete domain command
  domain list    List domain command
  domain set     Set domain command
  domain show    Show domain command
  endpoint create  Create endpoint command
  endpoint delete  Delete endpoint command
  endpoint list  List endpoint command
  endpoint set   Set endpoint command
  endpoint show  Show endpoint command
  extension list  List extension command
  flavor create  Create flavor command
  flavor delete  Delete flavor command
  flavor list    List flavor command
  flavor show    Show flavor command
  group add user  Add user to group
  group contains user  Checks that user is in a specific group
  group create   Create group command
  group delete   Delete group command
  group list     List groups
  group remove user  Remove user to group
  group set      Set group command
  group show     Show group command
  help           print detailed help for another command
  host list      List host command
  host show      Show host command
  hypervisor list  List hypervisor command
  hypervisor show  Show hypervisor command
  identity provider create  Create identity_provider command
  identity provider delete  Delete identity provider
  identity provider list  List identity providers
  identity provider set  Set identity provider
  identity provider show  Show identity provider
  image create   Create/upload an image
  image delete   Delete an image
  image list     List available images
  image save     Save an image locally
  image set      Change image properties
  image show     Show image details
  ip fixed add   Add fixed-ip command
  ip fixed remove  Remove fixed-ip command
  ip floating add  Add floating-ip command
  ip floating create  Create floating-ip command
  ip floating delete  Delete floating-ip command
  ip floating list  List floating-ip command
  ip floating pool list  List floating-ip-pool command
  ip floating remove  Remove floating-ip command
  keypair create  Create keypair command
  keypair delete  Delete keypair command
  keypair list   List keypair command
  keypair show   Show keypair command
  limits show    Show compute and volume limits
  module list    List module versions
  object list    List objects
  object show    Show object information
  policy create  Create policy command
  policy delete  Delete policy command
  policy list    List policy command
  policy set     Set policy command
  policy show    Show policy command
  project create  Create new project
  project delete  Delete project
  project list   List projects
  project set    Set project properties
  project show   Show project command
  project usage list  List resource usage per project.
  quota set      Set quotas for project or class
  quota show     Show quotas for project or class
  request token authorize  Authorize request token command
  request token create  Create request token command
  role add       Adds a role to a user or group on a domain or project
  role assignment list  Lists role assignments according to the given filters
  role create    Create new role
  role delete    Delete existing role
  role list      List roles
  role remove    Remove role command
  role set       Set role command
  role show      Show single role
  security group create  Create a new security group
  security group delete  Delete a security group
  security group list  List all security groups
  security group rule create  Create a new security group rule
  security group rule delete  Delete a security group rule
  security group rule list  List all security group rules
  security group set  Set security group properties
  security group show  Show a specific security group
  server add security group  Add security group to server
  server add volume  Add volume to server
  server create  Create a new server
  server delete  Delete server command
  server image create  Create a new disk image from a running server
  server list    List servers
  server lock    Lock server
  server migrate  Migrate server to different host
  server pause   Pause server
  server reboot  Perform a hard or soft server reboot
  server rebuild  Rebuild server
  server remove security group  Remove security group from server
  server remove volume  Remove volume from server
  server rescue  Put server in rescue mode
  server resize  Convert server to a new flavor
  server resume  Resume server
  server set     Set server properties
  server show    Show server details
  server ssh     Ssh to server
  server suspend  Suspend server
  server unlock  Unlock server
  server unpause  Unpause server
  server unrescue  Restore server from rescue mode
  server unset   Unset server properties
  service create  Create new service
  service delete  Delete service
  service list   List services
  service set    Set service properties
  service show   Show service details
  snapshot create  Create snapshot command
  snapshot delete  Delete snapshot command
  snapshot list  List snapshot command
  snapshot set   Set snapshot command
  snapshot show  Show snapshot command
  token issue    Issue token command
  user create    Create new user
  user delete    Delete user
  user list      List users
  user set       Set user properties
  user show      Show user details
  volume create  Create new volume
  volume delete  Delete volume
  volume list    List volumes
  volume set     Set volume properties
  volume show    Show specific volume
  volume type create  Create new volume type
  volume type delete  Delete volume type
  volume type list  List volume types
  volume type set  Set volume type property
  volume type unset  Unset volume type property
  volume unset   Unset volume properties

Az egyes parancsok részletes leírását így lehet elérni:

debian@apitest:~$ openstack help server list
usage: openstack server list [-h] [-f {csv,table}] [-c COLUMN]
                             [--max-width <integer>]
                             [--quote {all,minimal,none,nonnumeric}]
                             [--reservation-id <reservation-id>]
                             [--ip <ip-address-regex>]
                             [--ip6 <ip-address-regex>] [--name <name>]
                             [--status <status>] [--flavor <flavor>]
                             [--image <image>] [--host <hostname>]
                             [--instance-name <server-name>] [--all-projects]
                             [--long]

List servers

optional arguments:
  -h, --help            show this help message and exit
  --reservation-id <reservation-id>
                        Only return instances that match the reservation
  --ip <ip-address-regex>
                        Regular expression to match IP addresses
  --ip6 <ip-address-regex>
                        Regular expression to match IPv6 addresses
  --name <name>         Regular expression to match names
  --status <status>     Search by server status
  --flavor <flavor>     Search by flavor ID
  --image <image>       Search by image ID
  --host <hostname>     Search by hostname
  --instance-name <server-name>
                        Regular expression to match instance name (admin only)
  --all-projects        Include all projects (admin only)
  --long                List additional fields in output

output formatters:
  output formatter options

  -f {csv,table}, --format {csv,table}
                        the output format, defaults to table
  -c COLUMN, --column COLUMN
                        specify the column(s) to include, can be repeated

table formatter:
  --max-width <integer>
                        Maximum display width, 0 to disable

CSV Formatter:
  --quote {all,minimal,none,nonnumeric}
                        when to include quotes, defaults to nonnumeric

debian@apitest:~$

Amennyiben valamilyen problémába merül fel, célszerű a parancsot -v (-vv -vvv) kapcsolóval futtatni, és egy esetleges hibabejelentésnél a kimenetet csatolni.

FAQ

Nem sikerült az image létrehozása a webfelületen

Valószínűleg bejelölted a "Public" lehetőséget, amelyhez a felhasználóknak nincs jogosultságuk. Erre csak admin jogosultságú felhasználó képes.

Nem tudom, hogy mi az azonosító és jelszó a példányosított image-emhez.

Mert nem kötötted hozzá a publikus kulcsodat, amit előzőleg feltöltöttél az access & security key pairs fül alatt. Az SSH kulcsos azonosítással történik. A felhasználói nevek a Flavors táblázatban vannak feltüntetve.

Nem tudok belépni a gépre távolról

Az alapértelmezett tűzfalszabályok nem engedélyezik a kívülről jövő kapcsolatokat. Konfigurációjuk leírása a Security group-ok szakaszban található.

Nem sikerült a csatlakozás a konzolra

A hibaüzenet: Failed to connect to server (code: 1006). Ilyenkor az F5 gomb megnyomása segít.

Nem tudok a létrehozott VM konzolján gépelni

Ahhoz, hogy gépelni tudjunk, vagy grafikus felülettel rendelkező operációs rendszer esetén az egérrel dolgozni, a konzol melletti szürke területre kell kattintani és NEM a konzol ablakába.

Baj van a DNS-el, resolv.conf-fal, stb.

A C4E networking stackje több irányból konfigurálja egy-egy VM DNS beállításait.

DHCP oldali beállítások

Ahhoz, hogy a DHCP ne írja felül minduntalan a resolv.conf egyes sorait a következőt érdemes tenni:

A /etc/dhcp/dhclient.conf állományt értelemszerűen bővíteni kell az alábbi(ak közül szükséges) sorokkal:

supersede domain-name "sajatdomain.hu";
supersede domain-search "sajatdomain.hu";
supersede domain-name-servers 8.8.8.8, 8.8.4.4;

Cloudinit oldali beállítások

Minden C4E virtuális gépen megtalálható egy ún. "Cloudinit" szkriptrendszer, ami az egyes beállításokat (hostnév, diszknövelés, ssh kulcs, stb.) hivatott beállítani. Ahhoz, hogy a Cloudinit ne állítsa át a hostnevet, és a hosts állományt, az alábbi konfiguráció szükséges a /etc/cloud/cloud.cfg állományban:

# This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true

manage_etc_hosts: false


IPv6 címre van szükségem, a felület szerint kapnom kéne, de mégsem

Ennek oka, hogy az adott Security Group nem "engedi be" az SLAAC-hoz szükséges hirdetési információkat. A tűzfal alábbiak szerinti bővítése, és egy virtuális gép reboot megoldja a problémát:

ICMPv6 Enable