3.15. Étude de la sauvegarde des fichiers

Ce problème a pour but l'étude des conditions d'exploitation de la sauvegarde régulière des fichiers disques.
Pour cela on considère une installation équipée de 5 piles de disques de chacune 900 Mo, dont le temps d'accès moyen est de 21 ms, et le débit de 2.5 Mo/sec. Par ailleurs elle dispose de dérouleurs à 6250 BpI, dont le débit est de 500 Ko/sec. Les bandes utilisées font 2400 pieds.
A- On effectue la sauvegarde en utilisant des blocs de 32 Ko, tant en lecture disque qu'en écriture bande. Combien faut-il de bandes par pile, combien au total, quel temps demande cette sauvegarde complète?
B- Devant les temps importants de la sauvegarde complète, on désire faire une sauvegarde incrémentale. Des mesures faites sur le système en cours d'exploitation ont donné les résultats suivants:
. la taille des blocs est de 8 Ko,
. il y a en moyenne 10 accès disque par seconde,
. il y a environ 4 lectures pour 1 écriture.
On décide d'écrire systématiquement sur bande les blocs qui sont écrits sur disque. Déterminer, pour une période de 24 heures, combien de bandes sont nécessaires. Proposer une méthode d'exploitation des bandes de sauvegarde complète et incrémentale pour restaurer une pile de disques endommagée.
C- Un utilisateur fait remarquer qu'un même bloc peut être écrit plusieurs fois dans une même période de 24 heures, aussi, pour réduire encore le nombre de bandes, et améliorer la restauration, on effectue d'autres mesures pour savoir combien de fois en moyenne, un même bloc est écrit dans une période donnée. Les résultats sont les suivants:
période
6 h.
24 h.
2 j.
3 j.
4 j.
5 j.
nombre
3
5
7
8.5
9.5
10
On décide en conséquence de sauvegarder à la fin d'une période de 6 heures les blocs modifiés durant cette période. Déterminer la taille nécessaire, et proposer une exploitation.
D- On décide d'acheter une sixième pile de disques de mêmes caractéristiques, et de l'utiliser pour la sauvegarde incrémentale à la place du dérouleur, en utilisant la méthode de la question C. Tout en conservant la période de 6 heures pour sauvegarder les blocs modifiés pendant la période, on exploite la nature aléatoire du support, pour ne conserver que la dernière version des blocs modifiés, donner la taille de l'occupation disque au bout de 6 h., 24 h., 48 h. et 5 jours. En déduire une exploitation possible.
E- Pour fournir un service complémentaire aux utilisateurs, on décide de faire la sauvegarde toutes les 6 heures, comme en D, mais par fichier modifié, et non plus par bloc, sachant que ceci coûte 50 % d'espace supplémentaire. Quel service peut-on offrir?
Solution du problème 3.15

3.15.1. Question A

L'espace interbloc correspond à 0.75 * 6250 = 4690 octets. En utilisant des blocs de 32 Ko, la bande sera occupée à 32768 / (32768 + 4690) = 87.5 %. Une bande de 2400 pieds peut donc contenir effectivement 158 Mo (on prendra 150 Mo pour simplifier), soit 6 bandes par pile, et 30 bandes pour l'ensemble des disques. La lecture sur le disque pour la sauvegarde, peut être organisée de façon à réduire au minimum les temps d'attente. Il y a cependant au minimum 150 / 2.5 = 60 secondes pour la lecture. En supposant de même que les opérations et le matériel permettent à la bande de ne pas ralentir lors de l'espace interbloc, il faut 180 / 0.5 = 360 secondes pour l'écriture sur bande. L'ordinateur peut éventuellement permettre que les transferts disques et bandes se fassent en même temps, il faut alors 6 mn. par bande (sinon il en faudra 7). Le temps total d'une sauvegarde complète d'un disque est donc de 36 minutes, et de 3 heures pour l'ensembles des 5 disques.

3.15.2. Question B

En 24 heures, il y a 24 * 3600 * 10 = 864000 accès disques, dont 1/5 sont des écritures. Il y a donc 172800 blocs disques de 8 Ko à écrire sur bande. En les regroupant 4 par 4, on aura des blocs de 32 Ko sur bande. L'espace total est de 172800 * 8192, soit 1350 Mo, soit 9 bandes.
Lorsqu'une pile de disques est endommagée, pour la reconstruire, on doit repartir de la dernière sauvegarde complète de cette pile, et utiliser les bandes incrémentales postérieures à cette sauvegarde pour mettre à jour les blocs disques modifiés depuis cette date. On peut par exemple sauvegarder complètement une pile par jour, par rotation, ce qui demandera 36 minutes et 6 bandes en plus des 9 bandes incrémentales tous les jours (au lieu de 30 bandes et 3 heures!). La restauration d'une pile endommagée peut demander entre 36 minutes (le crash est juste après la sauvegarde) et 36 + 5 * 9 * 6 = 306 minutes, soit 5 heures (le crash est juste au moment où aurait dû commencer la sauvegarde de ce disque).
Notons que chaque bloc bande de 32 Ko contient 4 blocs disque de 8Ko, situés n'importe où. Si les blocs sont équitablement répartis sur les 5 piles, il y aura, par bande, 150000 / (8 * 5) = 3750 blocs de 8 Ko pour cette pile; comme l'écriture aléatoire d'un bloc demande 21 + 3.2 ms, le temps d'écriture disque total par bande de sauvegarde incrémentale est donc 3750 * 24.2 = 90750 ms, soit 1.5 minutes, et donc inférieur à la lecture de la bande elle-même.

3.15.3. Question C

Pour une période de 6 heures, il y a 6 * 3600 * 10 = 216000 accès disque, dont 43200 écritures. En fin de période, puisque les blocs écrits durant la période le sont en moyenne 3 fois, il y a donc en fait 43200 / 3 = 14400 blocs disques à écrire sur bande, soit environ 115 Mo, soit moins de 1 bande par période de 6 heures, soit 4 bandes par jour (au lieu de 9 dans la question précédente). La restauration d'un disque endommagé demandera entre 36 minutes et 36 + 5 * 4 * 5 = 136 minutes soit 2 h. 30 mn. (les bandes étant de 115 Mo, il ne faut plus que 5 minutes pour les lire).
Pour diminuer ce temps de restauration, il faudrait que les bandes utilisées ne contiennent que des informations concernant la pile à restaurer. Ceci n'était pas envisageable en B, car il aurait fallu en permanence 1 dérouleur par pile. Par contre, ici, la sauvegarde incrémentale étant déclenchée périodiquement, peut être faite pile par pile. En moyenne, chaque pile donne lieu à 115 / 5 = 23 Mo de sauvegarde incrémentale toutes les 6 heures. Une bande pourra contenir 6 sauvegardes incrémentales successives d'une même pile de disques. Il faudra donc 5 * 4 / 6 = 3.3 bandes par pile de disques entre deux sauvegardes complètes de cette pile. Si le temps de lecture d'une bande incrémentale demande cette fois 5.5 minutes (138 Mo), tous les blocs contenus sur cette bande sont relatifs à la même pile. Il y aura alors 14400 / 5 * 6 = 17280 blocs de 8 Ko à réécrire sur disque par bande de sauvegarde incrémentale, ce qui demandera 17280 * 24.2 = 418 secondes, soit 7 minutes. La réécriture sur disque des blocs de la sauvegarde incrémentale prendra plus de temps que la lecture de la bande. La restauration demandera donc entre 36 minutes et 36 + 3.3 * 7 = 59 minutes.

3.15.4. Question D

Si on utilise une pile de disques spécialisée pour la sauvegarde incrémentale, lorsqu'on recopie un bloc sur le disque spécialisé, on peut récupérer l'espace occupé éventuellement par une version antérieure de ce bloc. Dans ces conditions, l'espace nécessaire pour une pile donnée, et à un moment donné, correspond au nombre de blocs modifiés depuis la dernière sauvegarde complète de cette pile. En supposant que les opérations disques sont équitablement réparties sur toutes les piles, cet espace est le suivant:
moment
6h.
24 h.
2 j.
3 j.
4 j.
5 j.
écritures
8640
34560
69120
103680
138240
172800
nombre blocs
2880
6912
9874
12198
14552
17280
espace
23 Mo
55 Mo
79 Mo
98 Mo
116 Mo
137 Mo
On peut donc en conclure que l'espace total moyen nécessaire est égal à 55 + 79 + 98 + 116 + 137 = 485 Mo. Le disque supplémentaire est donc amplement suffisant.
L'exploitation pourrait être la suivante:
- sauvegarde sur le disque spécialisé de tous les blocs modifiés depuis le début de période.
- récupération de l'espace occupé par les anciennes versions de ces blocs sur le disque spécialisé.
Remarque: il peut être judicieux que la sauvegarde complète d'une pile soit non seulement sur bande, mais aussi sur un disque, si l'unité supplémentaire accepte les cartouches amovibles. Cela rallonge éventuellement la sauvegarde de 900 / 2.5 = 360 secondes, soit 6 minutes (peut-être pas si les opérations d'écritures bandes peuvent être simultanées à l'écriture disque). En cas de crash disque, on peut repartir depuis la cartouche, et la recopier sur la pile correspondante, ce qui demandera 12 minutes (6 minutes si l'installation permet la simultanéité des lectures et des écritures sur deux piles différentes), au lieu de 36 minutes à partir de bande. Il faut ensuite mettre à jour les blocs modifiés depuis cette sauvegarde complète en utilisant la sauvegarde incrémentale sur disque spécialisé, ce qui demandera au pire 2 * 24.2 * 17280 = 836 secondes, soit 14 minutes (7 minutes si la simultanéité des lectures et des écritures est possible).

3.15.5. Question E

Si on fait la sauvegarde incrémentale par fichier, et non plus par bloc, cela coûtera 50 % d'espace de plus, et nécessitera donc 730 Mo, ce qui est encore acceptable. L'avantage de faire cette sauvegarde par fichier, est de permettre la récupération non plus par pile, mais par fichier. En effet, le fichier étant identifiable en tant que tel dans les supports de sauvegarde, une telle récupération consiste d'abord à rechercher le fichier sur les sauvegardes incrémentales. S'il est trouvé, la recherche s'arrête. S'il n'est pas trouvé, la recherche se poursuit sur la dernière sauvegarde complète de la pile (ou de toutes les piles). Si on garde plusieurs sauvegardes complètes successives, il est aussi possible de remonter dans ces sauvegardes en commençant aux plus récentes, vers les plus anciennes. C'est pourquoi on distingue souvent 3 niveaux de sauvegardes:
Une telle exploitation permet de fournir à l'utilisateur le service de restauration d'un fichier particulier jusqu'à 1 an après sa destruction sur les disques.