Académique Documents
Professionnel Documents
Culture Documents
Systèmes d’Exploitation
Cours 11/13 : Disques SSD, Disques RAID
Nicolas Sabouret
Université Paris-Sud
Licence 3 - semestre S5
Plan
1 Disques SSD
2 Disques RAID
3 Conclusion
Plan
1 Disques SSD
Principe général
Problème d’usure
Wear Leveling dynamique
Wear Leveling statique
2 Disques RAID
3 Conclusion
Principe
Support physique
Sans support magnétique (vs disque dur)
Réinscriptible de nombreuse fois (vs CD)
Principe
Support physique
Sans support magnétique (vs disque dur)
Réinscriptible de nombreuse fois (vs CD)
Un peu d’histoire
Apparition des clefs USB fin années 90
→ premiers SSD
Cartes mémoires (ex : photo) début années 2000
Smartphones (2007) : utilisation des cartes SSD comme
disque
Performance
Performance
Performance
Structure de fichier
Formatage
Blocs 512 Ko découpés en pages de 4 Ko munies de 128 bits de
code d’erreur
3 Pagination des blocs en mémoire → partage du cache
Structure de fichier
Formatage
Blocs 512 Ko découpés en pages de 4 Ko munies de 128 bits de
code d’erreur
3 Pagination des blocs en mémoire → partage du cache
Matériel
RAM interne (joue le rôle de cache)
Le système ne communique qu’avec cette RAM interne
Bus en série → charger les 128 pages d’un coup !
Structure de fichier
Formatage
Blocs 512 Ko découpés en pages de 4 Ko munies de 128 bits de
code d’erreur
3 Pagination des blocs en mémoire → partage du cache
Matériel
RAM interne (joue le rôle de cache)
Le système ne communique qu’avec cette RAM interne
Bus en série → charger les 128 pages d’un coup !
Détection d’erreurs
Contrôleur de périphérique → détecter les erreurs lors de l’écriture
depuis la RAM interne
Bien géré par les OS récents (Windows ≥ 7, Linux, MacOS)
Info32b Systèmes d’Exploitation Nicolas Sabouret 6/34
Disques SSD Disques RAID Conclusion
Principe général Problème d’usure Wear Leveling dynamique Wear Leveling statique
Idée
On souhaite faire des supports amovibles sans bande magnétique
Idée
On souhaite faire des supports amovibles sans bande magnétique
On veut imiter le principe d’une RAM. . .
. . . mais sans avoir besoin de l’alimenter !
Ü Comment maintenir chargé un bit sans bascule RS ?
Idée
On souhaite faire des supports amovibles sans bande magnétique
On veut imiter le principe d’une RAM. . .
. . . mais sans avoir besoin de l’alimenter !
Ü Comment maintenir chargé un bit sans bascule RS ?
Mécanisme
Charger une grille électromagnétique de manière à ce que les
électrons ne s’échappent pas
Effet tunnel
Effet tunnel
État
Mesure depuis la grille de contrôle
Grille flottante saturée → isolante (pas de tension) → bit 0
Grille flottante vidée → conductrice (tension) → bit 1
Problème
Grille flottante
Données = (dé)saturation de la grille flottante
Ü Il reste toujours des électrons. . .
Au fur et à mesure, la grille se dé-sature de moins en moins
Usure
Entre 10 000 et 50 000 cycles d’écriture maximum
Problème
Grille flottante
Données = (dé)saturation de la grille flottante
Ü Il reste toujours des électrons. . .
Au fur et à mesure, la grille se dé-sature de moins en moins
Usure
Entre 10 000 et 50 000 cycles d’écriture maximum
Stratégie de base
Bloc logique → adresse physique (secteur)
Stratégie de base
Bloc logique → adresse physique (secteur)
Inconvénients
7 Effacer le secteur + recopier nouvelle valeur → lent !
Stratégie de base
Bloc logique → adresse physique (secteur)
Inconvénients
7 Effacer le secteur + recopier nouvelle valeur → lent !
7 Fichiers souvent modifiés (ex : données d’état) → secteurs plus
vite inutilisables
source : http://tomsharedware.fr
Gestion de l’usure
ou wear levelling
Disque
Le disque est inutilisable dès que X secteurs ont atteint leur limite,
quelque soit l’état des autres blocs !
Gestion de l’usure
ou wear levelling
Disque
Le disque est inutilisable dès que X secteurs ont atteint leur limite,
quelque soit l’état des autres blocs !
Remarque
Pas de problème de temps d’accès (rotation et déplacement bras) :
tous les secteurs sont accessibles à la même vitesse
Gestion de l’usure
ou wear levelling
Disque
Le disque est inutilisable dès que X secteurs ont atteint leur limite,
quelque soit l’état des autres blocs !
Remarque
Pas de problème de temps d’accès (rotation et déplacement bras) :
tous les secteurs sont accessibles à la même vitesse
Principe
Changement de secteur sur écriture
Principe
Changement de secteur sur écriture
Avantages
3 Répartir l’écriture sur les différents secteurs libres
→ Moins d’usure
3 Libérer les anciens secteurs pendant que le périphérique est
inutilisé
→ Gain de performance
WL dynamique : fonctionnement I
WL dynamique : fonctionnement I
Table d’adresse des blocs logiques
Logic Bloc Adresses (LBA)
Adresse physique (secteur)
Adresse Logique n° bloc(ou libre )
Bit d’invalidité du secteur
true si le secteur doit être nettoyé et marqué libre. . .
Usure (nombre d’écriture)
Date dernière modification
Fonctionnement
Écriture : choix nouvelle adresse physique + marquer secteur
invalide et libre
Temps libre : nettoyer secteurs invalides
Info32b Systèmes d’Exploitation Nicolas Sabouret 14/34
Disques SSD Disques RAID Conclusion
Principe général Problème d’usure Wear Leveling dynamique Wear Leveling statique
WL dynamique : fonctionnement II
WL dynamique : fonctionnement II
Exemple :
secteur : 0 1 2 3 4 5 6 7 8 9 A B C D E F
logique : 1 4 2 6 0 L 9 3 L L 5 7 8 L L L
usure : 2 8 7 3 6 5 8 6 7 9 6 8 8 3 0 0
Demandes d’écriture : A
WL dynamique : fonctionnement II
Exemple :
secteur : 0 1 2 3 4 5 6 7 8 9 A B C D E F
logique : 1 4 2 6 0 L 9 3 L L 5 7 8 L L L
usure : 2 8 7 3 6 5 8 6 7 9 6 8 8 3 0 0
Demandes d’écriture : A
En cas d’égalité, je prend le premier secteur libre
WL dynamique : fonctionnement II
Exemple :
secteur : 0 1 2 3 4 5 6 7 8 9 A B C D E F
logique : 1 4 2 6 0 L 9 3 L L 5 7 8 L A L
usure : 2 8 7 3 6 5 8 6 7 9 6 8 8 3 1 0
Demandes d’écriture : A 1
WL dynamique : fonctionnement II
Exemple :
secteur : 0 1 2 3 4 5 6 7 8 9 A B C D E F
logique : 1 4 2 6 0 L 9 3 L L 5 7 8 L A L
usure : 2 8 7 3 6 5 8 6 7 9 6 8 8 3 1 0
Demandes d’écriture : A 1
Libérer le secteur contenant le bloc 1
WL dynamique : fonctionnement II
Exemple :
secteur : 0 1 2 3 4 5 6 7 8 9 A B C D E F
logique : L 4 2 6 0 L 9 3 L L 5 7 8 L A 1
usure : 2 8 7 3 6 5 8 6 7 9 6 8 8 3 1 1
Demandes d’écriture : A 1 7
WL dynamique : fonctionnement II
Exemple :
secteur : 0 1 2 3 4 5 6 7 8 9 A B C D E F
logique : L 4 2 6 0 L 9 3 L L 5 7 8 L A 1
usure : 2 8 7 3 6 5 8 6 7 9 6 8 8 3 1 1
Demandes d’écriture : A 1 7
WL dynamique : fonctionnement II
Exemple :
secteur : 0 1 2 3 4 5 6 7 8 9 A B C D E F
logique : 7 4 2 6 0 L 9 3 L L 5 L 8 L A 1
usure : 3 8 7 3 6 5 8 6 7 9 6 8 8 3 1 1
Demandes d’écriture : A 1 7 1
WL dynamique : fonctionnement II
Exemple :
secteur : 0 1 2 3 4 5 6 7 8 9 A B C D E F
logique : 7 4 2 6 0 L 9 3 L L 5 L 8 L A 1
usure : 3 8 7 3 6 5 8 6 7 9 6 8 8 3 1 1
Demandes d’écriture : A 1 7 1
Même si mon secteur est moins usé, je déplace
WL dynamique : fonctionnement II
Exemple :
secteur : 0 1 2 3 4 5 6 7 8 9 A B C D E F
logique : 7 4 2 6 0 L 9 3 L L 5 L 8 1 A L
usure : 3 8 7 3 6 5 8 6 7 9 6 8 8 4 1 1
Demandes d’écriture : A 1 7 1 2
WL dynamique : fonctionnement II
Exemple :
secteur : 0 1 2 3 4 5 6 7 8 9 A B C D E F
logique : 7 4 2 6 0 L 9 3 L L 5 L 8 1 A L
usure : 3 8 7 3 6 5 8 6 7 9 6 8 8 4 1 1
Demandes d’écriture : A 1 7 1 2
WL dynamique : fonctionnement II
Exemple :
secteur : 0 1 2 3 4 5 6 7 8 9 A B C D E F
logique : 7 4 L 6 0 L 9 3 L L 5 L 8 1 A 2
usure : 3 8 7 3 6 5 8 6 7 9 6 8 8 4 1 2
Demandes d’écriture : A 1 7 1 2
WL dynamique : limite
WL dynamique : limite
Implémentation
Table LBA :
secteur, bloc, bit d’invalidité, usure,
date (en nombre d’écritures sur le SSD)
Bloc statique/dynamique
Un bloc modifié depuis moins de tl pas de temps est considéré
dynamique.
→ Il ne peut pas être déplacé.
Info32b Systèmes d’Exploitation Nicolas Sabouret 17/34
Disques SSD Disques RAID Conclusion
Principe général Problème d’usure Wear Leveling dynamique Wear Leveling statique
WL statique : algorithme
Algorithme
Chercher le secteur le moins utilisé
Il est libre → l’utiliser
Il contient un bloc dynamique → choisir un autre secteur
Il contient un bloc statique → déplacer le bloc (suivant le même
algorithme)
WL statique : algorithme
Algorithme
Chercher le secteur le moins utilisé
Il est libre → l’utiliser
Il contient un bloc dynamique → choisir un autre secteur
Il contient un bloc statique → déplacer le bloc (suivant le même
algorithme)
Implémentation
Liste des secteurs libres ou contenant des blocs statiques. . .
triée par usure croissante
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A
En cas d’égalité, je prend le premier secteur
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1 7
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1 7
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1 7
Le bloc 7 est retiré
Les blocs dynamiques sont protégés
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1 7
Le bloc 4 est statique
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1 7 4
Il faut maintenant replacer le bloc 4 !
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1 7 4
En cas d’égalité, on préfère un secteur libre
plutôt qu’un bloc statique qui serait déplacé. . . dans ce même bloc !
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1 7 4
On peut considérer qu’on est toujours au cycle 109. . .
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1 7 4 1
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1 7 4 1
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1 7 4 1 6
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1 7 4 1 6
Un secteur libre n’est jamais dynamique !
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1 7 4 1 6 2
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1 7 4 1 6 2
WL statique : exemple
Principe
Choisir le secteur le moins utilisé et déplacer si bloc statique
Demandes d’écriture : A 1 7 4 1 6 2
Avantage
Bien meilleure répartition de l’usure
Écriture sur le disque → les blocs sont déplacés sur tout le
support
L’écart d’usure maximum est tl
Moyenne d’utilisation faible (mais pas homogène)
Plan
1 Disques SSD
2 Disques RAID
Principe général
RAID 0
RAID 1
RAID 2 à 4
RAID 5
RAID : combinaison
3 Conclusion
Disques RAID
Redundant : duplication
Array : en parallèle, données réparties
Inexpensive : pas cher
Disques RAID
Redundant : duplication
Array : en parallèle, données réparties
Inexpensive : pas cher
Principe
Utilisation en parallèle de disques sur lesquels les données sont
réparties et dupliquées
Améliorer
3 La performance
3 La fiabilité
Performance
Coût du matériel
Le coût d’un disque croı̂t de manière exponentiel avec sa
performance.
Si un disque capable de traiter n requêtes à la seconde coûte m euros, un
disque capable de traiter 2n requêtes à la seconde coûte m2 euros.
Performance
Coût du matériel
Le coût d’un disque croı̂t de manière exponentiel avec sa
performance.
Si un disque capable de traiter n requêtes à la seconde coûte m euros, un
disque capable de traiter 2n requêtes à la seconde coûte m2 euros.
Disques RAID
Utiliser plusieurs disques en parallèle :
Les données sont dupliquées
Un contrôleur réparti les requêtes sur les disques
Un tel système coûte 2m + euros
Fiabilité
Panne de matériel
Un disque tombe en panne toutes les 100 000 heures env. (11 ans).
→ Dans un parc de 100 disques indépendants, une panne tous les
41 jours environ !
Fiabilité
Panne de matériel
Un disque tombe en panne toutes les 100 000 heures env. (11 ans).
→ Dans un parc de 100 disques indépendants, une panne tous les
41 jours environ !
Fiabilité
Panne de matériel
Un disque tombe en panne toutes les 100 000 heures env. (11 ans).
→ Dans un parc de 100 disques indépendants, une panne tous les
41 jours environ !
Disques RAID
Stocker de l’information non-nécessaire pour récupérer les pannes
Données redondantes
Code correcteur
Info32b Systèmes d’Exploitation Nicolas Sabouret 24/34
Disques SSD Disques RAID Conclusion
Principe général RAID 0 RAID 1 RAID 2 à 4 RAID 5 RAID : combinaison
RAID 0
Principe
Utiliser la redondance pour améliorer la performance
Ü Entrelacement des données sur les disques
Chaque bit/octets/bloc est écrit sur un disque différent, modulo n disques
En général, n est une puissance de 2
Disque virtuel
Le disque RAID fonctionne comme un disque avec des blocs n fois
plus grands
(ou n fois plus rapides)
RAID 0
Principe
Utiliser la redondance pour améliorer la performance
Ü Entrelacement des données sur les disques
Chaque bit/octets/bloc est écrit sur un disque différent, modulo n disques
En général, n est une puissance de 2
Disque virtuel
Le disque RAID fonctionne comme un disque avec des blocs n fois
plus grands
(ou n fois plus rapides)
Avantages
3 Temps de traitement des petits accès (ex : swap)
3 Temps de traitement des grands accès
Info32b Systèmes d’Exploitation Nicolas Sabouret 25/34
Disques SSD Disques RAID Conclusion
Principe général RAID 0 RAID 1 RAID 2 à 4 RAID 5 RAID : combinaison
RAID 1
Principe
Utiliser la redondance pour améliorer la fiabilité
Ü Mirroring : données dupliquées sur chaque disque
Ü Shadowing : données recopiées sur un autre disque
Il faut 2 disques de capacité n pour stocker n données : simple
mais coûteux !
RAID 1
Principe
Utiliser la redondance pour améliorer la fiabilité
Ü Mirroring : données dupliquées sur chaque disque
Ü Shadowing : données recopiées sur un autre disque
Il faut 2 disques de capacité n pour stocker n données : simple
mais coûteux !
Avantage
3 Réduit effectivement les pannes. . .
105 ×105
dépannage = 10 heures → 1 panne toutes les 10
heures = 57 000 ans
RAID 1
Principe
Utiliser la redondance pour améliorer la fiabilité
Ü Mirroring : données dupliquées sur chaque disque
Ü Shadowing : données recopiées sur un autre disque
Il faut 2 disques de capacité n pour stocker n données : simple
mais coûteux !
Avantage
3 Réduit effectivement les pannes. . .
5 5
×10
dépannage = 10 heures → 1 panne toutes les 10 10 heures = 57 000 ans
. . . à condition que les pannes soient indépendantes !
RAID 1
Principe
Utiliser la redondance pour améliorer la fiabilité
Ü Mirroring : données dupliquées sur chaque disque
Ü Shadowing : données recopiées sur un autre disque
Il faut 2 disques de capacité n pour stocker n données : simple
mais coûteux !
Inconvénients
7 1 disque logique = 2 disques physiques
7 Mirroring : temps d’accès doublé
7 Mirroring : risque de perte de tout un disque
RAID 2 à 4
Principe
Utiliser la redondance pour améliorer la fiabilité
RAID 2 à 4
Principe
Utiliser la redondance pour améliorer la fiabilité
Ü Codes correcteurs
plus efficaces en nombre de disques requis !
RAID 2
Principe
RAID 0 (volume en bande) + code correcteur de Hamming(n,m)
sur chaque bande
m disques de données → n − m disques de code correcteur
Écriture de bande bit par bit
Avantages et inconvénients
3 Performance (RAID 0) + fiabilité (code correcteur)
7 Écriture par bit mal géré par les disques modernes
7 Code correcteur déjà intégré dans les disques modernes
7 Écriture des codes sur des disques séparés
→ obsolète
RAID 3 et 4
Principe
RAID 0 en bande
RAID 3 = bande par octets
RAID 4 = bande par blocs
Disque de parité
Code correcteur
3 Si n’importe quel disque tombe en panne (y compris le disque
de parité), il est possible de le reconstituer à partir des autres
RAID 3 et 4
Principe
RAID 0 en bande
RAID 3 = bande par octets
RAID 4 = bande par blocs
Disque de parité
Code correcteur
3 Si n’importe quel disque tombe en panne (y compris le disque
de parité), il est possible de le reconstituer à partir des autres
7 Le(s) disque(s) de parité est(sont) beaucoup plus souvent
sollicités → pannes plus fréquentes !
→ de plus en plus remplacés par RAID 5
Octet de parité
Construction
Code correcteur = XOR(Donnée 1, Donnée 2, . . . Donnée n)
Octet de parité
Construction
Code correcteur = XOR(Donnée 1, Donnée 2, . . . Donnée n)
Exemple
Bande sur 3 disques : octets 5F 32 7A
Disque de parité : 5F ⊕ 32 ⊕ 7A =
Octet de parité
Construction
Code correcteur = XOR(Donnée 1, Donnée 2, . . . Donnée n)
Exemple
Bande sur 3 disques : octets 5F 32 7A
Disque de parité : 5F ⊕ 32 ⊕ 7A =
0101 1111
0011 0010
0111 1010
Octet de parité
Construction
Code correcteur = XOR(Donnée 1, Donnée 2, . . . Donnée n)
Exemple
Bande sur 3 disques : octets 5F 32 7A
Disque de parité : 5F ⊕ 32 ⊕ 7A =
0101 1111
0011 0010
0111 1010
0001 0111
Octet de parité
Construction
Code correcteur = XOR(Donnée 1, Donnée 2, . . . Donnée n)
Exemple
Bande sur 3 disques : octets 5F 32 7A
Disque de parité : 5F ⊕ 32 ⊕ 7A = 17
0101 1111
0011 0010
0111 1010
0001 0111
Octet de parité
Construction
Code correcteur = XOR(Donnée 1, Donnée 2, . . . Donnée n)
Exemple
Bande sur 3 disques : octets 5F 32 7A
Disque de parité : 5F ⊕ 32 ⊕ 7A = 17
0101 1111
0011 0010
0111 1010
0001 0111
Perte de l’octet 32 : 5F ⊕ 7A ⊕ 17 =
Octet de parité
Construction
Code correcteur = XOR(Donnée 1, Donnée 2, . . . Donnée n)
Exemple
Bande sur 3 disques : octets 5F 32 7A
Disque de parité : 5F ⊕ 32 ⊕ 7A = 17
0101 1111 0101 1111
0011 0010 0001 0111
0111 1010 0111 1010
0001 0111
Perte de l’octet 32 : 5F ⊕ 7A ⊕ 17 =
Octet de parité
Construction
Code correcteur = XOR(Donnée 1, Donnée 2, . . . Donnée n)
Exemple
Bande sur 3 disques : octets 5F 32 7A
Disque de parité : 5F ⊕ 32 ⊕ 7A = 17
0101 1111 0101 1111
0011 0010 0001 0111
0111 1010 0111 1010
0001 0111 0011 0010
Perte de l’octet 32 : 5F ⊕ 7A ⊕ 17 = 32
RAID 5
Principe
Volume agrégé par bande mais blocs de parité répartis
RAID 5
Principe
Volume agrégé par bande mais blocs de parité répartis
RAID 6
Même principe avec n disques de parité au lieu de 1 seul
→ supporte la perte de n − 1 disques
Info32b Systèmes d’Exploitation Nicolas Sabouret 31/34
Disques SSD Disques RAID Conclusion
Principe général RAID 0 RAID 1 RAID 2 à 4 RAID 5 RAID : combinaison
RAID : combinaison
Principe
RAID N + M = constituer un disque virtuel de type RAID N. . .
. . . lequel est stocké sur un disque de type RAID M
RAID : combinaison
Principe
RAID N + M = constituer un disque virtuel de type RAID N. . .
. . . lequel est stocké sur un disque de type RAID M
7 Limite : coûte autant de disques en plus !
RAID 01
Chaque disque est optimisé en RAID0 (bande)
Le tout est doublé par shadow (RAID1)
7 1 disque en panne → toute sa grappe est inutilisable
→ perte du bénéfice du shadow. . .
RAID : combinaison
Principe
RAID N + M = constituer un disque virtuel de type RAID N. . .
. . . lequel est stocké sur un disque de type RAID M
7 Limite : coûte autant de disques en plus !
RAID 10
Chaque disque est doublé par shadow (RAID1)
Le tout est stocké en bande (RAID0)
3 Performance et sécurité
7 Très coûteux
Plan
1 Disques SSD
2 Disques RAID
3 Conclusion
Disque SSD
Wear Leveling
Méthode dynamique < méthode statique
Disque RAID
Utilisation en parallèle de plusieurs disques
Pour la sécurité (RAID 1)
Pour la performance (RAID 0)