martes, 29 de noviembre de 2011

FreeBSD 8.2 Contra Ubuntu Server 11.10


Iniciamos la semana comparando (en algún modo) los servidores web Apache y Nginx. Seguimos de comparativas y esta vez le toca el turno a nuestro entrañable FreeBSD vs Ubuntu Server. Creo que antes he dicho que yo aprendí Unix en FreeBSD (allá por la rama 4.3) y se de primera mano que tan bueno puede ser. Recientemente Ubuntu ha estado introduciéndose con bastante éxito en ambientes empresariales y está ofreciendo un soporte nada despreciable. Antes de seguir las aclaraciones de rigor, primero, hablamos de servidores aquí, no de sistemas de escritorio. Segundo, el artículo es una comparativa mas de forma que de contenido y si alguno tiene la intención de hacer sus propias pruebas hay que decir que encontrarán bastantes mas detalles que aquí no se tocan siquiera (valga la aclaración) lo cual es muy lógico considerando que hablamos de plataformas extensas y complejas que pueden utilizar para propósitos bastante disímiles, no es posible cubrirlo todo aquí (así que como siempre, tómenlo como introducción). El artículo original lo sacamos del último número de la revista BSDmag, publicación que ofrece bastante material de esta clase (y a la que pueden suscribirse si así lo desean, se las recomiendo) y al final hay una breve reseña del autor. El número del que les hablo también incluye un artículo introductorio a pf que consideramos traerles. Finalmente lo que de una u otra plataforma puedan sacar en los términos que sean dependerá de ustedes mismo, ambas están mas que sobradas para lo que sea que las empleen. La última aclaración relativa al asunto de las aplicaciones, FreeBSD incluye una capa de compatibilidad con Linux que le permite ejecutar (casi) cualquiera de las aplicaciones nativas de Linux sin ningún problema y sin afectaciones en el rendimiento (y en este caso el caso contrario no existe, Linux no hace lo mismo). Listo, ahí les va espero les sea útil, provecho!  
FreeBSD 8.2 Contra Ubuntu Server 11.10. Una comparación objetiva de las dos potentes plataformas de servidores de código abierto, BSD Unix y Linux.
FreeBSD es el poseedor del titulo dominante en el mercado de sistemas operativos BSD, pero ¿cómo se compara con un rival que va llegando si la perspectiva de las plataformas de servidores de código abierto se amplía? Vamos a echar un vistazo a las fortalezas y debilidades de cada plataforma y dejar que el lector decida. Vamos a analizar específicamente la última versión de Ubuntu Server, Oneric Ocelot 11.10 de Canonical, y la última versión de FreeBSD, 8.2. 

Medios de instalación.
FreeBSD es principalmente distribuido en imágenes ISO de CD (versiones para 32 y 64 bits y varias plataformas), ya sea como una distribución de tamaño completo con un peso de cerca de 700 megabytes, o una ligera instalación de red (net-install), que puede usar si usted tiene un buen ancho de banda de Internet u otro recurso ftp local. Tambien hay opciones disponibles para para instalaciones desde unidades USB. Tenga en cuenta que la conexión a Internet no es generalmente necesaria para las distribuciones estándar en CD, ya sea la de 32 bits o 64 bits. Ubuntu Server se distribuye también en CD en formato ISOasí como una distribución que se instala desde una unidad USB Hay disponibles versiones tanto de 32 bits como de 64 bits. Es muy recomendable contar con una buena conectividad a Internet ya que el instalador descarga los últimos paquetes del repositorio durante la instalación.

El Proceso de Instalación
El instalador de FreeBSD no ha cambiado mucho en los 15 años que llevo usándolo, desde los días de la rama 4.6 ... Usted tiene los modos rápido y experto, por supuesto, y una mayor flexibilidad en cuanto a estructuras de disco. Las versiones de la rama 8.x dan más opciones de tipos de sistema de archivos, incluyendo ZFS. Una cosa que he encontrado molesta es el tamaño por defecto de /var en la mayoría de los casos demasiado pequeño para la mayoría de configuraciones.

Aunque el instalador de FreeBSD puede parecer un poco arcaico, vale la pena destacar que la sencilla interfaz CUI de FreeBSD permite instalar el sistema operativo en dispositivos que no tienen una salida para pantallas gráficas, y sólo tienen una consola serie. Ejemplos de ello serían la Alix SBC, y otras plataformas de servidor, tales como DEC Alpha y DecStations. Siguen los pasos típicos de creación de la tabla de particiones, asignación de particiones, sistemas de archivos, y son bastante sencillos. Una vez completada la instalación inicial es necesario atravesar una miríada opciones adicionales, como el establecimiento de la contraseña de root, la creación de interfaces de red, zona horaria, habilitación de ssh, etc, todo lo cual es posterior a la instalación. Ubuntu Server tiende a centrarse principalmente en el mercado empresarial de servidores de PC a pesar de que recientemente ha habido un cierto interés en algunos de los mercados de dispositivos empotrados. Por lo tanto, Ubuntu tiende a explorar los modos gráficos con mayor libertad, cambiando entre diferentes modos basados en gráficos y textos en todo el proceso de instalación. Es posible instalar Ubuntu desde una consola serie, pero no es tan sencillo como con FreeBSD, e involucra cambiar múltiples archivos del sistema, cargadores de arranque etc. 

La pantalla de arranque de Ubuntu lanza al usuario en un menú que permite una instalación guiada, y le da al usuario la oportunidad de elegir un diseño de disco guiado o manual si así lo prefiere. Ubuntu no activará por defecto la cuenta de root, y de hecho, requiere la creación de una cuenta de usuario durante la instalación, que estará en el grupo sudo. Esta información es recogida después de definir la estructura de particiones, y la cuenta de usuario se crea durante la instalación. La creación de redes, y la configuración de la zona horaria se hace durante el proceso de instalación inicial. Una característica útil en la instalación de Ubuntu es la caja de selección de software, o "tasksel" como se le llama desde la línea de comandos. Que le permite seleccionar varios de los paquetes o configuraciones más comunes desde las casillas de selección. Por lo general, puede seleccionar instalar ssh, o una pila LAMP completa (Linux, Apache, Mysql y PHP). Esto es muy útil, ya que el instalador no sólo instala y configura Mysql, sino que le permite establecer la contraseña de root de MySQL usando cuadros de diálogo. No son necesarios pasos adicionales, y tendrá un servidor LAMP instalado y corriendo. 
Una nota, Ubuntu todavía viene con MySQL 5.1 desde su repositorio, en lugar de la versión 5.5 más comúnmente disponible. Algunas diferencias de cada uno de de los instaladores: 

FreeBSD no..
• exige o espera el acceso a Internet
• ejecuta configuración de interfaces de red al inicio
• incluye la shell de bash por defecto (está disponible como paquete o desde el árbol de ports)
• requiere un adaptador de pantalla de vídeo

Ubuntu Server no..
• soporta ZFS en el kernel (Zettabyte File System de Sun) pero si ofrece BTRFS.
• está limitado a 4Gb de RAM en hardware de 32 bits (por defecto incluye un kernel PAE)
• usa mas el kernel 2.6 de Linux (a partir de 11.10)
• Instala herramientas de desarrollo de software por defecto (buildessential)

Tampoco incluyen interfaces gráficas por defecto. Después de todo son sistemas operativos para servidores. 

Administración de paquetes 
Ambos sistemas operativos soportan la instalación y gestión remota de paquetes. Pero difieren bastante en funcionalidades. FreeBSD dispone de dos métodos principales para la instalación de aplicaciones, ports y paquetes (packages). El arbol de ports es una estructura de directorios de paquetes organizados, compuestos de punteros a lugares remotos de la ubicación remota de cada paquete y sus dependencias. Ejecutar ua make en el directorio de un determinado paquete recuperará no sólo la fuente de los paquetes, sino todas sus dependencias y hará la compilación según sea necesario para completar la compilación de las aplicaciones desde las fuentes. Por ejemplo,

# cd /usr/ports/shells
# [/usr/ports/shells] $ cd bash
# [/usr/ports/shells/bash] $ make, make install    
// Compila e instala la shell de bash

Existen también paquetes precompilados (con una serie de opciones que tratan de cubrir la mayoría de las combinaciones de entornos) que pueden ser instalados en el sistema sin tener que compilar desde las fuentes. Un ejemplo sería la de instalar la shell de bash después de una instalación inicial.

Esto se hace fácilmente en utilizando paquetes escribiendo:

# pkg_add -r bash //Esto recuperará e instalar los binarios.

El sistema de gestión de paquete de FreeBSD es a la vez maravilloso y causa de algunas frustraciones. Su diseño es limitado y no puede manejar las relaciones de las dependencias de paquetes locales. Esto puede ser una verdadera irritación si va a instalar un paquete local que tiene muchas dependencias. Las dependencias tienen que ser instaladas manualmente usando pkg_add -r algun_paquete, antes de instalar el paquete local Esto es inherente en el diseño original de pkg para los paquetes alojados en los sitios principales de paquetes de FreeBSD. Ubuntu Server utiliza el sistema de paquete que utiliza su sistema operativo padre, Debian, llamado Herramienta avanzada de paquetes (Advanced Package Tool APT), también puede manejar paquetes de Red Hat, que usa RPM, pero APT es el método principal. APT utiliza una caché local de los repositorios remotos para el seguimiento y la actualización tanto del sistema como de otras bases de datos de paquetes.Una vez que el servidor está activo y en red, ejecutar el siguiente comando actualizará la base de datos almacenada en la caché a nivel local, y permitirá la búsqueda de paquetes.

$ Sudo apt-get update //actualizar la cache de los repositorios
$ sudo apt-get upgrade // Actualiza los paquetes instalados.
$ Sudo apt-cache search python //busca que paquete hay disponible de nombre phyton

Se pueden agregar paquetes adicionales a la lista de sitios del servidor, adicionando simplemente el repositorio a la lista de las fuentes de APT. Un sistema muy flexible en realidad. 

Archivos de configuración 
FreeBSD utiliza un archivo de configuración del sistema único, /etc/rc.conf que es leído por los archivos individuales de inicio en /etc/rc.d y los directorios secundarios. La configuración de las interfaces de red, la habilitación del arranque de determinados servicios y casi todas las opciones imaginables se definen en /etc/rc.confUbuntu Server utiliza el archivo /etc/network/interface para las configuraciones de interfaz principal y /etc/init.d para el inicio del sistema y otras aplicaciones diversas. Ambos sistemas operativos usan /var/run y /var/log por razones obvias. 

Rendimiento, ¿Cómo se comparan?
Esta es una cuestión subjetiva, que tiene tantas preguntas como respuestas ... Ubuntu Server es bastante parecido a FreeBSD, en lo que a las variantes de Linux concierne. Cada uno se desempeña bien en una variedad de áreas de alta carga. Pueden utilizar ambos sistemas en condiciones de carga similares, y cada uno tiene sus ventajas propias. El sistema de archivos ZFS de FreeBSD, ha demostrado superar el sistema de archivos ext4 de Linux en el mismo hardware, en condiciones de grandes cargas de entrada/salida. Tenga en cuenta, que ZFS requiere hardware de 64 bits y un mínimo de 4 Gb de memoria para una operación exitosa. FreeBSD también parece tener una ventaja en el rendimiento de red bajo cargas similares de subidas UDP. Si no se utiliza ZFS, entonces Ubuntu Server funciona mucho mejor con el sistema de archivos EXT4 comparado con el veterano sistema de archivos UFS2 de FreeBSD Ubuntu parece emplear mejor el búfer de caché que UFS. 
Ubuntu tiene una aplicación muy agradable de LVM (Logical Volume Manager), que está estrechamente integrada en el instalador, y puede ser activada durante la fase de particionado de la instalación. Está bien diseñada, si se desea el software RAID. El kernel de FreeBSD tiene otras ventajas de rendimiento sobre un kernel típico de Linux, las suficientes como para que Debian libere una distro con un kernel de FreeBSD, llamada kFreeBSD. Ubuntu Server soporta muy bien la virtualización, si usted tiene el hardware para ello. La última versión 11.10 ofrece Xen y KVM. Otros hypervisors de nivel 2 funcionan igual de bien, como VirtualBox, que es mi favorito. El Host VM en mi oficina ejecuta un servidor Ubuntu con 2 VM con FreeBSD y otra VM con Ubuntu Server y está muy feliz con 4 Gb de RAM. FreeBSD y Linux Ubuntu, aunque provienen de linajes completamente diferentes, comparten muchos rasgos comunes, y pueden trabajar bien juntos.

Bill Harris
Bill Harris tiene 27 años de experiencia en programación y Administración Unix/Linux. Su experiencia laboral incluye entornos de centros de datos, así como la educación de TI. Tiene una licencia para operar radio amateur de clase general y disfruta de trabajar con el procesamiento de datos meteorológicos en tiempo real.