Carte SD limite d'écriture: l'enregistrement des données
Je veux suivre/s'inscrire lors de mon système (un Raspberry Pi) a été fermée, généralement dû à la brusque perte de puissance.
Je veux le faire par l'enregistrement d'un battement de cœur toutes les 10 minutes pour une carte SD - si toutes les 10 minutes, il va sur la SD et inscrivez l'heure/de la date dans un fichier. Serait que les dommages de la SD sur le long terme?
Si il n'y a qu'100k cycles d'écriture à elle, qu'elle aurait un bloc défectueux dans une couple d'années. Mais j'ai lu il y a des circuits pour éviter qu'il - serait-il empêcher le bloc défectueux? Serait-il plus sûr pour distribuer le journal en plusieurs blocs?
Grâce
Cela dépend de la marque et le modèle de votre carte SD, mais avec la plupart des cartes modernes, je pense que vous devriez être bien.
OriginalL'auteur user3765743 | 2014-06-23
Vous devez vous connecter pour publier un commentaire.
La réponse générale à cette question est forte "ça dépend". (En pratique, la réponse est ce que vous avez déjà; si votre système de fichiers de paramètres ne sont pas mauvais, vous avez une grande marge dans ce cas.) Il dépend des éléments suivants:
Si nous prenons un coup d'oeil à une puce de mémoire flash, il est organisé en secteurs. Un secteur est une zone qui peut être complètement effacé (en fait d'une remise à l'état (1), généralement 128 Ko pour les cartes SD. Les zéros peut être écrite de la bit-par-bit, mais la seule façon d'écrire est d'effacer le secteur.
Le numéro de secteur efface est limitée. L'opération d'effacement prendra plus de temps à chaque fois qu'il est exécuté sur le même secteur, et il n'y a plus d'incertitude dans les valeurs écrites dans chaque cellule. L'écriture, à la limite donnée à une carte est vraiment le nombre de efface pour un seul secteur.
Pour éviter d'atteindre cette limite trop rapide, la carte SD a un contrôleur qui prend soin de le nivellement d'usure. L'idée de base est que de manière transparente pour l'utilisateur de la carte des changements de secteurs qui sont utilisés. Si vous demandez la même position de mémoire, il peut être mappés à des secteurs différents à des moments différents. L'idée de base est que la carte dispose d'une liste de secteurs vides, et à chaque fois que l'on est nécessaire, il prend celui qui a été utilisé moins.
Il existe d'autres algorithmes, comme bien. Le contrôleur pourra suivre l'évolution du secteur effacer des temps ou des erreurs qui se produisent sur un secteur. Malheureusement, les fabricants de cartes ne sont généralement pas en dire trop sur les algorithmes exacts, mais pour un aperçu, voir:
http://en.wikipedia.org/wiki/Wear_leveling
Il existe différents types de puces flash disponibles. SLC puces de stocker un seul bit par cellule de mémoire (il est soit 0 ou 1), MLC cellules stocker deux ou trois morceaux. Naturellement, des puces MLC sont plus sensibles au vieillissement. Trois bits (huit), les cellules peuvent pas supporter plus de 1000 écrit. Donc, si vous avez besoin de fiabilité, de prendre un SLC carte, malgré son prix plus élevé,
Que le nivellement d'usure distribue le porter à travers la carte, plus grand, plus les cartes de supporter plus de secteur efface que les petites cartes, car elles ont plus de secteurs. En principe, un 4 Go carte avec 100 000 cycles d'écriture sera en mesure de transporter 400 to de données au cours de sa durée de vie.
Mais pour compliquer encore les choses, le système de fichier a beaucoup à voir avec cela. Quand un petit morceau de données sont écrites sur le disque, beaucoup de choses différentes. Au moins les données sont ajoutées au fichier et le répertoire des informations (taille du fichier) est modifié. À un type de système de fichiers, cela signifie au moins deux 4 KiB bloc de l'écrit, dont l'un peut être juste un ajout (aucune obligation pour l'effacer). Mais beaucoup d'autres choses peuvent se produire: écrire pour un journal, un bloc plein, etc.
Il y a des systèmes de fichiers qui ont été modifiés pour être utilisés avec les périphériques flash (JFFS2 étant le plus commun). Ils sont tous, pour autant que je sache, optimisé pour les matières premières, de flash et de prendre soin de nivellement d'usure et d'utilisation bit ou octet niveau des opérations atomiques. Je ne suis pas au courant de tous les systèmes de fichiers optimisé pour les cartes SD. (Peut-être quelqu'un avec intérêts académiques pourrait en créer un en prenant le nivellement d'usure des systèmes de cartes en compte. Qui seraient le résultat d'un joli papier ou même un peu.) Heureusement, l'habitude de systèmes de fichiers peuvent être modifiés pour être plus compatible (plus rapide, conduit à l'usure et à la déchirure) avec la carte SD en modifiant le fichier de paramètres du système.
Maintenant qu'il y a ces deux couches sur le dessus du disque physique, il est presque impossible de savoir le nombre efface ont été effectuées. L'une des couches est très compliqué (système de fichiers), l'autre (le nivellement d'usure) entièrement non-transparent.
Donc, on peut juste faire des estimations approximatives. Nous allons deviner qu'une petite écrire invalide les deux 4 KiB blocs en moyenne. De cette façon, la journalisation de toutes les 10 minutes consomme 128 Kio effacer secteur tous les 160 minutes. Si la carte est une carte 8 Go carte, il a autour de 64 ko secteurs, de sorte que la carte est allé une fois tous les 20 ans. Si la carte supporte 1000 cycles d'écriture, il sera bon pour 20 000 ans...
Le calcul ci-dessus suppose que parfait nivellement d'usure et un très efficace système de fichiers. Cependant, un facteur de sécurité de 1 000 devrait être suffisant.
Bien sûr, cela peut être abîmé très facilement. L'un des moyens les plus simples est d'oublier de monter le disque avec le noatime attribut. Ensuite, le système de fichiers fichier de mise à jour des temps d'accès, ce qui peut entraîner une écriture à chaque fois qu'un fichier est téléchargé (même lecture). Ou l'OS est une permutation de la mémoire virtuelle sur la carte.
Dernier mais pas moins des facteurs est de la chance. Modernes, les cartes SD ont la fâcheuse tendance à mourir d'une autre cause. Le nombre de citrons avec même assez bien connu des fabricants n'est pas très petit. Si vous tuez une carte, il n'est pas nécessairement à cause de la limite d'usure. Si la carte est usé, il est toujours lisible. Si elle est complètement mort, il est mort d'autre chose (de l'électricité statique, les petites rupture quelque part).
OriginalL'auteur DrV