La risposta generale a questa domanda è un forte "dipende". (Risposta pratica è quello che già avete, se i parametri del file di sistema non sono sbagliate, si dispone di un ampio margine, in questo caso). E dipende dai seguenti:
- tipo di scheda SD (SLC/MLC)
regolatore della carta
- SD (wear leveling)
- formato scheda SD
- file system
- fortuna
Se diamo uno sguardo ad un chip flash, è organizzata in settori. Un settore è un'area che può essere completamente cancellata (in realtà ripristinata a uno stato con solo 1), in genere 128 KiB per le schede SD. Gli zeri possono essere scritti bit per bit, ma l'unico modo per scriverli è cancellare il settore.
Il numero di cancellazioni di settore è limitato. L'operazione di cancellazione richiederà più tempo ogni volta che viene eseguita sullo stesso settore e c'è maggiore incertezza nei valori scritti in ogni cella. Il limite di scrittura assegnato a una carta è in realtà il numero di cancellazioni per un singolo settore.
Per evitare di raggiungere questo limite troppo velocemente, la scheda SD ha un controller che si occupa dello livello di usura. L'idea di base è che, in modo trasparente per l'utente, la carta cambi i settori utilizzati. Se si richiede la stessa posizione di memoria, può essere mappata su diversi settori in momenti diversi. L'idea di base è che la carta abbia un elenco di settori vuoti e, quando ne è necessario uno, prende quello che è stato usato meno.
Non ci sono altri algoritmi, pure. Il controller può tenere traccia dei tempi di cancellazione del settore o degli errori che si verificano su un settore. Purtroppo, i produttori di schede di solito non dicono troppo delle algoritmi esatti, ma per una panoramica, si veda:
http://en.wikipedia.org/wiki/Wear_leveling
Ci sono diversi tipi di chip flash disponibili. I chip SLC memorizzano solo un bit per cella di memoria (è 0 o 1), le celle MLC memorizzano due o tre bit. Naturalmente, i chip MLC sono più sensibili all'invecchiamento. Le celle a tre bit (otto livelli) potrebbero non sopportare più di 1000 scritture. Quindi, se hai bisogno di affidabilità, prendi una carta SLC nonostante il suo prezzo più alto,
Mentre il livellamento dell'usura distribuisce l'usura attraverso la carta, le carte più grandi subiscono più cancellazioni settoriali che piccole carte, poiché hanno più settori. In linea di principio, una scheda da 4 GiB con 100.000 cicli di scrittura sarà in grado di trasportare 400 TB di dati durante la sua vita.
Ma per rendere le cose più complicate, il file system ha molto a che fare con questo.Quando un piccolo pezzo di dati viene scritto su un disco, accadono molte cose diverse. Almeno i dati vengono aggiunti al file e le informazioni sulla directory associate (dimensione del file) vengono cambiate. Con un tipico file system questo significa almeno due 4 blocchi di blocchi KiB, di cui uno può essere solo un'appendice (non è necessario cancellarlo). Ma possono accadere molte altre cose: scrivere su un giornale, un blocco che si riempie, ecc.
Ci sono file system che sono stati sintonizzati per essere utilizzati con i dispositivi flash (JFFS2 è il più comune). Sono tutti, per quanto ne so, ottimizzati per il flash raw e si occupano del livellamento dell'usura e utilizzano operazioni atomiche a livello bit o ottetto. Non sono a conoscenza di alcun file system ottimizzato per le schede SD. (Forse qualcuno con interessi accademici potrebbe crearne uno prendendo in considerazione i sistemi di livellamento dell'usura delle carte, il che risulterebbe in una bella carta o anche in pochi.) Fortunatamente, i soliti file system possono essere regolati per essere più compatibili (più veloce, lead usura) con la scheda SD modificando i parametri del file system.
Ora che ci sono questi due strati sulla parte superiore del disco fisico, è quasi impossibile tenere traccia di quante Erases sono stati effettuati. Uno degli strati è molto complicato (file system), l'altro (wear leveling) completamente non trasparente.
Quindi, possiamo solo fare delle stime approssimative. Supponiamo che una piccola scrittura invalidi in media due 4 blocchi KiB. In questo modo la registrazione ogni 10 minuti consuma un settore di cancellazione di 128 KiB ogni 160 minuti. Se la carta è una carta da 8 GiB, ha circa 64k settori, quindi la carta è passata una volta ogni 20 anni. Se la scheda dura 1000 cicli di scrittura, sarà valida per 20.000 anni ...
Il calcolo di cui sopra presuppone un perfetto livellamento dell'usura e un file system molto efficiente. Tuttavia, un fattore di sicurezza di 1 000 dovrebbe essere sufficiente.
Naturalmente, questo può essere rovinato abbastanza facilmente. Uno dei modi più semplici è dimenticare di montare il disco con l'attributo noatime. Quindi il file system aggiornerà i tempi di accesso ai file, il che potrebbe comportare una scrittura ogni volta che si accede a un file (anche letto). O il sistema operativo sta scambiando la memoria virtuale sulla scheda.
Ultimo ma non meno importante dei fattori è la fortuna. Le moderne schede SD hanno la sfortunata tendenza a morire per altre cause. Il numero di limoni con produttori ben noti non è molto piccolo. Se uccidi una carta, non è necessariamente a causa del limite di usura. Se la scheda è consumata, è ancora leggibile. Se è completamente morto, è morto per qualcos'altro (elettricità statica, piccola frattura da qualche parte).
Dipende dalla marca e modello della scheda SD, ma con la maggior parte delle carte moderne penso che dovresti stare bene. –