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. En 10 años, Amazon Web Services lanzará Amazon S3 y el mundo comenzará a volverse loco sistemáticamente con un espacio de direcciones plano. Gracias a su manejo de metadatos y su capacidad de escalar sin hundirse bajo carga, el almacenamiento de objetos se ha convertido rápidamente en el estándar para la mayoría de los servicios de almacenamiento en la nube y más allá. Otra característica importante es su buena adaptabilidad para almacenar archivos comprimidos y archivos similares de uso poco frecuente. Todos los involucrados en el almacenamiento de datos vitorearon y llevaron la nueva tecnología en sus manos.

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

Pero los rumores de la gente estaban llenos de rumores de que el almacenamiento de objetos se trata solo de grandes nubes, y si no necesitas soluciones de los malditos capitalistas, entonces será muy difícil crear las tuyas propias. Ya se ha escrito mucho sobre la implementación de su propia nube, pero no hay suficiente información sobre la creación de las llamadas soluciones compatibles con S3.

Por lo tanto, hoy descubriremos qué opciones hay "Ser como adultos, y no CEPH y un archivo más grande", implementaremos una de ellas y verificaremos que todo funcione con Veeam Backup & Replication. Reclama soporte para trabajar con almacenamientos compatibles con S3, y revisaremos esta declaración.

¿Qué hay de los demás?

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

¿Eso es todo? ¿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 de S3. Alguien está usando versiones antiguas de la API, como Baidu Cloud. Y algunos, como Hitachi Cloud, requieren la aplicación de una lógica especial, lo que sin duda causará sus propias dificultades. En cualquier caso, todos se comparan con Amazon, que puede considerarse el estándar de la industria.

Pero en las soluciones locales, la elección es mucho mayor, así que describamos los criterios que son importantes para nosotros. En principio, solo dos son suficientes: el soporte para la API S3 y el uso de la firma v4. Sinceramente, a nosotros, como futuros clientes, solo nos interesan las interfaces para la interacción, y no nos interesa tanto la cocina interna del almacenamiento en sí.

Bueno, muchas soluciones se ajustan a estas condiciones simples. Por ejemplo, pesos pesados ​​corporativos clásicos:

  • Dell EMC ECS
  • Red de almacenamiento S3 de NetApp
  • Cubos Nutanix
  • Almacenamiento puro FlashBlade y StorReduce
  • Huawei FusionAlmacenamiento

Hay un nicho de soluciones puramente de software que funcionan de forma inmediata:

  • Ceph de sombrero rojo
  • Almacenamiento empresarial de SUSE
  • Cloudian

E incluso aquellos a quienes les gusta procesar cuidadosamente con un archivo después del ensamblaje no se ofendieron:

  • CEPH en estado puro
  • Minio (versión Linux, porque hay muchas dudas sobre la versión Windows)

La lista está lejos de ser completa, se puede discutir en los comentarios. Simplemente no olvide verificar el rendimiento del sistema además de la compatibilidad de la API antes de la implementación. Lo último que desea es la pérdida de terabytes de datos debido a solicitudes atascadas. Así que siéntete libre de cargar pruebas. En general, todo software para adultos que trabaja con grandes cantidades de datos tiene al menos informes de compatibilidad. En caso de Veeam есть programa completo en las pruebas mutuas, lo que nos permite declarar con valentía la total compatibilidad de nuestros productos con equipos específicos. Esto ya es un trabajo bidireccional, no siempre rápido, pero estamos en constante expansión. lista soluciones probadas.

Armando nuestro stand

Quiero hablar un poco sobre la elección de un sujeto de prueba.

Primero, quería encontrar una opción que funcionara de inmediato. Bueno, o al menos con la máxima probabilidad de que funcione sin necesidad de hacer gestos innecesarios. Bailar con una pandereta y tocar la consola por la noche es muy emocionante, pero a veces quieres que funcione de inmediato. Y la confiabilidad general de tales soluciones suele ser mayor. Y sí, el espíritu aventurero desapareció en nosotros, dejamos de trepar por las ventanas a nuestras amadas mujeres, etc. (c).

En segundo lugar, para ser honesto, la necesidad de trabajar con almacenamiento de objetos surge en empresas bastante grandes, por lo que este es el caso cuando buscar soluciones de nivel empresarial no solo no es avergonzado, sino incluso alentado. En cualquier caso, todavía no conozco ejemplos de alguien que haya sido despedido por comprar este tipo de soluciones.

Con base en lo anterior, mi elección recayó en Edición comunitaria de Dell EMC ECS. Este es un proyecto muy interesante, y considero necesario contarles sobre él.

Lo primero que te viene a la mente cuando ves la adición Edición comunidad - que esto es solo un documento de seguimiento de un ECS completo con algunas restricciones que se eliminan al comprar una licencia. ¡Así que no!

Recuerda

!!!Community Edition es un proyecto separado creado para pruebas y sin soporte técnico de Dell!!
Y no se puede convertir 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, son githabe. 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, incluso en una máquina virtual, incluso en un contenedor, incluso en cualquier hardware. De cara al futuro, incluso hay una versión OVA, que usaremos.
DELL ECS Community Edition en sí es una versión mini del software completo que se ejecuta en servidores de la marca Dell EMC ECS.

He identificado cuatro diferencias principales:

  • Sin soporte de cifrado. Es una pena, pero no es crítico.
  • No hay capa de tela. Esta cosa es responsable de construir clústeres, administrar recursos, actualizar, monitorear y almacenar imágenes de Docker. Aquí ya es muy decepcionante, pero Dell también se puede entender.
  • La consecuencia más desagradable del punto anterior: el tamaño del nodo no se puede expandir una vez que se completa la instalación.
  • Sin soporte técnico. Este es un producto para probar, que no está prohibido usar en pequeñas instalaciones, pero yo personalmente no me atrevería a subir petabytes de datos importantes allí. Pero técnicamente, nadie puede impedir que hagas esto.

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

¿Qué hay en la versión grande?

Galopando por Europa, repasemos las soluciones de hierro para tener una imagen más completa del ecosistema.

De ninguna manera confirmaré ni refutaré la afirmación de que DELL ECS es el mejor almacenamiento de objetos local, pero si tiene algo que decir sobre este tema, estaré encantado de leerlo en los comentarios. En cualquier caso, según la versión IDC MarketScape 2018 Dell EMC ingresa con confianza entre los cinco principales líderes del mercado de OBS. Aunque las soluciones basadas en la nube no se tienen en cuenta, esta es una conversación aparte.

Desde un punto de vista técnico, ECS es un almacenamiento de objetos que brinda acceso a datos mediante protocolos de almacenamiento en la nube. Admite AWS S3 y OpenStack Swift. Para depósitos habilitados para archivos, ECS es compatible con NFSv3 para la exportación archivo por archivo.

El proceso de escritura de información es bastante inusual, especialmente después de los clásicos sistemas 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 se dividen en fragmentos de 128 MB y cada fragmento se escribe en tres nodos a la vez.
  • 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 al cliente sobre un registro exitoso.
    Las tres copias de los datos se escriben en paralelo. La escritura se considera exitosa solo si las tres copias se escribieron correctamente.

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

Leer es más fácil:

  • El cliente solicita datos.
  • El índice está buscando un lugar para almacenar datos.
  • Los datos se leen de un nodo y se envían al cliente.

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

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

Desplegar

Técnicamente, Dell ECS CE se puede implementar tan grande como se desee. En cualquier caso, no encontré restricciones explícitas. Sin embargo, todo el escalado se realiza convenientemente mediante la clonación del primer nodo para el que necesitamos:

  • 8 CPU virtuales
  • RAM 64GB
  • 16GB para sistema operativo
  • 1 TB directamente para almacenamiento
  • Última versión de CentOS mínimo

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é una imagen OVA para implementar.

Pero en cualquier caso, los requisitos son muy malos incluso para un nodo, y si sigue estrictamente la letra de la ley, entonces necesita cuatro de esos 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:

  • 4 CPU virtuales
  • RAM de 16 GB
  • 16 GB para el sistema operativo
  • Almacenamiento propio de 104 GB

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

El nodo de instalación en sí se puede tomar del oficial gitHub. También hay documentación detallada sobre la implementación de todo-en-uno, pero también puede leer en el oficial leerlosdocs. 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 requerido o adjunte los necesarios.
Iniciamos la máquina, abrimos la consola y usamos las mejores credenciales predeterminadas:

  • inicio de sesión: administrador
  • Contraseña: cámbiame

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

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

Y dado que solo los valientes conquistan los mares, actualizamos yum, después de lo cual reiniciamos. En realidad es bastante seguro. 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 el momento de editar el script de instalación. No hay hermosas ventanas o pseudo UI para usted: todo se realiza a través de su editor de texto favorito. Puramente técnicamente, hay dos formas: puede ejecutar cada comando manualmente o ejecutar el configurador videploy de inmediato. Simplemente abrirá la configuración en vim y, al salir, comenzará a verificarla. Pero no es interesante simplificar deliberadamente tu vida, así que ejecutemos dos comandos más. Aunque no tiene sentido, te lo advertí =)

Entonces, creamos 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 lo hice así:

  • license_accepted: true No tiene que cambiarlo, luego, al implementarlo, se le pedirá explícitamente que lo acepte y muestre una frase agradable. Incluso podría ser un huevo de Pascua.
    Almacenamiento de objetos en la trastienda, o Cómo convertirse en su propio proveedor de servicios
  • Quite el comentario de las líneas autonames: y custom: Ingrese al menos un nombre deseado para el nodo; el nombre de host se reemplazará con este durante el proceso de instalación.
  • install_node: 192.168.1.1 Especifique la IP real del nodo. En nuestro caso especificamos lo mismo que en nmtui
  • dns_domain: ingrese su dominio.
  • dns_servers: ingrese su dns.
  • ntp_servers: se puede especificar cualquiera. Tomé el primero del grupo 0.pool.ntp.org (se convirtió en 91.216.168.42)
  • autonombrado: personalizado Si no se comenta, la luna se llamará Luna.
  • ecs_block_dispositivos:
    / dev / sdb
    Por alguna razón desconocida, puede que no exista un dispositivo de almacenamiento en bloque /dev/vda
  • pools_de_almacenamiento:
    miembros:
    192.168.1.1 Aquí nuevamente indicamos la IP real del nodo
  • ecs_block_dispositivos:
    /dev/sdb Repetimos la operación de cortar dispositivos inexistentes.

En general, todo el archivo se describe con gran detalle en documentaciónpero quién lo leerá en un tiempo tan turbulento. También está escrito allí que lo mínimo suficiente es especificar la IP y la máscara, pero en mi laboratorio ese conjunto no comenzó bien y tuve que expandirlo al indicado anteriormente.

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

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

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

Luego, aún debe iniciar videploy, esperar a que se actualice el entorno y puede comenzar la instalación con el comando ova-step1 y, después de completarse con éxito, el comando ova-step2. Importante: ¡no detenga los guiones a mano! Algunos pasos pueden tomar mucho tiempo, tomar más tiempo que el primer intento y parecer que todo está roto. En cualquier caso, debe esperar a que se complete el script de forma natural. Al final, deberías ver algo como esto.

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

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

Pero no nos adelantemos y empecemos por orden.

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

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 claro, así que hagamos algo más interesante que explicar las métricas obvias. Por ejemplo, creemos un usuario que usaremos para acceder al repositorio. En el mundo de los proveedores de servicios, estos se denominan inquilinos. Esto se hace en Administrar > Usuarios > Usuario de nuevo objeto

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

Al crear un usuario, se nos pide que especifiquemos un espacio de nombres. Técnicamente, nada nos impide ponerlos en marcha tantos como usuarios habrá. Y viceversa. Esto permite que los recursos se administren de forma independiente para cada arrendatario.

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

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

El usuario ha sido creado, ahora es el momento de que seleccione el cubo. Vaya a Administrar > Depósito y complete los campos obligatorios. Todo es simple aquí.

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

Ahora tenemos todo listo para un uso de combate de nuestro almacenamiento S3.

Configuración de 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 rara vez se accede. Un ejemplo ideal es la necesidad de almacenar copias de seguridad en un sitio remoto. En Veeam Backup & Replication, esta función se denomina Nivel de capacidad.

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

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

Elegimos para qué se inició todo: compatible con S3.

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

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, la región se puede dejar como está y se puede agregar el usuario creado. Se requiere un servidor de puerta si su almacenamiento está ubicado en un sitio remoto, pero este ya es un tema de optimización de infraestructura y un artículo aparte, por lo que puede omitirlo aquí.

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

Si todo está especificado y configurado correctamente, aparecerá una advertencia sobre el certificado y luego una ventana con un depósito, donde puede crear una carpeta para nuestros archivos.

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

Pasamos el asistente hasta el final y disfrutamos del resultado.

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

El siguiente paso es crear un nuevo repositorio de copia de seguridad de escalabilidad horizontal o agregar nuestro S3 al existente; se usará como un nivel de capacidad para el almacenamiento de archivos. La función para usar repositorios compatibles con S3 directamente, como un repositorio normal, no está en la versión actual. Hay demasiados problemas bastante no obvios para que esto se resuelva, pero todo se puede.
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, simplemente configúrelo en 0 días.

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

Después de pasar por el asistente, si no desea esperar, puede presionar ctrl+RMB en el repositorio, ejecutar a la fuerza el trabajo de clasificación en niveles y ver cómo se arrastran los gráficos.

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

Eso es todo por ahora. Creo que hice frente a la tarea de mostrar que el almacenamiento en bloque no da tanto miedo como se piensa comúnmente. Sí, soluciones y opciones para la ejecución de un vagón y un carro pequeño, pero es imposible cubrir todo en un artículo. Así que vamos a compartir nuestra experiencia en los comentarios.

Fuente: habr.com

Añadir un comentario