Instalación remota de CentOS por VNC

Una de las cosas que me gusta de las distribuciones basadas en Red Hat es que todas ellas utilizan el instalador Anaconda junto a los ficheros Kickstart para realizar instalaciones desatendidas. Hasta ahora es uno de los sistemas mas flexibles y potentes que conozco para automatizar instalaciones Linux.

Debian Installer quizás pueda ser mas potente en determinados escenarios, aunque en general elaborar un buen fichero preseed para una instalación desatendida de Debian pueda ser algo mas laborioso… Anaconda, destaca además por ser muy sencillo.

Pero hoy el protagonista es Anaconda y su módulo de instalación remota por VNC.. ya hablaremos en otro momento del resto de instaladores ;-)

¿Cuando nos puede interesar instalar remotamente Linux por VNC?

- El servidor a instalar no tiene pantalla, teclado, ratón, unidad de CD/DVD, puerto USB.. una instalación por VNC será mas cómoda, rápida y económica que utilizar un dispositivo KVM sobre IP, puerto serie, etc..

- Instalación de otra distribución. Muchos ISP entregan los servidores dedicados con una determinada distribución Linux sin posibilidad de elegir otra y/o personalizar algunos parámetros que solo se pueden hacer durante la instalación, por ejemplo, el esquema de particiones.

- Actualizaciones. Todas las distribuciones basadas en Red Hat se recomienda actualizarlas desde Anaconda utilizando el método upgradeany. Por ejemplo, podemos arrancar por VNC para actualizar remotamente desde CentOS 4 a CentOS 5 de forma cómoda sin necesidad de CDs, arranque por PXE, etc..

- Seguimiento y depuración de una instalación desatendida con Kickstart, así podremos ver “en vivo” que está ocurriendo en todo momento por VNC.

- El sistema VNC es multiplataforma: existen implementaciones para prácticamente todos los Sistemas Operativos, incluso clientes en Java que podríamos incrustar en algún herramienta de gestión web tipo Spacewalk.

Lógicamente en todos estos casos podríamos utilizar Kickstart para realizar una instalación totalmente desatendida sin necesidad de interactuar en ningún momento por teclado/ratón/pantalla y todos los problemas anteriores quedarían resueltos, pero el objetivo es tener una conexión VNC con el servidor que estamos instalando.

La conexión remota por VNC con el instalador Anaconda puede realizarse de dos formas:

- Servidor: la máquina a instalar arranca un servidor Xvnc y nosotros nos conectamos a el utilizando un cliente VNC, es la configuración mas utilizada (parámetros vnc y vncpassword).

- Cliente: en nuestro escritorio levantamos un cliente VNC en modo “listen” y Anaconda se conectará a nosotros (parámetros vnc y vncconnect). En algunos casos puede ser una configuración mas segura, pero resulta mas problemática si estamos bajo un firewall, NAT, etc..

Como ejemplo vamos a modificar el GRUB de una Debian para instalar remotamente CentOS 5 por VNC, los pasos a seguir son:

- Descargar los ficheros initrd.img y vmlinuz de la imagen PXE de CentOS (pxeboot) en el directorio /boot/centos, o en cualquier otro directorio, evitando sobreescribir los actuales:

mkdir -p /boot/centos ; cd /boot/centos
wget http://mirror.centos.org/centos-5/5/os/i386/images/pxeboot/initrd.img
wget http://mirror.centos.org/centos-5/5/os/i386/images/pxeboot/vmlinuz

- Editar la configuración de GRUB, fichero /boot/grub/menu.lst, y añadir la siguiente entrada. Lógicamente será necesario personalizar la configuración de red o bien utilizar DHCP (parámetro ip=dhcp):

title Instalación CentOS 5 por VNC
root (hd0,0)
kernel /centos/vmlinuz vnc vncpassword=password ip=192.168.0.2 netmask=255.255.255.0 gateway=192.168.0.1 dns=192.168.0.1 method=http://mirror.centos.org/centos/5/os/i386
lang=en_US keymap=us ksdevice=eth0
initrd /centos/initrd.img

- Comprobamos que la entrada default de GRUB es la correcta, y reiniciamos el servidor.

- En el siguiente arranque GRUB cargará el kernel + initrd con los parámetros indicados, iniciando así la instalación con Anaconda.

- Anaconda descarga la imagen stage2.img desde el mirror indicado. Este archivo está comprimido con SquashFS y contiene todo lo necesario para arrancar el instalador gráfico, ocupa unos 90MB así que dependiendo de la conexión este paso puede durar unos minutos..

- Anaconda arranca el servidor Xvnc e inicia una instancia del gestor de ventanas mini-wm, en la consola del servidor aparecerá el mensaje:

Starting VNC..
The VNC server is now running.
Please connect to 192.168.0.2:1 to begin the install...
Press  for a shell
Starting graphical installation..
XKB extension not present on :1

- Listo!! Utilizando un cliente VNC nos conectamos al display 1, puerto 5901/tcp, para empezar a instalar el servidor normalmente, como si estaríamos delante de el :-)

Actualización (2011-02-22): Giner de OVH deja en un comentario un script que automatiza esta tarea, muy útil para instalaciones de CentOS/Fedora en servidores de OVH, muchas gracias!!

Posted in Linux | Tagged , , , | 4 Comments

Configuración de un iniciador iSCSI en Linux

Virtualización, red de almacenamiento, Cloud Computing, etc.. ¿Cuantas veces has oído hablar de estos términos en los últimos meses? Si trabajas en el mundo de la Informática/Sistemas seguro que a diario. Al menos en mi caso, toda la documentación que llega a mis manos hace alguna referencia a estas tecnologías. No creo que te descubra nada nuevo, y si no es así, tampoco hace falta que te lo creas.. puedes utilizar como referencia la aplicación Trends de Google para analizar la tendencia de estas tecnologías en los últimos años: las búsquedas, y por lo tanto el interés general de los usuarios, se han disparado.

Además, casi siempre se habla de redes de almacenamiento basadas en iSCSI, ¿Casualidad? Lógicamente, no.

Antes de empezar a hablar sobre iSCSI, deberíamos consultar la historia de su “padre”: SCSI. Hoy en día, SCSI se considera un conjunto de protocolos e interfaces que permite la comunicación entre dispositivos, generalmente de almacenamiento de datos (discos, cabinas, cintas, etc..). Diseñado hace ya mas de 20 años, para atender las necesidades de los entornos mas profesionales, no fue pensado para el escritorio o usuario doméstico. Desde su nacimiento no ha parado de evolucionar, y seguimos utilizando a diario algunas de sus “mutaciones”: Firewire, SAS, Fiber Channel, Infiniband, etc.. La historia de SCSI es un claro ejemplo de como evoluciona la Informática para adaptarse a los nuevos tiempos, renovarse o morir.

La última gran re-evolución de SCSI es iSCSI = Internet + SCSI.

iSCSI es tan solo una de las muchas evoluciones de SCSI: en lugar de utilizar hardware específico (cableado, conectores, HBAs, etc..), podemos usar los componentes de una red TCP/IP “clásica” para conectar dispositivos utilizando comandos SCSI y crear así una red de almacenamiento (SAN), es decir, la alternativa low-cost a Fiber Channel.

Entonces, si se sigue utilizando TCP/IP para conectar dispositivos.. ¿Cuál es la diferencia entre una NAS donde se utiliza NFS y/o CIFS y una SAN iSCSI? Fácil, cuando utilizamos sistemas de ficheros tipo NFS, CIFS, etc.. tenemos un servidor que está exportando una estructura de directorios, y es este servidor quien se encarga de controlar las lecturas/escrituras a los datos, por ejemplo, una máquina Linux con Samba donde se conectan X clientes. En una SAN con iSCSI, seguimos utilizando redes TCP/IP, pero en este caso el target/servidor está exportando un dispositivo de datos (raw disk). A efectos del Sistema, sería lo mismo que conectar directamente un disco duro: tendremos que crear particiones, utilizar un sistema de ficheros.. y como ya veremos poco a poco, esto será una gran ventaja para determinados escenarios.

Dejando a un lado la teoría.. y si volvemos a utilizar Trends de Google para analizar el impacto de iSCSI, vemos que desde sus inicios ha sido mas popular que su rival Fiber Channel. Lo curioso es que, a pesar de ser una tecnología en pleno crecimiento, existe muy poca documentación sobre iSCSI, y sobre todo en castellano.

Por esta razón y aprovechando mi estreno como “blogger”, me he animado a escribir una serie de artículos sobre iSCSI. Trataré desde los temas mas básicos como la configuración de un iniciador, montar un target por software utilizando Openfiler, arrancar un servidor desde un volumen iSCSI, etc.. hasta temas algo mas complejos como alta disponibilidad de almacenamiento, seguridad, sistemas de ficheros para clusters, etc.. hasta ir montado y analizando poco a poco todos los elementos, ventajas y desventajas de una SAN iSCSI.

Empezamos con la parte mas sencilla de todas, configurando un cliente iSCSI en Linux utilizando el software Open-iSCSI. El manual está en el Wiki: Configuración de un iniciador iSCSI en Linux.

Posted in Linux, Storage | Tagged , , , | 2 Comments