Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

El primer prototipo de almacenamiento de objetos apareció en 1996. Diez años después, Amazon Web Services lanzó Amazon S3, y el mundo comenzó a entusiasmarse progresivamente con el espacio de direcciones plano. Gracias al trabajo con metadatos y su capacidad de escalar sin problemas bajo carga, el almacenamiento de objetos rápidamente se convirtió en el estándar para la mayoría de los servicios de almacenamiento de datos en la nube, y no solo. Otra característica importante es su buena adaptabilidad para almacenar archivos raramente utilizados, como archivos de archivo. Todos los que estaban involucrados en el almacenamiento de datos celebraron y llevaron la nueva tecnología a sus brazos.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

Pero los rumores circulaban, diciendo que el almacenamiento de objetos era solo para grandes nubes, y que si no deseabas soluciones de los malditos capitalistas, crear la tuya propia sería muy complicado. Se ha escrito mucho sobre cómo desplegar tu propia nube, pero hay poca información sobre la creación de soluciones compatibles con S3.

Así que hoy exploraremos qué opciones existen para "Hacerlo como los adultos, en lugar de CEPH y con un poco más de esfuerzo", desplegaremos una de ellas, y comprobáremos si todo funciona con Veeam Backup & Replication. Se declara que es compatible con el trabajo con almacenes compatibles con S3, y eso es lo que vamos a verificar.

¿Y qué hay de los demás?

Propongo comenzar con una breve revisión del mercado y las opciones de almacenamiento de objetos. El líder y estándar reconocido es Amazon S3. Los dos siguientes en la lista son Microsoft Azure Blob Storage e IBM Cloud Object Storage.

¿Y eso es todo? ¿No hay otros competidores? Claro que hay competidores, pero algunos siguen su propio camino, como Google Cloud o Oracle Cloud Object Storage, con soporte incompleto de la API de S3. Algunos utilizan versiones más antiguas de la API, como Baidu Cloud. Y otros, como Hitachi Cloud, requieren utilizar una lógica especial, lo que sin duda traerá sus propias dificultades. En cualquier caso, todos se comparan con Amazon, que se puede considerar como el estándar de la industria.

Sin embargo, en las soluciones on-premise hay muchas más opciones, así que definamos los criterios importantes para nosotros. En principio, bastan dos: soporte para la API de S3 y uso de la firma v4. Hablando con sinceridad, lo que realmente nos interesa como futuros clientes son las interfaces de interacción; la cocina interna del almacenamiento en sí nos interesa mucho menos.

Bajo estas simples condiciones se adaptan muchas soluciones. Por ejemplo, los clásicos pesados corporativos:

  • DellEMC ECS
  • NetApp S3 StorageGrid
  • Nutanix Buckets
  • Pure Storage FlashBlade y StorReduce
  • Huawei FusionStorage

Hay un nicho de soluciones puramente software que funcionan directamente:

  • Red Hat Ceph
  • SUSE Enterprise Storage
  • Cloudian

E incluso quienes aman pulir un poco después del ensamblaje no se han sentido ofendidos:

  • CEPH en su forma pura
  • Minio (versión de Linux, ya que hay muchas preguntas sobre la versión de Windows)

La lista no está completa, se puede discutir en los comentarios. Simplemente no olviden verificar la compatibilidad del API junto con el rendimiento del sistema antes de la implementación. Lo último que necesitan es perder terabytes de datos por consultas congeladas. Así que no duden en hacer pruebas de carga. En general, todo el software maduro que trabaja con grandes volúmenes de datos tiene, como mínimo, informes de compatibilidad. En el caso de Veeam hay hay un programa de pruebas mutuas que permite afirmar con confianza la plena compatibilidad de nuestros productos con hardware específico. Esto ya es un trabajo de dos vías, no siempre rápido, pero constantemente estamos ampliando lista las soluciones probadas.

Montamos nuestro stand

Quisiera hablar un poco sobre la elección del sujeto.

Primero, quería encontrar una opción que funcione inmediatamente. O al menos con la máxima probabilidad de que funcione sin necesidad de movimientos adicionales. Hacer danzas con un tambor y hurgar en la consola por la noche es muy emocionante, pero a veces se desea que funcione de inmediato. Y la fiabilidad general de tales soluciones suele ser más alta. Y sí, se nos ha ido el espíritu aventurero, hemos dejado de trepar por las ventanas para ver a nuestras amadas, etc. (s).

En segundo lugar, si hablamos honestamente, la necesidad de trabajar con almacenes de objetos surge en empresas bastante grandes, así que este es el caso en el que no solo no es vergonzoso, sino que incluso se fomenta mirar hacia soluciones de nivel empresarial. De todos modos, no conozco ejemplos donde alguien haya sido despedido por comprar tales soluciones.

Con base en todo lo anterior, mi elección recayó en Dell EMC ECS Community Edition. Es un proyecto muy interesante, y considero necesario contarles sobre él.

Lo primero que viene a la mente al ver el complemento Community Edition — que esto es simplemente una copia del ECS completo con algunas restricciones que se eliminan al comprar la licencia. ¡Pero no es así!

Recuerden:

!!!La Community Edition es un proyecto separado, creado para pruebas, y sin soporte técnico por parte de Dell!!
Y no se puede convertir en un ECS completo, incluso si se desea mucho.

Vamos a analizarlo

Muchos consideran que Dell EMC ECS es quizás la mejor solución cuando se necesita almacenamiento de objetos. Todos los proyectos bajo la marca ECS, incluidos los comerciales y corporativos, se basan en github. Un gesto de buena voluntad de Dell. Además del software que se ejecuta en su hardware de marca, hay una versión de código abierto que se puede desplegar en la nube, en una máquina virtual, en un contenedor o en cualquier hardware propio. Anticipándonos, incluso hay una versión OVA, la cual utilizaremos.
La Community Edition de DELL ECS es una versión mini del software completo que opera en los servidores de marca Dell EMC ECS.

He destacado cuatro diferencias principales:

  • No hay soporte para cifrado. Es decepcionante, pero no crítico.
  • No cuenta con Fabric Layer. Esta herramienta es responsable de construir clústeres, gestionar recursos, actualizaciones, monitoreo y almacenamiento de imágenes Docker. Aquí es donde resulta muy decepcionante, aunque también se puede entender a Dell.
  • La consecuencia más molesta del punto anterior: el tamaño del nodo no se puede ampliar una vez finalizada la instalación.
  • No hay soporte técnico. Este producto es para pruebas, que se puede utilizar en instalaciones pequeñas, pero personal de llenarlo con petabytes de datos importantes, no me atrevería a hacerlo. Sin embargo, tecnicamente, nadie puede impedir que lo haga.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

¿Y qué hay en la versión completa?

Daremos un recorrido rápido por las soluciones de hardware para tener una idea más completa del ecosistema.

No voy a confirmar ni refutar la afirmación de que DELL ECS es el mejor almacenamiento de objetos on-prem, pero si tienes algo que decir al respecto, estaré encantado de leerlo en los comentarios. En cualquier caso, según la versión IDC MarketScape 2018 Dell EMC se sitúa cómodamente entre los cinco líderes del mercado de OBS. Aunque no se tienen en cuenta las soluciones basadas en la nube, esa es una conversación aparte.

Desde un punto de vista técnico, ECS es un almacenamiento de objetos que proporciona acceso a datos a través de protocolos de almacenamiento en la nube. Soporta AWS S3 y OpenStack Swift. Para los cubos habilitados para archivos, ECS soporta NFSv3 para la exportación a nivel de archivo.

El proceso de grabación de información es bastante inusual, especialmente después de los sistemas clásicos de almacenamiento en bloques.

  • Cuando se reciben nuevos datos, se crea un nuevo objeto que tiene un nombre, los datos mismos y metadatos.
  • Los objetos se dividen en partes de 128 MB, y cada parte se graba inmediatamente en tres nodos.
  • Se actualiza el archivo de índices donde se registran los identificadores y ubicaciones de almacenamiento.
  • Se actualiza el archivo de registro (bitácora de escritura) y también se graba en tres nodos.
  • Se envía un mensaje al cliente confirmando la grabación exitosa.
    Las tres copias de los datos se graban en paralelo. La grabación se considera exitosa solo si las tres copias se han grabado correctamente.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

La lectura es un poco más sencilla:

  • El cliente solicita los datos.
  • Se busca en el índice la ubicación de almacenamiento de los datos.
  • Los datos se leen desde un nodo y se envían al cliente.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

Hay muchos servidores, así que echemos un vistazo al más pequeño, el Dell EMC ECS EX300. Comienza con 60 TB y puede crecer hasta 1,5 PB. Su hermano mayor, el Dell EMC ECS EX3000, permite almacenar hasta 8,6 PB por rack.

Despliegue

Técnicamente, Dell ECS CE se puede desplegar en cualquier tamaño. En cualquier caso, no he encontrado limitaciones explícitas. Sin embargo, toda la escalabilidad se hace cómodamente clonando el primer nodo, para lo cual necesitaremos:

  • 8 vCPU
  • 64 GB de RAM
  • 16 GB para el sistema operativo
  • 1 TB directamente para almacenamiento
  • La última versión de CentOS minimal

Esta es una opción para el caso en que desee instalarlo todo desde el principio. Para nosotros, esta opción no es relevante, ya que usaré una imagen OVA para el despliegue.

Pero de todos modos, los requisitos son bastante exigentes incluso para un solo nodo, y si se sigue estrictamente la letra de la ley, se necesitan cuatro nodos.

Sin embargo, los desarrolladores de ECS CE viven en el mundo real, y la instalación se lleva a cabo con éxito incluso con un solo nodo, y los requisitos mínimos son los siguientes:

  • 4 vCPU
  • 16 GB de RAM
  • 16 GB para el sistema operativo
  • 104 GB para el almacenamiento en sí

Estos son los recursos necesarios para desplegar la imagen OVA. Ya es mucho más razonable y realista.

El nodo de instalación se puede obtener oficialmente. github. También hay documentación detallada sobre la implementación todo-en-uno, pero se puede leer más en el oficial readthedocs. Por lo tanto, no nos detendremos mucho en la implementación de OVA, es simple. Lo principal es no olvidar expandir el disco a su tamaño adecuado antes de su ejecución, o adjuntar los necesarios.
Iniciamos la máquina, abrimos la consola y usamos las mejores credenciales por defecto:

  • usuario: admin
  • contraseña: ChangeMe

Luego, ejecutamos sudo nmtui y configuramos la interfaz de red — IP/máscara, DNS y puerta de enlace. Recordando que en CentOS minimal no hay net-tools, verificamos la configuración a través de ip addr.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

Y dado que solo los valientes conquistarán los mares, hacemos yum update, seguido de un reinicio. En realidad, esto es bastante seguro, ya que toda la implementación se realiza a través de playbooks y todos los paquetes importantes de Docker están bloqueados en la versión actual.

Ahora es hora de editar el script de instalación. No habrá ventanas elegantes ni interfaz de usuario pseudo — todo con su editor de texto favorito. Técnicamente, hay dos caminos: se pueden ejecutar cada comando manualmente o iniciar el configurador videploy de inmediato. Simplemente abrirá la configuración en vim y al salir ejecutará su verificación. Pero no es interesante simplificar la vida, así que realizaremos dos comandos adicionales. Aunque no tiene mucho sentido, se los aviso =)

Así que hacemos vim ECS-CommunityEdition/deploy.xml y hacemos los cambios mínimos óptimos para que ECS se active y funcione. Se puede acortar la lista de parámetros, pero hice esto:

  • licensed_accepted: true No es necesario cambiarlo, entonces al desplegar, se le pedirá explícitamente que lo acepte y mostrará una frase encantadora. Tal vez sea incluso un huevo de Pascua.
    Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios
  • Descomentar las líneas autonames: y custom: Ingresar al menos un nombre deseado para el nodo — el hostname será reemplazado durante la instalación.
  • install_node: 192.168.1.1 Especificar la IP real del nodo. En nuestro caso indicamos la misma que en nmtui
  • dns_domain: ingresamos nuestro dominio.
  • dns_servers: ingresamos nuestro dns.
  • ntp_servers: se puede especificar cualquiera. Tomé el primero que encontré del pool 0.pool.ntp.org (que se convirtió en 91.216.168.42)
  • autonaming: custom Si no se descomenta, la luna se llamará Luna.
  • ecs_block_devices:
    /dev/sdb
    Por alguna razón desconocida, aquí puede haber un dispositivo de almacenamiento en bloque inexistente /dev/vda
  • storage_pools:
    members:
    192.168.1.1 Aquí nuevamente especificamos la IP real del nodo
  • ecs_block_devices:
    /dev/sdb Повторяем операцию вырезания несуществующих устройств.

De hecho, todo el archivo está muy bien descrito en la documentación, pero ¿quién lo va a leer en tiempos tan turbulentos? Se dice que lo mínimo necesario es indicar la IP y la máscara, pero en mi laboratorio ese conjunto no funcionaba bien, así que tuve que ampliar lo mencionado anteriormente.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

Después de salir del editor, debes ejecutar update_deploy /home/admin/ECS-CommunityEdition/deploy.yml, y si todo se ha hecho correctamente, se notificará explícitamente.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

Luego tendrás que ejecutar videploy, esperar a que se actualice el entorno, y podrás iniciar la instalación con el comando ova-step1, y después de su ejecución exitosa, el comando ova-step2. Importante: ¡no interrumpas el trabajo de los scripts manualmente! Algunos pasos pueden tardar mucho tiempo, no ejecutarse a la primera y parecer que todo se ha roto. En cualquier caso, debes esperar a que el script termine de forma natural. Al final deberías ver un mensaje similar a este.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

Finalmente, podemos abrir la interfaz de usuario web en la IP que ya conocemos. Si no cambiaste nada en la configuración, la cuenta por defecto será root/ChangeMe. Incluso puedes empezar a usar nuestro almacenamiento compatible con S3 de inmediato. Está disponible en los puertos 9020 para HTTP y 9021 para HTTPS. Nuevamente, si no cambiaron nada, entonces access_key: object_admin1 y secret_key: ChangeMeChangeMeChangeMeChangeMeChangeMe.

Pero no nos adelantemos demasiado y empecemos por orden.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

En el primer inicio de sesión, se te pedirá que cambies la contraseña a una más razonable, lo cual es absolutamente correcto. El panel principal es muy intuitivo, así que hagamos algo más interesante que explicar métricas obvias. Por ejemplo, creemos un usuario que utilizaremos para acceder al almacenamiento. En el mundo de los proveedores de servicios, a estos se les llama tenant. Esto se hace en Manage > Users > New Object User.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

Al crear el usuario, se nos pide que indiquemos el namespace. Técnicamente, no hay nada que impida crear tantos como usuarios haya. Y viceversa. Esto permite gestionar recursos de manera independiente para cada tenant.

Por lo tanto, seleccionamos las funciones necesarias y generamos las claves del usuario. Me será suficiente con S3/Atmos. Y no olvides conservar la clave 😉

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

Hemos creado el usuario, ahora es momento de asignarle un bucket. Vamos a Manage > Bucket y completamos los campos requeridos. Aquí es bastante simple.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

Ahora estamos listos para un uso operativo de nuestro almacenamiento S3.

Configuramos Veeam

Entonces, como recordamos, una de las principales aplicaciones del almacenamiento de objetos es el almacenamiento a largo plazo de información a la que se accede raramente. Un ejemplo perfecto es la necesidad de almacenar copias de seguridad en una ubicación remota. En Veeam Backup & Replication, esta función se llama Capacity Tier.

Comencemos la configuración agregando nuestro Dell ECS CE en la interfaz de Veeam. En la pestaña Backup Infrastructure, iniciamos el asistente para agregar un nuevo repositorio y seleccionamos la opción Object Storage.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

Elegimos lo que se había planeado: S3 Compatible.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

En la ventana que aparece, escribimos el nombre deseado y pasamos al paso de Cuenta. Aquí debemos indicar el Service point en forma de https://your_IP:9021, el región se puede dejar como está y agregar el usuario creado. El gateway server es necesario si su almacenamiento se encuentra en una ubicación remota, pero eso ya es tema de optimización de infraestructura y otro artículo por separado, así que aquí se puede omitir.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

Si todo se ha especificado y configurado correctamente, aparecerá una advertencia sobre el certificado y luego una ventana con el bucket, donde se puede crear una carpeta para nuestros archivos.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

Pasamos por el asistente hasta el final y disfrutamos del resultado.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

En el siguiente paso, se necesita crear un nuevo Scale-out Backup Repository o agregar nuestro S3 a uno existente; se utilizará como Capacity Tier para el almacenamiento archivado. En la versión actual no hay funciones para usar almacenes compatibles con S3 directamente como un repositorio normal. Hay demasiados problemas poco evidentes que resolver para esto, pero todo es posible.
Entramos en la configuración del repositorio y habilitamos el Capacity Tier. Allí todo es transparente, pero hay un matiz interesante: si se desea que todos los datos se envíen al almacenamiento de objetos en el menor tiempo posible, simplemente establezca 0 días.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

Después de pasar por el asistente, si no se desea esperar, se puede presionar ctrl+click derecho en el repositorio, forzar la ejecución del trabajo de tiering y observar cómo se mueven los gráficos.

Almacenamiento de objetos en el garaje, o cómo convertirse en su propio proveedor de servicios

Por ahora, eso es todo. Considero que he logrado mostrar que los almacenes de bloques no son tan aterradores como se suele pensar. Sí, hay soluciones y opciones en abundancia, pero no se puede abarcar todo en un solo artículo. Así que compartamos experiencias en los comentarios.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster