es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Comprendiendo las instantáneas en Ceph

Nuestro equipo está actualmente decidiendo si implementar o no instantáneas en los directorios de cephfs, y por lo tanto, tratando de entender los efectos y problemas de rendimiento causados por las instantáneas en el clúster.

Nuestra principal preocupación es “¿Cómo se verá afectado el clúster cuando se escriba datos en un archivo bajo una instantánea?”. Pudimos descubrir que Ceph utiliza un mecanismo de copia al escribir instantáneas, por lo que mi pregunta es, por ejemplo, si tengo un archivo de 1GB bajo una instantánea y le agrego otros 10MB de datos al archivo, ¿cuántos datos se copiarán debido a la nueva escritura?

Mi comprensión es que, dado que Ceph divide un archivo en múltiples objetos, solo se copiará el objeto que contiene la última unidad de bandas-rayas (asumiendo que no está completamente lleno) y se agregarán los nuevos datos a él, y luego Ceph de alguna manera se las arregla para incluir el nuevo objeto cuando solicito la versión actual del archivo e incluirá el objeto antiguo cuando solicite el archivo desde la instantánea. Datos copiados = O(10MB), es decir, está en el orden de los datos escritos, y algunos cambios de metadatos.

O, ya que Ceph ahora utiliza Bluestore como la capa de almacenamiento, ¿tiene incluso mejores optimizaciones (en comparación con el caso anterior), como cuando se edita el objeto correspondiente a la última unidad de bandas-rayas, Ceph simplemente escribe los nuevos datos en una ubicación en el disco y edita los metadatos del objeto para incluir la ubicación de los nuevos datos, y también mantiene versiones basadas en instantáneas de los metadatos para proporcionarnos el contenido del archivo en puntos anteriores en el tiempo. Datos copiados/escritos = 10MB y algunos cambios de metadatos adicionales (en comparación con el caso anterior).

O, ¿es el caso que Ceph copiará todo el archivo y editará la copia nueva del archivo, es decir, los datos copiados son de 1GB + 10MB? Estoy asumiendo que este no es el caso porque claramente no es óptimo para archivos grandes.

PD: Cualquier recurso sobre cómo medir el efecto de las instantáneas en el clúster y cualquier recurso que explique los detalles internos de las instantáneas de Ceph serán muy apreciados. He buscado extensamente en internet pero no pude encontrar datos relevantes. Intenté leer el código, pero probablemente puedan adivinar cómo fue.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Basado en los mecanismos actuales utilizados por Ceph, es poco probable que se copie el archivo completo cuando se realizan cambios en un archivo bajo una instantánea. En su lugar, Ceph utiliza el mecanismo de copia al escribir (Copy-on-write) para clonar las instantáneas, lo que significa que solo se copiará el objeto que contiene la última unidad de franja (stripe_unit) que está siendo modificada (o añadida) y se agregará a él los nuevos datos. Esto resultará en la copia de datos en función de la cantidad de datos que se haya escrito, además de algunos cambios en los metadatos.

    También es posible que Ceph tenga optimizaciones aún mejores con Bluestore como capa de almacenamiento, y solo escriba los nuevos datos en una ubicación específica en el disco mientras edita los metadatos del objeto para incluir la ubicación de los nuevos datos. Esto resultaría en una menor copia / escritura de datos, solo la cantidad de datos escritos más algunos cambios adicionales en los metadatos.

    Para comprender el efecto de las instantáneas en el clúster y los detalles internos de las instantáneas de Ceph, algunos recursos útiles pueden incluir:

    Para medir el efecto de las instantáneas en el clúster, algunas métricas posibles a considerar pueden incluir:

    • Utilización de almacenamiento: Medir cuánto espacio de almacenamiento está siendo utilizado por las instantáneas en comparación con la capacidad total de almacenamiento del clúster.
    • Impacto en el rendimiento: Medir cualquier cambio en IOPS o latencia cuando las instantáneas están habilitadas y compararlo con una línea de base donde las instantáneas están deshabilitadas.
    • Tiempo de respaldo y recuperación: Medir el tiempo que lleva crear una instantánea, así como el tiempo que lleva recuperar datos de una instantánea, con el fin de asegurarse de que los procesos de respaldo y recuperación sean eficientes y efectivos.

Comments are closed.