Skip to content
Snippets Groups Projects
Commit acf1e1d8 authored by Tóth Miklós Tibor's avatar Tóth Miklós Tibor :shrug:
Browse files

Minor rewrite

parent f7b8d382
No related branches found
No related tags found
No related merge requests found
Pipeline #41360 passed
...@@ -33,6 +33,11 @@ section::after { ...@@ -33,6 +33,11 @@ section::after {
Tóth Miklós Tóth Miklós
<!--
Sziasztok! Örülök, hogy ennyien vagytok itt.
Pár menő adattárolási technológiáról fogok beszélni, remélem tudok mindenkinek valami újat mutatni.
-->
--- ---
## `whoami` ## `whoami`
...@@ -43,6 +48,13 @@ Tóth Miklós ...@@ -43,6 +48,13 @@ Tóth Miklós
- Storage enthusiast - Storage enthusiast
- Home lab 😎 - Home lab 😎
<!--
Mike-ként ismerhettek, a Sysadminban Vezető Rendszergazda vagyok,
emellett már relatív régóta foglalkozok Linux-szal és DevOps-szal,
mind munkában, mind homelabban, mind KSZK-ban és természetesen eléggé
érdekel az adattárolás.
-->
--- ---
## Tartalom ## Tartalom
...@@ -52,7 +64,13 @@ Tóth Miklós ...@@ -52,7 +64,13 @@ Tóth Miklós
- menő technológiák - menő technológiák
- egy konkrét implementáció - egy konkrét implementáció
<!--
Szó lesz arról, hogy miért érdemes ezzel foglalkozni,
pár alap adattárolási fogalomról és technológiáról,
eztán vadabb vizekre evezünk és bemutatok pár menő,
az iparban is használt technológiát és végül azt, hogy
az új storage szervereinket hogyan setupoltuk a KSZK-ban.
-->
--- ---
<!-- _class: [lead, invert] --> <!-- _class: [lead, invert] -->
...@@ -73,11 +91,31 @@ Mi lesz, ha megnő a felhasználók száma? ...@@ -73,11 +91,31 @@ Mi lesz, ha megnő a felhasználók száma?
**OK, akkor egy storage appliance már biztos elég lesz!** **OK, akkor egy storage appliance már biztos elég lesz!**
Vendor lock-in? 10 év múlva hogyan tovább? Vendor lock-in? 10 év múlva hogyan tovább?
<!--
Szóval, miért?
Felvetődhet bennünk pár kérdés, amikor megtervezzük azt, hogy hol is fogjuk tárolni az adatainket.
(diasor)
Szóval, röviden, sok más indok mellett emiatt érdemes gondolkodni storage megoldásokon.
-->
--- ---
<!-- _class: [lead, invert] --> <!-- _class: [lead, invert] -->
# Alapok # Alapok
<!--
Először is egy kis közvélemény kutatással kezdeném:
- Ki hallott már RAID-ről? (nem kell mélyen tudni)
- ZFS-ről?
- Klaszterekről?
- Ceph?
(reakció, köszi)
Haladjuk is tovább...
-->
--- ---
## Block device ## Block device
...@@ -87,6 +125,19 @@ Vendor lock-in? 10 év múlva hogyan tovább? ...@@ -87,6 +125,19 @@ Vendor lock-in? 10 év múlva hogyan tovább?
- lehet máshol fizikailag vagy akár virtuális - lehet máshol fizikailag vagy akár virtuális
- kernel kezeli - kernel kezeli
<!--
Párszor használni fogom a block device kifejezést.
Linuxon block device-nak hívunk általánosságban minden olyan eszközt,
legyen az valódi vagy virtuális, ami blokkonként írható-olvasható.
Így az összes diszk blokkonként (akár hívjuk azt szektornak vagy lapnak)
használható.
Sok virtuális block device van, például ha LUKS-sal titkosítunk
egy diszket vagy partíciót, akkor az feloldott titkosított meghajtó egy külön
block device-ként jelenik meg.
Még annyit érdemes megjegyezni, hogy minden block művelet a kernelbe fut be,
ott van az a logika, ami eldönti, hogy ilyenkor mi történjen.
-->
--- ---
## RAID ## RAID
...@@ -95,6 +146,13 @@ Vendor lock-in? 10 év múlva hogyan tovább? ...@@ -95,6 +146,13 @@ Vendor lock-in? 10 év múlva hogyan tovább?
- egy diszk sokszor nem elég nagy - egy diszk sokszor nem elég nagy
- több diszk kevesebb eséllyel hal meg egyszerre - több diszk kevesebb eséllyel hal meg egyszerre
<!--
Szóval, RAID.
Erről már sokan hallottatok, a RAID annyit tud,
hogy (akár hardveresen, akár szoftveresen)
pár standard módon összekombinálunk több diszket egy block device-szá.
-->
--- ---
### RAID-0 ### RAID-0
...@@ -104,6 +162,12 @@ Vendor lock-in? 10 év múlva hogyan tovább? ...@@ -104,6 +162,12 @@ Vendor lock-in? 10 év múlva hogyan tovább?
![bg right contain](./img/raid0.svg) ![bg right contain](./img/raid0.svg)
<!--
RAID-0. Itt nem az adat védelmét részesítjük előnyben, hanem a kapacitást és sebességet.
Az adatot gyakorlatilag blokkonként félbevágva, egyszerre több diszkre írjuk vagy olvassuk.
Ennek hátránya, hogy ha bármelyik diszk meghibásodik, minden adatnak annyi.
-->
--- ---
### RAID-1 ### RAID-1
...@@ -112,6 +176,10 @@ Vendor lock-in? 10 év múlva hogyan tovább? ...@@ -112,6 +176,10 @@ Vendor lock-in? 10 év múlva hogyan tovább?
- n-szer redundánsabb (n-1 diszk eshet ki) - n-szer redundánsabb (n-1 diszk eshet ki)
![bg right contain](./img/raid1.svg) ![bg right contain](./img/raid1.svg)
<!--
RAID-1. Ez kvázi egy inverz RAID-0.
Egy diszknyi területet kapunk, de minél több diszket teszünk bele, annál több meghalhat.
-->
--- ---
...@@ -122,6 +190,15 @@ Vendor lock-in? 10 év múlva hogyan tovább? ...@@ -122,6 +190,15 @@ Vendor lock-in? 10 év múlva hogyan tovább?
![bg right contain](./img/raid5.svg) ![bg right contain](./img/raid5.svg)
<!--
A RAID-5 már picit okosabb megoldás, itt van egy diszk paritás,
amire valamilyen algoritmussal (egy triviális példa az xor)
számolunk egy értéket, amivel egy másik diszk kiesése mellett
vissza tudjuk szerezni az adott blokkot.
Itt egy diszknyi kapacitást vesztünk, és szintén egy diszknyi redundanciát kapunk.
-->
--- ---
...@@ -132,6 +209,10 @@ Vendor lock-in? 10 év múlva hogyan tovább? ...@@ -132,6 +209,10 @@ Vendor lock-in? 10 év múlva hogyan tovább?
![bg right contain](./img/raid6.svg) ![bg right contain](./img/raid6.svg)
<!--
A RAID-6 pedig ugyanez, de két paritás diszkkel.
-->
--- ---
## Bitrot ## Bitrot
...@@ -218,9 +299,9 @@ disk1: ...011010<span class="bad">1</span>001100101011011000110110001101111... ...@@ -218,9 +299,9 @@ disk1: ...011010<span class="bad">1</span>001100101011011000110110001101111...
#### Checksumming #### Checksumming
- néhány blokkonként számol egy checksum-ot, amit eltárol az adat mellé - néhány blokkonként számol egy checksum-ot, amit eltárol az adat mellé
- ha bitrot miatt egy blokkból 2 verzió lesz, akkor amire passzol a checksum, az a jó verzió - ha egy blokkból 2 verzió lesz, akkor checksum check
- minimális overhead - minimális overhead
- scrub: arra utasítja a ZFS-t, hogy nézze át a poolban lévő összes adatot és ahol bitrot volt, javítsa ki (ha tudja) - scrub
- jelzi a hibákat, ebből látható jövőbeni diszk halál - jelzi a hibákat, ebből látható jövőbeni diszk halál
--- ---
...@@ -314,20 +395,50 @@ storage/test 40.3M 2.32T 40.3M /storage/test ...@@ -314,20 +395,50 @@ storage/test 40.3M 2.32T 40.3M /storage/test
- Ceph - Ceph
- GlusterFS - GlusterFS
- DRBD (és Linstor) - DRBD (és Linstor)
- **nem backup**
- "split brain" probléma; quorum - "split brain" probléma; quorum
<!--
Ha több, mint egy teljes gépnyi redundancia kell, akkor a storage klaszterek
felé fordulhatunk. Ezek segítségével egy vagy több gép kiesése mellett is
(akár tervezett, mint egy update, akár nem)
zavartalanul kezelhetjük az adataink és a gép újjáélesztése után
visszaszinkronizálódik az adat.
(diasor)
-->
---
## Quorum
- 2 node:
- egyik gép meghal, OK
- másik gép meghal, OK
- háló problémák?
- szavazótöbbség, tranzakciók
<!--
Felmerül még a split brain probléma is a páros számú gépekből álló klaszterekben.
Képzeljük el azt, hogy az egyik gép kiesik, ilyenkor a másik gép önmaga átveszi a feladatokat, ugyanez fordítva is megtörténik.
De mi van akkor, ha egyik gép se hal meg, viszont kettejük között
hálózati gubanc van. Ekkor mind a két gép megpróbálja egyedül vinni
az összes feladatot és ekkor divergálni fog az adat.
Erre egy megoldás a quorum, vagy szavazótöbbség, amikor a gépek több, mint fele
vissza kell igazolja a műveleteket ahhoz, hogy azok véhez menjenek. Ehhez 3 vagy több gép kell.
-->
--- ---
## Ceph ## Ceph
- "state of the art" megoldás, a leggazdagabb feature-ökben - "state of the art" megoldás
- objektumokat tárol: blokk, fájl vagy bármi más is lehet - objektumok, nem blokk vagy file
- a klaszterben minden diszk egyesével szerepel, node szinten nincsen RAID - a klaszterben minden diszk egyesével szerepel
- mon: koordináló service; quorum - mon + osd (+ mgr + mds + egyebek)
- osd: egy-egy diszk - CRUSH
- CRUSH: az algoritmus ami a klaszterben szétdobja az adatokat
- pl: legyen ugyanabban a rackben, de külön gépeken 2 másolat
--- ---
...@@ -347,11 +458,10 @@ storage/test 40.3M 2.32T 40.3M /storage/test ...@@ -347,11 +458,10 @@ storage/test 40.3M 2.32T 40.3M /storage/test
## GlusterFS ## GlusterFS
- nagyon minimalista - minimalista
- fájlonként dolgozik, fájlokként is tárolja az adatot - fájlonkat kezel, FS
- a backing fájlrendszer előnyeit megkapja - a backing fájlrendszer előnyeit megkapja
- node és brick van - node és brick
- node-on belüli redundancia a backing fájlrendszer feladata
--- ---
...@@ -376,7 +486,7 @@ storage/test 40.3M 2.32T 40.3M /storage/test ...@@ -376,7 +486,7 @@ storage/test 40.3M 2.32T 40.3M /storage/test
- nagyon régóta létezik, robosztus - nagyon régóta létezik, robosztus
- "hálózati RAID-1" - "hálózati RAID-1"
- node-on belüli redundancia a backing block device feladata - node-on belüli redundancia a backing block device feladata
- diskless node: a quorum része, de adatot nem tárol (viszont elérheti) - diskless node
--- ---
...@@ -448,12 +558,6 @@ storage/test 40.3M 2.32T 40.3M /storage/test ...@@ -448,12 +558,6 @@ storage/test 40.3M 2.32T 40.3M /storage/test
--- ---
### Demo
TODO
---
### Hova tovább? ### Hova tovább?
- network upgrade - network upgrade
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment