Partitionner des disques flash… en n`oubliant pas les précautions d

Transcription

Partitionner des disques flash… en n`oubliant pas les précautions d
Application  Sous-système de stockage
Partitionner des disques flash…
en n’oubliant pas les précautions
d’usage !
Dans les applications embarquées d'encombrement réduit, il est souvent envisagé d'utiliser
des unités de stockage à mémoire flash (SSD ou Solid State Drive). Les SSD sont compacts
et robustes et, parce qu'une cellule flash de qualité industrielle supporte entre 1 à 5 millions
de cycles d'écriture, ils promettent une grande longévité. Mais quand il s’agit de haute
fiabilité, de sécurité et de longévité, il faut se souvenir qu'à ce jour, les mémoires SSD
ne peuvent être partitionnées que sur le plan logique, et non physique. Les conséquences
en sont loin d'être négligeables.
D
e nombreuses discussions
sur les systèmes compacts
à haute fiabilité, tels ceux
mis en œuvre dans les
applications M2M, font état d’une
opinion de plus en plus répandue
parmi les utilisateurs : avec les
mémoires flash, il n’y aurait pas ou
peu de problèmes de fiabilité. De fait,
de nombreux articles dédiés aux
disques durs à état solide (ou SSD)
évoquent un bon moyen d'éviter
l'usure générée par de fréquents
accès en lecture : le partitionnement
de la mémoire. A priori, ce procédé
semble logique et pratique, car il est
possible de destiner une partition à
la sauvegarde des données critiques
du système d'exploitation et des
applications, et d’affecter une autre
partition aux données modifiées par
les applications et aux données
d'opérations de mémoire virtuelle
(partition dite « swap »). Si l’un des
secteurs de cette deuxième partition
– où les écritures sont fréquentes – se
dégrade, le système reste disponible
(quoiqu’avec certaines restrictions).
Voilà tout du moins la théorie.
Malheureusement, en pratique, certains effets sont presque toujours
négligés. Un système dont la partition
swap ne fonctionne pas peut en effet
rarement démarrer sans intervention
de l'utilisateur. Par conséquent, écrire
les données de swap dans la partition
swap n’a que peu de sens. Mais c’est
là le moindre des problèmes. L'écueil
le plus difficile à contourner est lié à
l’attribution des adresses physiques
aux adresses logiques, ce qui est loin
40 / L’EMBARQUÉ / N°2
Auteur
d'être simple dans le cas des unités à
mémoires flash.
Disques durs
contre mémoire flash
Claus Giebert,
directeur produit
en charge
des cartes
processeurs
embarquées
et directeur
produit M2M
pour l’EMEA
chez Kontron.
Sur un disque dur conventionnel,
chaque secteur correspond à une
zone bien définie de la surface de la
mémoire magnétique. Il existe donc
une séparation spatiale sécurisée…
que l'on suppose inconsciemment
présente également sur les mémoires
flash. Mais, en fait, les choses se
passent différemment, soit à cause
des techniques de « wear levelling »
(« égalisation d'usure ») qui visent à
augmenter la longévité des disques
flash, soit en raison de la distribution
des cycles d'écriture sur différents
canaux flash qui permet d’accroître
les performances en écriture. Il faudra encore du temps pour que les
Chaque partition d'un disque
dur occupe une zone bien définie
sur la surface d'une mémoire
magnétique. Ce qui n’est
malheureusement pas le cas
à ce jour avec les SSD.
●
fournisseurs de services de récupération de données prennent
conscience de l'impact de ces techniques. Dans ce qui suit, nous examinerons plus particulièrement les
effets du « wear levelling ».
La technique de wear levelling a été
décrite à maintes reprises. Pour la
comprendre, examinons tout d’abord
comment cette technique s'y prend
pour augmenter la longévité du SSD.
Prenant en compte le fait que le vieillissement est dû au processus d’effacement et non à la lecture, elle s’appuie sur un algorithme simple
comme celui-ci :
- Une cellule n’est effacée que si
aucune autre cellule libre (effacée)
n’est présente.
- Il est préférable d'effacer les secteurs qui ont été effacés les moins
souvent.
L’intégration
anaLogique ?
Pas nécessairement
requis Par tous !
© 2013 Maxim Integrated Products, Inc. All rights reserved. Maxim Integrated and the Maxim
Integrated logo are trademarks of Maxim Integrated Products, Inc., in the United States and other
jurisdictions throughout the world.
Application  Sous-système de stockage
I.- Configuration de départ d'un SSD
AVEC 8 PAGES ET 4 SECTEURS
Niveau d'usure
3
3
3
3
3
3
3
2
Secteur/page
0
1
2
3
4
5
6
7
0
0
1
2
3
4
5
6
7
15
1
8
9
10
11
12
13
14
2
16
17
18
19
20
21
xx
Les secteurs colorés en bleu
contiennent des données écrites
par l'utilisateur, tandis que les
secteurs colorés en vert sont
« signalés » comme n'avoir jamais
été écrits. Les nombres inscrits
dans les secteurs correspondent
aux numéros des secteurs
logiques. Si un secteur a été écrit
mais ne contient pas de données
récentes, il est identifié par
le signe « xx ». Dans la suite
du raisonnement, les pages
apparaissant en gris dans les
tableaux sont celles examinées
pour chaque exemple particulier.
3
Structure d’un SSD divisé en secteurs et en pages avec leur niveau
d’usure respectif. Les secteurs logiques 0 à 8 contiennent les
données critiques.
- Les opérations d'écriture sont distribuées de façon égale entre les secteurs.
Ce type d'algorithme peut aussi
prendre en compte la géométrie et la
taille d'un fichier, mais nous n'en
parlerons pas ici. Nous nous baserons donc sur une taille gérable. Il
apparaît d’ores et déjà que le fait
d’écrire en utilisant la technique de
wear levelling sans pouvoir créer de
partition physique va poser quelques
problèmes. Voyons cela plus en
détail.
Compter le nombre
d’effacements
Pour commencer, examinons la
structure d’un disque SSD (voir
tableau I). Supposons qu’il soit divisé
en huit pages notées de 0 à 7, avec,
pour chacune, un espace de stockage
de quatre secteurs notés de 0 à 3.
Pour chacune des pages, un compteur distinct enregistre le nombre
d’effacements déjà effectué (par
exemple, le niveau d’usure 3 indique
que la page a déjà été écrite 3 fois).
Supposons maintenant que la partition 1, qui contient en particulier les
données critiques de l'OS, corresponde, sur le tableau I, aux secteurs
logiques 1 à 8, les données de swap
et d'application étant stockées du
secteur logique 9 à la fin.
En pratique, une telle configuration
pourrait être générée lors du stockage d’une image du système d'exploitation sur un « nouveau » périphérique, par exemple. En simplifiant
beaucoup, c’est approximativement
la procédure suivie en production
avec les dispositifs de stockage fabriqués en série. Etudions maintenant
le fonctionnement d’un tel dispositif
série sur le terrain.
Sur le terrain, des données de processus sont constamment acquises et
42 / L’EMBARQUÉ / N°2
IIa.- Modification des données du secteur
logique 10
Niveau d'usure
3
3
4
3
3
3
3
4
Secteur/page
0
1
2
3
4
5
6
7
0
0
1
2
3
4
5
6
7
1
8
9
xx
11
12
13
14
15
2
16
17
18
19
20
21
22
10
3
IIb.- Modification des données
du secteur logique 22
Niveau d'usure
4
3
4
3
3
3
4
4
Secteur/page
0
1
2
3
4
5
6
7
0
0
1
2
3
4
5
6
7
1
8
9
xx
11
12
13
14
15
2
16
17
18
19
20
21
xx
10
3
22
3
3
4
4
IIc.- Acquisition de données
dans de nouveaux secteurs
Niveau d'usure
4
3
4
3
Secteur/page
0
1
2
3
4
5
6
7
0
0
1
2
3
4
5
6
7
1
8
9
xx
11
12
13
14
15
2
16
17
18
19
20
21
xx
10
3
22
23
24
La modification des données existantes et l'acquisition
de nouvelles données déplacent la position physique
des secteurs logiques aussi bien par rapport aux secteurs
physiques que par rapport aux pages physiques.
III.- Défaillance de la page 1
Niveau d'usure
99
98
99
99
99
99
99
99
Secteur/page
0
1
2
3
4
5
6
7
0
0
1
2
3
4
5
6
7
1
8
9
xx
11
12
xx
14
15
2
xx
17
18
19
xx
21
xx
10
3
22
23
24
xx
20
13
16
xx
La défaillance d'une page peut causer la perte de données
de la partition du système d'exploitation, qui est pourtant protégée
en écriture. La protection de la partition est inefficace.
stockées, et les secteurs du système
de fichiers sont modifiés en conséquence. L’influence du système de
fichiers peut être négligée, car cela
complexifie encore la situation. Supposons que les données du secteur
10 puis celles du secteur 22 soient
modifiées (voir tableaux IIa et IIb).
Deux nouveaux secteurs supplémentaires sont requis. Le volume des données croît constamment. Au final,
sans même que le wear levelling soit
très optimisé (on va du niveau d’usure
3 au niveau 5), l’affectation finale des
secteurs logiques aux secteurs physiques est loin d'être simple. Après
seulement quatre opérations d'accès
en écriture, la position relative des
données vis-à-vis des pages aussi
bien que des secteurs a changé. Que
va-t-il alors se passer si l'ensemble
des données d'une page sont perdues
ou (ce qui est moins grave mais plus
probable) si l’alimentation est brusquement coupée ?
● Scénario 1 : dégradation
d’une page
Nous supposons ici que toute une
page de mémoire flash tombe en
panne. En termes de niveau d’usure,
ce problème n’intervient en général
que très tardivement. Mais en cas
d'écritures répétées, le niveau d’usure
des secteurs s'élève constamment, et
la probabilité de panne s'élève en
conséquence. Dans l’exemple donné
tableau III, la panne affecte les secteurs 1, 9, 17, et 23. Si nous nous
reportons à la partition initiale, nous
constatons que sont touchés à la fois
des secteurs de la partition du système d'exploitation, protégée en écriture, et des secteurs contenant des
données de swap et d’application.
Ainsi, la protection en écriture sur la
partition est inefficace. Et du fait que
le système de fichiers ne sait pas
quels secteurs logiques sont situés
dans chaque page, aucune mesure
de sécurité n'est envisageable.
● Scénario 2 : coupure
d’alimentation pendant l’écriture
Si l’alimentation est brutalement
coupée, un grand nombre de données peut être sauvé grâce à l’algorithme interne mis en place à cet
effet, et via le système de fichiers
utilisé. Cependant, il existe toujours
un laps de temps particulier durant
un processus d'écriture, pendant
lequel le « nouvel » état ne peut être
restauré. Le tableau IV décrit la situation suivante : les données du secteur
Sous-système de stockage  Application
IV.- Défaillance de la page 1
lors de la réecriture des données
du secteur 26
Situation initiale
Niveau d'usure
10
9
10
10
10
10
10
10
Secteur/page
0
1
2
3
4
5
6
7
0
0
xx
2
3
4
5
6
7
1
8
9
xx
11
12
13
14
15
2
16
17
18
19
20
21
xx
10
3
22
23
24
26
1
xx
xx
xx
Événement planifié
Niveau d'usure
10
10
10
10
10
10
10
10
Secteur/page
0
1
2
3
4
5
6
7
0
0
26
2
3
4
5
6
7
1
8
9
xx
11
12
13
14
15
2
16
17
18
19
20
21
xx
10
3
22
23
24
xx
1
xx
xx
xx
Si l'alimentation est coupée et si l’algorithme de wear levelling
estime que toute la page 1 doit être effacée et les données
réécrites, il existe une période de temps pendant laquelle
le contenu de la page peut être perdu en dépit des mécanismes
de sécurité.
26 doivent être réécrites, et si possible dans la page 1 car c’est elle qui
a le niveau d’usure le plus bas. En
supposant que, d'après notre algorithme, le SSD est plein (en d'autres
termes, tous les secteurs logiques ont
quitté l'état original « FF », mais la
mémoire n'est pas vraiment pleine),
il faut effacer toute la page 1 et réécrire les données.
Si la tension d’alimentation chute à
ce moment précis, toutes les don-
nées stockées dans cette page restent
dans un état indéfini. Des mesures
de protection internes et une meilleure implémentation que celle de
notre exemple peuvent contribuer à
réduire fortement la durée de cette
période dangereuse, mais elle existera toujours, malgré toutes les solutions connues à ce jour. Dans notre
exemple, les secteurs affectés sont les
secteurs logiques 1, 26, 9, 17 et 23.
Si nous nous reportons à la partition
originale où le système d'exploitation est stocké dans les secteurs 1 à
8, nous voyons que les secteurs de la
partition protégée du système d'exploitation sont affectés aussi bien
que ceux affectés aux données de
swap et d’application. Là aussi, la
protection en écriture de la partition
est inefficace. Le système de fichiers
ne sait pas quels sont les secteurs
contenus dans chaque page, et il
n’est pas possible de mettre en
œuvre une mesure de sécurité fonctionnant correctement en cas de coupure d’alimentation.
Des solutions
pour contourner le problème
Tant que les systèmes de fichiers des
périphériques SSD à base de flash ne
donneront aucune information sur
l’affectation des secteurs physiques
aux secteurs logiques, il ne sera pas
possible d'implémenter des mesures
de sécurisation avec une simple unité
SSD. Mais les nombreux avantages
d'une mémoire non rotative pour les
accès rapides sont indéniables. Il
exemples d'utilisation d'une double unité
de stockage SSD
n Entrant pile dans la tendance SFF, les Box PC de la
série CB de Kontron (ici, le modèle CB 511) combinent
un SSD et des connecteurs CompactFlash internes
ou externes (externes ici). Ils peuvent ainsi stocker
l'image du système d'exploitation sur une très longue
période et en toute sécurité, puisque celle-ci n'est retouchée que pour des modifications de configuration.
Si le SSD dédié aux données de swap et d'application
tombe en panne, suite à des erreurs de pagination ou
à une coupure d'alimentation, le système se relance
en général sans nécessiter d'action de l'utilisateur.
n Le kit de développement de services intelligents
M2M de Kontron est une plate-forme compacte
à haute fiabilité pour
le développement
d'applications M2M.
Une carte MicroSD
interne de 4 Go
sert au stockage
des applications
de services M2M,
du middleware et
d'un système
d'exploitation. Il est
recommandé d'intégrer
une solution mémoire
additionnelle pour
les applications devant sauvegarder
de grandes quantités
de données à intervalles réguliers.
existe toutefois des moyens de surmonter le problème, à condition de
s'attendre à devoir faire des efforts et
des dépenses supplémentaires. Ce
sont des possibilités qu'il vaut mieux
évaluer dès le début d'un projet pour
éviter les mauvaises surprises sur le
terrain. La prise en compte tardive et
ultérieure de ces facteurs crée
presque toujours des problèmes
majeurs, car le logiciel aussi bien que
le matériel peuvent en être affectés.
Pour contourner le problème, deux
solutions sont envisageables :
- Créer des partitions séparées dans
deux dispositifs différents. C'est naturellement la voie facile, qui évite
d'avoir à réfléchir plus avant. Mais
elle augmente les coûts et l'espace
nécessaire à la solution globale. De
plus, il n'est pas toujours possible
d'ajouter un second médium ultérieurement.
- Utiliser des dispositifs spécialisés
capables de séparer « physiquement »
les pages. Différentes annonces ont
en effet fait état de SSD qui se
connectent comme doubles unités de
disques. Ont également été annoncés
des produits capables de geler une
affectation de secteur ou de page.
Toutefois, cela n'est guère envisageable d'opter pour une solution
employant une seule unité SSD, tant
que ces nouveaux périphériques ne
seront pas testés et disponibles en
volume. Entre-temps, il sera préférable soit d'utiliser des disques durs
magnétiques standards, soit de distribuer les tâches entre deux unités
de stockage SSD.
Dans ses Panel PC et ses Box PC,
Kontron offre ainsi, dans certains cas,
la possibilité d’utiliser deux SSD
indépendants, le second disque flash
pouvant faire office de RAM non
volatile aux côtés d'un disque flash
dédié au système d'exploitation, par
exemple.
Ce court exemple a montré comment, dans le développement des
systèmes embarqués, le diable est
souvent dans les détails, et comment
ce qui semble a priori une technologie innovante peut parfois ne pas
améliorer le produit global. La précaution est donc de mise lors du
choix de nouveaux composants.
Dans le doute, lorsqu'il faut élaborer
et évaluer une plate-forme, mieux
vaut consulter des concepteurs de
sous-ensembles matériels ayant l'expérience de l'embarqué.
n
L’EMBARQUÉ / N°2 /
43
Logiciels & systèmes
Professionnels de l’embarqué
Découvrez le système d’information
le plus complet, 100% utile à votre métier !
Une newsletter quotidienne
Votre fil d’actualité gratuit
Une newsletter hebdo
Tous les jeudis,
des infos exclusives à forte
valeur ajoutée
Un magazine
100% numérique, trimestriel,
pour une information fouillée,
analysée et développée
Un site Internet
Plus de 1 500 articles par an
exclusivement dédiés à l’embarqué
Abonnez-vous
•Pub 148x210.indd 1
www.lembarque.com
20/03/13 12:52

Documents pareils