Página 1 de 3
Paranoico con las memorias flash
Publicado: 10 Ene 2017, 14:04
por zup
Ya es el segundo incidente que tengo con una tarjeta SD (añadir también alguno con pendrives) y me he puesto algo paranoico.
El problema empezó con una Raspberry Pi que tengo encendida 24x7 (la uso como nube de almacenamiento y máquina de descargas). Esta máquina tiene una tarjeta micro SD Samsung EVO de 16 Gb UHS1. También tiene conectado un pendrive Sandisk de 128 Gb como almacenamiento masivo, formateado como ext4. Durante un par de semanas, me di cuenta que la Raspberry se quedaba "colgada" y no respondía. Después noté que, aunque aparentemente funcionaba bien, cada vez que reiniciaba la Raspberry transmission mostraba las descargas que tenía tiempo atrás (y habían sido eliminadas).
Hoy he detenido la Raspberry, he sacado el pendrive y la tarjeta y les he pasado un fsck. El pendrive ha ido bien, pero la tarjeta decía que tenía errores y que no podía establecer los flags en el superblock. Investigando un poco veo que, aunque aparentemente los datos se escriben a la tarjeta, en realidad no se realizan cambios al filesystem. No se pueden escribir datos a la tarjeta, pero la tarjeta no da errores. Haciendo un dd de esa tarjeta, aparentemente se lee bien pero dmesg muestra errores de sectores ilegibles.
Ya es la segunda vez que me pasa ese mismo error con tarjetas de esa marca y modelo (que no se pueden escribir datos a la tarjeta), y he tenido también algún problema con pendrives (dos variantes, pendrive totalmente muerto y pendrive que funciona durante unos minutos y después se convierte en ilegible).
Ahora que ya habéis oído mis neuras, las preguntas...
- ¿Qué marcas/modelos de SD y pendrives consideráis de mayor durabilidad?
- ¿Debería tomar medidas especiales para reducir las escrituras (p.ej.: usar noatime al montar el filesystem) o Raspbian maneja eso bien?
- ¿Debería volverme ya paranoico total y montar un RAID1 de pendrives? (Parece que usar ZFS no es la mejor idea en una Pi, y no sé qué otros FS pueden detectar corrupción de datos)
Re: Paranoico con las memorias flash
Publicado: 10 Ene 2017, 17:10
por princemegahit
Creo que lo mejor que puedes hacer es usar el noatime, yo no he tenido problemas especialmente graves hasta el punto de plantearme cambiar las tarjetas, así que no se decirte más.
Re: Paranoico con las memorias flash
Publicado: 10 Ene 2017, 18:13
por Tolaemon
Trabajé unos años en una empresa de sistemas embebidos cuyos equipos hacian uso de tarjetas SD. La experiencia era que las tarjetas SD de los equipos que tenían instalados a lo largo de toda España se corrompían en un determinado porcentaje no despreciable,y había que formatearlas y reinicializarlas en remoto ( el equipo tenia un modem GSM ). Incluso cada cierto tiempo había que reemplazar algunas.Y eso que eran tarjetas SD de rango industrial.
Puedes dejar solo la imagen del SO en la SD para que la lea al arrancar y se hagan las mínimas escrituras en esta, y usar un disco duro externo para las descargas. O quizás sea posible cambiar de tu sistema de ficheros actual a otro mas robusto. Sea como sea, y como tu bien dices, no utilizaría nunca la SD para operaciones intensivas de escritura, para eso mejor el disco duro. Sea como sea las SDs no son un sistema de lo mas fiable para almacenar datos ( a mi tambien se me ha hodido alguna ). No sabría decirte el motivo pueden ser muchos, mecánicos por doblar la tarjeta, una descarga estática, la temperatura, defectos en la fabricación...
Re: Paranoico con las memorias flash
Publicado: 10 Ene 2017, 19:55
por DistWave
Es que si lo piensas bien, estas dando un uso a las tarjetas (y sobre todo a los pendrives) que no es para el que fueron diseñadas. El propósito de ambos es transportar ficheros (fotos, música, documentos, etc) que en un uso normal, se escriben secuencialmente cuando los transfieres. Cuando necesitas espacio, o bien borras unos cuantos o lo formateas y empiezas de cero. Digamos que el propio uso lógico y común distribuye las escrituras en la memoria flash de una manera más o menos regular (el chip controlador de la memoria flash en estos dispositivos es muy simple y no gestiona distribución alguna).
En sistemas embebidos Linux es bastante común utilizar como almacenamiento primario un chip de memoria flash conectado directamente al interfaz del SoC con un sistema de ficheros específico para memoria flash (JFFS2, YAFFS, etc). Estos sistemas de ficheros implementan la lógica para distribuir las escrituras de manera homogénea en las celdas de memoria y minimizar el desgaste. Además, se utilizan otros mecanismos:
- Usar sistemas de ficheros en memoria ram (como tmpfs) para almacenar ficheros temporales y logs.
- Para la partición raiz, usar un sistema de ficheros de sólo lectura (y comprimido) como squashfs, cromfs, etc para evitar corrupciones
- En las particiones ext, habilitar parámetros que reduzcan escrituras (como noatime)
El problema con la Raspberry Pi y similares es que están diseñadas para ser asequibles y nos obligan a utilizar una tarjeta SD para tener el sistema de ficheros. Para ciertas tareas es más que suficiente, pero en cuanto le pides un esfuerzo extra (uso como servidor, torrent, etc) aparecen los problemas. Y ya no sólo por culpa de la SD, en muchos casos bien por errores del sistema operativo o del hardware se corrompe el sistema de ficheros aleatoriamente.
Re: Paranoico con las memorias flash
Publicado: 11 Ene 2017, 09:23
por zup
Entonces, por lo que entiendo debería quitar ese pendrive de 128 gigas y sustituirlo por un disco duro normalito. La contrapartida sería un aumento del consumo eléctrico y del ruido generado.
En cuanto a la SD, las medidas que tengo por ahí son:
- Deshabilitar el archivo de paginación (hecho). Esa Raspberry es de 512 megas, pero no llega a ocupar la memoria por completo.
- Como es una Raspberry sin X, recuperar parte de la memoria de video por si las moscas (se lo he puesto a 16 megas solo).
- Montar el sistema de ficheros con las opciones
noatime, nodiratime, async.
- Cambiar el scheduler a
noop (hecho mediante una regla de udev).
- Usar tmpfs con /tmp, /var/tmp, /var/log, /var/run y /var/spool/mqueue.
Lo que creo que no voy a hacer es cambiar el sistema de ficheros de la partición root, ya que me complicaría bastante el mantenimiento (todas las distribuciones de Raspbian suelen ir en ext4).
Ahora que lo pienso, otra opción es usar "creativamente" /boot/config.txt y hacer que la partición root resida en el USB (¿qué penalización en rendimiento puedo esperar?).
Otra cosilla interesante... si el equipo tiene un lector de tarjetas integrado (=no USB, la Raspberry Pi y algunos portátiles lo llevan así), desde Linux
se pueden leer algunos parámetros de las tarjetas. Como curiosidad, con
cat /sys/block/mmcblk0/device/preferred_erase_size se puede consultar el tamaño que se usa en borrados/escrituras. Veo un parámetro
rel_sectors que puede estar relacionado con la vida útil de la tarjeta, pero no veo información útil sobre qué cuenta y cómo interpretarlo. ¿Alguna idea?
Re: Paranoico con las memorias flash
Publicado: 11 Ene 2017, 12:35
por Lex Sparrow
zup escribió:Entonces, por lo que entiendo debería quitar ese pendrive de 128 gigas y sustituirlo por un disco duro normalito. La contrapartida sería un aumento del consumo eléctrico y del ruido generado.
Eso es lo que yo haría
Re: Paranoico con las memorias flash
Publicado: 11 Ene 2017, 13:03
por aRbert-II
zup escribió:Entonces, por lo que entiendo debería quitar ese pendrive de 128 gigas y sustituirlo por un disco duro normalito. La contrapartida sería un aumento del consumo eléctrico y del ruido generado.
Siempre puedes ponerle un
SSD externo para evitar esos problemas. No te hace falta que sea el más rápido, con que sea medianamente fiable es suficiente. De 120 GB los hay a precios bastante comedidos.
Re: Paranoico con las memorias flash
Publicado: 11 Ene 2017, 15:44
por BlackHole
¿Crees que un SSD no adolece de los mismos problemas que un pendrive? No dejan de ser memorias NAND.
Re: Paranoico con las memorias flash
Publicado: 11 Ene 2017, 15:53
por aRbert-II
BlackHole escribió:¿Crees que un SSD no adolece de los mismos problemas que un pendrive? No dejan de ser memorias NAND.
Me refería a los problemas de consumo eléctrico y ruido que dan los discos duros normales.
De todas formas, aunque un pen y un SSD usen memorias NAND, los SSD son, por norma general, más fiables y duraderos porque sus controladoras implementan tecnologías y protocolos para reducir los ciclos de escritura de cada celda. Aumentando así su vida útil.
Re: Paranoico con las memorias flash
Publicado: 11 Ene 2017, 17:23
por GXY
ni los pendrives ni las tarjetas SD estan pensadas para sistemas de contingencia con lectura/escritura 24/7
creo que deberias considerar cambiar la raspberry por alguna otra maquina y cambiar el almacenamiento por un HDD SATA.
hay orange pi que tienen puerto SATA (creo que seria la opcion mas barata junto con la de reacondicionar un PC que tengas por casa).