Cómo elegir un sistema operativo de almacenamiento abierto
Es cada vez más común prescindir de los dispositivos de almacenamiento tradicionales y propietarios, tanto NAS como SAN, y usar en su lugar hardware estándar e instalar en él un sistema operativo de almacenamiento para crear lo que muchos llaman servidores de almacenamiento “hágalo usted mismo”. Esto, por supuesto, es un nombre inapropiado, ya que nadie llama a un servidor de archivos normal “hágalo usted mismo” solo porque instalaste Windows tú mismo. El almacenamiento tiene mucho mito y leyenda girando a su alrededor, y la gente a menudo entra en pánico cuando piensa en instalar Windows y llamarlo NAS en lugar de llamarlo servidor de archivos. Así que, si te hace sentir mejor, usa términos como servidor de archivos o servidor de almacenamiento en lugar de NAS y SAN – problema resuelto. Esto es parte del movimiento del “almacenamiento abierto” – mover los sistemas de almacenamiento de lo propietario a lo estándar.
Elegir el sistema operativo adecuado para un servidor de almacenamiento es importante y no siempre tan fácil. Trabajo extensamente en este ámbito y la gente a menudo me pregunta qué recomiendo, y las recomendaciones varían, según el escenario, y a menudo parecen confusas. Pero los factores son en realidad relativamente sencillos, si simplemente conoces las limitaciones que crean las opciones y los caminos en el árbol de decisiones.
Antes de elegir un sistema operativo debemos detenernos y considerar cuáles van a ser nuestras necesidades. Algunas áreas que deben considerarse son: capacidad, rendimiento, facilidad de administración, presupuesto, tecnología de conexión, costo y clustering. También hay dos categorías principales de sistemas que consideraremos: sistema operativo estándar o sistema operativo de dispositivo de almacenamiento. Los sistemas operativos estándar son Windows, Linux, Solaris y FreeBSD. Los sistemas operativos de dispositivo de almacenamiento son FreeNAS, OpenFiler y NexentaStor. Hay otros en ambas categorías, pero estos son los principales actores actualmente.
La primera decisión que hay que tomar es si tú o tu organización os sentís cómodos dando soporte a un sistema operativo normal funcionando en el rol de servidor de almacenamiento. Si estás considerando un NAS, entonces simplemente pregúntate si podrías administrar un servidor de archivos. Administrar un servidor de almacenamiento por bloques (SAN) es un poco más complejo o, al menos, inusual, así que esto podría generar una pequeña dosis de preocupación, pero en realidad está en línea con otras tareas de administración. Si la respuesta es sí, que usar las herramientas e interfaces de un sistema operativo normal te resulta aceptable, entonces simplemente descarta de inmediato la categoría de “dispositivo”. El enfoque de dispositivo añade complejidad y ralentiza los ciclos de desarrollo y soporte, así que, a menos que sea necesario, es indeseable.
Los sistemas operativos de dispositivo de almacenamiento existen únicamente para proporcionar una visión preempaquetada y “fácil de usar” de cómo ejecutar un servidor de almacenamiento. En concepto esto es agradable, pero hay problemas reales con este método. Los mayores problemas provienen del proceso de empaquetado, que te aleja un paso de los propios proveedores de sistemas operativos empresariales, haciendo que tu sistema sea más frágil, esté más atrasado en actualizaciones y funciones, y sea menos seguro que sus contrapartes de sistema operativo tradicional. También te deja a merced de una empresa muy pequeña para el soporte a nivel de OEM cuando algo sale mal, en lugar de con un gran proveedor empresarial con una base de usuarios y una comunidad masivas. El proceso de conversión en dispositivo también despoja por necesidad a los sistemas de funciones y opciones. Al final, sales perdiendo.
Los dispositivos son agradables porque obtienes una cómoda interfaz web desde la cual “cualquiera” puede administrar tu almacenamiento. Al menos en teoría. Pero en realidad hay dos preocupaciones. La primera es que siempre existe la necesidad de adentrarse en el propio sistema operativo y arreglar cosas de vez en cuando. Tener la interfaz web personalizada del dispositivo hace que esto sea dramáticamente más difícil de lo normal, así que justo en el momento en que más necesitas la naturaleza de dispositivo del sistema es cuando no la tienes. La segunda es que hacer que algo tan crítico como el almacenamiento esté disponible para que “cualquiera” trabaje en ello es una idea aterradora. Hay pocas piezas de tu infraestructura en las que quieras que se tenga más experiencia, planificación y cuidado que en el almacenamiento. Hacer que el sistema sea más difícil de usar no siempre es algo malo.
Si tienes necesidad del sistema de dispositivo, entonces principalmente estás considerando FreeNAS y OpenFiler. NexentaStor ofrece un producto atractivo, pero no está disponible en una versión gratuita y el costo puede ser oneroso. La versión de descarga gratuita parece ser gratuita para los primeros 18TB de almacenamiento bruto, pero la licencia indica lo contrario, lo que hace que rara vez sea la opción popular. (El costo de NexentaStor es lo suficientemente alto como para que comprar un sistema Solaris totalmente soportado sería menos costoso y proporciona soporte completo del proveedor original en lugar de Nexenta, que esencialmente reempaqueta versiones antiguas de Solaris y ZFS. Código más moderno y actualizaciones están disponibles de forma más económica desde la fuente original).
FreeNAS, fuera del clustering, es la plataforma de almacenamiento de elección en un paquete convertido en dispositivo. Tiene el muy promocionado sistema de archivos ZFS, que le da una flexibilidad y facilidad de uso de las que carecen OpenFiler y otras alternativas basadas en Linux. También tiene una implementación de iSCSI funcional, así que puedes usar FreeNAS de forma segura como NAS o como SAN. El soporte para FreeNAS parece ir en aumento, con nuevos desarrollos realizándose con regularidad y funciones que se conservan. FreeNAS ofrece una amplia gama de funciones y protocolos compatibles. Se cree que el clustering también llegará a FreeNAS en el futuro, ya que esto se ha añadido recientemente al sistema operativo FreeBSD subyacente. Si es así, FreeNAS eliminará por completo la necesidad de OpenFiler en el mercado. FreeNAS es completamente gratuito.
OpenFiler carece de una implementación de SAN iSCSI fiable (a menos que pagues una fortuna para que esa parte del sistema sea reemplazada por un componente funcional) y está mucho más desactualizado que sus competidores, pero sí ofrece replicación en tiempo real completa a nivel de bloque, lo que le permite operar en modo de clúster para mayor fiabilidad. El problema aquí es que la práctica interfaz web del dispositivo NAS no aborda este escenario, y si quieres hacer esto necesitarás ensuciarte las manos en la línea de comandos, ensuciártelas de verdad. Esto es material de nivel experto, y cualquiera capaz siquiera de considerar un proyecto para convertir OpenFiler en un clúster fiable se sentirá igual de cómodo, y probablemente mucho más cómodo, construyendo todo el clúster desde cero en su distribución de Linux preferida. OpenFiler está construido sobre la bastante impopular, y ahora completamente descontinuada, rPath Linux, usando el sistema de empaquetado Conary, ambos actores de nicho, por decir lo menos, en el mundo de Linux. Encontrarás poco soporte de rPath por parte de otros administradores, y muchos paquetes y funciones a los que quizás desees acceder no están disponibles. La única ventaja de OpenFiler con algún significado es la disponibilidad de DRBD para clustering, lo cual, como se indicó anteriormente, no tiene sentido. El soporte para OpenFiler parece estar disminuyendo, con nuevas funciones inexistentes y, de hecho, funciones clave como AFP han sido eliminadas en lugar de haberse añadido nuevas funciones. OpenFiler es gratuito, pero las funciones clave, como un iSCSI fiable, no lo son. Informes recientes de usuarios de OpenFiler indican que incluso el almacenamiento que no es iSCSI se ha vuelto inestable en la última versión, y la pérdida de datos es algo habitual. OpenFiler sigue siendo muy popular en la mentalidad de este segmento de la industria, pero debe evitarse por completo.
Si no necesitas que tu sistema operativo de almacenamiento esté convertido en dispositivo, entonces te quedan más y mejores opciones, pero un árbol de decisiones mucho más complejo. A diferencia del mercado de los sistemas operativos de dispositivo, que está plagado de baches (NexentaStor tiene costos sorpresa, OpenFiler parece soportar iSCSI pero causa pérdida de datos, las funciones se eliminan de las nuevas versiones), los cuatro sistemas operativos mencionados aquí son extremadamente robustos y ricos en funciones. Tres de ellos cuentan con soporte de proveedor OEM, lo que puede ser un factor decisivo importante, y todos tienen excelentes opciones de soporte de terceros, mucho más amplias que lo que está disponible para el mercado de los dispositivos.
La primera decisión es si se necesitan o no funciones exclusivas de Windows, en particular las ACL de NTFS. Es común que los nuevos usuarios de NAS se sorprendan cuando el protocolo SMB no proporciona todo el control granular del sistema de archivos al que están acostumbrados en Windows. Esto se debe a que esos controles en realidad son gestionados por el sistema de archivos, no por el protocolo de red, y Windows es el único que los proporciona a través de NTFS. Así que si se necesita ese control granular de archivos de Windows, Windows es tu única opción.
Los otros tres participantes, Linux, Solaris y FreeBSD, comparten capacidades básicas, con la notable excepción del clustering. Todos tienen un buen RAID por software, todos tienen sistemas de archivos potentes y robustos, todos tienen una gestión de volúmenes lógicos potente y todos proporcionan una variedad de opciones de conexión NAS y SAN. Muchas versiones de Linux y FreeBSD están disponibles de forma completamente gratuita. Solaris, aunque es gratuito para pruebas, no está disponible de forma gratuita para uso en producción.
El mayor factor diferenciador entre estas tres opciones de sistema operativo es el clustering. Linux ha tenido DRBD desde hace mucho tiempo, y esta es una tecnología robusta de clustering de sistemas de archivos. FreeBSD ha añadido recientemente (a partir de 9.0) HAST para cumplir el mismo propósito. Así que, en teoría, FreeBSD tiene las mismas opciones de clustering que Linux, pero esto es mucho más nuevo y mucho menos conocido. Solaris carece de clustering de sistemas de archivos en el sistema operativo base y, por ahora, requiere complementos comerciales para gestionar esto.
Solaris y FreeBSD comparten el potente y probado en combate sistema de archivos ZFS. ZFS es extremadamente potente y flexible, y durante mucho tiempo ha sido el principal punto de venta de estas plataformas. El soporte de Linux para sistemas de archivos es más enrevesado. Casi cualquier distribución de Linux (aquí nos importan principalmente RHEL/CentOS, Oracle Unbreakable Linux, Suse/OpenSuse y Ubuntu) es compatible con EXT4, que es potente y rápido, pero carece de algunas de las funciones realmente agradables de ZFS. Sin embargo, Linux está adoptando rápidamente BtrFS, que es muy competitivo con ZFS, pero es incipiente y actualmente solo está disponible en las distribuciones de Suse y Oracle Linux. Esperamos verlo pronto en las demás para uso en producción, pero por ahora sigue siendo experimental.
Fuera del clustering, es probable que la elección del sistema operativo entre estos tres se reduzca principalmente a la experiencia y la comodidad. Solaris es generalmente conocido por proporcionar el mejor rendimiento de transferencia y FreeBSD el peor. Pero los tres están bastante cerca. Una vez que BtrFS esté ampliamente disponible y estable en Linux, Linux probablemente se convertirá en la opción de facto, como lo ha sido en el pasado.
Sin influencias externas, mi recomendación de plataforma de almacenamiento son FreeBSD y luego Linux, con Solaris eliminado sobre la base de que rara vez alguien busca soporte comercial, por lo que queda descartado automáticamente. Esto se basa casi por completo en la disponibilidad de sistemas de archivos Copy-on-Write y suponiendo que no haya clustering, lo cual no es común. Si se necesita clustering, entonces Linux primero, luego FreeBSD, y Solaris queda descartado, de nuevo.
Linux y FreeBSD se están acercando rápidamente el uno al otro en funcionalidad. A medida que BtrFS madura en Linux y HAST madura en FreeBSD, parecen encontrarse en el medio, siendo la elección poco más que un volado.
No hay una única respuesta simple. Elegir un sistema operativo de almacenamiento tiene que ver por completo con equilibrar una infinidad de factores: rendimiento, recursos, funciones, soporte, estabilidad, etc. Hay algunos factores que pueden usarse para descartar a muchos candidatos, y conocer estos delimitadores estrictos es clave. Saber exactamente cómo planeas usar el sistema y qué factores son importantes para ti es fundamental para abrirte camino entre las opciones disponibles.
Incluso una vez que eliges una plataforma, hay muchas decisiones que tomar. Algunas plataformas incluyen múltiples sistemas de archivos. Está SAN y NAS. Hay múltiples protocolos SAN y NAS. Está la agregación de red (o teaming, en el mundo de Windows). Está el Multipathing. Hay snapshots, volúmenes, RAID. La lista sigue y sigue.
