5Sep
¿Los apagos inesperados son tan perjudiciales para Linux como lo son para otros sistemas operativos? Siga leyendo mientras investigamos los efectos de las paradas catastróficas del sistema en los sistemas de archivos de Linux.
Pregunta de hoy &La sesión de respuesta nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de sitios web Q & A dirigida por la comunidad.
La pregunta
SuperUser reader User208554 tiene curiosidad sobre las estructuras de archivos de Linux y le preocupa una aplicación / instalación en la que esté trabajando:
Estoy desarrollando una aplicación en una placa embebida Linux( ejecuta Debian) p. Raspberry Pi, Beagle Board / Bone u olimex. Las placas funcionan en un entorno en el que la electricidad se corta de forma inesperada( es demasiado complicado colocar PSU, etc.) y sucedería todos los días un par de veces. Me pregunto si los cortes de energía inesperados causarían problemas en el sistema de operación de Linux. Si es algo de lo que debería preocuparme, ¿qué sugeriría para evitar los daños en el sistema operativo contra los cortes de energía inesperados?
PS.La aplicación necesita escribir algunos datos en el medio de almacenamiento( tarjeta SD), creo que no sería adecuado montarlo como de solo lectura.
Entonces, ¿cuál es el veredicto?
La respuesta
SuperUser contribuidor l0b0 ofrece información sobre los sistemas de archivos journaling / non-journaling:
Depende de
- si está utilizando un sistema de archivos de diario y
- qué tan bien las aplicaciones pueden manejar el proceso abortado.
Considere, por ejemplo, una aplicación que procesa un archivo y escribe los resultados a medida que se computan( una línea de salida por línea de entrada) en otro archivo. Si se corta la energía durante el procesamiento y se ejecuta la misma aplicación después de reiniciar, no puede simplemente reiniciar el procesamiento desde el inicio del archivo de entrada; eso significaría que el archivo de salida contendría información duplicada.
Podría ser muy difícil decir algo definitivo sobre un hipotético sistema complejo, pero el software Linux más estable parece ser capaz de manejar bloqueos bastante bien.
Stu sugiere separar el sistema operativo y los datos, así como agregar una batería de respaldo:
Para ayudar a minimizar la posibilidad de corrupción del SO, probablemente sea mejor tener particiones de "sistema" y "datos" separadas en la tarjeta SD.De esta forma, puede montar la partición de "sistema" de solo lectura y usar un FS altamente resistente en la partición de "datos".
Además, la mayoría de esas placas tienen requisitos de potencia muy bajos, por lo que es posible realizar una copia de seguridad de la batería. La placa "LiPo rider" para la Raspberry Pi se puede utilizar como UPS básico para proporcionar un apagado limpio de la pérdida de potencia.
Finalmente, Jenny D amplía la sugerencia del sistema de archivos de registro en diario:
Los cortes de energía inesperados pueden dañar los datos del sistema de archivos, p.si un proceso ha comenzado a escribir en un archivo, pero aún no ha terminado de escribirlo, el archivo puede terminar medio escrito. Ahora imagina si el corte de energía ocurre cuando estás a la mitad de una actualización del kernel. ..
Como escribió l0b0, usar un sistema de archivos en diario ayudará, ya que podrá hacer un seguimiento de lo que realmente se ha hecho. Además de la información de la wikipedia que l0b0 enlazó, es posible que también le interese Do Garantía de sistemas de archivos contra la corrupción después de una falla de energía.
Es obvio que usted, como programador, debe considerar cuidadosamente cómo manejar la escritura en los archivos para que se convierta en un proceso atómico( es decir, está completamente hecho o no se realizó en absoluto, pero nunca a medio hacer).Es un problema bastante complejo.
¿Tiene algo que agregar a la explicación? Suena apagado en los comentarios.¿Desea leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Mira el hilo de discusión completo aquí.