En la era del big data, las empresas están generando más información que nunca. Sin embargo, no es suficiente con solo almacenar datos; deben almacenarse de manera eficiente, confiable y rentable. Es aquí donde entra en juego la codificación de borrado (EC). Utilizada por sistemas de almacenamiento distribuido como Ceph, la codificación de borrado ofrece una forma más inteligente de salvaguardar datos mientras se optimiza el uso del almacenamiento. Este artículo desglosa qué es la codificación de borrado, cómo funciona y cuándo utilizarla en lugar de la replicación tradicional.
Replicación vs. Codificación de borrado: ¿cuál es la diferencia?
Por defecto, muchos sistemas de almacenamiento, incluyendo Ceph, utilizan la replicación para proteger los datos. La replicación es sencilla: cada fragmento de datos se duplica en múltiples discos (a menudo 3 copias). Este método es rápido y confiable, especialmente para archivos pequeños o entornos de alto rendimiento, pero consume mucho almacenamiento.
La codificación de borrado, por otro lado, adopta un enfoque más eficiente. En lugar de copiar conjuntos de datos completos, los divide en fragmentos más pequeños: una combinación de fragmentos de datos y fragmentos de paridad (utilizados para la recuperación). Estos fragmentos se distribuyen en diferentes discos. Si algunos discos fallan, los datos faltantes pueden reconstruirse utilizando la información de paridad.
La siguiente tabla compara la replicación y la codificación de borrado en términos de eficiencia de almacenamiento, método de recuperación y casos de uso ideales:

Cómo funciona la codificación de borrado en Ceph
La codificación de borrado en Ceph es configurable a través de perfiles que definen cómo se dividen y protegen los datos. Cada perfil EC se define por dos parámetros:
• k – Número de fragmentos de datos
• m – Número de fragmentos de codificación (paridad)
El sistema crea un total de k + m fragmentos, que se distribuyen en el clúster de almacenamiento. Ceph puede tolerar hasta m fallos sin pérdida de datos.
La siguiente tabla describe los perfiles de codificación de borrado más comúnmente utilizados y los compara en términos de tolerancia a fallos y sobrecarga de almacenamiento:

Ejemplo: Un perfil 3+2 divide los datos en 3 fragmentos y añade 2 fragmentos de paridad. Cualquier 3 de los 5 fragmentos pueden restaurar los datos originales, incluso si se pierden 2 fragmentos.
Elección del perfil EC adecuado
La elección depende de su entorno y objetivos:
• Menor k, mayor m (p. ej., 3+2): Mayor redundancia, ideal para clústeres más pequeños o donde la resiliencia es una prioridad máxima.
• Mayor k, menor m (p. ej., 10+4): Mejor eficiencia de almacenamiento, excelente para implementaciones a gran escala que priorizan el ahorro de costos.
La codificación de borrado ofrece varias ventajas que la convierten en una opción poderosa para los sistemas de almacenamiento modernos, incluyendo:
• Almacenamiento eficiente: Menor sobrecarga que la replicación: almacene más datos en el mismo espacio de disco.
• Alta tolerancia a fallos: Maneje múltiples fallos de disco sin perder datos.
• Escalabilidad: Adecuada para clústeres grandes e implementaciones a escala de nube.
• Redundancia personalizada: Ajuste la relación k+m para satisfacer sus necesidades de durabilidad y presupuesto.
Cuándo tiene sentido la codificación de borrado
La codificación de borrado no es ideal para todos los escenarios. Pero cuando se aplica estratégicamente, sobresale en muchos casos. Aquí están los escenarios donde la codificación de borrado sobresale, junto con las razones por las que es particularmente adecuada para cada uno:

Escenarios más adecuados para la replicación
La codificación de borrado requiere más CPU y E/S durante las escrituras y reconstrucciones, por lo que puede no ser la mejor opción para:
• Bases de datos o máquinas virtuales (p. ej., Ceph RBD)
• Sistemas de archivos interactivos con archivos pequeños (p. ej., CephFS)
• Cargas de trabajo de E/S de baja latencia y alto rendimiento
En estos casos, la replicación ofrece un mejor rendimiento a pesar de su mayor costo de almacenamiento.
La codificación de borrado es una estrategia eficaz para las organizaciones que aspiran a optimizar la eficiencia, durabilidad y escalabilidad del almacenamiento. En Ceph, reduce la sobrecarga de almacenamiento al fragmentar los datos en segmentos con paridad, permitiendo la recuperación ante fallos sin replicación completa de datos. Una configuración como 6+3 puede tolerar hasta tres fallos, haciéndola idónea para el almacenamiento en frío y datos de objetos a gran escala.
Aunque ofrece ahorros de costes significativos y resiliencia, la codificación de borrado introduce compensaciones de rendimiento, particularmente para escrituras pequeñas o frecuentes, y es menos ideal para aplicaciones sensibles a la latencia como las bases de datos.


