salvestussüsteemid · 2017. 11. 8. · raid massiivid • raid — redundant array of inexpensive...
TRANSCRIPT
-
OPERATSIOONISÜSTEEMID
Salvestussüsteemid
• Pöörlevad kettad ja SSD
• Ketaste ühendamine
• Kettapöörduste planeerimine
• Ketaste ette valmistamine
• Saalimisala haldus
• RAID struktuurid
• LVM
MEELIS ROOS 1
-
OPERATSIOONISÜSTEEMID
Ketta struktuur
• Ketas kui loogiliste plokkide jada (plokkseade)
• Plokkidele seatakse vastavusse sektorid
• 512 (520) baiti, sisemine plokisuurus on tänapäeval enamasti
4096 baiti
• Sektorite ringi paigutamine vea korral
• Silindrid, rajad, sektorid — pöörleva ketta siseasi
MEELIS ROOS 2
-
OPERATSIOONISÜSTEEMID
Ketta parameetrid
parameeter 360 kB floppy WD 18300 ketas
silindrite arv 40 10601
radu silindril 2 12
sektorit rajal 9 281 (keskm.)
sektorit kettal 720 35742000
baiti sektoris 512 512
ketta maht 360 kB 18.3 GB
positsioneerimine kõrvalrajale 6 ms 0.8 ms
positsioneerimine keskmiselt 77 ms 6.9 ms
ühe täispöörde aeg 200 ms 8.3 ms
mootori käivitusaeg 250 ms 20 s
1 sektori ülekande aeg 22 ms 17 µs
MEELIS ROOS 3
-
OPERATSIOONISÜSTEEMID
SSD-seadmed
• SSD — Solid State Drive (flash-mälu plokkseadme liidesega)
• Seek tasuta, ülekandekiirus arvestatav kuni väga hea
• Piiratud kirjutamiste arv samale sektorile (DWPD kui mõõt)
• Toite kadumisel terve erase block kaotsis ühe sektori asemel
• Wear leveling — meetodid kogu kettapinna ühtlaselt
vananemise tagamiseks
• Fragmenteerumine wear levelingu tegemisel vs kehv wear
leveling
• TRIM lisakäsk mittevajalike alade vabastamiseks (et ei oleks
vaja vana seisu kirjutamisel lugeda)
• Vajalik plokkide joondamine (alignment) erase block mahule
• OS: unustada pöörlemist eeldavad IO planeerijad
MEELIS ROOS 4
-
OPERATSIOONISÜSTEEMID
Ketaste ühendamine
• Otse arvuti külge
– (S)ATA, SAS/SCSI, NVMe, FireWire, USB, . . .
• Salvestivõrgu kaudu
– SAN — Storage Area Network
– Oma protokollistikuga võrk salvestusseadmete ja serverite
vahel
– Switched FibreChannel, FC-AL (kuni 32G, standard kuni
128G)
– IP võrk (+1G/10G/40G/100G Ethernet jms) ja iSCSI
– Infiniband (kuni 300G, madal latents) + RDMA
MEELIS ROOS 5
-
OPERATSIOONISÜSTEEMID
Kettapöörduste planeerimine
• Opsüsteem vastutab kettapöörduste efektiivsuse eest
– Läbilaskekiirus suureks
– Viivitus väikseks
• Pöördusajal kaks olulist tegurit:
– Raja otsimine — aeg sõltub sellest, kuipalju on pead vaja
liigutada
– Rajalt sektori otsimine (keskmiselt pool pööret)
• Läbilaske maksimaalne kiirus sõltub kettaseadmest
• Opsüsteem tahab liigse positsioneerimise välja optimeerida, et
läbilase oleks maksimumi lähedane
• Kui meil on ketta järjekorda kogunenud päringud mingitele
sektoritele, mis järjekorras neid täita, et viivitus (lugemispea
poolt läbitud vahemaa) vähim oleks?
MEELIS ROOS 6
-
OPERATSIOONISÜSTEEMID
Klassikalised kettapöörduste planeerimise
algoritmid
• FCFS — First Come First Served (70)
X X X XX X X
0 7 15 23 31
start
• Näide: päringute järjekord 15, 8, 17, 27, 9, 1, 14
• Kokku 70 raja vahetust
MEELIS ROOS 7
-
OPERATSIOONISÜSTEEMID
Klassikalised kettapöörduste planeerimise
algoritmid
• SSTF — Shortest Seek Time First (47)
X X X XX X X
0 7 15 23 31
start
• Sarnane SJF protsesside planeerijale, aga pole optimaalne
• Võib põhjustada näljutamist
MEELIS ROOS 8
-
OPERATSIOONISÜSTEEMID
Klassikalised kettapöörduste planeerimise
algoritmid
• SCAN (ka elevaatoralgoritm) — pea käib ketta ühest äärest teise
ja teenindab teele jäävaid päringuid (51)
• LOOK — pea viiakse otstes ainult äärmise päringuni (43)
X X X XX X X
0 7 15 23 31
start
• Keskel asuvaid sektoreid teenindatakse kiiremini
MEELIS ROOS 9
-
OPERATSIOONISÜSTEEMID
Klassikalised kettapöörduste planeerimise
algoritmid
• C-SCAN — nagu SCAN, aga tagasiteel päringuid ei teenindata
(61)
• C-LOOK — pea viiakse otsest ainult äärmise päringuni (51)
X X X XX X X
0 7 15 23 31
start
• Päringute teenindamise ooteajad on ühtlasemad
MEELIS ROOS 10
-
OPERATSIOONISÜSTEEMID
Kettapöörduste planeerimise algoritmid Linuxis
• NOOP (ainult päringute kokku kleepimine)
• Deadline (prioriteediklassid vastavalt interaktiivsusele,
näljutamise vastu tähtaeg)
• CFQ (päringud jagatakse klassidesse ja võetakse klassidest
vaheldumisi; oskab arvestada I/O prioriteetidega)
• MQ-Deadline, Kyber, BFQ — mitme järjekorraga variandid
MEELIS ROOS 11
-
OPERATSIOONISÜSTEEMID
Ketaste ette valmistamine
• Madala taseme formaatimine (füüsiline formaatimine, low level
formatting) — sektorimärkide radadele kandmine
– Tänapäeval ei paista reeglina opsüsteemile enam kätte
• Partitsioneerimine — ketta osadeks jaotamine
– MBR partitsioonitabelid — katavad kuni 2T, ketta alguses
– EFI GUID Partition Table ehk GPT — katavad üle 2T, ketta
lõpus
– VTOC, Unixite disklabelid, . . .
• Loogiline formaatimine ehk failisüsteemi tekitamine
• Bootloaderi installimine
• Vigaste kettaplokkide leidmine ja meelde jätmine
MEELIS ROOS 12
-
OPERATSIOONISÜSTEEMID
Madala taseme formaatimine
• Cylinder skew — erinevate radade sektorid on üksteise suhtes
nihkes
0 1 23
45
67
89
10
11
12131415161718
19
2021
22
23
24
25
26
27
2829
30 31
29 30 310
12
34
56
78
91011121314
1516
17
18
19
20
21
22
23
24
2526
27 28
26 27 2829
30
31
01
23
45
6
78
9101112
13
14
15
16
17
18
19
20
21
2223
2425
23 2425
26
27
28
29
30
31
01
2
3
45
6789
10
11
12
13
14
15
16
17
18
1920
2122
20 2122
23
24
25
26
27
28
29
30
31
0
1
234
56
7
8
910
11
12
13
14
15
1617
1819
1718
19
20
21
22
23
24
25
26
27
28
29
30
3101
2
3
4
5
6
78
910
11
12
13
14
1516
Direction of disk
rotation
• Aitab vähendada pöördumisviivitust järjestikuste sektorite
lugemisel mitmelt rajalt
MEELIS ROOS 13
-
OPERATSIOONISÜSTEEMID
Madala taseme formaatimine
• Vahelejätt (interleaving) — sektorid paigutatakse üle ühe
0
52
6
3
7
4
1
0
3
6
14
7
2
5
• Aitab vältida olukorda, kus eelmise sektori andmete
ülekandimise ajal liigub lugemispea üle järgmise sektori
• Aeglasema ülekandekanali puhul kasutatakse ka üle kahe
vahelejättu (double interleave)
• Pole vajalik, kui kontroller puhverdab kogu raja tervikuna
MEELIS ROOS 14
-
OPERATSIOONISÜSTEEMID
Saalimisala haldamine
• Saalimisala — protsesside või lehekülgede salvestusruum
virtuaalmälule
• Eraldi kettal/partitsioonil
• (Eelallokeeritud) failis
• Saalimisala protsessi kogu virtuaalmälu kohta (BSD UNIX)
• Saalimisala reaalselt välja saalitud mälulehekülgede kohta
(Solaris, Linux, . . . )
• RAM-is peab saalimisala kohta kaart olema
MEELIS ROOS 15
-
OPERATSIOONISÜSTEEMID
RAID massiivid
• RAID — Redundant Array of Inexpensive Disks
• Paralleelsuse kaudu kiiruse ja töökindluse suurendamine
• Peegeldamine (mirroring, shadowing)
• Paarsusinfo laiali jagamine (interleaved parity)
– Bitikaupa
– Plokikaupa
• Parandusaeg peab mõistlik olema
• Kuumvaru (hot spare), ketaste kolimine
• Tarkvaraline vs riistvaraline RAID
• NVRAM vahemälu
MEELIS ROOS 16
-
OPERATSIOONISÜSTEEMID
RAID 0
• RAID 0 — Mitmest kettast ühe suure tegemine (striping)
• Virtuaalne ketas koosneb vöötidest (stripe), igas vöödis k
sektorit
• Vöödid on jagatud n ketta vahel
strip1
strip3
strip0
strip2
strip4 strip5
disk1 disk2
• Kõrvuti olevate vöötide lugemine võib toimuda paralleelselt
• Parandab jõudlust, kuid kahandab töökindlust
• Kui süsteem loeb ketast sektorhaaval, siis pole efektiivsuses
võitu
MEELIS ROOS 17
-
OPERATSIOONISÜSTEEMID
RAID 1
• RAID 1 — Peegeldamine (sama info mitme seadme peal)
strip0
strip1
strip0
strip1
strip2 strip2
disk1 disk2
• Säilivad RAID0 eelised (paralleelselt lugemine on võimalik)
• Vööt loetakse sellelt kettalt, kust parasjagu kiirem on
• Kirjutamised peavad toimuma kõigil ketastel, aga saab teha
korraga
MEELIS ROOS 18
-
OPERATSIOONISÜSTEEMID
RAID 2
• RAID 2 — Mälu stiilis veaparanduskoodid (ECC)
disk1 disk2 disk3 disk4 disk5
b1 b2 b3 f0(b) f1(b)
• Vöödid on väikesed (biti, baidi või sõna suurused)
• Lisaks salvestatakse Hammingi kood
• Ühe ketta veast suudab taastuda
• Vajab log lisakettaid
• Harva kasutusel
MEELIS ROOS 19
-
OPERATSIOONISÜSTEEMID
RAID 3
• RAID 3 — Bitihaaval paarsuskontroll
disk1 disk2 disk3 disk4
P(b)b1 b2 b3
• Vöödid on väikesed (biti, baidi või sõna suurused)
• Kasutab ära seda, et lugemisveast saab ketas ise aru, mitte ei
anna valesid bitte
• Liiasuse saavutamiseks leitakse tegelike andmete XOR
(paarsusinfo)
• Paarsusinfo jaoks vaja lisaketast
• Suudab taastuda ühe ketta veast
MEELIS ROOS 20
-
OPERATSIOONISÜSTEEMID
RAID 4
• RAID 4 — Plokihaaval paarsuskontroll
disk1 disk2 disk3 disk4 disk5
strip1 strip2
strip4 strip5 strip6
strip8 strip9 strip10 strip11
strip7
strip3strip0 P(0−3)
P(4−7)
P(8−11)
• Sarnane RAID 3-ga, kuid vöödisuurus suurem
• Read-modify-write
• Iga kirjutamisoperatsioon nõuab paarsusinfo korrigeerimiseks
kõikide ketaste lugemist
• Alternatiivselt arvutatakse paarsusinfo vanast andme- ja
paarsusinfost (2 lugemist)
• Paarsusketas võib osutuda pudelikaelaks
MEELIS ROOS 21
-
OPERATSIOONISÜSTEEMID
RAID 5
• RAID 5 — Plokihaaval hajutatud paarsuskontroll
disk1 disk2 disk3 disk4
strip1 strip2
strip4 strip5 strip6
strip8
strip3strip0
disk5
P(0−3)
strip7
P(8−11) strip11
strip12
strip9
P(12−15)
P(16−19)
strip10
P(4−7)
strip19
strip15
strip18
strip14strip13
strip17strip16
• Nagu RAID 4, aga paarsussektorid on hajutatud ketaste vahel
• Väldib eraldi paarsuskettaga seotud jõudlusprobleemi
• Read-modify-write endiselt jõudlusprobleemiks
– Logiv RAID — žurnaal väikeste kirjutamiste jaoks
MEELIS ROOS 22
-
OPERATSIOONISÜSTEEMID
RAID 6
• RAID 6 — Kahemõõtmeline paarsuskontroll
disk1 disk2 disk3 disk4
strip1 strip2
strip4 strip5 strip6
strip8
strip3strip0
P(8−11)
strip12
strip9
P(12−15)
P(16−19)
P(4−7)
strip17
strip13
strip16
disk6
Q(0−3)
strip7
strip11
strip19
strip15
disk5
P(0−3)
strip10
strip18
strip14
Q(4−7)
Q(8−11)
Q(16−19)
Q(12−15)
• Nagu RAID 5, aga liiasust arvutatakse kahe erineva funktsiooni
abil
• Vajab kahte lisaketast
• Suudab taastuda kahe ketta vigade korral
MEELIS ROOS 23
-
OPERATSIOONISÜSTEEMID
RAID 0+1
• RAID 0+1 — peegeldatud stripe’id
strip1
strip3
strip0
strip2
strip4 strip5
disk1 disk2
strip1
strip3
strip0
strip2
strip4 strip5
disk3 disk4
• Kannatab ühest peegli poolest kasvõi mitme ketta viga, aga
teine peegli pool peab terveks jääma
MEELIS ROOS 24
-
OPERATSIOONISÜSTEEMID
RAID 1+0
• RAID 1+0 — stripe’itud peeglipaarid
strip0
strip2
strip0
strip2
strip4 strip4
disk1 disk2
strip1
strip3
strip1
strip3
strip5 strip5
disk3 disk4
• Kannatab ühe ketta viga igast peeglipaarist
• Keskmiselt kannatab vigu rohkem kui RAID 0+1, aga kaks
veaga ketast võivad ka RAID 1+0 maha võtta
MEELIS ROOS 25
-
OPERATSIOONISÜSTEEMID
RAID riistvaras ja tarkvaras
• Enamus RAID tasemeid saab realiseerida nii riistvaras kui
tarkvaras
– Missuguseid ei saa?
• Riistvaras:
– CPU koormust vähemaks
– Liiasusega andmed liiguvad üle siini 1 korra
• Tarkvaras:
– CPU võib olla kiirem kui RAID kontrolleri protsessor
– Opsüsteemi RAID on kergemini hallatav ja vähemate
ühilduvusprobleemidega
• HostRAID, BIOS RAID — tarkvaraline RAID draiveris
– Võimalus bootida muudelt RAID-idelt kui 1
– Hädalahendus kui opsüsteemi RAID-i ei saa kasutada
MEELIS ROOS 26
-
OPERATSIOONISÜSTEEMID
RAID failisüsteemi tasemel
• Liiasust ei pea realiseerima plokkseadme tasemel, vaid võib
teha ka failisüsteemi siseselt
• Anname komponent-plokkseadmed otse failisüsteemi hallata
• Failisüsteemi draiver jagab üksikute failide plokke laiali
vastavalt liiasuspoliitikale
• Pole fikseeritud vöödisuurust
• Saame ellimineerida read-modify-write jõudlusprobleemi
copy-on-write mehhanismi ja täisplokkide kirjutamisega
• Pioneer: Sun ZFS
• Tänapäeval on sarnane ka näiteks Linuxi Btrfs
MEELIS ROOS 27
-
OPERATSIOONISÜSTEEMID
LVM — Logical Volume Management
• Idee: abstraheerida salvestussüsteemist välja füüsilised kettad
• Algus: kogu füüsilise ketta peal oli üks failisüsteem
• Areng: füüsilise ketta partitsioonideks jagamine
• (RAID: peegeldamine, striping, . . . )
• Samm edasi: peidame füüsilised kettad üldse ära, näitame
ülespoole ainult loogilisi "köiteid"
• Need köited võivad tegelike ketaste osade vahel suvaliselt
jaguneda
• Tegelikud kettad jagame väikesteks tükkideks, mida saab
köideteks grupeerida
MEELIS ROOS 28
-
OPERATSIOONISÜSTEEMID
LVM: näited
• Ketaste kokku ühendamine
disk 2disk 1 disk 3
volume
• Peegeldamine
disk 2
volume
disk 1 disk 3
• ⇒ esialgu nagu RAID
MEELIS ROOS 29
-
OPERATSIOONISÜSTEEMID
LVM: näited
• LVM plokkide migreerimine teisele kettale
• Köidete suuruse muutmine käigu pealt
• Krüptimine
• Vahemälu SSD peal
• Multipathing
• Thin provisioning
MEELIS ROOS 30
-
OPERATSIOONISÜSTEEMID
LVM: näited
• Snapshot
MEELIS ROOS 31