¿Cómo elegir los números K y M del código de borrado?
Cómo funciona el código de borrado:
Los parámetros de código de borrado Ceph K y M implican la eficiencia de capacidad utilizable y la redundancia contra fallos de hardware. K es el número de fragmentos de datos y M es el número de fragmentos de codificación. Cuando un cliente escribe un objeto de datos en el clúster de almacenamiento Ceph, el objeto de datos se dividirá en K fragmentos de datos de igual tamaño. Ceph utiliza los fragmentos de datos para codificar M fragmentos de codificación que se utilizarán para calcular los fragmentos de datos perdidos cuando falle el hardware.
Los fragmentos de datos y los fragmentos de código se distribuirán y almacenarán en el dominio de falla especificado por K+M. El número máximo de fragmentos de datos que se pueden perder es M dominios de falla. Los dominios de falla disponibles dependen de cómo se asignen los servidores de almacenamiento dentro de la infraestructura física. Para un clúster Ceph de pequeña escala, la falla podría ser de disco o de servidores. El dominio de falla de clústeres de mayor escala puede ser los racks de servidores, la sala de servidores o el centro de datos, etc.
El objeto de datos se reconstruye a partir de los fragmentos de datos cuando el cliente quiere leer los datos.
Rendimiento de almacenamiento
En comparación con el algoritmo de replicación de datos Ceph, la codificación de borrado generalmente tiene una mejor eficiencia de espacio utilizable. Debido a que el código de borrado utiliza más operaciones de E/S de disco para completar la E/S de datos, es menos amigable para las cargas de trabajo que demandan IOPS. Cuanto mayor sea el número de K+M, más recursos de IOPS de disco consume la operación de E/S.
Al usar un K más grande y un M más pequeño, el número total de bytes de datos transferidos en la red del clúster Ceph será menor. Esto podría aumentar el rendimiento de la capacidad de entrada/salida de objetos de datos de gran tamaño.
Eficiencia del espacio
La eficiencia del espacio utilizable de un grupo de códigos de borrado es igual a K/(K+M). Por ejemplo, la eficiencia del espacio del grupo de códigos de borrado K=4, M=2 es 4/6 = 66.7%. Esto es el doble de eficiente que los grupos de réplicas 3, que ofrecen un rendimiento IOPS más alto con el mismo nivel de redundancia de hardware.
K razonable es mayor que M debido a la eficiencia del espacio utilizable. El código de borrado más grande (K-M) obtiene una mejor eficiencia de espacio.
Número de hosts de servidor
El número de K+M también determina el número de hosts o dominios de falla más grandes que se requieren en el clúster.
- Un grupo típico de código de borrado requiere un mínimo de K+M hosts de servidor para distribuir completamente todos los fragmentos de EC.
- Una configuración avanzada de código de borrado permite almacenar múltiples fragmentos de EC por dominio de falla. Esta configuración reduce el número de servidores requeridos para distribuir fragmentos de EC.
Resumen de las influencias del código de borrado K & M:
- M determina el número redundante de dominios de falla.
- Un K + M más grande resulta en un rendimiento de IOPS de objetos pequeños reducido para los clientes, pero mejora el rendimiento para objetos más grandes.
- Eficiencia del espacio de almacenamiento = K/(K+M)
- Número mínimo de servidores requeridos.