Almacenamiento de objetos en la trastienda o Cómo convertirse en su propio proveedor de servicios

El mundo vio el primer prototipo de almacenamiento de objetos en 1996. Después de 10 años, Amazon Web Services lanzará Amazon S3, y el mundo comenzará a volverse loco sistemáticamente con un espacio de direcciones plano. Debido al trabajo con metadatos y su capacidad de escalar sin hundirse bajo carga, el almacenamiento de objetos se convirtió rápidamente en el estándar para la mayoría de los servicios de almacenamiento en la nube, y más. Otra característica importante es su buena capacidad para almacenar archivos y archivos similares raramente utilizados. Todos los que participaron en el almacenamiento de datos se regocijaron y llevaron la nueva tecnología a la mano.



Pero el rumor de la gente estaba lleno de rumores de que el almacenamiento de objetos es solo sobre grandes nubes, y si no necesita soluciones de los malditos capitalistas, entonces será muy difícil hacer el suyo. Se ha escrito mucho sobre el despliegue de su nube, pero no hay mucha información sobre la creación de las llamadas soluciones compatibles con S3.


Por lo tanto, hoy descubriremos cuáles son las opciones "Para que se parezca más a los adultos, no a CEPH y a un archivo más grande", ampliaremos uno de ellos y lo comprobaremos con Veeam Backup & Replication para verificar que todo funcione. Reclama soporte para trabajar con repositorios compatibles con S3, y revisaremos esta declaración.


¿Qué hay de los demás?


Sugiero comenzar con una breve descripción del mercado y las opciones para el almacenamiento de objetos. Un líder y estándar reconocido es el Amazon S3. Los dos perseguidores más cercanos son Microsoft Azure Blob Storage e IBM Cloud Object Storage.


¿Eso es todo? ¿Realmente no hay otros competidores? Por supuesto, hay competidores, pero alguien sigue su propio camino, como Google Cloud u Oracle Cloud Object Storage, con soporte incompleto para la API S3. Alguien está utilizando versiones anteriores de la API como Baidu Cloud. Y algunos, como Hitachi Cloud, requieren el uso de una lógica especial, que ciertamente causará sus dificultades. En cualquier caso, todos se comparan con Amazon, que puede considerarse un estándar industrial.


Pero las soluciones locales tienen muchas más opciones, así que identifiquemos los criterios que son importantes para nosotros. En principio, solo dos son suficientes: soporte para la API S3 y el uso de la firma v4. De común acuerdo, nosotros, como futuros clientes, solo estamos interesados ​​en las interfaces para la interacción, y la cocina interna del almacenamiento en sí no es tan interesante para nosotros.


Bueno, muchas soluciones son adecuadas para estas condiciones simples. Por ejemplo, los pesos pesados ​​corporativos clásicos:


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

Hay un nicho de soluciones de software puro que funcionan de manera inmediata:


  • Red hat ceph
  • SUSE Enterprise Storage
  • Cloudian

E incluso aquellos a quienes les gusta procesar cuidadosamente el archivo después del ensamblaje no se sintieron ofendidos:


  • Ceph puro
  • Minio (versión de Linux, para la versión de Windows hay muchas preguntas)

La lista está lejos de ser completa, se puede discutir en los comentarios. Solo recuerde verificar el rendimiento del sistema además de la API de compatibilidad antes de la implementación. Lo último que necesita es la pérdida de terabytes de datos debido a solicitudes pendientes. Así que siéntase libre de realizar pruebas de estrés. En general, todo el software para adultos que funciona con grandes cantidades de datos tiene al menos informes de compatibilidad. En el caso de Veeam, existe un programa completo para pruebas mutuas, que le permite declarar de forma segura la compatibilidad total de nuestros productos con equipos específicos. Esto ya es un trabajo bidireccional, no siempre rápido, pero estamos ampliando constantemente la lista de soluciones probadas.


Poniendo nuestro stand juntos


Me gustaría hablar un poco sobre la elección de un sujeto de prueba.


En primer lugar, quería encontrar una opción que funcionara de inmediato. Bueno, o al menos con la máxima probabilidad de que gane sin tener que hacer gestos adicionales. Bailar con una pandereta y elegir la consola en la noche es muy emocionante, pero a veces quiero que funcione de inmediato. Y la fiabilidad general de tales soluciones suele ser mayor. Y sí, el espíritu de aventurerismo desapareció en nosotros, dejamos de subir por las ventanas de nuestras amadas mujeres, etc. (c).


En segundo lugar, para ser honesto, la necesidad de trabajar con el almacenamiento de objetos surge para compañías bastante grandes, por lo que este es el caso cuando se buscan soluciones a nivel empresarial no solo no se avergüenzan, sino que incluso se alienta. En cualquier caso, todavía no conozco ningún ejemplo de alguien despedido por comprar tales soluciones.


Basado en lo anterior, mi elección recayó en la edición comunitaria de Dell EMC ECS . Este es un proyecto muy interesante, y considero necesario contarte al respecto.


Lo primero que viene a la mente cuando mira el complemento Community Edition es que es solo un documento de seguimiento de un ECS completo con algunas restricciones que se eliminan mediante la compra de una licencia. Entonces no!


Recuerda:


¡¡¡Community Edition es un proyecto separado diseñado para pruebas y sin el soporte técnico de Dell !!
Y no puede convertirse en un ECS completo, incluso si realmente lo desea.


Entendamos


Mucha gente piensa que Dell EMC ECS es casi la mejor solución si necesita almacenamiento de objetos. Todos los proyectos bajo la marca ECS, incluidos los comerciales y corporativos, se encuentran en el github . Una especie de gesto de buena voluntad de Dell. Y además del software que se ejecuta en su hardware de marca, hay una versión de código abierto que se puede implementar incluso en la nube, al menos en una máquina virtual, al menos en el contenedor, al menos en cualquiera de sus equipos. Mirando hacia el futuro, incluso hay una versión OVA, que usaremos.
DELL ECS Community Edition es una mini versión del software completo que se ejecuta en servidores de la marca Dell EMC ECS.


Destaqué cuatro diferencias principales:


  • Sin soporte de cifrado. Es una pena, pero no crítico.
  • Falta la capa de tela. Esta cosa es responsable de la construcción del clúster, la gestión de recursos, las actualizaciones, el monitoreo y el almacenamiento de las imágenes de Docker. Aquí ya es muy decepcionante, pero Dell también se puede entender.
  • La consecuencia más desagradable del párrafo anterior: el tamaño del nodo no se puede expandir una vez completada la instalación.
  • Sin soporte técnico. Este es un producto para pruebas, que no está prohibido usar en instalaciones pequeñas, pero personalmente no me atrevería a cargar petabytes de datos importantes allí. Pero técnicamente nadie puede evitar que hagas esto.


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


Galopamos por Europa en busca de soluciones de hierro para tener una imagen más completa del ecosistema.


No confirmaré ni refutaré la afirmación de que DELL ECS es el mejor almacenamiento de objetos en las instalaciones, pero si tiene algo que decir sobre este tema, lo leeré en los comentarios con gusto. En cualquier caso, según IDC MarketScape 2018, Dell EMC es con confianza uno de los cinco líderes en el mercado OBS. Aunque las soluciones basadas en la nube no se tienen en cuenta allí, este es un tema 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. Admite AWS S3 y OpenStack Swift. Para el depósito habilitado para archivos, ECS admite NFSv3 para las capacidades de exportación de archivos.


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


  • Cuando llegan nuevos datos, se crea un nuevo objeto que tiene un nombre, los datos en sí y los metadatos.
  • Los objetos golpean en fragmentos de 128 MB, y cada fragmento se graba inmediatamente en tres nodos.
  • El archivo de índice se actualiza, donde se registran los identificadores y las ubicaciones de almacenamiento.
  • El archivo de registro (registro de registro) se actualiza y también se escribe en tres nodos.
  • Se envía un mensaje sobre la grabación exitosa al cliente.
    Las tres copias de los datos se registran en paralelo. La grabación se considera exitosa solo si las tres copias se han grabado con éxito.


La lectura es más simple:


  • El cliente solicita datos.
  • El índice busca un lugar para almacenar datos.
  • Los datos se leen desde un nodo y se envían al cliente.


Hay bastantes servidores, así que echemos un vistazo al Dell EMC ECS EX300 más pequeño. Comienza en 60Tb, con la capacidad de crecer a 1.5Pb. Y su hermano mayor, Dell EMC ECS EX3000, ya puede almacenar hasta 8.6Pb por rack.


Implementar


Técnicamente, Dell ECS CE se puede implementar de forma arbitrariamente grande. En cualquier caso, no encontré ninguna restricción explícita. Sin embargo, todo el escalado se realiza convenientemente clonando el primer nodo, para lo cual necesitamos:


  • 8 vCPU
  • 64 GB de RAM
  • 16 GB para sistemas operativos
  • 1 TB directamente para almacenamiento
  • Última versión mínima de CentOS

Esta es una opción para el caso en que desea instalar todo usted mismo desde el principio. Para nosotros, esta opción no es relevante, porque Usaré la imagen OVA para la implementación.


Pero, en cualquier caso, los requisitos son muy malos incluso para un nodo, y si sigue estrictamente la letra de la ley, entonces hay cuatro de estos nodos.


Sin embargo, los desarrolladores de ECS CE viven en el mundo real, y la instalación es exitosa incluso con un solo nodo, y los requisitos mínimos son los siguientes:


  • 4 vCPU
  • 16 GB de RAM
  • 16 GB para sistemas operativos
  • 104 GB de autoalmacenamiento

Son estos recursos los que se necesitan para implementar una imagen OVA. Ya mucho más humano y realista.


El nodo de instalación en sí se puede tomar en el github oficial. También hay documentación detallada sobre la implementación del todo en uno, pero aún puede leer en los documentos oficiales de lectura . Por lo tanto, no nos detendremos en el despliegue de OVA en detalle, no hay trucos. Lo principal: no olvide antes de iniciarlo, expanda el disco al volumen deseado o adjunte los necesarios.
Arrancamos el automóvil, abrimos la consola y usamos los mejores créditos predeterminados:


  • inicio de sesión: admin
  • contraseña: ChangeMe

Luego comenzamos sudo nmtui y configuramos la interfaz de red: IP / máscara, DNS y puerta. Teniendo en cuenta que CentOS minimal no tiene herramientas de red, verificamos la configuración a través de ip addr.



Y dado que los mares solo se envían audazmente, hacemos yum update, luego de lo cual reiniciamos. De hecho, es bastante seguro, porque Toda la implementación se realiza a través de libros de jugadas, y todos los paquetes importantes de Docker están bloqueados en la versión actual.


Ahora es el momento de editar el script de instalación. No hay ventanas hermosas o pseudo interfaz de usuario para usted, todo a través de su editor de texto favorito. Desde el punto de vista técnico, existen dos formas: puede iniciar cada comando con identificadores o iniciar inmediatamente el configurador de videoploy. Simplemente abrirá la configuración en vim y, al salir, ejecutará su comprobación. Pero simplificar deliberadamente tu vida no es interesante, así que haremos dos equipos más. Aunque no tiene sentido, te lo advertí =)


Entonces, hacemos vim ECS-CommunityEdition / deploy.xml y hacemos los cambios mínimos óptimos para que ECS se encienda y funcione. La lista de parámetros se puede acortar, pero me gustó esto:


  • License_accepted: true No puede cambiarlo, luego, al implementarlo, se le pedirá explícitamente que lo acepte y mostrará una buena frase. Quizás esto sea incluso un huevo de pascua.
  • Descomente las líneas de nombres automáticos: y personalizado: ingrese al menos un nombre deseado para el nodo; el nombre de host será reemplazado por él durante el proceso de instalación.
  • install_node: 192.168.1.1 Especifique los nodos IP reales. En nuestro caso, indicamos lo mismo que en nmtui
  • dns_domain: ingrese su dominio.
  • dns_servers: ingrese su dns.
  • ntp_servers: puede especificar cualquiera. Tomé el primero del grupo 0.pool.ntp.org (se convirtió en 91.216.168.42)
  • autonaming: personalizado Si no descomenta, la luna se llamará Luna.
  • ecs_block_devices:
    / dev / sdb
    Por alguna razón desconocida, puede haber un dispositivo de almacenamiento en bloque inexistente / dev / vda
  • pools_almacenamiento:
    miembros:
    192.168.1.1 Aquí nuevamente indicamos los nodos IP reales
  • ecs_block_devices:
    / dev / sdb Repite la operación de cortar dispositivos inexistentes.

En general, el archivo completo se describe con gran detalle en la documentación , pero quién lo leerá en un momento tan agitado. También dice que el mínimo es suficiente para especificar la IP y la máscara, pero en mi laboratorio esta configuración no fue buena, y tuve que expandirme a lo anterior.



Después de salir del editor, ejecute update_deploy /home/admin/ECS-CommunityEdition/deploy.yml, y si todo se hace correctamente, esto se informará explícitamente.



Luego, aún debe iniciar videploy, esperar a que se actualice el entorno y puede comenzar la instalación en sí con el comando ova-step1 y, después de su ejecución exitosa, el comando ova-step2. Importante: ¡no dejes de escribir con tus manos! Algunos pasos pueden llevar un tiempo considerable, no se realizan en el primer intento, y parece que todo está roto. En cualquier caso, debe esperar a que el script se complete de forma natural. Al final deberías ver algo como esto.



Ahora, finalmente, podemos abrir el panel de control de WebUI sobre la IP que conocemos. Si no cambió la etapa de configuración, la cuenta predeterminada será root / ChangeMe. Incluso puede usar de inmediato nuestro almacenamiento compatible con S3. Está disponible en los puertos 9020 para HTTP y 9021 para HTTPS. Nuevamente, si no cambiaste nada, entonces access_key: object_admin1 y secret_key: ChangeMeChangeMeChangeMeChangeMeChangeMe.


Pero no nos adelantemos y comencemos en orden.



En el primer inicio de sesión, se le pedirá a la fuerza que cambie la contraseña por una adecuada, lo cual es absolutamente correcto. El tablero principal es extremadamente comprensible, así que hagamos algo más interesante que explicar las métricas obvias. Por ejemplo, cree un usuario que usaremos para acceder al repositorio. En el mundo de los proveedores de servicios, se denominan inquilinos. Esto se hace en Administrar> Usuarios> Nuevo usuario de objeto



Al crear un usuario, se nos pide que especifiquemos un espacio de nombres. Técnicamente, nada nos impide obtener tantos como habrá usuarios. Y viceversa. Esto le permite administrar los recursos de forma independiente para cada inquilino.


En consecuencia, seleccionamos las funciones que necesitamos y generamos las claves de usuario. S3 / Atmos será suficiente para mí. Y no olvides guardar la clave;)



El usuario fue creado, ahora es el momento de que seleccione el cubo. Vaya a Administrar> Cubo y complete los campos obligatorios. Todo es simple aquí.



Ahora estamos listos para un uso totalmente combativo de nuestro almacenamiento S3.


Personaliza Veeam


Entonces, como recordamos, uno de los principales usos del almacenamiento de objetos es el almacenamiento a largo plazo de información a la que rara vez se accede. Un ejemplo ideal es la necesidad de almacenar copias de seguridad en un sitio remoto. En Veeam Backup & Replication, esta característica se llama Nivel de capacidad.


Comencemos la configuración agregando nuestro Dell ECS CE a la interfaz Veeam. En la pestaña Infraestructura de respaldo, inicie el Asistente para agregar nuevo repositorio y seleccione el elemento Almacenamiento de objetos.



Elegimos de qué se trataba: compatible con S3.



En la ventana que aparece, escriba el nombre deseado y vaya al paso Cuenta. Aquí debe especificar el punto de Servicio en el formulario https: // your_IP: 9021 , puede dejar la región como está y agregar el usuario creado. Se necesita un servidor de puerta si su almacenamiento se encuentra en un sitio remoto, pero esto ya es un tema de optimización de infraestructura y un artículo separado, por lo que puede omitirlo de manera segura aquí.



Si todo está especificado y configurado correctamente, aparecerá una advertencia de certificado y luego una ventana con un cubo donde puede crear una carpeta para nuestros archivos.



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



En el siguiente paso, debe crear un nuevo repositorio de copia de seguridad escalable o agregar nuestro S3 al existente; se usará como nivel de capacidad para el almacenamiento de archivos. Las funciones para usar repositorios compatibles con S3 directamente, como un repositorio normal, no están en la versión actual. Se deben resolver demasiados problemas poco obvios para esto, pero todo se puede resolver.
Entramos en la configuración del repositorio y activamos el Nivel de capacidad. Allí todo es transparente, pero hay un matiz interesante: si desea que todos los datos se envíen al almacenamiento de objetos lo antes posible, solo configure 0 días.



Después de pasar el asistente, si no desea esperar, puede presionar ctrl + RMB en el repositorio, forzar el trabajo de Nivelación para comenzar y ver cómo se arrastran los gráficos.



Eso es todo por ahora. Considero que la tarea de mostrar que el almacenamiento en bloque no es tan aterrador como suele pensarse, logré. Sí, hay soluciones y opciones para un vagón y un carro pequeño, pero no puede cubrir todo en un artículo. Así que compartamos la experiencia en los comentarios.

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


All Articles