Je ne suis pas très enthousiaste à l'idée d'acheter un disque dur USB, mais je suis conscient que les cartes SD ne conviennent pas à de nombreuses répétitions de lecture et d'écriture.
Puis-je prendre des mesures pour prolonger la durée de vie de ma carte SD pendant qu'elle est utilisée par mon Raspberry Pi?
sd-card
durability
Très irrégulière
la source
la source
Réponses:
Ces méthodes devraient augmenter la durée de vie de la carte SD en minimisant le nombre de lectures / écritures de différentes manières:
Désactiver l'échange
L'échange consiste à utiliser une partie de la carte SD en tant que mémoire volatile. Cela augmentera la quantité de RAM disponible, mais entraînera un nombre élevé de lectures / écritures. Il est peu probable que les performances augmentent de manière significative.
Désactiver l'échange avec la
swapoff
commande:Vous devez également empêcher son retour après un redémarrage:
sudo apt-get remove dphys-swapfile
le supprimer définitivement. Il est préférable de supprimer car définir le paramètreCONF_SWAPSIZE
sur 0, comme expliqué dans cette réponse , ne semble pas fonctionner et crée toujours un fichier d'échange de 100 Mo après le redémarrage./etc/fstab
Désactivation de la journalisation sur le système de fichiers
Utiliser un système de fichiers de journalisation tel que
ext3
ouext4
SANS journal est une option pour diminuer les lectures / écritures. L’inconvénient évident de l’utilisation d’un système de fichiers avec journalisation désactivée est la perte de données résultant d’un démontage déplacé (par exemple, une panne d’alimentation, un blocage du noyau, etc.).Vous pouvez désactiver la journalisation en le
ext3
montant en tant queext2
.Vous pouvez désactiver la journalisation sur
ext4
un lecteur non monté comme ceci:Le drapeau du mont noatime
Attribuez l'indicateur de montage noatime aux partitions résidant sur la carte SD en l'ajoutant à la section des options de la partition située dans
/etc/fstab
.Répertoires en RAM
Les répertoires très utilisés tels que
/var/tmp/
et/var/log
peuvent éventuellement être déplacés vers la RAM de la manière/etc/fstab
suivante:Cela permettra
/var/tmp
d'utiliser 50 Mo de RAM en tant qu'espace disque. Le seul problème avec cette opération est que les lecteurs montés dans la RAM ne persisteront pas après un redémarrage. Ainsi, si vous montez/var/log
et que votre système rencontre une erreur entraînant son redémarrage, vous ne pourrez pas savoir pourquoi.Répertoires sur disque dur externe
Vous pouvez également monter certains répertoires sur un disque dur USB persistant. Plus de détails à ce sujet peuvent être trouvés dans cette question .
Le Raspberry Pi peut également démarrer sa partition racine à partir d'un lecteur externe. Cela peut être via USB ou Ethernet et signifie que la carte SD ne sera utilisée que pour déléguer à un autre périphérique lors du démarrage. Cela nécessite un peu de piratage du noyau, car je ne pense pas que le noyau par défaut supporte le stockage USB. Vous pouvez trouver plus d'informations à cette question , ou ce post de blog externe .
la source
noatime
devrait être un défaut.noatime
n'est pas par défaut, du moins sur Arch./var/tmp
en mémoire. Peut-être que vous avez confondu avec/tmp
.noatime
vous cause des problèmes, vous pouvez également utiliserrelatime
ce qui réduit considérablement les écritures sur disque lors de la lecture plutôt que de les supprimer complètement.Si les options fournies par Jivings ne sont pas possibles pour votre application, une autre option pour prolonger considérablement sa durée de vie consiste à utiliser une carte SD beaucoup plus volumineuse que nécessaire.
Laisse beaucoup d'espace libre
La plupart des cartes SD décentes utilisent des algorithmes de nivellement d'usure pour minimiser le nombre d'écritures de chaque bloc. Ainsi, si la carte SD est plus grande que nécessaire, l'usure peut être répartie sur une zone beaucoup plus grande d'espace libre.
Une des raisons pour lesquelles le nivellement par usure est si important est que certains systèmes de fichiers, tels que FAT (le format par défaut de nombreuses cartes SD), martèlent les mêmes secteurs, encore et encore.
Pour plus d'informations à ce sujet, voir les réponses à la question Est-il vrai qu'une carte SD / MMC s'égale avec son propre contrôleur? sur Electronics Stack Exchange , en particulier cette réponse .
Une statistique intéressante de cette réponse est que
Mais le problème est que
Cela peut rendre votre choix du système de fichiers important si vous devez garantir un stockage fiable.
Une dernière remarque: doubler la taille de la carte SD pourrait plus que doubler sa longévité.
Par exemple, si vous avez une carte SD de 2 Go avec 200 Mo d'espace disque disponible, le passage à une carte de 4 Go vous donnera 11 fois l'espace disponible, la capacité de nivellement d'usure et donc la longévité, tandis que le passage à une carte de 16 Go vous donnera 71 fois l'espace libre espace.
la source
MMC_ERASE
commande (facultative) définie quelque part dans la norme MMC / SD uniquement à cette fin. Bien que de toutes les cartes SD, je n’ai essayé qu’une seule carte (celle fournie avec mon Pi-) le supporte réellement.La seule chose que je vois est de NE PAS permuter sur la carte SD.
Permuter sur la carte SD est probablement ce qui pourrait tuer votre carte SD.
Si vous avez besoin de plus de RAM, vous pouvez essayer d’utiliser zram. Il y a un post sur http://raspberry.pi.gw.gd/t50-Using-ZRAM.html qui donne quelques détails sur l’utilisation de ZRAM sur la framboise pi.
Plus d'infos pour zram sur http://en.wikipedia.org/wiki/ZRam
De plus, les cartes SD les plus récentes sont bien plus solides que les anciennes. Acheter une nouvelle carte SD de classe 10 est probablement une bonne option si vous souhaitez la voir durer longtemps.
la source
Vous pouvez essayer d’exécuter Puppy Linux qui est complètement résidant en ram. Il est très petit et extrêmement rapide puisqu'il fonctionne entièrement en mémoire en copiant l'image de stockage (sur la carte SD dans votre cas) dans la RAM au démarrage, puis en effaçant périodiquement les modifications dans le stockage. La fréquence de cette sauvegarde est contrôlée par l'utilisateur, y compris manuellement.
Puppy utilise le système de fichiers couches aufs ou ancien unionfs avec l'un des systèmes de fichiers Linux standard tels qu'ext3 ou ext4. Il peut également résider sur des partitions FAT ou NTFS.
Il existe au moins deux versions de Puppy spécialement conçues pour le RPi, dont l’une d’elles a été créée par le "Puppy Master", Barry Kauler.
Pour plus d'informations, visitez http://puppylinux.org/wikka/Puppi
la source
La plupart des gens ici parlent de leurs hypothèses et non de leur expérience personnelle.
J'utilise RaspberryPi avec RasPBX comme standard de société avec 8 extensions et un fax. Nous avons 3 lignes réseau IP et une ligne fixe via LinkSYS SPA3000. Ma carte SD Kingston 4 Go Kingston initiale n'a fallu qu'un mois pour mordre la poussière.
J'étais encore en train d'expérimenter et je n'avais pas de sauvegarde. BTW le Pi est connecté à un onduleur APC. J'ai ensuite reconfiguré RasPBX dans son intégralité, mais cette fois-ci, j'ai déplacé les fichiers / var / log et / var / lib / mysql sur notre NAS d'entreprise. Ce SD était toujours OK après 3 mois.
Ensuite, nous avons eu un été très chaud. Au cours du troisième mois, le pi a commencé à ne pas détecter l’Ethernet à l’improviste. Puis un jour, j’ai trouvé que tous les Leds étaient sombres et que cela ne démarrerait pas.
J'ai remplacé le Pi par un autre qui fonctionne. Celui en panne a commencé à fonctionner après refroidissement, mais cela fonctionne plutôt irrégulier et lorsqu'il démarre sur RasPBX, le mode vidéo ne bascule pas en mode graphique, il reste en 80 * 25 texte. C'était vraiment foiré. J'ai commandé un ensemble dissipateur thermique depuis. Le nouveau Pi fonctionne avec cela depuis plus de 2 mois, 7 jours sur 7.
Donc, si vous voulez utiliser le pi dans un environnement 7/24, ne soyez pas cher: achetez un dissipateur thermique et évitez d'utiliser / var / log et d'autres répertoires surchargés sur la carte SD.
la source
J'ai comparé toutes les solutions de l'utilitaire TMPFS et la meilleure réponse est une synthèse du script prepare-dirs (voir http://grenzdebiel.dyndns.org/wordpress/?p=98 ) avec un fichier / etc / defaults / tmpfs approprié ( (voir http://www.a-netz.de/2013/02/ramdisks-for-the-raspberry/ ).
Les étapes nécessaires pour effectuer sur raspbian sont les suivantes:
1. éditer
/etc/default/tmpfs
et régler :Je recommanderais les tailles suivantes:
2. Activer des répertoires supplémentaires en utilisant / etc / fstab
3. utilisez le script
/etc/init.d/prepare-dirs
pour créer les répertoires manquants/var/log
afin que tous les démons commencentVoir à la fin ce qu'il contient dans mon cas.
4. Rendre le script exécutable
chmod 755 /etc/initd/prepare-dirs
.5. Assurez-vous que le script sera démarré d’abord au démarrage avant que vos démons ne démarrent:
update-rc.d prepare-dirs defaults 01 99
contenu de
/etc/init.d/prepare-dir
:C'est ça.
la source
Désactiver le fichier d'échange:
Il n'est pas nécessaire de désinstaller, mais si vous ne l'utilisez pas et que vous voulez de l'espace, vous pouvez le supprimer en toute sécurité. Commande alternative à supprimer:
Utilisation: / sbin / dphys-swapfile {setup | swapon | swapoff | uninstall}
la source
Endurance Flash Cell:
C'est purement mathématique sur les grandes cartes et l'usure normale. Si vous deviez écrire jour et nuit sur une carte flash de type MLC de 8 Go, il faudrait environ 30 jours pour la tuer.
L’épisode 99 de Techsnap parle de l’usure des disques SSD et Allen explique qu’il est impossible d’utiliser un disque SSD au quotidien et qu’il n’est pas nécessaire de s’inquiéter de la désactivation des swap, crons et autres. Cela fonctionne juste maintenant! Le nivellement d'usure intelligent prend soin de tout.
L’usure normale indiquée par Kingston devrait vous donner 27 ans de la vie d’une caméra numérique professionnelle.
Le prix du flash a baissé et la technologie est bien meilleure.
La plupart des cartes SD survivront à deux ou trois générations d’appareils. À ce moment-là, il sera considéré comme trop petit et trop lent pour être utilisé avec une mise à niveau bien meilleure et moins chère disponible!
la source
Comme mentionné précédemment, le problème principal concerne les fichiers et les répertoires qui ne valent pas la peine d'être sauvegardés entre les redémarrages, mais sont écrits assez souvent, c'est-à-dire les fichiers en cache, les dossiers de téléchargement, etc.
Raspbian, ainsi que Debian et Ubuntu ont un paquet appelé unburden-home-dir dont le but principal est de créer un lien symbolique vers de tels fichiers vers un emplacement moins problématique, comme par exemple un
tmpfs
montage ou un disque dur externe moins sujet à l’usure.Il est généralement exécuté au moment de la connexion sous X et ciblé vers les fichiers de cache de l'application graphique, mais peut également être appelé à partir de scripts ou être configuré pour des fichiers arbitraires dans le répertoire de base d'un utilisateur.
la source
Voici mes recommandations pour une Debian 8.0 (Jessie)
Ils sont basés sur
iotop -bktoqqq
etiostat -dzp 5
. Vous devez d’abord exécuter ces commandes pour avoir une idée du problème et de sa solution.1. Désactiver l'échange
2. Utiliser les options de montage et la RAM
Montez toutes les partitions sur la carte SD avec les
noatime,commit=1800
options et montez les répertoires suivants dans la RAM avec ces entrées dans votre/etc/fstab/
:S'engager retardera les écritures et les collectera en premier.
3. Enregistrez les fichiers journaux les plus fréquents sur
/var/tmp/log/
Voir ma description. Comment puis-je réduire l'écriture dans les fichiers journaux ?
4. Arrêtez le chrome de marteler la carte SD
Il s'avère que Chromium écrit fortement et ne peut pas être arrêté (voir 176727 , 52663 ). Ceci affecte le cache et le répertoire de données utilisateur. Les chrome / Trucs et astuces expliquent comment cela peut être déplacé à la RAM. Étant donné que le Raspberry ne dispose pas de beaucoup de RAM, il est recommandé de mettre Tab Suspender pour économiser de la RAM.
a) cache
Limitez la taille du cache et déplacez-le vers la RAM en modifiant
/etc/chromium-browser/customizations/00-rpi-vars
leMaintenant , le cache est assez petit pour être déplacé sur le disque RAM en changeant l'
XDG_CACHE_HOME
entrée dans/etc/security/pam_env.conf
laMaintenant, mes deux utilisateurs ont un petit cache de navigateur dans la RAM. Si cela ne vous suffit pas, changez le cache ou / tmp / size selon vos besoins.
b) Répertoire de données utilisateur
De plus, l'utilisateur dir (
.config/chromium/
) connaît des écritures lourdes. Le démon Profile-sync est recommandé par Chromium / Trucs et astuces . Il a été développé pour gérer le profil de votre navigateur dans les fichiers tmpfs et pour le synchroniser périodiquement avec votre disque physique. Malheureusement, le package ne fait pas encore partie de la distribution Raspbian 8.0 (Jessie). Donc, je n'ai pas encore testé cela.5. Espace libre sur la carte SD
Libérez de l'espace en désinstallant les packages et les fichiers dont vous n'avez pas besoin. Cela devrait répartir l’usure de manière plus uniforme sur vos partitions.
Terminé!
Maintenant, exécutez
iotop -bktoqqq
etiostat -dzp 5
recommencez et constatez une réduction significative de l'accès en écriture lorsque le système est inactif. Rien n'est écrit sur mon disque pendant plusieurs minutes. Et ne vous inquiétez pas du voyant vert ACT clignotant . Apparemment, ce n'est pas un bon indicateur d'accès en écriture.la source
Seule une infime réduction du nombre de cycles d'écriture peut être atteinte en transmettant la sortie de syslog à un autre serveur. Bien sûr, avoir un tel serveur en cours d'
syslogd
exécution est une condition préalable. Cependant, le Pi étant un jouet pour les passionnés de Linux, c'est probablement très souvent le cas. :-)Pour activer cette diffusion, insérez simplement une déclaration telle que
À peu près en haut du fichier
/etc/rsyslog.conf
, commentez toutes les autres lignes et redémarrez la journalisation en émettantservice rsyslog restart
. Après cela, les messages devraient arriver sur le serveur sélectionné.Un des effets secondaires évidents de cette situation est que vous pouvez facilement surveiller votre Pi en conjonction avec d’autres machines sur le même serveur. Un inconvénient est que lors du démarrage et de l'arrêt du système, vous risquez de perdre des messages lorsque la connexion réseau n'a pas encore été établie ou a déjà été fermée.
la source
journald
laquelle ils les stockent dans le journal systemd. Ils configurent égalementjournald
pour transférer les journaux au socket syslog sur lequel vousrsyslogd
écoutez; qui place des copies supplémentaires des messages dans les fichiers journaux sous/var/log
. Si vous êtes à l'aisejournalctl
pour parcourir vos journaux (et que cela fonctionne beaucoup mieux qu'une/var/log
fois que vous y êtes habitué), vous pouvez complètement désactiverrsyslog
et enregistrer certaines écritures.Remarque: la limite de 100 000 cycles est une hypothèse qui s'applique à tout périphérique informatique, même aux touches d'un clavier. Je pense qu'utiliser Pi dans des conditions de refroidissement appropriées et avec des cycles d'arrêt / démarrage appropriés donnera de meilleurs résultats que de passer à des analogies.
Cela peut aussi augmenter mon opinion ci-dessus.
Ajouter un nouvel utilisateur en plus de l'utilisateur Pi [par défaut]. Pointez le répertoire de base du nouvel utilisateur sur le lecteur externe [lecteur / disque dur]. Accordez au nouvel utilisateur les autorisations de super-utilisateur et commencez à l'utiliser comme compte principal.
J'espère que ça aide..
la source
/var/log
et/var/tmp
. En outre, avoir la preuve par expérience qu'un refroidissement correct fait toute la différence est bien mieux que de dire "je crois".Utilisez le démon syslog de busybox (dans le paquet busybox-syslogd sur Raspbian / Debian / Ubuntu) au lieu du démon syslog par défaut (généralement rsyslog). Par défaut, sous Raspbian / Debian / Ubuntu, le syslogd de busybox se connecte uniquement dans la mémoire tampon circulaire en mémoire et non sur le disque. La mémoire tampon circulaire a une taille de 128 Ko par défaut, c’est-à-dire que les anciennes entrées du journal disparaissent assez rapidement et disparaissent ensuite. Mais vous pouvez le configurer pour qu'il utilise plus de RAM.
Néanmoins, il s'agit d'une bien meilleure solution que de ne pas avoir de démon syslog, c'est-à-dire que vous pouvez toujours vous connecter et lire les entrées du journal d'env. depuis quelques heures ou jours (en fonction de la taille configurée du tampon circulaire) avec la commande
logread
. Vous pouvez également utiliserlogread -f
pour obtenir untail -f
comportement similaire, par exemple pour ne stocker que les entrées de journal intéressantes à l'aide d'un script de filtrage, ou pour transférer des entrées de journal sur le réseau ailleurs, par exemple à l'aide destunnel
ou autre.la source
Quelques choses que j'ai faites:
chmod du fichier dphys-swap (quelque part dans / etc - pas près du PI pour le moment) à:
Je reçois des erreurs mineures au démarrage (impossible de démarrer le service dphys-swapfile) - Supposons qu'il existe un meilleur moyen ... rc-update ??
De plus, je capture des images à partir du module de caméra, pour éventuellement les mettre sur mon serveur Web (le Pi). J'ai formaté / dev / ram0 sur ext2, je l'ai monté en tant que / media / ramdrive (en utilisant /etc/init.rc, je pense). C'est 4megs, assez grand pour un snap. Non écrit à SD.
Le serveur (oululife.dnsdynamic.com) est expérimental, mais sur le Web. Pour être vraiment stressant, je l'ai laissé également lire un épisode MP4 de 'Heartbeat *'. Il fonctionne sous lighttpd, Mysql, PHP, WordPress, et même lorsque je diffuse à distance sur le Web, il transpire à peine, la charge moyenne est d'environ 0,2. Aucun dépassement de temps du tout. Modèle B rév. 2, 24 heures sur 24, 7 jours sur 7. Donc, si je peux obtenir mes fichiers journaux dans l’autre 15 / dev / ramX, je pense que ma carte Micro-SD 16G durera des années ...
la source