Il sistema operativo Windows XP - Apogeo
Il sistema operativo Windows XP - Apogeo
Il sistema operativo Windows XP - Apogeo
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
il file dei cluster difettosi (bad-cluster file) tiene traccia di tutte le zone difettose nel volume e NTFS<br />
usa questa registrazione per il recupero dagli errori.<br />
5.2 Recupero<br />
In molti semplici file system, un guasto all’alimentazione nel momento sbagliato può danneggiare<br />
le strutture dati del file system in modo talmente grave da mescolare i dati dell’intero volume.<br />
Molte versioni di UNIX memorizzano metadati ridondanti su disco, e li recuperano in caso di guasto<br />
con il programma fsck per controllare tutte le strutture dati del file system e per ristabilirle<br />
forzosamente ad uno stato consistente; il loro ristabilimento spesso coinvolge la cancellazione di<br />
file danneggiati e la cancellazione di dati dal cluster in cui erano stati scritti assieme ai dati dell'utente,<br />
ma non correttamente registrati nelle strutture metadati del file system. <strong>Il</strong> controllo può essere un<br />
processo lento e può far perdere significative quantità di dati.<br />
5.2.1 <strong>Il</strong> file di log di NTFS<br />
NTFS adotta un approccio differente per la robustezza del file system; in NTFS, tutti gli<br />
aggiornamenti della struttura dati del file system avvengono all'interno delle transazioni. Prima di<br />
alterare una struttura dati, la transazione scrive una registrazione del log che contiene informazioni<br />
redo e undo. Dopo aver cambiato la struttura dati, la transazione scrive una registrazione commit<br />
nel log per indicare che ha avuto successo.<br />
In seguito ad un guasto, il <strong>sistema</strong> può ristabilire le strutture dati del file system in uno stato<br />
consistente elaborando i record di log; dapprima eseguendo di nuovo le operazioni delle transazioni<br />
commit e poi annullando le operazioni per le transazioni che non hanno avuto successo prima del<br />
guasto. Periodicamente (solitamente ogni 5 secondi), viene scritta nel log una registrazione di<br />
controllo; il <strong>sistema</strong> non ha bisogno delle registrazioni di log, eseguite prima del controllo per<br />
recuperare da un guasto, esse possono essere scartate in modo che il file di log non si sviluppi senza<br />
alcun limite. La prima volta, dopo l’avvio del <strong>sistema</strong> in cui si accede ad un volume NTFS, NTFS<br />
esegue automaticamente il recupero del file system.<br />
Questo schema non garantisce che il contenuto del file dell’utente sia corretto dopo un guasto;<br />
assicura solo che le strutture dati del file system (i file di metadati) siano intatte e riflettano un<br />
qualche stato di consistenza esistente prima del guasto. Si potrebbe estendere lo schema di<br />
transazione per comprendere i file dell'utente e la Microsoft potrebbe farlo in futuro.<br />
<strong>Il</strong> log viene memorizzato all'inizio del volume, nel terzo file dei metadati ed è creato di<br />
dimensione fissa massima quando viene formattato il file system. È composto da due sezioni:<br />
l’area di log (logging area), che è una coda circolare delle registrazioni di log, e l’area di riavvio<br />
(restart area), che mantiene informazioni sul contesto, quali la posizione nell’area di log da cui<br />
NTFS dovrebbe far partire una lettura durante un recupero. Infatti, l’area di riavvio mantiene due<br />
copie delle informazioni correlate, in modo che sia ancora possibile il recupero nel caso che una<br />
copia venga danneggiata durante un guasto.<br />
La funzionalità di log è fornita dal servizio di log-file (log-file service) di <strong>Windows</strong> <strong>XP</strong>, il<br />
quale, oltre a scrivere i record di log ed eseguire le azioni di recupero, tiene traccia dello spazio libero<br />
nel file di log. Se lo spazio libero diventa troppo piccolo, il servizio di log-file accoda le transazioni<br />
in sospeso e NTFS ferma tutte le nuove operazioni di I/O. Dopo il completamento dell’operazione,<br />
37