Mi piacerebbe capire come i filesystem (moderni) sono implementati e avere problemi a comprendere appieno i superblocchi e i loro backup. Faccio riferimento a ext4 e btrfs, ma le domande possono riguardare anche altri file system.
Ext4 memorizza un paio di superblocchi (il mio fs, ad esempio, ha un SB principale e sette backup). Capisco che, dal momento che il superblocco definisce caratteristiche importanti del filesystem, un backup inline ha senso. Ma non capisco perché così tanti backup, quindi:
- Perché archiviare così tanti superblocchi? Qual è il vantaggio di avere 7 SB di backup rispetto ad appena uno?
Secondo documentazione ext4 ext4 memorizza un "tempo di scrittura" all'interno dell'SB (ultima scrittura da epoca). Ciò implicherebbe che ogni operazione di scrittura consiste anche in una scrittura sull'SB. Dato il mio sistema, con 7 SB di backup, ogni transazione di scrittura consisterebbe in 8 scritture SB. Sembra una quantità ridicola di scritture di metadati non sequenziali per una singola transazione, che portano alla domanda:
- Sono sicuro che su SBs ext4 sono scritti così spesso?
Le stesse domande si applicano fondamentalmente a btrfs dove gli SB sono distribuiti tra blocchi di indirizzi statici (blocco primario a 0x10000) e solo in modalità SSD (a causa di problemi di livellamento dell'usura) ne viene scritto uno solo per commit.
- C'è un vantaggio per btrfs per memorizzare il superblocco primario a 0x10000 invece di 0x0?
La documentazione di btrfs afferma inoltre: Si noti che btrfs riconosce solo i dischi con un superblocco 0x10000 valido; altrimenti, ci sarebbe confusione con altri filesystem. Questo è ancora più confuso poiché un SB rotto a 0x10000 porterebbe a un filesystem non valido, anche se ci sono altri SB validi in altre posizioni.
- In che modo btrfs beneficia dei backup superblocchi, se il filesystem non è valido su un superblocco primario non funzionante?