Ceph como almacenamiento conectable: 5 ideas prácticas de un gran proyecto

Dado el crecimiento de los datos, hoy en día se habla cada vez más sobre almacenes de datos distribuidos y definidos por software, y tradicionalmente se presta mucha atención a la plataforma abierta de Ceph. Hoy queremos hablar sobre las conclusiones a las que llegamos en el proceso de implementación de un proyecto de almacenamiento de datos para un gran departamento ruso.



Cuando se trata de almacenar datos de varios tipos, por supuesto, un almacén de datos distribuido viene inmediatamente a la mente. Teóricamente, existen muchas ventajas para tales soluciones: puede usar cualquier disco, el sistema funciona en cualquier servidor (incluso los muy antiguos), prácticamente no hay límites para el escalado. Es por eso que la introducción de dicho sistema se lanzó hace varios años en uno de los departamentos rusos más grandes con unidades no solo en todas las regiones de la Federación Rusa, sino incluso en todas las ciudades más o menos grandes.

Después de analizar las soluciones disponibles, se hizo la elección a favor de Ceph. Hubo varias razones para esta decisión:
• Ceph es un producto bastante maduro, y hoy hay instalaciones de Ceph en petabytes de información.
• Una gran comunidad participa en el desarrollo (incluidos nosotros), lo que significa que aparecerán nuevas funciones y mejoras para el almacenamiento.
• Ceph ya tiene una buena API con soporte para varios lenguajes de programación. Esto era importante porque el producto obviamente necesitaba ser refinado para cumplir con los requisitos y expectativas del cliente.
• Las licencias no cuestan nada. No, por supuesto, el sistema necesita un mayor desarrollo, pero en el caso de las tareas específicas del cliente, habría sido necesario llevar a cabo un desarrollo adicional de todos modos, entonces, ¿por qué no hacerlo sobre la base de un producto gratuito?
• Finalmente, sanciones. Las empresas estatales deberían estar aseguradas de que la próxima vez que alguien se les ocurra la idea de imponerles restricciones y, por lo tanto, depender de un producto extranjero y especialmente estadounidense es peligroso. Otra cosa, código abierto.

Hallazgos prácticos
La introducción de Ceph ocurrió gradualmente durante varios meses. Primero, el almacenamiento se lanzó en la región central, y luego replicamos la solución conectando centros de datos regionales. Con la llegada de cada nuevo nodo de red, el rendimiento del almacenamiento aumentó, a pesar del aumento en los flujos de datos dentro de él, asegurando la transferencia de información de una región a otra.
Una característica del trabajo de cualquier organización grande es la necesidad de almacenar información heterogénea, que a menudo es un archivo binario. Como muestra la práctica, los empleados simplemente no tienen tiempo para averiguar qué tipo de archivos son, clasificarlos y procesarlos de manera oportuna: la información se acumula más rápidamente. Y para no perder datos potencialmente importantes para actividades operativas, es necesario organizar su almacenamiento competente. Por ejemplo, basado en almacenamiento distribuido.
Y en el proceso de implementación de dicho proyecto, sacamos varias conclusiones sobre el uso de Ceph:

Conclusión 1: Ceph reemplaza completamente todas las soluciones de respaldo
Como ha demostrado la práctica, la copia de seguridad de la mayoría de la información no estructurada no se realiza en absoluto, ya que es extremadamente difícil implementarla. Cuando se implementa Ceph, la copia de seguridad se obtiene como si "en forma de bonificación". Al configurar, simplemente establecemos parámetros de replicación: la cantidad de copias y la ubicación de su ubicación. Si el cliente tiene varios centros de datos, se obtiene una configuración desastrosa que simplemente no requiere copias de seguridad adicionales si hay 3-4 copias de datos en diferentes discos y servidores. Tal sistema funciona mejor que cualquier solución de hardware, al menos por el momento estamos hablando de grandes cantidades de datos y sistemas distribuidos geográficamente.

Conclusión 2: con grandes instalaciones, el rendimiento de Ceph es 99% igual al rendimiento de la red.
Cuando transferimos datos de una base de datos PostgreSQL (más sobre eso a continuación) a un almacenamiento basado en Ceph, la velocidad de carga en la mayoría de los casos fue igual al ancho de banda de la red de transmisión de datos. Si en algunos casos este no fuera el caso, la reconfiguración de Ceph permitió alcanzar esta velocidad. Por supuesto, no estamos hablando de conexiones de 100 Gb / s, pero con canales de datos estándar para infraestructuras distribuidas geográficamente, es bastante posible lograr un rendimiento de punto de punto Ceph de 10 Mbit / s, 100 Mbit / so 1 Gbit / s. Es suficiente distribuir correctamente los discos y configurar la agrupación de información.

Conclusión 3: Lo principal es configurar correctamente Ceph teniendo en cuenta las peculiaridades de la empresa.
Hablando de configuraciones, la mayor parte de la experiencia en el trabajo de Ceph se requiere en la etapa de configuración del sistema. Además de los parámetros de replicación, la solución también le permite establecer niveles de acceso, reglas de retención de datos, etc. Por ejemplo, si tenemos mini centros de computación en toda Rusia, podemos organizar el acceso rápido a documentos y archivos creados en nuestra región, así como el acceso a todos los documentos corporativos desde cualquier lugar. Este último funcionará con retrasos un poco más largos y menor velocidad, pero tal "concentración" de información en el lugar de propiedad crea condiciones óptimas para la organización.

Conclusión 4: cuando ya está configurado, cualquier administrador de Linux puede administrar Ceph
Quizás una de las características más agradables de Ceph es que el sistema funciona sin una participación humana innecesaria cuando ya está configurado. Es decir, en los mini centros de datos remotos es suficiente contener solo al administrador de Linux, ya que el soporte para el próximo segmento de Ceph no requiere ningún conocimiento adicional.

Conclusión 5: Complementar Ceph con un sistema de indexación externo hace que el almacenamiento sea conveniente para la búsqueda contextual
Como sabes, dentro de Ceph no hay ningún índice que pueda usarse para buscar por contexto. Por lo tanto, cuando se ingresa un objeto en el almacenamiento, es posible guardar los metadatos que sirven como índice. Su volumen es bastante pequeño y, por lo tanto, un DBMS relacional regular puede hacer frente fácilmente a ellos. Por supuesto, este es un sistema adicional, pero este enfoque le permite encontrar rápidamente información por contexto entre los enormes volúmenes de datos no estructurados.



Algunas palabras sobre transferencia de datos
Un proyecto grande involucra muchas etapas, pero quizás lo más interesante para nosotros fue el proceso de transferir grandes cantidades de datos de PostgreSQL a un nuevo repositorio. Después de lanzar Ceph, surgió la tarea de migrar datos de múltiples bases de datos sin detener los servicios y los procesos comerciales y garantizar la integridad de la información.
Para hacer esto, tuvimos que contribuir al desarrollo del proyecto Ceph Open Source y crear el módulo de migración pg_rbytea, cuyo código fuente se puede encontrar en el enlace ( https://github.com/val5244/pg_rbytea ). La esencia de la solución era transferir simultáneamente datos de la base de datos especificada al repositorio de Ceph. El módulo desarrollado le permite migrar datos instantáneamente sin detener la base de datos, utilizando la abstracción del almacenamiento de objetos Rados, cuyo soporte se implementa en Ceph a nivel nativo. Por cierto, hicimos un informe sobre esto en PG Conf a principios de 2018 ( https://pgconf.ru/2018/107082 ).
En la primera etapa, varios datos binarios necesarios para el trabajo funcional de los departamentos del departamento se trasladaron al repositorio. De hecho, todos esos archivos y objetos que no tienen claro cómo almacenarlos debido a su enorme volumen total y estructura difusa. A continuación, se planea transferir diversos contenidos multimedia a Ceph, almacenando los documentos originales que se crean antes del reconocimiento y los archivos adjuntos de las cartas corporativas.
Para que todo esto funcione sobre el almacenamiento, se desarrollaron servicios RESTful que permitieron usar Ceph para la integración en los sistemas del cliente. Una vez más, la presencia de una API conveniente jugó un papel importante, que le permite crear un servicio de complemento para varios sistemas de información. Por lo tanto, Ceph se ha convertido en el repositorio principal, reclamando cada vez más volúmenes y tipos de información dentro de la organización.

Conclusión
Existen varios almacenes de datos distribuidos en el mercado, incluidas soluciones comerciales y otros productos de código abierto. Algunos usan optimizaciones especiales, otros trabajan con compresión o usan Erasure Coding. Sin embargo, en la práctica, estábamos convencidos de que Ceph es ideal para entornos verdaderamente distribuidos y grandes almacenamientos, porque en este caso el rendimiento del sistema está limitado solo por la velocidad de los canales de comunicación, y usted ahorra mucho dinero en licencias por la cantidad de servidores o por la cantidad de datos (dependiendo de con qué producto comparar). Un sistema Ceph bien ajustado le permite garantizar un rendimiento óptimo con una supervisión mínima por parte de los administradores locales en el campo. Y esta es una gran ventaja si introduce una implementación distribuida geográficamente.

Source: https://habr.com/ru/post/es417613/


All Articles