Paravirtualizando con Xen
11. February 2008
admin
A pesar de que el propio Linus Torvalds recientemente le quitó relevancia a la virtualización, sigue siendo un recurso muy importante en muchos ámbitos. Mediante la virtualización podemos consolidar distintos sistemas operativos en un sólo equipo físico, con el consiguiente ahorro económico. Además, supone más facilidad de administración, usar entornos separados para el desarrollo de software (se evita el tedioso reinicio del sistema real), evaluar software de tipo experimental de manera inocua, etc.
Existen muchas opciones en lo que a virtualización se refiere. Xen es una de ellas, que usa una técnica llamada paravirtualización. Sintéticamente, esto signfica que Xen es un hipervisor, es decir es un software que es lanzado por el cargador de arranque y que simula ser el hardware real. El hipervisor por si solo no puede hacer demasiado, lo que hace es llamar a un sistema operativo virtualizado, lo que llamaríamos un guest, que en la jerga de Xen se denomina Dom0. Este Dom0 no es cualquier guest, es el sistema que tiene el único privilegio de acceder al hipervisor, es decir al pseudo-hardware. Lo interesante de esto es que el Dom0 puede gestionar a otros dominios llamados DomU, es decir podemos tener otros sistemas operativos invitados.
La ventaja de esta técnica es que todos los sistemas operativos instalados acceden a los mismos drivers, con lo cual la performance de un sistema instalado como DomU es casi idéntica a la de un![]()
sistema nativo. Por supuesto, como casi nada es perfecto, esto tiene una desventaja, es necesario que los sistemas invitados estén modificados para poder ser invitados en Xen. Es por eso que se usa un kernel especial, que de hecho lo primero que hace es arrancar Xen, y luego el Dom0. La otra desventaja que tiene es que las distros del DomU y la del Dom0 tienen que ser idénticas para que la implementación sea sencilla. Es decir, si Dom0 es Centos 5.1 una distro del DomU también debe ser Centos 5.1. Obviamente hay excepciones, de hecho, la virtualización completa a diferencia de la paravirtualización permite que un sistema cerrado como Windows esté como sistema invitado.
Artículos Técnicos | 0 Comments »
Fib3rtel pone restricciones para bajar archivos grandes
2. February 2008
admin
Quería bajar una imagen iso de DVD de Centos 5.1. Sin embargo, noté que la descarga terminaba bastante rápido. Algo extraño estaba pasando, teniendo en cuenta que se trata de un archivo de 4,1 G. Pensé que se trataba de un problema del mirror. Pero luego probando con otros mirrors, e inclusive probando con ISOs de DVD de otras distribuciones, advertí que el problema se repetía.
$ wget http://linux.cucea.udg.mx/espejo/Mandriva/2008.0/mandriva
-linux-2008.0-free-dvd-i586.iso
--07:49:15-- http://linux.cucea.udg.mx/espejo/Mandriva/2008.0/mandriva-
linux-2008.0-free-dvd-i586.iso
=>`mandriva-linux-2008.0-free-dvd-i586.iso'
Resolving linux.cucea.udg.mx... 148.202.23.6
Connecting to linux.cucea.udg.mx|148.202.23.6|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 269,768,704 (257M) [application/octet-stream
En la lista de correo Centos-mirror, John Lauro me dio una sencilla pero ingeniosa idea: comprobar si el sistema de archivos que estaba utilizando tenía un límite para crear archivos grandes. La primera prueba se puede hacer así:
$ dd if=/dev/zero of=5GB-file bs=1M count=5000
Entonces, obtuve un archivo llamado 5GB-file de 4,9 GB, lo cual era un primer indicio de que el sistema de archivos no era el problema. Tengo un wireless router que se conecta a Internet, que sirve como intermediario para una PC y una notebook. Creí por un momento que el Linksys WRT54G era el problema. Pero no, ya que conectándo la PC directamente al cablemodem tenía el mismo problema. La sospecha entonces comenzaba a apuntar fuertemente en dirección a Fib3rtel.
Luego, hice la siguiente prueba sugerida por John, hacer una descarga de un archivo grande desde un servidor web local. Así que eso hice, inicié Apache (de la PC con Mandriva 2008), puse un archivo de 4,9 GB e intenté bajarlo desde la notebook (con Fedora 8). Este fue el resultado:
$ wget http://192.168.1.2//5GB-file
--19:35:19-- http://192.168.1.2//5GB-file=> `5GB-file'
Connecting to 192.168.1.2:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 5,242,880,000 (4.9G) [text/plain]0% [] 2,078,996 1.10M/s
Este resultado, sumado a las pruebas con tcptraceroute (idea leída del blog de Javier Smaldone) entre información recolectada, dieron el veredicto: No sólo Fib3rtel interpone a sus clientes un proxy transparente, sino que además impone un límite al tamaño de los archivos que se descargan. La pregunta (ingenua) es ¿Por qué la empresa no lo dice?
En lugar de llamar a Fib3rtel, y estar lidiando con la gente apenas capacitada del soporte técnico (y esperar los típicos diálogos del tipo: “Haga doble clic en Mi PC” - “Eh… uso Linux” o “Desconecte y reconecte su modem”, o , etc) encontré una solución al problema: usar Tor + Privoxy, los cuales me permiten esquivar el proxy transparente de Fib3rtel.
Descarga limitada por el proxy transparente de Fib3rtel:
$ wget http://holmes.umflint.edu/centos/5.1/isos/x86_64/CentOS
-5.1-x86_64-bin-DVD.iso
--13:25:01--
http://holmes.umflint.edu/centos/5.1/isos/x86_64/CentOS
-5.1-x86_64-bin-DVD.iso => `CentOS-5.1-x86_64-bin-DVD.iso'
Resolving holmes.umflint.edu... 141.216.3.72
Connecting to holmes.umflint.edu|141.216.3.72|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 147,687,424 (141M) [application/octet-stream]
$ export http_proxy=127.0.0.1:8118
$ wget http://holmes.umflint.edu/centos/5.1/isos/x86_64/CentOS
-5.1-x86_64-bin-DVD.iso
--13:25:19--
http://holmes.umflint.edu/centos/5.1/isos/x86_64/CentOS
-5.1-x86_64-bin-DVD.iso
=> `CentOS-5.1-x86_64-bin-DVD.iso.1'
Connecting to 127.0.0.1:8118... connected.
Proxy request sent, awaiting response... 200 OK
Length: 4,442,654,720 (4.1G) [application/octet-stream]
Hasta la próxima.
Artículos Técnicos | 0 Comments »
Acceder a imágenes ISO
29. January 2008
admin
De acuerdo a Wikipedia, una Imagen ISO es Imagen ISO
es un archivo donde se almacena una copia o imagen exacta de un sistema de ficheros, normalmente un disco compacto (como un CD o un DVD)
Algo interesante es que uno puede acceder al interior del archivo y explorar las carpetas y los archivos de manera bastante transparente.
Supongamos que tenemos el archivo mandriva-linux-2008-one-KDE-cdrom-i586.iso
Para ver el contenido es cuestión de montar el archivo como si fuera un sistema de archivos. Esto se consigue gracias al módulo loop del kernel.
Entonces sencillamente se puede hacer:
mkdir /loop1
mount -o loop mandriva-linux-2008-one-KDE-cdrom-i586.iso /loop1
Entonces, se puede ver el contenido de la imagen ISO:
ls /loop1
boot isolinux LISEZMOI.pdf loopbacks README.pdf
Dentro del directorio loopbacks de la imagen está el directorio loopbacks. Podemos ver su contenido:
ls /loop1/loopbacks
distrib.sqfs
¿De qué tipo de archivo se trata?
/loop1/loopbacks/distrib.sqfs: Squashfs filesystem, little endian, version 3.0, 721071324 bytes, 98645 inodes, blocksize: 65536 bytes, created: Mon Oct 8 19:01:20 2007
Se trata justamente de un sistema de archivos squashfs usado con frecuencia en Live-CDs, ya que permite compresión de archivos y tiene soporte para escritura.
Se puede montar este sistema de archivos también:
mkdir /loop2
mount -o loop -t squashfs /loop1/loopbacks/distrib.sqfs /loop2
ls -l /loop2
total 0
drwxr-xr-x 2 root root 1122 oct 8 04:53 bin
drwxr-xr-x 3 root root 201 oct 8 12:19 boot
drwxr-xr-x 26 root root 63160 oct 8 05:03 dev
drwxr-xr-x 96 root root 2969 oct 8 05:04 etc
drwxr-xr-x 3 root root 22 oct 8 05:04 home
drwxr-xr-x 2 root root 3 jul 27 2007 initrd
drwxr-xr-x 13 root root 2523 oct 8 05:04 lib
drwxr-xr-x 4 root root 33 oct 8 04:50 media
drwxr-xr-x 3 root root 21 oct 8 04:50 mnt
drwxr-xr-x 2 root root 3 jul 27 2007 opt
drwxr-xr-x 2 root root 3 oct 8 04:36 proc
drwx------ 9 root root 203 oct 8 05:04 root
drwxr-xr-x 2 root root 3764 oct 8 05:04 sbin
drwxr-xr-x 2 root root 3 oct 8 04:36 sys
drwxrwxrwt 5 root root 56 oct 8 12:19 tmp
drwxr-xr-x 12 root root 167 oct 8 04:50 usr
drwxr-xr-x 16 root root 154 oct 8 04:50 var
¿Suena familiar? Todo este arbol de directorios con sus archivos es el que se descomprime luego de arrancar el Live-CD.
Inspeccionando un poco más se ve que el directorio boot contiene un INIT Ram Disk y la imagen compilada del kernel Linux. De manera que todo estos archivos se pueden copiar a una partición, y configurando apropiadamente GRUB puede arrancarse directamente desde el disco rígido. De manera que nos ahorramos un CD…
Artículos Técnicos | 0 Comments »