Servidores de archivos en Compute Engine

Un servidor de archivos, también denominado servidor de almacenamiento de archivos, proporciona una forma para que las aplicaciones lean y actualicen archivos que se comparten entre las máquinas. Algunas soluciones de archivos son de escalamiento vertical y consisten en el almacenamiento conectado a una sola VM. Otras soluciones son de escalamiento horizontal y consisten en un clúster de VM con almacenamiento conectado, que presenta un solo espacio de nombres de sistema de archivos a las aplicaciones.

Aunque algunos sistemas de archivos usan un cliente POSIX nativo, muchos servidores de archivos usan un protocolo que habilita a las máquinas cliente para activar un sistema de archivos y acceder a los archivos como si estuvieran alojados de forma local. Los protocolos más comunes para exportar archivos compartidos son el Sistema de archivos de red (NFS) de Linux y el Sistema de archivos común de Internet (CIFS) o el Bloque de mensajes del servidor (SMB) de Windows.

En esta solución, se describen las siguientes opciones para compartir archivos:

Discos persistentes de Compute Engine y SSD locales

Soluciones de servidor de archivos administradas:

Soluciones de servidor de archivos compatibles en Google Cloud Marketplace:

Un factor subyacente en el rendimiento y la previsibilidad de todos los servicios de Google Cloud es la pila de red que Google desarrolló durante muchos años. Con Jupiter Fabric, Google compiló una pila de herramientas de redes sólida, escalable y estable que puede continuar evolucionando sin afectar tus cargas de trabajo. A medida que Google mejora y refuerza sus capacidades de red de forma interna, la solución para compartir archivos se beneficia del rendimiento agregado. Para obtener más detalles sobre Jupiter Fabric, consulta el documento de 2015 que describe su evolución.

Una de las características de Google Cloud que puede ayudarte a aprovechar al máximo tu inversión es la capacidad de especificar Tipos de VM personalizadas. Cuando eliges el tamaño del servidor de archivos, puedes optar por la combinación correcta de memoria y CPU, de modo que el servidor de archivos funcione con un rendimiento óptimo sin que se lo suscriba en exceso.

Además, es importante elegir la capacidad de disco persistente de Compute Engine y la cantidad de CPU virtuales correctas para garantizar que los dispositivos de almacenamiento del servidor de archivos reciban el ancho de banda de almacenamiento y las IOPS necesarios, así como el ancho de banda de la red. Una VM recibe 2 Gb/s de capacidad de procesamiento de red para cada CPU virtual (hasta el máximo). Para ajustar el disco persistente, consulta Optimiza el rendimiento del SSD local y el disco persistente.

Ten en cuenta que Cloud Storage también es una excelente manera de almacenar petabytes de datos con altos niveles de redundancia a un costo bajo, pero Cloud Storage presenta un perfil de rendimiento y una API diferentes a los servidores de archivos que se analizan aquí.

Resumen de opciones de servidores de archivos

En la siguiente tabla, se resumen las características de los discos persistentes y las opciones de servidores de archivos:

Solución de servidor de archivos Conjunto de datos óptimo Capacidad de procesamiento Asistencia administrada Protocolos de exportación Alta disponibilidad Híbrido
Filestore De 1 TB a 64 TB Hasta 1.2 GB/s Servicio completamente administrado por Google NFSv3 No
Cloud Volumes de NetApp De 1 TB a 100 TB Hasta 4.5 GB/s Servicio completamente administrado por Google y NetApp NFSv3, NFSv4, SMB2, SMB3
Elastifile (adquirido por Google Cloud) De 10 s de TB a > 1 PB De 10 s a 100 s de Gb/s Elastifile (adquirido por Google Cloud) NFSv3
Panzura De 10 s de TB a > 1 PB Hasta 10 s de Gb/s Panzura NFSv3, NFSv4, SMB1, SMB2, SMB3
Disco persistente de solo lectura < 64 TB De 240 a 1,200 MB/s No Adjunto directo No No

Discos persistentes de Compute Engine y SSD locales

Si tienes datos a los que puede acceder una sola VM o que no cambian con el tiempo, puedes usar los discos persistentes de Compute Engine y evitar el uso de un servidor de archivos. Con los discos persistentes, puedes dar formato a los datos con un sistema de archivos, como Ext4 o XFS, y conectar volúmenes en modo de lectura y escritura o de solo lectura. Esto significa que primero puedes conectar un volumen a una instancia, cargarlo con los datos que necesites y, luego, conectarlo como un disco de solo lectura a cientos de máquinas virtuales de manera simultánea. El empleo de discos persistentes de solo lectura no funciona en todos los casos prácticos, pero puede reducir en gran medida la complejidad, en comparación con el uso de un servidor de archivos.

Los discos persistentes ofrecen un rendimiento coherente. Todos los discos del mismo tamaño (y la misma cantidad de CPU virtuales para discos persistentes SSD) que conectes a la instancia presentarán las mismas características de rendimiento. No necesitas probar o preparar los discos persistentes antes de usarlos para la producción.

El costo de los discos persistentes es fácil de determinar, ya que no hay costos de E/S que debas tener en cuenta después de aprovisionar el volumen. También se puede cambiar el tamaño de los discos persistentes sobre la marcha, lo que te permite comenzar con un costo y un volumen de capacidad bajos; además, no es necesario que inicies instancias o discos adicionales para escalar la capacidad.

Si la capacidad de almacenamiento total es el requisito principal, puedes usar discos persistentes estándar de costo bajo. Para obtener el mejor rendimiento y, al mismo tiempo, asegurarte de que sea duradero, usa los discos persistentes SSD.

Si tus datos son efímeros y requieren una latencia de menos de un milisegundo, así como operaciones de E/S por segundo (IOPS) altas, puedes aprovechar los SSD locales de hasta 9 TB para obtener un máximo rendimiento. Los SSD locales proporcionan GB/s de ancho de banda y millones de IOPS, siempre que no agoten el ancho de banda de red asignado a tus instancias. Es importante recordar que los SSD locales tienen ciertas compensaciones en cuanto a disponibilidad, durabilidad y flexibilidad.

Si deseas ver una comparación de los distintos tipos de discos disponibles para las instancias de Compute Engine, consulta la documentación del almacenamiento en bloque.

Consideraciones para tener en cuenta cuando elijas una solución de servidor de archivos

Elegir una solución de servidor de archivos requiere que se realicen compensaciones con respecto al costo, la administración, el rendimiento y la escalabilidad. Es más fácil elegir si tienes una carga de trabajo bien definida, lo que no suele ser el caso. Cuando las cargas de trabajo evolucionan con el tiempo o son muy variables, es prudente cambiar los ahorros en costos por flexibilidad y elasticidad a fin de que tu solución sea más eficiente. Por otro lado, si tienes una carga de trabajo temporal y conocida, puedes crear una arquitectura de servidor de archivos con propósitos específicos que se pueda desarmar y reconstruir con facilidad para satisfacer las necesidades de almacenamiento inmediatas.

Una de las primeras decisiones que debes tomar es si deseas pagar por un servicio de servidor de archivos administrado, una solución de servidor de archivos que incluya la compatibilidad de productos o una solución no compatible.

  • Los servicios de servidores de archivos administrados son los más fáciles de operar, ya que Google, o un socio, se encarga de todas las operaciones. Es posible que estos servicios de servidores de archivos proporcionen un ANS de disponibilidad, al igual que la mayoría de los demás servicios de Google Cloud.
  • Las soluciones no administradas, pero compatibles, ofrecen flexibilidad adicional. Los socios pueden ayudar con cualquier problema, pero la operación diaria del servidor de archivos es tarea del usuario.
  • Las soluciones no compatibles requieren mayor esfuerzo de implementación y mantenimiento, lo que deja todos los problemas a cargo del usuario. Estas soluciones no se tratan en este documento.

La siguiente decisión implica determinar los requisitos de durabilidad y disponibilidad del servidor de archivos. La mayoría de las soluciones de servidores de archivos son zonales y, si la zona falla, no incluyen una configuración predeterminada para proporcionar protección. Por lo tanto, es importante considerar si se requiere una solución de recuperación ante desastres que otorgue protección contra fallas zonales. Además, es importante comprender los requisitos de la aplicación respecto a la durabilidad y la disponibilidad. Por ejemplo, la elección de SSD locales o discos persistentes en la implementación tiene un gran impacto, al igual que la configuración del software de soluciones del servidor de archivos. Cada solución requiere una planificación adecuada para lograr una durabilidad, una disponibilidad y una protección que sean eficaces contra fallas zonales y regionales.

Por último, ten en cuenta las ubicaciones (es decir, las zonas, las regiones y los centros de datos locales) desde las cuales necesitas acceder a los datos. Las ubicaciones de las granjas de procesamiento que acceden a tus datos influyen en la elección de la solución de servidor de archivos, porque solo algunas soluciones permiten el acceso híbrido local y en la nube.

Soluciones de servidores de archivos administradas

Filestore

Filestore es la solución de almacenamiento conectado a la red (NAS) completamente administrada por Google.

Puedes activar con facilidad archivos compartidos de Filestore en VM de Compute Engine. Filestore también se encuentra estrechamente integrado a Google Kubernetes Engine, de modo que los contenedores pueden hacer referencia a los mismos datos compartidos.

Filestore ofrece dos niveles de rendimiento: Estándar y Premium. Ambos niveles proporcionan un rendimiento coherente y costos predecibles.

Para obtener más información, consulta estos vínculos:

Cloud Volumes de NetApp

Cloud Volumes Service de NetApp para Google Cloud es un servicio de almacenamiento nativo en la nube completamente administrado que está integrado en Google Cloud Console, con facturación y asistencia sin interrupciones de Google.

El servicio te permite activar con rapidez el almacenamiento compartido persistente en las instancias de procesamiento. Este almacenamiento entrega una alta capacidad de procesamiento a tus aplicaciones con baja latencia, con capacidades sólidas de protección de datos (instantáneas y copias). Con una arquitectura de nivel empresarial, el servicio proporciona un alto rendimiento para cargas de trabajo secuenciales y aleatorias, que pueden escalar en cientos o miles de instancias de procesamiento de Compute Engine. En segundos, los volúmenes que varían en tamaño de 1 TB a 100 TB se pueden aprovisionar y proteger con instantáneas automatizadas y eficientes en el uso del espacio. Los comandos para activar los volúmenes creados en las instancias de procesamiento están disponibles en Cloud Console, lo que mejora aún más la experiencia del usuario.

Arquitectura de Cloud Volumes Services de NetApp

No es necesario volver a escribir apps, ya que Cloud Volumes proporciona los pedidos de cumplimiento POSIX requeridos por una amplia gama de cargas de trabajo basadas en archivos, incluidos los contenidos web y de rich media, que se usan en muchos sectores, como en la automatización de diseño electrónico (EDA) y en los medios de comunicación y entretenimiento.

Con tres niveles de servicio (estándar, premium y extremo) que puedes cambiar a pedido, Cloud Volumes Service para Google Cloud ofrece el rendimiento que se adecúa a tu carga de trabajo, sin afectar su disponibilidad. NetApp también te puede ayudar a sincronizar los datos entre servicios locales y Cloud Volumes Service para Google Cloud.

Para obtener más información, consulta estos vínculos:

Elastifile (adquirido por Google Cloud)

Elastifile (adquirido por Google Cloud) simplifica el almacenamiento empresarial y la administración de datos en Google Cloud y en nubes híbridas. Elastifile otorga un acceso paralelo rentable y de alto rendimiento a los datos globales, y al mismo tiempo mantiene una coherencia estricta con la tecnología de un sistema de archivos distribuido y escalable de forma dinámica. Con Elastifile, las aplicaciones de NFS existentes y los flujos de trabajo de NAS pueden ejecutarse en la nube sin necesidad de refactorizar, pero retienen los beneficios de los servicios de datos empresariales (disponibilidad alta, compresión, anulación de duplicación, replicación, etc.). La integración nativa en Google Kubernetes Engine permite la persistencia, la portabilidad y el uso compartido de los datos sin interrupciones para las cargas de trabajo en contenedores.

Elastifile se puede implementar y escalar con solo presionar un botón. Te permite crear y expandir la infraestructura del sistema de archivos de forma sencilla y según la demanda, lo cual asegura que el rendimiento y la capacidad de almacenamiento estén siempre alineados con los requisitos de flujo de trabajo dinámico. A medida que se expande un clúster de Elastifile, tanto los metadatos como el rendimiento de E/S se ajustan de forma lineal. Este escalamiento te permite mejorar y acelerar un rango amplio de flujos de trabajo con un uso intensivo de datos, que incluyen computación de alto rendimiento, estadísticas, agregación de datos entre sitios, DevOps y muchas opciones más. Por lo tanto, Elastifile es una opción excelente para usar en industrias centradas en datos, como las ciencias biológicas, la automatización de diseño electrónico (EDA), los servicios financieros y los medios de comunicación y entretenimiento.

La capacidad CloudConnect de Elastifile permite la transferencia de datos detallada y bidireccional entre cualquier sistema de archivos POSIX y Cloud Storage. Para optimizar el rendimiento y minimizar los costos, CloudConnect garantiza que los datos se compriman y que se anule la duplicación antes de la transferencia; además, envía los cambios solo después de la sincronización inicial de los datos. Cuando CloudConnect se aprovecha para implementaciones de nube híbrida, te permite cargar datos en Cloud Storage de manera eficiente desde cualquier sistema de archivos NFS local, lo que ofrece una manera rentable de entregar los datos a Google Cloud. Cuando CloudConnect se aprovecha en Google Cloud, permite organizar los datos optimizados en niveles en cuanto a costos entre un sistema de archivos Elastifile y Cloud Storage.

Diagrama de almacenamiento y administración de datos de Elastifile

Para obtener más información, consulta estos vínculos:

Soluciones de servidores de archivos compatibles en Google Cloud Marketplace

Panzura

Panzura es líder en la administración de datos no estructurados en la nube. Las empresas de medios de comunicación y entretenimiento, genómica, ciencias biológicas, atención médica y servicios financieros, entre otras, eligen Panzura Freedom NAS para consolidar sus islas de datos en una sola fuente de información en Google Cloud sin sacrificar el rendimiento o las reescrituras de aplicaciones. Si consolidas datos no estructurados (NFS, SMB y Object) en Google Cloud, puedes obtener acceso a todos tus datos, colaborar en estos datos, y analizarlos y controlarlos para garantizar su cumplimiento.

Panzura CloudFS es la base de Freedom Family y es un sistema de archivos distribuido y que se escala horizontalmente creado para la nube. Incorpora servicios de archivos inteligentes con un respaldo de 26 patentes. Esta familia de productos Freedom te permite abordar de manera rentable los siguientes casos prácticos: migración a la nube, colaboración global, y búsqueda y estadísticas.

Panzura Freedom junto con Google Cloud permiten a los líderes de TI realizar las siguientes acciones:

  • Migrar miles de aplicaciones heredadas a Google Cloud sin tener que volver a escribir, cambiar los flujos de trabajo o sacrificar el rendimiento
  • Quitar la subutilización de datos de copia para la copia de seguridad y el almacenamiento secundario mediante la consolidación de los datos en una sola fuente de información
  • Colaborar de forma global en proyectos a gran escala para mejorar la productividad y el tiempo de salida al mercado
  • Modernizar el NAS heredado y, al mismo tiempo, obtener un ahorro de costos del 70% y reducir la infraestructura de archivos en el centro de datos en un 90%
  • Rehidrata los datos de cinta heredados para obtener estadísticas avanzadas y aprendizaje automático

Más información: