Instantánea de AWS EBS. ¿REALMENTE se requiere la coherencia del sistema de archivos?

Instantánea de AWS EBS. ¿REALMENTE se requiere la coherencia del sistema de archivos?

He estado leyendo mucho sobre aws ebs y mucha gente parece animar a la gente a congelar el sistema de archivos.durantela instantánea. Sin embargo, esta documentación de Amazon difiere:

Mientras se completa, una instantánea en progreso no se ve afectada por las lecturas y escrituras en curso en el volumen.

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-creating-snapshot.html

¿Por qué mucha gente congela el sistema de archivos durante la instantánea mientras la documentación de AWS dice que la instantánea no se ve afectada por la E/S?

¿Qué pasa si mi sistema de archivos se utiliza para un ftp?

¿Qué pasa si mi sistema de archivos se utiliza para una base de datos?

Respuesta1

Respuesta corta:realmente depende del tipo de aplicación que esté ejecutando en su instancia.

Respuesta larga:Básicamente, tomar una instantánea sin pausa de una máquina en funcionamiento es similar a "desconectar la corriente", es decir: un bloqueo repentino, inmediato e inesperado.

Cuando se ejecuta con la barrera de E/S habilitada, el sistema de archivos con registro moderno debe ser consistente a pesar de cualquier falla. Esto hacenosignifica que los datos en memoria no se perderán; más bien, que los datos comprometidos seangarantizadopara ser almacenado en un almacenamiento persistente (es decir, disco).

Esto realmente se aplica a cualquier aplicación registrada correctamente, especialmente a las bases de datos compatibles con ACID (una lista no inclusiva: MSSQL, InnoDB, PostgreSQL, Oracle, IBM DB2, etc.). De nuevo, esto hacenosignifica que una pérdida repentina de energía (o una instantánea restaurada y no inactiva) no provocará ninguna pérdida de datos; más bien, significa que cuando regresa un COMMIT (posiblemente implícito), todos los datos relevantes están en un almacenamiento estable.

Con dicha aplicación registrada, no es estrictamente necesario desactivar el sistema de archivos. En el primer arranque después de una instantánea restaurada, el sistema responderá a sus diarios (sistema de archivos y bases de datos) y se alcanzará un estado consistente.

Sin embargo, existen muchas aplicaciones que sí lo hacen.noregistrar adecuadamente sus actualizaciones y cuálesrequerirel equivalente a a fsckpara volver a un estado consistente. El ejemplo principal es MySQL+MyISAM: este motor de base de datos (muy común) esnoCumple con ACID, ya que su gran velocidad de escritura se logra agrupando operaciones de E/S no relacionadas sin tener en cuenta las barreras de E/S habituales. Un cierre incorrecto (es decir, pérdida de energía, falla del sistema o de MySQL, instantánea no inactiva) de la base de datos MyISAM puede dejar de funcionar hasta que mysqlcheck/mysqlrepairse realice una operación.

Las diversas guías que recomiendan desactivar el sistema de archivos antes de una instantánea lo hacen exactamente por esta razón: alguna aplicación "no preparada" (léase: MyISAM) puede resultar algo dañada por el cierre repentino y la posterior restauración, lo que requiere una verificación de coherencia.

Línea de fondo:si utiliza un sistema de archivos registrado con barreras de E/S habilitadas (predeterminado en ext4 y XFS)yuna base de datos compatible con ACID, debería estar seguro al tomar instantáneas no inmovilizadas. En el peor de los casos, puede ver algún error/advertencia no fatal al montar la instantánea, pero la respuesta del diario hará que el sistema esté en un estado consistente. Sin embargo, si usa MyISAM, es mejor congelar/apagar su sistema de archivos antes de tomar una instantánea.

Respuesta2

Las instantáneas de Amazon por sí solas no son seguras si se toman mientras el sistema está en ejecución. Son seguros si apaga el sistema antes de crear la instantánea. Cualquier dato del sistema de archivos que esté almacenado en caché en los buffers del sistema operativo o en los buffers de una aplicación (por ejemplo, bases de datos) no formará parte de la instantánea. Esto puede conducir a una corrupción irrecuperable.

Tanto Linux como Windows tienen mecanismos proporcionados por el sistema operativo para congelar el sistema (informar a las aplicaciones para que descarguen sus datos en el disco). Una vez que esto se completa, se realiza una descongelación que permite que las aplicaciones continúen. Entre el congelamiento y el deshielo, se toma la instantánea. Nota: la mayoría de las aplicaciones no admiten la congelación/descongelación y algunas lo implementan incorrectamente. Revise cuidadosamente la documentación de sus proveedores.

Otro elemento importante es revisar dónde almacenan sus datos sus aplicaciones. Las bases de datos, según el diseño de mejores prácticas, almacenan sus datos, registros, etc. en diferentes sistemas de archivos. Esto significa que es posible que esté iniciando una instantánea de un volumen en un momento diferente a la instantánea de otro volumen (que puede ser necesaria como un conjunto para restaurar correctamente la aplicación y sus datos).

La clave es comprender la diferencia entre instantáneas consistentes con fallas y consistentes con aplicaciones.

Aquí hay un artículo sobre instantáneas de EBS que explica las diferencias.

Instantáneas de EBS: consistentes con fallas versus aplicaciones consistentes

[Actualización después de los comentarios de Michael]

Las instantáneas implementan Copia en escritura (COW). Una vez que se ha iniciado una instantánea, se puede modificar el sistema de archivos. Si el sistema de archivos escribe en un bloque de disco, el subsistema COW copiará el bloque original a su caché interna para que el sistema de archivos pueda modificarse durante la instantánea.

No es necesario mantener congelado el sistema de archivos durante la instantánea. Durante la creación de la instantánea, se crean/copian las estructuras de datos de volumen necesarias para que no sea necesario mantener la congelación. Dependiendo del sistema y de la cantidad de datos almacenados en la memoria caché, el tamaño del sistema operativo y los diarios de aplicaciones, etc., el ciclo de congelación/instantánea/descongelación puede ser tan rápido como un par de segundos.

Aquí hay un artículo sobre varias tecnologías de instantáneas que incluye una explicación de Copia en escritura:

Uso de diferentes tipos de tecnologías de instantáneas de almacenamiento para la protección de datos

información relacionada