Logotipo de framboesa

Raspberry Pi facendo un máis resistente File Sistema

Raspberry Pi-Facendo-un-Máis-ResilienteFile-Sistema-produto

Alcance do documento

Este documento aplícase aos seguintes produtos Raspberry Pi:

Pi 0 Pi 1 Pi 2 Pi 3 Pi 4 Pi 400 CM1 CM3 CM4 CM 5 Pico
0 W H A B A B B Todos Todos Todos Todos Todos Todos Todos
* * * * * * * * * * * * * *  

 

Introdución

Os dispositivos Raspberry Pi Ltd úsanse con frecuencia como dispositivos de almacenamento e seguimento de datos, a miúdo en lugares onde se poden producir apagados repentinos. Como con calquera dispositivo informático, as caídas de enerxía poden causar corrupción do almacenamento. Este libro branco ofrece algunhas opcións sobre como evitar a corrupción dos datos nestas e noutras circunstancias seleccionando o axeitado file sistemas e configuracións para garantir a integridade dos datos. Este documento asume que o Raspberry Pi está executando o sistema operativo (SO) Raspberry Pi (Linux) e está totalmente actualizado co firmware e os núcleos máis recentes.

Que é a corrupción de datos e por que ocorre?
A corrupción de datos refírese a cambios non desexados nos datos informáticos que se producen durante a escritura, lectura, almacenamento, transmisión ou procesamento. Neste documento só nos referimos ao almacenamento, en lugar de á transmisión ou procesamento. A corrupción pode ocorrer cando un proceso de escritura se interrompe antes de que se complete, de forma que se impida que a escritura se complete, por exemploample se se perde enerxía. Paga a pena neste momento dar unha rápida introdución sobre como o sistema operativo Linux (e, por extensión, o sistema operativo Raspberry Pi), escribe datos no almacenamento. Linux normalmente usa cachés de escritura para almacenar os datos que se van escribir no almacenamento. Estes almacenan en caché (almacenan temporalmente) os datos na memoria de acceso aleatorio (RAM) ata que se alcance un determinado límite predefinido, momento no que todas as escrituras pendentes no medio de almacenamento realízanse nunha soa transacción. Estes límites predefinidos poden estar relacionados co tempo e/ou o tamaño. Por exampé dicir, os datos poden almacenarse na caché e escribirse só no almacenamento cada cinco segundos ou escribirse só cando se acumulou unha certa cantidade de datos. Estes esquemas utilízanse para mellorar o rendemento: escribir un gran bloque de datos dunha soa vez é máis rápido que escribir moitos bloques pequenos de datos.

Non obstante, se se perde a alimentación entre o almacenamento dos datos na caché e a súa escritura, eses datos pérdense. Outros posibles problemas xorden máis adiante no proceso de escritura, durante a escritura física dos datos no soporte de almacenamento. Unha vez que un compoñente de hardware (por exemplo,ampé dicir, a interface da tarxeta Secure Digital (SD) recibe a orde de escribir datos, aínda así leva un tempo finito para que eses datos se almacenen fisicamente. De novo, se se produce un fallo de alimentación durante ese período extremadamente breve, é posible que os datos que se están a escribir se corrompan. Ao apagar un sistema informático, incluída a Raspberry Pi, a mellor práctica é usar a opción de apagado. Isto garantirá que todos os datos almacenados na caché se escriban e que o hardware teña tempo de escribir realmente os datos no medio de almacenamento. As tarxetas SD utilizadas pola maioría dos dispositivos Raspberry Pi son excelentes como substitutos económicos do disco duro, pero son susceptibles de fallar co tempo, dependendo de como se estean a usar. A memoria flash utilizada nas tarxetas SD ten unha vida útil do ciclo de escritura limitada e, a medida que as tarxetas se achegan a ese límite, poden volverse pouco fiables. A maioría das tarxetas SD usan un procedemento chamado nivelación de desgaste para garantir que duren o máximo posible, pero ao final poden fallar. Isto pode ser de meses a anos, dependendo de cantos datos se escribiron ou (o máis importante) se borraron da tarxeta. Esta vida útil pode variar drasticamente entre as tarxetas. O fallo da tarxeta SD adoita indicarse por erros aleatorios file corrupcións a medida que partes da tarxeta SD se volven inutilizables.

Hai outras maneiras polas que os datos se corrompen, incluíndo, entre outras, soportes de almacenamento defectuosos, erros no software de escritura de almacenamento (controladores) ou erros nas propias aplicacións. Para os efectos deste documento técnico, calquera proceso polo que se poida producir a perda de datos defínese como un evento de corrupción.

Que pode provocar unha operación de escritura?
A maioría das aplicacións realizan algún tipo de escritura no almacenamento, por exemploampinformación de configuración de ficheiros, actualizacións de bases de datos e similares. Algúns destes files poden incluso ser temporais, é dicir, só se usan mentres o programa está en execución e non requiren manterse durante un ciclo de acendido; con todo, aínda resultan en escrituras no medio de almacenamento. Aínda que a túa aplicación non escriba ningún dato, en segundo plano Linux estará constantemente realizando escrituras no almacenamento, principalmente escribindo información de rexistro.

Solucións de hardware

Aínda que non está totalmente dentro das competencias deste documento, vale a pena mencionar que previr cortes de enerxía inesperados é unha mitigación de uso común e ben entendida contra a perda de datos. Dispositivos como fontes de alimentación ininterrompida (UPS) garanten que a fonte de alimentación permaneza sólida e, se se perde enerxía no SAI, mentres está a batería, pode indicarlle ao sistema informático que a perda de enerxía é inminente para que o apagado poida proceder con gracia antes de que se esgote a fonte de alimentación de reserva. Dado que as tarxetas SD teñen unha vida útil limitada, pode ser útil ter un réxime de substitución que garanta que as tarxetas SD sexan substituídas antes de que teñan a oportunidade de chegar ao final da súa vida útil.

Robusto file sistemas

Hai varias formas de endurecer un dispositivo Raspberry Pi contra eventos de corrupción. Estes varían na súa capacidade para previr a corrupción, e cada acción reduce a posibilidade de que se produza.

  • Redución de escrituras
    Simplemente reducir a cantidade de escritura que fan as túas aplicacións e o sistema operativo Linux pode ter un efecto beneficioso. Se estás facendo moito rexistro, aumentan as posibilidades de que se produzan escrituras durante un evento de corrupción. A diminución do inicio de sesión na súa aplicación depende do usuario final, pero o inicio de sesión en Linux tamén se pode reducir. Isto é especialmente relevante se está a usar almacenamento baseado en flash (por exemplo, eMMC, tarxetas SD) debido ao seu ciclo de vida de escritura limitado.
  • Cambiando os tempos de commit
    O tempo de compromiso para a file sistema é a cantidade de tempo durante o que almacena os datos antes de copialos todos no almacenamento. Aumentar este tempo mellora o rendemento agrupando moitas escrituras, pero pode provocar a perda de datos se hai un evento de corrupción antes de escribir os datos. Reducir o tempo de commit significará menos posibilidades de que un evento de corrupción leve á perda de datos, aínda que non o evita por completo.
    Para cambiar o tempo de commit para o EXT4 principal file sistema en Raspberry Pi OS, necesitas editar o ficheiro \etc\fstab file que define como file os sistemas están montados ao inicio.
  • `$sudo nano /etc/fstab`

Engade o seguinte á entrada EXT4 para a raíz file sistema:

  • comprometer=

Entón, fstab pode parecer algo así, onde o tempo de commit se estableceu en tres segundos. O tempo de commit será de cinco segundos por defecto se non se establece especificamente.

Raspberry Pi-Facendo-un-Máis-ResilienteFile-Sistema-

 

Temporal file sistemas

Se unha solicitude require temporal file almacenamento, é dicir, os datos que só se usan mentres a aplicación se está a executar e non se precisan gardar durante o peche, entón unha boa opción para evitar as escrituras físicas no almacenamento é utilizar un almacenamento temporal. file sistema, tmpfs. Porque estes file os sistemas están baseados na memoria RAM (en realidade, na memoria virtual), calquera dato escrito nun tmpfs nunca se escribe no almacenamento físico e, polo tanto, non afecta a vida útil do flash e non pode danarse por un evento de corrupción.
Crear unha ou máis localizacións tmpfs require editar o /etc/fstab file, que controla todos os file sistemas baixo Raspberry Pi OS. O seguinte example substitúe as localizacións baseadas no almacenamento /tmp e /var/log por temporais file localizacións do sistema. O segundo example, que substitúe o cartafol de rexistro estándar, limita o tamaño total do ficheiro file sistema ata 16 MB.

  • tmpfs /tmp valores predeterminados de tmpfs,noatime 0 0
  • tmpfs /var/log valores predeterminados de tmpfs, tempo sen retorno, tamaño = 16 m 0 0

Tamén hai un script de terceiros que axuda a configurar o rexistro na RAM, que se pode atopar en GitHub. Isto ten a característica adicional de volcar os rexistros baseados en RAM ao disco nun intervalo predefinido.

Root de só lectura file sistemas

A raíz file sistema (rootfs) é o file sistema na partición do disco na que se atopa o directorio raíz, e é o file sistema no que todos os demais file os sistemas se montan mentres se inicia o sistema. No Raspberry Pi é /, e por defecto está situado na tarxeta SD como unha partición EXT4 de lectura/escritura completa. Tamén hai un cartafol de arranque, que está montado como /boot e é unha partición FAT de lectura/escritura. Facer que o rootfs sexa só ler impide calquera tipo de acceso de escritura a el, o que o fai moito máis robusto ante eventos de corrupción. Non obstante, a non ser que se tomen outras accións, isto significa que nada pode escribir ao file sistema en absoluto, polo que está desactivado gardar datos de calquera tipo desde a súa aplicación ao rootfs. Se precisa almacenar datos da súa aplicación pero quere un rootfs de só lectura, unha técnica común é engadir unha memoria USB ou similar que serve só para almacenar datos do usuario.

NOTA
Se está a usar un intercambio file cando se utiliza un dispositivo de só lectura file sistema, terás que mover o intercambio file nunha partición de lectura/escritura.

Superposición file sistema

Unha superposición file sistema (overlayfs) combina dous file sistemas, un superior file sistema e un inferior file sistema. Cando existe un nome en ambos file sistemas, o obxecto na parte superior file sistema é visible mentres o obxecto está na parte inferior file O sistema está oculto ou, no caso dos directorios, fusionado co obxecto superior. Raspberry Pi ofrece unha opción en raspi-config para activar un overlayfs. Isto fai que o rootfs (inferior) sexa de só lectura e crea un obxecto superior baseado en RAM. file sistema. Isto dá un resultado moi similar ao de só lectura file sistema, e todos os cambios do usuario perdéronse ao reiniciar. Podes activar un overlayfs usando a liña de comandos raspi-config ou usando a aplicación de configuración de Raspberry Pi de escritorio no menú Preferencias.

Tamén hai outras implementacións de superposicións que poden sincronizar os cambios necesarios do superior ao inferior file sistema en un horario predeterminado. Por exampPor exemplo, podes copiar o contido do cartafol de inicio dun usuario da parte superior á inferior cada doce horas. Isto limita o proceso de escritura a un espazo de tempo moi curto, o que significa que a corrupción é moito menos probable, pero significa que se se perde a enerxía antes da sincronización, pérdense todos os datos xerados desde a última. pSLC en módulos de cálculo A memoria eMMC utilizada nos dispositivos Raspberry Pi Compute Module é MLC (cela multinivel), onde cada cela de memoria representa 2 bits. pSLC, ou pseudocela de nivel único, é un tipo de tecnoloxía de memoria flash NAND que se pode activar en dispositivos de almacenamento MLC compatibles, onde cada cela representa só 1 bit. Está deseñada para proporcionar un equilibrio entre o rendemento e a resistencia da memoria flash SLC e a rendibilidade e a maior capacidade da memoria flash MLC. pSLC ten unha maior resistencia de escritura que MLC porque escribir datos nas celas con menos frecuencia reduce o desgaste. Aínda que MLC pode ofrecer uns 3,000 a 10,000 XNUMX ciclos de escritura, pSLC pode alcanzar cifras significativamente maiores, achegándose aos niveis de resistencia de SLC. Esta maior resistencia tradúcese nunha vida útil máis longa para os dispositivos que empregan a tecnoloxía pSLC en comparación cos que empregan MLC estándar.

O MLC é máis rendible que a memoria SLC, pero aínda que pSLC ofrece un mellor rendemento e resistencia que o MLC puro, faino a costa da capacidade. Un dispositivo MLC configurado para pSLC terá a metade da capacidade (ou menos) que tería como un dispositivo MLC estándar xa que cada cela só almacena un bit en lugar de dous ou máis.

Detalles de implementación

pSLC impleméntase en eMMC como unha Área de usuario mellorada (tamén coñecida como almacenamento mellorado). A implementación real da Área de usuario mellorada non está definida no estándar MMC, pero adoita ser pSLC.

  • A área de usuario mellorada é un concepto, mentres que a pSLC é unha implementación.
  • A pSLC é unha forma de implementar a Área de usuario mellorada.
  • No momento de escribir isto, a eMMC empregada nos módulos de computación de Raspberry Pi implementa a área de usuario mellorada mediante pSLC.
  • Non é necesario configurar toda a área de usuario de eMMC como unha área de usuario mellorada.
  • Programar unha rexión de memoria para que sexa unha Área de usuario mellorada é unha operación que se realiza unha soa vez. Iso significa que non se pode desfacer.

Acendendo
Linux proporciona un conxunto de comandos para manipular as particións eMMC no paquete mmc-utils. Instale un sistema operativo Linux estándar no dispositivo CM e instale as ferramentas do seguinte xeito:

  • sudo apt install mmc-utils

Para obter información sobre o eMMC (este comando desemboca en menos xa que hai moita información para mostrar):

  • sudo mmc extcsd ler /dev/mmcblk0 | menos

 AVISO
As seguintes operacións son unha soa vez; pode executalas unha vez e non se poden desfacer. Tamén deberías executalos antes de utilizar o módulo de cálculo, xa que borrarán todos os datos. A capacidade do eMMC reducirase á metade do valor anterior.

O comando usado para activar pSLC é mmc enh_area_set, que require varios parámetros que lle indiquen a cantidade de área de memoria que se quere activar o pSLC. O seguinte example utiliza toda a área. Consulte a axuda do comando mmc (man mmc) para obter detalles sobre como usar un subconxunto do eMMC.

Raspberry Pi-Facendo-un-Máis-ResilienteFile-Sistema-

Despois de que se reinicie o dispositivo, TERÁS que reinstalar o sistema operativo, xa que activar pSLC borrará o contido do eMMC.

O software Raspberry Pi CM Provisioner ten unha opción para configurar pSLC durante o proceso de aprovisionamento. Isto pódese atopar en GitHub en https://github.com/raspberrypi/cmprovision.

  • fóra do dispositivo file sistemas / arranque de rede
    O Raspberry Pi é capaz de iniciar a través dunha conexión de rede, por exemploample usando a Rede File Sistema (NFS). Isto significa que unha vez que o dispositivo completou os seus primeirostage boot, en lugar de cargar o seu núcleo e raíz file sistema desde a tarxeta SD, cárgase desde un servidor de rede. Unha vez correndo, todo file operacións actúan no servidor e non na tarxeta SD local, que non ten máis papel no proceso.
  • Solucións na nube
    Hoxe en día, moitas tarefas de oficina lévanse a cabo no navegador, e todos os datos almacénanse en liña na nube. Manter o almacenamento de datos fóra da tarxeta SD pode, obviamente, mellorar a fiabilidade, a costa de necesitar unha conexión sempre activa a Internet, así como os posibles cargos dos provedores de nube. O usuario pode usar unha instalación completa do sistema operativo Raspberry Pi, co navegador optimizado Raspberry Pi, para acceder a calquera dos servizos na nube de provedores como Google, Microsoft, Amazon, etc. Unha alternativa é un dos provedores de clientes lixeiros, que substitúen o sistema operativo Raspberry Pi por un sistema operativo/aplicación que se executa desde os recursos almacenados nun servidor central en lugar da tarxeta SD. Os clientes lixeiros traballan conectándose de forma remota a un entorno informático baseado nun servidor onde se almacenan a maioría das aplicacións, datos confidenciais e memoria.

Conclusións

Cando se seguen os procedementos de apagado correctos, o almacenamento na tarxeta SD da Raspberry Pi é extremadamente fiable. Isto funciona ben no entorno doméstico ou de oficina, onde se pode controlar o apagado, pero cando se usan dispositivos Raspberry Pi en casos de uso industrial ou en zonas cunha fonte de alimentación pouco fiable, as precaucións adicionais poden mellorar a fiabilidade.

En resumo, as opcións para mellorar a fiabilidade pódense enumerar do seguinte xeito:

  • Usa unha tarxeta SD coñecida e fiable.
  • Reducir as escrituras usando tempos de confirmación máis longos, usando temporais file sistemas, usando un overlayfs ou similar.
  • Usa almacenamento externo, como o arranque en rede ou o almacenamento na nube.
  • Implementar un réxime para substituír as tarxetas SD antes de que cheguen ao final da súa vida útil.
  • Usa un SAI.

Raspberry Pi é unha marca comercial de Raspberry Pi Ltd
Raspberry Pi Ltd

Colofón
© 2020-2023 Raspberry Pi Ltd (anteriormente Raspberry Pi (Trading) Ltd.)
Esta documentación está baixo unha licenza Creative Commons Atribución-SenDerivadas 4.0 Internacional (CC BY-ND).

  • data de compilación: 2024/06/25
  • versión de compilación: githash: 3e4dad9-clean

Aviso legal de exención de responsabilidade
OS DATOS TÉCNICOS E DE FIABILIDADE DOS PRODUTOS DE RASPBERRY PI (INCLUÍDAS AS FOLLAS DE DATOS) MODIFICADOS DE CADA VEZ ("RECURSOS") PROPORCIONAN RASPBERRY PI LTD ("RPL") "TAL CUAL" E CALQUERA GARANTÍA EXPRESA OU IMPLÍCITA, INCLUÍDO, PERO NON LIMITADO. AO, NEGARÁNSE AS GARANTÍAS IMPLÍCITAS DE COMERCIABILIDADE E IDONEIDADE PARA UN FIN PARTICULAR. NA MEDIDA MÁXIMA PERMITIDA POLA LEI APLICABLE EN NINGÚN CASO, RPL SERÁ RESPONSABLE DE NINGÚN DANOS DIRECTOS, INDIRECTOS, ACCIDENTALES, ESPECIAIS, EXEMPLARS OU CONSECUENTES (INCLUÍDO, PERO NON LIMITADO A, A ADQUISICIÓN DE BENS SUBSTITUTIVOS, PERDA DE DATOS; , OU BENEFICIOS; OU INTERRUPCIÓN DE NEGOCIOS) SEEN O CAUSADOS E SOBRE CALQUERA TEORÍA DE RESPONSABILIDADE, FOI POR CONTRATO, RESPONSABILIDADE ESTRICTA OU EXTRAORDINARIA (INCLÚA A NEGLIXENCIA OU DE OUTRO MODO) DERIVADA DE CALQUERA FORMA DO USO DOS RECURSOS, INCLUSO A CONSULTABILIDADE DE DE TAL DANO.

RPL resérvase o dereito de realizar calquera mellora, corrección ou calquera outra modificación nos RECURSOS ou en calquera produto descrito neles en calquera momento e sen previo aviso. Os RECURSOS están destinados a usuarios cualificados con niveis axeitados de coñecementos de deseño. Os usuarios son os únicos responsables da súa selección e uso dos RECURSOS e de calquera aplicación dos produtos descritos neles. O usuario acepta indemnizar e eximir de responsabilidade a RPL fronte a todas as responsabilidades, custos, danos ou outras perdas derivadas do seu uso dos RECURSOS. RPL concede aos usuarios permiso para usar os RECURSOS unicamente en conxunto cos produtos Raspberry Pi. Prohíbese calquera outro uso dos RECURSOS. Non se concede ningunha licenza a ningún outro dereito de propiedade intelectual de RPL ou de terceiros.

ACTIVIDADES DE ALTO RISCO. Os produtos Raspberry Pi non están deseñados, fabricados nin destinados ao seu uso en contornas perigosas que requiren un rendemento a proba de fallos, como no funcionamento de instalacións nucleares, sistemas de navegación ou comunicación de aeronaves, control de tráfico aéreo, sistemas de armas ou aplicacións críticas para a seguridade (incluídos sistemas de soporte vital e outros dispositivos médicos), nas que o fallo dos produtos podería levar directamente á morte, lesións persoais ou danos físicos ou ambientais graves ("Actividades de alto risco"). RPL renuncia especificamente a calquera garantía expresa ou implícita de idoneidade para Actividades de alto risco e non acepta ningunha responsabilidade polo uso ou inclusións de produtos Raspberry Pi en Actividades de alto risco. Os produtos Raspberry Pi ofrécense suxeitos aos Termos Estándar de RPL. A provisión dos RECURSOS por parte de RPL non amplía nin modifica doutro xeito os Termos Estándar de RPL, incluíndo, entre outros, as exencións de responsabilidade e as garantías expresadas neles.

Preguntas frecuentes

  • P: Que produtos Raspberry Pi son compatibles con este documento?
    R: Este documento aplícase a varios produtos Raspberry Pi, incluíndo Pi 0 W, Pi 1 A/B, Pi 2 A/B, Pi 3, Pi 4, Pi 400, CM1, CM3, CM4, CM5 e Pico.
  • P: Como podo reducir as posibilidades de corrupción de datos no meu dispositivo Raspberry Pi?
    R: Podes reducir a corrupción de datos minimizando as operacións de escritura, especialmente as actividades de rexistro e axustando os tempos de confirmación para file sistema como se describe en este documento.

Documentos/Recursos

Raspberry Pi facendo un máis resistente File Sistema [pdfGuía do usuario
Pi 0, Pi 1, Facendo un máis resistente File Sistema, máis resistente File Sistema, Resiliente File sistema, File Sistema

Referencias

Deixa un comentario

O teu enderezo de correo electrónico non será publicado. Os campos obrigatorios están marcados *