M ´emoire de masse
Structure des disques
Ordonnancement de disques RAID
Structure des SSD
Structure d’un disque
Structure tridimensionnelle: plateaux, secteurs, cylindres
Piste = plateau
∩
cylindre Bloc = piste∩
secteurT ˆetes volent sur les plateaux De 3600tpm `a 15000tpm
T ˆetes se d ´eplacent radialement
seek time: temps de d ´eplacement de la t ˆete
rotational latency: temps de d ´eplacement du bloc par rotation
Performance d’un disque
Capacit ´e: de l’ordre de 2TB en 2016, en blocs de 4kB
rotational latency moyenne:
temps pour 12 tour
3600tpm 8.3ms 7200tpm 4.2ms 15000tpm 2ms
seek time moyen:
temps pour
e 1
3 du rayon
3ms − 12ms
moyene 1
2
ms
piste `a piste Changement de t ˆete:e
1ms
Bande passante (bandwidth):
100
MB/s
Vue externe d’un disque
Les d ´etails physiques sont cach ´es
•
Le SE ne voit qu’un tableau de N blocs logiques de taille fixe•
Rec¸oit des requ ˆetes read et write sur ces blocs•
Acc `es s ´equentiels cens ´es obtenir meilleure performance Notion de secteur peut- ˆetre invalideBlocs endommag ´es cach ´es par remapping Le disque inclus une m ´emoire cache
Maintient une queue de requ ˆetes en cours (command queuing)
SAN, NAS, Storage arrays
Storage array
•
contr ˆoleur connect ´e `a plusieurs/beaucoup disques•
Vu de l’ext ´erieur comme un autre ensemble de disques Storage area network (SAN)•
R ´eseau sp ´ecialis ´e pour connecter des disques et des machines•
Disques d ´edi ´es. Facilit ´e d’ajouter ou enlever disques Network attached storage (NAS)•
Disques vus soit comme des disques ou des syst `emes de fichiers•
R ´eseau standard. Disques peuvent ˆetre partag ´es.Ordonnancement de disques
Temps d’acc `es fortement influenc ´e par les d ´eplacements de t ˆetes L’ordre des acc `es influence fortement le temps total
Une queue de requ ˆetes par disque (dans le SE et/ou le disque) Si la queue est vide: pas de diff ´erence
Sinon, choix d’algorithmes d’ordonnancement
First Come First Serve (FCFS/FIFO)
Garde l’ordre d’arriv ´ee des requ ˆetes
D ´eplacement total sur cet exemple: 640 unit ´es
Shortest Seek Time First (SSTF)
Choisi toujours la requ ˆete la plus proche de la position actuelle Similaire `a Shortest Job First: peut souffrir de famine
D ´eplacement total sur cet exemple: 236 unit ´es
SCAN
La t ˆete parcourt toute la surface dans un sens puis dans l’autre Aussi appel ´e algorithme de l’ascenceur
D ´eplacement total sur cet exemple: 208 unit ´es
SCAN circulaire (C-SCAN)
La t ˆete parcourt la surface toujours dans le m ˆeme sens Diminue l’attente maximum par rapport `a SCAN
D ´eplacement total plus grand, mais: 1x200
<
2x100LOOK circulaire (C-LOOK)
LOOK = SCAN sans aller vraiment jusqu’au bout
C-LOOK = C-SCAN en ´evitant aussi les d ´eplacements inutiles
Fonctionnement de l’ordonnanceur
Le SE ne peut pas vraiment tenir compte de la latence Le disque a son propre ordonnanceur
Nombre de requ ˆetes limit ´e dans la queue du disque D ´ependances entre requ ˆetes
•
L’ordre des ´ecritures visible en cas de panne•
L’ordonnancement doit en tenir compteGestion des disques
Un “disque” est une notion abstraite: un tableau de blocs cons ´ecutifs Un disque est divis ´e en partitions
On peut aussi joindre deux disques en un grand disque virtuel On peut voir les partitions comme des disques
RAID: Redundant Array of Inexpensive Disks
Tr `es difficile d’acc ´el ´erer les disques ou augmenter leur fiabilit ´e Utiliser plusieurs disques `a la place
Copies redondantes sur plusieurs disques, pour la fiabilit ´e Acc `es parall `eles `a plusieurs disques, pour la performance Plusieurs structures possibles, selon les besoins
RAID-0: Striping
Combiner
N
disquesP D
i en un grand disqueLD
Donn ´ees r ´eparties finement sur tous les disques
Divis ´e en stripes. Stripe S plac ´ee sur disque
S
modN
taille
(LD) = P
taille
(P D
i)
bande passante
(LD) ' P
brande passante
(P D
i)
IOPS
(LD) ' P
IOPS
(P D
i)
Mais:
latence
(LD) '
latence(P D
i)
fiabilit ´e
(LD) '
N1×
fiabilit ´e(P D
i)
RAID-1: Mirroring
Combiner
N
disquesP D
i en un disqueLD
de m ˆeme tailleDonn ´ees copi ´ees N fois: chaque disque est une copie des autres fiabilit ´e
(LD) ' N ×
fiabilit ´e(P D
i)
bande passante RD
(LD) ' P
brande passante RD
(P D
i)
IOPS RD
(LD) ' P
IOPS RD
(P D
i)
latence
(LD) <
latence(P D
i)
Mais:
bande passante WR
(LD) <
brande passante WR(P D
i)
IOPS WR
(LD) '
IOPS WR(P D
i)
taille
(LD) '
taille(P D
i)
RAID-4: Parity
Striping sur N disques plus un disque suppl ´ementaire de parit ´e En lecture: comme RAID-0 avec le disque de parit ´e inutilis ´e
Fiabilit ´e bien meilleure que RAID-0: un disque peut mourir sans perte Degraded mode: fonctionnement avec un disque en moins
Mais, en ´ecriture: pire que RAID-1
Chaque ´ecriture touche au disque de parit ´e
bande passante WR
(LD) <
bande passante WR(P D
i)
Le calcul de la parit ´e peut n ´ecessiter des lectures suppl ´ementaires IOPS WR
(LD) '
12×
IOPS WR(P D
i)
RAID-5: Distributed parity
Comme RAID-4, mais avec stripes de parit ´e r ´eparties sur les disques En lecture: NN+1 fois mieux que RAID-4 (tous les disques participent) Fiabilit ´e identique `a RAID-5: un disque peut mourir sans perte
Degraded mode: un peu plus complexe que RAID-4
En ´ecriture: beaucoup mieux que RAID-4
Le co ˆut de la parit ´e r ´eparti entre tous les disques
bande passante WR
(LD) '
N2×
bande passante WR(P D
i)
Le calcul de la parit ´e peut n ´ecessiter des lectures suppl ´ementaires IOPS WR
(LD) '
N4×
IOPS WR(P D
i)
Plus sur les RAIDs
RAID-6: comme RAID-5 mais avec un deuxi `eme bit de “parit ´e”
Hot spare: disque inutilis ´e pr ˆet `a remplacer un autre
RAID-nm: un RAID-m constitu ´es de disques logiques de type RAID-n RAID-01: un mirroir de deux RAID-0 (striping) identiques
RAID-10: un striping de deux RAID-1 (mirroring)
RAID-10 donne la meilleure performance apr `es RAID-0
Solid State Disks (SSD)
Disque constitu ´e de m ´emoire non-volatile `a semi-conducteur De nos jours: NAND-Flash ou NOR-Flash
NOR: performance et long ´evit ´e; NAND: densit ´e et co ˆut Une USB-key est un SSD qui vise le meilleur prix par MB Un vrai SSD vise une meilleure performance par $
Performance beaucoup plus ´elev ´ee qu’un HDD:
•
Bande passante:e500MB/s
•
Latence:<
0.1msMeilleure fiabilit ´e m ´ecanique; basse consommation
NAND-Flash
M ´emoire divis ´ee en erasure blocs (e.g. 128kB) erasure blocs subdivis ´e en pages (e.g. 8kB) Op ´erations:
• read page
: pas de surprise• write page
: ne peut que changer des bits `a 0• erase bloc
: met tous les bits `a 1 Ph ´enom `ene d’usure: un bloc survit `ae10’000
erase bloc
Caract ´eristiques tr `es variables
Flash-Transation-Layer (FTL)
SSDs habituellement cachent leur NAND derri `ere une couche magique
•
Expose un tableau de N blocs logiques de taille fixe (e.g. 4kB)•
Avec seulementread bloc
etwrite bloc
Performance en ´ecriture pas toujours pr ´evisible:
•
Unwrite bloc
peut devoir lire+effacer+r ´e ´ecrire un erasure bloc•
Wear-leveling: Le FTL doit r ´epartir les erase bloc uniform ´ement•
En fait,write bloc
va g ´en ´eralement ´ecrire ailleurs!Table auxiliaire garde position physique d’un bloc logique Blocs devenus inutilis ´es, r ´ecup ´er ´es par une sorte de GC
Exemple de FTL
Chaque bloc logique correspond `a une page
Chaque erasure bloc contient un descripteur de ses bloc logiques En m ´emoire:
•
Une table de traduction bloc logique⇒
page•
Une table des pages libresread bloc
simple et efficace:1. Utilise la table pour trouver la page 2. Lis la page
Au d ´emarrage: lire tous les descripteurs pour reconstruire les tables
Exemple de FTL: ´ecriture
Un erasure bloc courant en cours d’ ´ecriture Lors d’un write bloc