Manual de Virtualización
Manual de Virtualización
Aunque no soy un expertsimo en las diversas tcnicas de virtualizacin, tratar de exponer algunas de ellas y en breves palabras lo que hallo bien o mal de cada una. Virtualizacin es un trmino bastante amplio, pero que en general podemos pensar que es separar las caractersticas fsicas de el hardware donde corre el programa virtualizado para que pueda ejecutarse tal y como l lo desea o necesita. La virtualizacin se divide en s en dos formas o tipos: - Virtualizacin de la plataforma - Virtualizacin de los recursos El tema que vamos a ver aqui es la virtualizacin de la plataforma que es una forma de crear una mquina virtual para que dentro de ella corra un determinado sistema operativo. sta mquina virtual puede o no recibir ayuda por parte del hardware en que la corremos. En el caso especfico nuestro veremos la virtualizacin basada en los procesadores i386 (Intel o AMD). La virtualizacin de la plataforma (le llamar virtualizacin de aqu en adelante). Se realiza mediante la intervencin de un sistema operativo hospedero (host) el cul se har cargo de crear un sistema simulado para los huspedes (Guests). Estos guests corrern tal y como si lo estuvieran haciendo sobre un hardware verdadero. Normalmente se les simula por parte del host una mquina de forma tal que los guests puedan correr. Sin embargo a veces no se les simula la mquina sino que se les modifica el kernel para que puedan correr de forma compartida en el host. Diferentes formas de hacer virtualizacin por plataforma: Emulacin: Es cuando el host simula completamente la mquina virtual de forma que todas las llamadas que hagan los guests sean interpretadas y ejecutadas por parte del host hacia el verdadero hardware. De sta forma se ha logrado la creacin de software para hardware que no ha sido creado todava. As se puede avanzar en la salida al mercaro de nuevo hardware. La emulacin incluso permite que un sistema operativo diseado para algn una plataforma especfica pueda correr sobre otra plataforma con la cul tcnicamente no es compatible. Ejemplos de emulacin tenemos el qemu sin aceleracin, Virtual PC, Bochs y PearPC. Por mi parte he probado el Qemu y de hecho veremos ms adelante cmo implementarlo.
Virtualizacin nativa: Tambin conocida como virtualizacin completa. El host emula lo suficientemente bien el hardware como para que los guests puedan correr de forma nativa (sin cambios en el kernel) y adems de forma completamente aislada. Estos guests normalmente pueden correr varios en la misma mquina y compartir eficientemente sus recursos. Yo realmente lo veo como un caso de emulacin un poco ms avanzado. El caso ms conocido es el VMWare. Que es un producto comercial y no veremos aqui. Xen y KVM son sistemas open source que permiten realizar ste tipo de virtualizacin de forma sumamente efectiva. Y por supuesto los veremos. Paravirtualizacin El host no ofrece una emulacin del hardware. Pero sin embargo ofrece un API que permite que los guests puedan acceder a los recursos de la mquina, controlados por el hospedero por supuesto. Los guests corren de forma aislada y segura de forma tal que no se afectan en caso de problemas. El kernel de los guests tiene que ser modificado para permitir acceder al API del host y poder manejar y acceder a los recursos del host (disco, red, usb, etc). Ejemplos de paravirtualizacin incluyen el VMWare ESX Server y el XEN. En nuestro caso dedicaremos un tiempo a estudiar el XEN. Virtualizacin a nivel del sistema operativo Los guests comparten el mismo sistema operativo que el hospedero. En verdad todos corren el mismo kernel y es el kernel el que se ocupa de determinar para quin trabaja en un momendo determinado. Los guests se ven como si estuvieran slos pero en verdad todos comparten el mismo kernel cosa que hace que una vulnerabilidad en el kernel afecte a todos. Ejemplos de ste tipo de virtualizacin incluyen al OpenVZ, virtuozzo, y las jaulas de freeBSD. Es una de las formas ms antiguas de virtualizar en linux, pero para mi no son lo suficientemente seguras. Intent el OpenVZ y no me pareci feo, pero gracias, no lo uso ni en su versin comercial (virtuozzo). De todos estos sistemas, tratar de explicar cmo usar el qemu y el xen, aunque si el KVM toma suficiente fuerza lo pondr aqui tambin.
2- QEMU
Enviado por Epe el Sb, 2007-03-03 21:47.
QEMU es un emulador muy simpatico y fcil de usar que nos permitir ejecutar varios sistemas operativos emulndole una mquina virtual a ellos. Al ser un emulador es bastante lento, pero es un gran paso de avance en esto de virtualizacin. ACTUALIZACION Gracias al comentario de Rafael podemos actualizar el howto con sta info: Qemu tiene dos partes que son el qemu (el emulador en s) y un mdulo llamado kqemu que permite acelerar la ejecucin del sistema operativo virtualizado. El kqemu antiguamente era cdigo cerrado pero desde hace unas semanas ya es open source (GPL) por lo que podremos usarlo tambin! Con el Qemu podremos instalar windows, linux y quiz podran instalar algn sistema operativo ms. Yo realmente lo he probado con windows 2000 y con linux, no he probado nada ms. En un inicio me gust pues me permiti experimentar con diversos linux (prob debian por ejemplo y ahi qued mi incursin en debian). Te lo sugiero si quieres algo rpido, mas no si quieres algo serio (no, no el debian, hablo del qemu!).
1- Instalando qemu
La instalacin de Qemu es bastante sencilla, sugiero que previamente tengas instalado el repositorio de DAG, sigue ste documento que te explicar cmo usar el repo dag que ahora se conoce como rpmforge: http://www.ecualug.org/?q=2006/03/30/comos/centos/c_mo_usar_el_repositorio_ de_dag_en_nuestro_centos El proceso de instalacin es como sigue:
[root@laptop ~]# yum install qemu Setting up Install Process Setting up repositories kbs-CentOS-Extras 100% |=========================| 951 B 00:00 kbs-CentOS-Misc 100% |=========================| 951 B 00:00 update 100% |=========================| 951 B 00:00
rpmforge 100% |=========================| 1.1 kB 00:00 base 100% |=========================| 1.1 kB 00:00 addons 100% |=========================| 951 B 00:00 jpackage-generic 100% |=========================| 951 B 00:00 extras 100% |=========================| 1.1 kB 00:00 Reading repository metadata in from local files Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for qemu to pack into transaction set. qemu-0.9.0-1.el4.rf.i386. 100% |=========================| 12 kB 00:00 ---> Package qemu.i386 0:0.9.0-1.el4.rf set to be updated --> Running transaction check Dependencies Resolved ========================================================================= ==== Package Arch Version Repository Size ========================================================================= ==== Installing: qemu i386 0.9.0-1.el4.rf rpmforge 4.1 M Transaction Summary ========================================================================= ==== Install 1 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 4.1 M Is this ok [y/N]: y Downloading Packages: (1/1): qemu-0.9.0-1.el4.r 100% |=========================| 4.1 MB 01:30 Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction
[root@laptop ~]# yum install dkms-kqemu Setting up Install Process Setting up repositories kbs-CentOS-Extras 100% |=========================| 951 B 00:00 kbs-CentOS-Misc 100% |=========================| 951 B 00:00 update 100% |=========================| 951 B 00:00 rpmforge 100% |=========================| 1.1 kB 00:00 base 100% |=========================| 1.1 kB 00:00 addons 100% |=========================| 951 B 00:00 jpackage-generic 100% |=========================| 951 B 00:00 extras 100% |=========================| 1.1 kB 00:00 Reading repository metadata in from local files primary.xml.gz 100% |=========================| 106 kB 00:02 update : ################################################## 308/308 Added 1 new packages, deleted 0 old in 1.05 seconds primary.xml.gz 100% |=========================| 1.3 MB 00:32 rpmforge : ################################################## 5427/5427 Added 11 new packages, deleted 0 old in 9.26 seconds Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for dkms-kqemu to pack into transaction set. dkms-kqemu-1.3.0-0.1.pre1 100% |=========================| 7.0 kB 00:01 ---> Package dkms-kqemu.noarch 0:1.3.0-0.1.pre11.nodist.rf set to be updated --> Running transaction check --> Processing Dependency: dkms for package: dkms-kqemu --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Downloading header for dkms to pack into transaction set. dkms-2.0.13-1.el4.rf.noar 100% |=========================| 4.1 kB 00:00 ---> Package dkms.noarch 0:2.0.13-1.el4.rf set to be updated
--> Running transaction check --> Processing Dependency: kernel-devel for package: dkms --> Restarting Dependency Resolution with new changes. --> Populating transaction set with selected packages. Please wait. ---> Package kernel-devel.i686 0:2.6.9-42.0.10.EL set to be installed --> Running transaction check Dependencies Resolved ========================================================================= ==== Package Arch Version Repository Size ========================================================================= ==== Installing: dkms-kqemu noarch 1.3.0-0.1.pre11.nodist.rf rpmforge 166 k Installing for dependencies: dkms noarch 2.0.13-1.el4.rf rpmforge 49 k kernel-devel i686 2.6.9-42.0.10.EL update 3.7 M Transaction Summary ========================================================================= ==== Install 3 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 3.9 M Is this ok [y/N]: y Downloading Packages: (1/3): dkms-kqemu-1.3.0-0 100% |=========================| 166 kB 00:04 (2/3): dkms-2.0.13-1.el4. 100% |=========================| 49 kB 00:01 (3/3): kernel-devel-2.6.9 100% |=========================| 3.7 MB 01:39 Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: kernel-devel ######################### [1/3] Installing: dkms ######################### [2/3]
Installing: dkms-kqemu ######################### [3/3] Installed: dkms-kqemu.noarch 0:1.3.0-0.1.pre11.nodist.rf Dependency Installed: dkms.noarch 0:2.0.13-1.el4.rf kernel-devel.i686 0:2.6.9-42.0.10.EL Complete!
Listo, ya est listico el qemu para ser usado, veamos su configuracin y uso inicial.
qemu-img create w2k.img 5G Formating 'w2k.img', fmt=raw, size=5242880 kB ll w2k.img -rw-r--r-- 1 root root 5368709120 Mar 3 21:56 w2k.img
Hum, ya la tenemos, ahora tomamos un CD de instalacin de w2k y lo ponemos en el lector de cd, y ejecutamos esta instruccin:
Recuerda que una vez acabes la instalacin no necesitas de arrancar con d (cdrom) sino con c (disco) y no necesitas de la opcin -cdrom (para que te quede libre el cdrom para otras cosas).
vbv
S, qemu puede emular mquinas virtuales de diversas arquitecturas, por ejemplo ARM:
wget http://people.debian.org/~kmuto/d-i/images/daily/rpc/netboot/initrd.gz
Se quejar de que no le aparecen los modulos, decirle que s, es porque el kernel que usamos no es el propio que viene con el instalador.
Los mensajes que salgan consideremoslos no importantes y continuemos con la instalacin (dir que no puede instalar el kernel, el grub, etc). Una vez instalado podemos arrancar con: qemu-system-arm -M versatilepb -kernel vmlinuz-2.6.18-4-versatile -initrd initrd.img-2.6.18-4versatile -hda hda.img -append "root=/dev/sda1" Una vez hallamos arrancado, debemos inmediatamente instalar el kernel:
Aqu una imagen de debian-arm ya trabajando en el qemu: http://www.ecualug.org/files/images/armdebianqemuconsola.preview.png La info de ste artculo fue cuidadosamente copiada desde: http://www.aurel32.net/info/debian_arm_qemu.php
qemu -localtime -net user -net nic -m 128 -cdrom IDE-3.1.2a.iso -hda minix.img boot d
Aqui le digo que slo use 128 megas de memoria y que bootee desde el .iso que recin baj (para no tener que quemar un CD). Una vez arranques instalas normalmente minix, entrando como root (sin clave) y poniendo:
setup
En el tipo de tarjeta de red poner la opcin 4 (realtek 8029) Una vez instalado, ejecutar el mismo qemu pero con -boot c para arrancar de disco:
qemu -localtime -net user -net nic -m 128 -hda minix.img -boot c
ste es fcil puesto que ya podemos conseguir la imagen de qemu La bajamos de aqui y la descomprimimos:
qemu freedos.img
Miren el FreeDOS corriendo:
ReactOS es un sistema operativo que es muy parecido a windows, pero es open source. En ecualug ya se han publicado algunas noticias e informaciones sobre ReactOS sera bueno que le des una miradita en Buscar. Ahora, ReactOS te ofrece bajar una imagen de Qemu para que puedes probarlo. Realmente a mi entender ReactOS no est completo, pero est avanzando y eso es positivo. Bajamos la imagen desde: http://ufpr.dl.sourceforge.net/sourceforge/reactos/reactos0.3.0-REL-qemu.zip (recuerda que las versiones pueden ir subiendo con el tiempo, as que te sugiero verificar la ltima imagen siempre desde: http://www.reactos.org/en/download.html La descomprimimos:
unzip reactos0.3.0-REL-qemu.zip Archive: reactos0.3.0-REL-qemu.zip creating: ReactOS-Qemu/ inflating: ReactOS-Qemu/bios.bin inflating: ReactOS-Qemu/boot.bat extracting: ReactOS-Qemu/boot.sh inflating: ReactOS-Qemu/c.img inflating: ReactOS-Qemu/fmod.dll creating: ReactOS-Qemu/keymaps/ inflating: ReactOS-Qemu/keymaps/ar inflating: ReactOS-Qemu/keymaps/common inflating: ReactOS-Qemu/keymaps/da inflating: ReactOS-Qemu/keymaps/de inflating: ReactOS-Qemu/keymaps/de-ch inflating: ReactOS-Qemu/keymaps/en-gb inflating: ReactOS-Qemu/keymaps/en-us inflating: ReactOS-Qemu/keymaps/es inflating: ReactOS-Qemu/keymaps/et inflating: ReactOS-Qemu/keymaps/fi inflating: ReactOS-Qemu/keymaps/fo
inflating: ReactOS-Qemu/keymaps/fr inflating: ReactOS-Qemu/keymaps/fr-be inflating: ReactOS-Qemu/keymaps/fr-ca inflating: ReactOS-Qemu/keymaps/fr-ch inflating: ReactOS-Qemu/keymaps/hr inflating: ReactOS-Qemu/keymaps/hu inflating: ReactOS-Qemu/keymaps/is inflating: ReactOS-Qemu/keymaps/it inflating: ReactOS-Qemu/keymaps/ja inflating: ReactOS-Qemu/keymaps/lt inflating: ReactOS-Qemu/keymaps/lv inflating: ReactOS-Qemu/keymaps/mk inflating: ReactOS-Qemu/keymaps/modifiers inflating: ReactOS-Qemu/keymaps/nl extracting: ReactOS-Qemu/keymaps/nl-be inflating: ReactOS-Qemu/keymaps/no inflating: ReactOS-Qemu/keymaps/pl inflating: ReactOS-Qemu/keymaps/pt inflating: ReactOS-Qemu/keymaps/pt-br inflating: ReactOS-Qemu/keymaps/ru inflating: ReactOS-Qemu/keymaps/sl inflating: ReactOS-Qemu/keymaps/sv inflating: ReactOS-Qemu/keymaps/th inflating: ReactOS-Qemu/keymaps/tr creating: ReactOS-Qemu/License/ inflating: ReactOS-Qemu/License/LICENSE inflating: ReactOS-Qemu/License/README-SDL.txt inflating: ReactOS-Qemu/License/README.TXT inflating: ReactOS-Qemu/qemu-system-x86_64.exe inflating: ReactOS-Qemu/qemu.exe inflating: ReactOS-Qemu/SDL.dll inflating: ReactOS-Qemu/vgabios-cirrus.bin inflating: ReactOS-Qemu/vgabios.bin
Y procedemos a ejecutarlo
3- Instalando Xen
Bueno, disculpen, no me sobra el tiempo en estos das, pero voy a tratar de ir avanzando. As que quieren instalar Xen no? CentOS desde la versin 5 soporta Xen, ofrece Xen como uno de sus paquetes. Al tener 7 aos de soporte, tendrs la certeza de que tendrs soportado tu Xen durante 7 aos. CentOS ofrece alojar mquinas de forma paravirtualizada (ms rpidas pero ms complejas) y de forma de full virtualization (requiere de procesadores que soporten vmx (intel) o svm (amd) El proceso de instalacin es bien simple y asume que tienes el DVD de CentOS 5 o los 6 CDs. Si no los tuvieras avsame para ponernos de acuerdo en la forma de envo. Atencin, esto es un howto para personas que gusten experimentar, conocedores. Esta instalacin seguro que te formatear el disco duro. Es responsabilidad tuya, no ma. Despus no me culpes por haber perdido la informacin.. respalda antes de seguir! Metes el primer CD o el DVD y arrancas la mquina. Sigues el proceso de instalacin normalmente, como si estuvieras instalando cualquier CentOS o Fedora. Al momento de particionar, te sugiero que por favor crees de la siguiente forma: 1- /boot - 100 megas, forzada a ser primaria 2- el resto del disco de tipo LVM (en vez de ext3, escoger LVM y al resto del disco darle) 3- Apretar en el botn de LVM y en el VolGroup (arriba arriba) poner: dsk (dice: VolGroup00, es feisimo, pon dsk que lo usaremos as, no lo olvides o me molestar bastante!) 4- Abajo de VolGroup, dar opcin para crear nuevos volmenes, es en un recuadrito que a la derecha tiene varios botones (new, delete, etc). 5- crear un Logical Volume (LV, VolName) llamado swap de 1024M que sea de tipo swap y 6- en el mismo lugar: otro llamado root que sea de tipo ext3, montarlo en / y que tenga digamos 5000MB 7- Apretar ok, salir de la configuracin de LVM y regresar al fdisk, 8- seguir instalando. Te sobrar bastante disco (el resto). La idea es que en ese resto de espacio de LVM crearemos las mquinas virtuales (llamadas domU).
A la hora de escoger los paquetes, mira bien abajo, dir: Virtualization. Es este el nico que me interesa que se instale, los dems podras quitarlos, al menos los de ambiente grfico, open office, etc Te sugiero que no instales muchos paquetes. En el sistema ste, que se llamar hospedero (dom0) no hacen falta muchos paquetes, slo los de virtualizacin, es ms, no instalo siquiera el ambiente grfico en ste hospedero (dom0). Escoge esa opcin, y sigue instalando normalito, como si nada pasara. Al finalizar reiniciars la mquina y arrancar CentOS 5. Felicidades. Actualizacin Es OBLIGATORIO que actualices tu sistema, el Xen que vino en el CentOS 5.0 tena algunos problemillas y es mejor que lo actualices. Igual, cuando salgan los siguientes respin (5.1, 5.2, 5.3, etc) nunca est de ms actualizar antes de seguir:
yum update
La actualizacin te llevar un rato en dependencia de la cantidad de paquetes que hayas instalado y la velocidad de tu conexin. Al finalizar, reinicia para que levante el nuevo kernel y ahi vamos con el resto.
1- Pasos iniciales
Bueno, qu se siente con el xen ya instalado? Nada raro. Parece un linux normal. Ests trabajando en algo llamado el hipervisor, el dom0, el hospedero. A la final es un kernel de linux modificado para poder ejecutar maquinas virtuales. Te sugiero que en el dom0, que es ese linux donde ahora ests, no instales nada raro. Nada de nada de paquetes, slo SSH y si puedes quitar el SSH, mejor, qutalo. El xen tiene bsicamente una herramienta desde la que se puede hacer todo.Se llama xm xm list (te lista las mquinas virtuales) xm shutdown ID (Te apaga la mquina virtual que tenga ese ID) xm destroy ID (Es como quitarle la corriente a ese ID) xm create ID (arranca, como ponerle la corriente a ese ID, tiene que haber sido previamente instalado) xm console ID (te permite conectarte via consola a la mquina virtual ID. Es como estar delante de la pantalla, en tty1)
Claro, no has creado una mquina virtual todava, pero por lo menos ya sabes los comandos. Ahora vamos.
2- Usando LVM
Bueno, creme, si no sabes usar LVM, no podrs seguir con el howto, pues usar LVM para crear las mquinas virtuales. Lete ste howto, con calma, pues necesitas saber todo:
A peticin de death, aqui va: Los LVM te permiten unir varios discos o particiones (conocidos como Physical Volumes, PV) formando un gran pool de almacenamiento de datos conocido como Volume Group (VG) que puede ser posteriormente subdividido en "particiones". En caso de necesidad de ms espacio se pueden redimensionar estas particiones, conocidas como Logical Volumes (LV a partir de ahora). En resumen: VG: Volume Group: Es la unin de todos los discos o particiones que vayas a usar. Del VG es que sacas pedazos para crear tus particiones. PV: Pysical Volume: Es en s todos y cada uno de los dispositivos de almacenamiento que vayas a usar. Discos, particiones, etc.. en verdad es lo que antiguamente conocas como discos duros. LV: Son lo que seran las particiones. Pedazos del VG que asignars. Por ejemplo, dadas dos unidades (PV) de 100GB, se puede crear un volumen lgico (LV) de 200GB. Sin embargo, tambin se pueden crear un volumen lgico (LV) de 150GB y otro de 50GB. Es posible cualquier combinacin de volmenes lgicos igual o menor que la capacidad total (en nuestro ejemplo 200GB). Las posibilidades estn limitadas solamente a las necesidades de su organizacin.
La caracterstica que la mayora de los administradores de sistemas aprecian ms sobre LVM es su habilidad para dirigir fcilmente el almacenamiento donde se necesite. En una configuracin de sistemas no LVM, el quedarse sin espacio significa - en el mejor de los casos - mover archivos desde un dispositivo lleno a uno con espacio disponible. A menudo esto significa la reconfiguracin de sus dispositivos de almacenamiento masivo; una tarea que se debe llevar a cabo despus del horario de oficina. Sin embargo, LVM hace posible incrementar fcilmente el tamao de un volumen lgico. Asuma por un momento que nuestro parque de almacenamiento de 200GB fue utilizado para crear un volumen lgico de 150GB, dejando el resto de 50GB en reserva. Si el volumen lgico de 150GB se llena, LVM permite incrementar su tamao (digamos por 10GB) sin ninguna reconfiguracin fsica. Dependiendo del entorno de su sistema operativo, se puede hacer esto dinmicamente o quizs requiera una pequea cantidad de tiempo fuera de servicio para llevar a cabo el redimensionamiento. Migracin de datos La mayora de los administradores con experiencia estaran impresionados de las capacidades de LVM, pero tambin se preguntaran: Qu pasa si uno de los discos que forman parte del volumen lgico comienza a fallar? Las buenas noticias es que la mayora de las implementaciones LVM incluyen la habilidad de migrar datos fuera de una unidad fsica particular. Para que esto funcione, debe existir suficiente capacidad para absorber la prdida de la unidad fallida. Una vez que se termine la migracin, se puede reemplazar la unidad que dej de funcionar y aadirla nuevamente en el parque de almacenamiento disponible. Por qu utilizar RAID? Dado que LVM tiene algunas funcionalidades similares a RAID (la habilidad de reemplazar dinmicamente unidades fallidas, por ejemplo) y algunas funcionalidades proporcionan capacidades que no se pueden comparar con la mayora de las implementaciones RAID (tales como la habilidad de aadir dinmicamente ms almacenamiento a un parque central de almacenamiento), mucha gente se pregunta si ya RAID no es tan importante. Nada puede estar ms lejos de la realidad. RAID y LVM son tecnologas complementarias que se pueden usar en conjunto (de una forma similar a los niveles RAID anidados), haciendo posible obtener lo mejor de los dos mundos. Ejemplo real:
Tenemos 3 discos de 40 gigas cada uno. Tenemos por tanto 3 PV Estos 3 PV los unimos y formamos un group de volmenes (VG) que llamaremos: disk Ahora, tenemos a nuestra disposicin 120GB en el VG y podemos hacer uso de este espacio como nos convenga. Particionemos nuestro VG con varios Logical Volumes (LV) que vienen siendo las particiones: /dev/disk/home con 45GB /dev/disk/var con 40gb /dev/disk/root con 10GB /dev/disk/usr con 15GB /dev/disk/swap con 1GB En total estaremos consumiendo 111GB, nos quedaran unos 9GB disponibles. Si te fijas, no importa el tamao de los PV que es de 40GB cada uno, sino el conjunto. Si te fijas, una vez creados los LV nos referimos como /dev/nombredelVG/nombredelLV, en este caso sera /dev/disk/home por ejemplo. Ahora podemos usarlos normalmente en nuestro fstab, editamos el fstab y en vez de poner /dev/hda1 por ejemplo, ponemos /dev/disk/var o /dev/disk/root (como no puedo usar el / en el nomnbre le pongo root). Y listo, se usa normalmente. Comandos LVM2 Creando PV: Supongamos tenemos 3 discos disponibles, hda, hdb y hdc, para agregarlos a nuestro LVM lo que hacemos es particionarlos y a las particiones las ponemos del tipo:
8e Linux LVM
Esto se hace con el comando fdisk, escogiendo con "t" la particin que queremos crear como LVM normalmente hago slo una particin por disco, y le cambio el tipo a 8e. Una vez cambiados los tipos de los discos, procedemos a agregarles la informacin de LVM a cada uno, con el comando pvcreate:
lvcreate -L45G -nhome disk lvcreate -L40G -nvar disk lvcreate -L10G -nroot disk lvcreate -L15G -nusr disk lvcreate -L1G -nswap disk
la -L sirve para indicar el tamao del LV, se puede medir en megas (M), gigas (G), y supongo que en kilos (K) pues slo he usado G y M para los discos. la -n sirve para indicar cmo se llamar el LV La ltima entrada es el nombre del VG del que tomaremos la informacin. Asi que ahora tendremos el VG llamado disk conteniendo 5 LV: home, var, root, usr y swap. Una vez hecho esto podemos formatear todos ellos:
3- chequeamos el FS (supongo que es formato ext3) 4- hacemos un resize del FS, con el comando resize2fs Con esto nos basta para incrementar en 5GB el tamao de ese LV Reduciendo un LV Veamos el caso contrario, pensemos que queremos reducir home, le quitaremos 5GB, el proceso es parecido al anterior:
umount /dev/disk/home e2fschk -f /dev/disk/home resize2fs /dev/disk/home 35G lvreduce -L-5G /dev/disk/home
Con esto 1- desmontamos home, no debe estar montado para la operacin 2- revisamos el FS ext3 3- reducimos el tamao del FS ext3 (aqu s hay que saber a cunto lo reduces 4- reducimos el tamao del LV home, si te fijas usamos -L-5G aunque tambin podamos haber usado -L35G para indicarle el valor hacia donde lo reduciramos. Con esto nos basta para reducir el tamao en 5GB Removiendo un PV Supongamos que un PV nuestro lo queremos sacar. Puede ser porque hemos agregado un nuevo PV anteriormente que es muy grande y ya este PV viejo nos queda pequeo y nos molesta, queremos digamos eliminar el disco. Supongamos que queremos remover hdc1 del ejemplo del howto inicial.
pvmove /dev/hdc1
En este proceso demorar un buen rato, pvmove saca la informacin que tenga guardada y la almacena en los otros PV, esto sin alterar el esquema de los LV. Por supuesto que la suma de capacidad disponible en los otros PV debe ser mayor o igual a la cantidad de informacin que est moviendo. Al finalizar de mover el PV, lo podemos eliminar del VG con:
Listo, con este paso deja de constar dentro del VG y lo podemos sacar fsicamente de la PC donde lo tenemos. Otras sugerencias: * no sugerimos que usen LVM para la particin /, esta particin prcticamente no crece durante el tiempo de vida del sistema (claro, si tenemos /var y /usr y /home en particiones diferentes). * No sugerimos que usen LVM para /boot, los gestores de arranque normalmente no entienden de lvm y fallar el arranque. Despus de todo /boot tampoco crece tanto durante el tiempo de vida de la mquina. * Este proceso se ve grandemente agilitado cuando estamos recin instalando un nuevo servidor. Pues en el instalador de CentOS/RHEL aparece una opcin para LVM que te permite fcilmente crear los LVM que necesites. * Lo uso en servidores de produccin y me ha sido de utilidad eso de poder quitar y/o poner espacio a particiones, en verdad ayuda y te evita la reinstalacin o el pasar trabajo insertando nuevos discos. * Sugiero usarlo encima de un RAID, pues si un PV se daa, puede joderse todo el sistema.
Bueno, existen dos tipos en Xen. Paravirtualizacin y full virtualizacin. Paravirtualizacin es mucho ms rpida pues se integran llamadas desde el kernel al hipervisor sin requerir de la ayuda del procesador.Sin embargo se necesita tener el mismo kernel en el dom0 y en los domU, esto es: slo podras instalar linux con el mismo kernel, Es ms, no podras bootear una mquina normal, sino que tendras que hacer una instalacin en base a yum o debootstrap (vieron, ya s de debian y sus hijitos!) desde un chroot y despus bootear. Ms tarde veremos eso. En todo caso, me gusta ms la paravirtualizacin pues me ofrece velocidades cercanas a la velocidad nativa del procesador (con slo un 8% de degradacin en el peor de los escenarios). 2- Full Virtualizacin: El procesador se encargar de emular las llamadas, de sta forma se puede arrancar desde un CD, el sistema trabajar full nativo es decir, el sistema se pensar que est l solito en el procesador. No se requieren modificaciones al kernel, por lo tanto se pueden instalar varios sistemas operativos como domU sinque ellos se enteren en principio.
A mi me pareca excitante esto de full virtualizacin, pero en mediciones que he realizado he notado que hay una gran degradacin del desempeo de la full virtualizacin en lo que respecta a la red (casi un 50% menos de aprovechamiento de la red). Estudios que he analizado indican que es menos eficiente que la paravirtualizacin. En realidad no es algo que pueda o no mejorar el xen, sino que la full virtualizacin depende del procesador (ah, slo he probado en intel con vmx). Supongo que a medida que intel y amd vayan comprendiendo muchas cosas, podrn ir mejorando su tecnologa de virtualizacin. Para determinar si puedo correr en full virtualizacin, hagamos esto: cat /proc/cpuinfo | grep vmx
[root@xen ~]# cat /proc/cpuinfo |grep vmx flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm flags : fpu tsc msr pae mce cx8 apic mtrr mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc up pni monitor ds_cpl vmx est tm2 cx16 xtpr lahf_lm
Si te aparece algo, te salvastes. Si te fijas bien, en la cantidad de informacin de las banderas, a mi me aparece vmx.. eso es.. permite full virtualizacin ste procesador. Si no te aparece vmx, si no te aparece nda, quiz tengas un AMD que s lo permita, Si tienes un amd pon esto entonces:
Sugiero que se haga en una mquina aparte, pero si no tienes ms mquinas, monta el dvd en el dom0 y arranca el httpd en el dom0 (no es seguro). DESACTIVA EL SELINUX
6- Usando el virt-install
CentOS 5 ofrece una herramienta llamada virt-install, que te hace una serie de preguntas y te permite instalar una mquina paravirtual o full virtual. En el caso de las paravirtuales solamente podrs instalar RHEL, CentOS o Fedora. Pues son las distribuciones que vienen con un kernel preparado desde el mismo CD que les permite bootear en ambiente paravirtual. RedHat ha sugerido a otras distribuciones que permitan bootear desde ambientes paravirtuales, esperemos que lo hagan. Pero al momento no conozco ninguna otra que bootee directamente. Al ejecutar "virt-install" se harn algunas preguntas, aqui van: virt-install
Would you like a fully virtualized guest (yes or no)? This will allow you to run unmodified operating systems. no What is the name of your virtual machine? cos01 How much RAM should be allocated (in megabytes)? 128 What would you like to use as the disk (path)? /dev/dsk/cos01 Would you like to enable graphics support? (yes or no) no What is the install location? http://192.168.0.89/
En resumen: Le indiqu que no quiero full virtual (por favor, aunque tengan full virtualizacin, comiencen probando la paravirtualizacin). Le dije que mi mquina se llamara cos01, tendra 128MB de RAM, el disco sera el LV que acababa de crear antes (/dev/dsk/cos01), que no quiero soporte grfico y que la URL donde estaba el CD de instalacin es: http://192.168.0.89/ Esta ltima es la mquina donde mont el DVD de centos5. El DVD lo mont en /var/www/html y arranqu apache, por lo que se puede ver. Sobre la memoria: ponle un valor adecuado, 256 seguro que ser ms que suficiente, pero he instalado con 128. despus de instalado se le puede reducir la memoria.
Una vez acabes este paso, buscar la URL, si la puede encontrar, pum.. comenzar el proceso de instalacin de CentOS en ese domU (llamado cos01).
Welcome to CentOS +---------+ Choose a Language +---------+ | | | What language would you like to use | | during the installation process? | | | | Catalan ^ | | Chinese(Simplified) : | | Chinese(Traditional) # | | Croatian : | | Czech : | | Danish : | | Dutch : | | English v | | | | +----+ | | | OK | | | +----+ | | | | | +---------------------------------------+ <Tab>/<Alt-Tab> between elements | <Space> selects | <F12> next screen
Fjate qu cmico, sale sin ambiente grfico, ahi con TAB y enter y las teclas de cursor vas instalando
Welcome to CentOS
Welcome to CentOS +----------------------------+ Partitioning +---------------------------+ | | | Device Start End Size Type Mount Point | | VG VolGroup00 896M VolGroup ^ | | LV LogVol00 768M ext3 / # | | LV LogVol01 128M swap : | | /dev/xvda : | | xvda1 1 13 101M ext3 /boot : | | xvda2 14 130 917M physical v : | | : | | : | | : | | v | | | | +-----+ +------+ +--------+ +------+ +----+ +------+ | | | New | | Edit | | Delete | | RAID | | OK | | Back | | | +-----+ +------+ +--------+ +------+ +----+ +------+ |
Welcome to CentOS +----------------------+ Package selection +----------------------+ | | | The default installation of CentOS includes a set of software | | applicable for general internet usage. What additional tasks | | would you like your system to include support for? | | | | [ ] Desktop - Gnome ^ | | [ ] Desktop - KDE # | | [ ] Server : | | [ ] Server - GUI v | | | | [ ] Customize software selection | | | | +----+ +------+ | | | OK | | Back | | | +----+ +------+ | | | | | +-----------------------------------------------------------------+
| Name : | | Size : | | Summary: | | | | | | Status:+---------+ Install Starting +----------+ | | | | | | | Starting install process. This may | | | | take several minutes... | | | | | Time | | Total +---------------------------------------+ | | Complet | | Remaining: 354 563M | | | | 0% | | | +------------------------------------------------------------+
[root@xen ~]# w 23:09:00 up 134 days, 11:09, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT ernesto pts/3 xxx.xx.xxx.xx 23:08 0.00s 0.04s 0.01s sshd: ernesto [ [root@xen1 ~]# xm list Name ID Mem(MiB) VCPUs State Time(s) Domain-0 0 127 2 r----- 238271.8 cos01 120 160 1 -b---- 16218.4 cos03 113 432 1 -b---- 38015.8 cos04 123 160 1 -b---- 215.9 cos05 114 426 1 -b---- 26672.1 cos06 93 224 1 -b---- 381522.5 cos07 58 96 1 -b---- 96268.2 cos10 111 128 1 -b---- 14887.8
Podemos apagar y encender las mquinas por su nombre (Name) Encendiendo la mquina: xm create -c cos01 Esto har que se arranque la mquina llamada cos01 y que veams cmo arranca (-c: Es la consola) Para salir de la consola, apretamos: CTRL - ] Apagando la mquina: podemos dentro de la mquina poner: poweroff O desde el dom0 podemos poner: xm shutdown cos01 Todas las configuraciones de los domU (mquinas virtuales) se guardan en: /etc/xen Arrancando automticamente: Si queremos arrancar una mquina virtual cada vez que arranque el dom0, ponemos: ln -s /etc/xen/cos01 /etc/xen/auto/cos01 xen al arrancar mira siempre los contenidos de /etc/xen/auto y las mquinas que ahi ve, las arranca en orden alfabtico.
Este pequeo script te ayudar a instalar Xen automticamente. Es para discos creados con LVM Este script bajar los paquetes del sitio de CentOS, si deseas puedes crear un repo local, as hago yo.
#!/bin/bash [ -n "$1" ] && [ -n "$2" ] && [ -n "$3" ] && [ -n "$4" ] && [ -n "$5" ] && [ -n "$6" ] && [ -n "$7" ]|| { echo "usar: $0 vmname ip netmask gateway password hdsize ram"; exit 1; } [ -f "/etc/xen/$1" ] && { echo "la maquina virtual $1 existe, eliminela primero"; exit 1;} lvcreate dsk -n$1 -L${6}G cat > /home/centos4.5/ks$1.cfg << EOF # Kickstart file automatically generated by anaconda. install url --url http://mirror.centos.org/centos-4/4/os/i386/. lang en_US.UTF-8 langsupport --default=en_US.UTF-8 en_US.UTF-8 network --device eth0 --bootproto static --ip $2 --netmask $3 --gateway $4 --nameserver 67.15.31.131 --hostname $1.ecualinux.com rootpw $5 reboot firewall --disabled selinux --disabled authconfig --enableshadow --enablemd5 timezone America/Guayaquil bootloader --location=mbr --append="console=xvc0" # The following is the partition information you requested # Note that any partitions you deleted are not expressed # here so unless you clear all partitions first, this is # not guaranteed to work
clearpart --all --initlabel part /boot --fstype ext3 --size=100 --asprimary part swap --size=128 part / --fstype ext3 --size=1 --grow %packages @ text-internet e2fsprogs -kernel kernel-xenU grub -acl -anacron -apmd -at -attr -autofs -redhat-lsb -bluez-bluefw -bluez-hcidump -bluez-libs -bluez-utils -cadaver -cups -cups-libs -dapl -dhclient -dhcpv6_client -dmraid -dos2unix -dosfstools -NetworkManager -mkbootdisk -eject -fbset -fetchmail -finger -fontconfig
-xorg-x11-Mesa-libGL -xorg-x11-libs -gpm -guile -ibutils -swig -ipsec-tools -irda-utils -isdn4k-utils -jpackage-utils -jwhois -lftp -lha -libjpeg -libpng -libtiff -libusb -lksctp-tools -lrzsz -mt-st -mtr -m4 -man -man-pages -mutt -minicom -mtools -syslinux -mdadm -nc -nfs-utils -neon -parted -pcmcia-cs -portmap -ppp -procmail -rp-pppoe
-sendmail -wvdial -yp-tools -ypbind -quota -dump -rsh -rdate -rsync -rdust -rmt -stunnel -slocate -sudo -tcl -talk -telnet -tcsh -setools -unix2dos -unzip -usermode -kbd -system-config-mouse -system-config-network-tui -system-config-securitylevel-tui -wireless-tools -wpa_supplicant -xinetd %post EOF hwaddr=`python -c 'import random; r=random.randint; print "00:16:3E:%02X:%02X:%02X" % (r(0, 0x7f), r(0, 0xff), r(0, 0xff))'` #creando la config del xen cat > /etc/xen/$1 << EOF
kernel = "/boot/kernelinstall45" ramdisk="/boot/initrdinstall45.img" memory = $7 name = "$1" vif = [ 'mac=$hwaddr' ] disk = [ 'phy:/dev/dsk/$1,xvda,w' ] extra = "ip=$2 netmask=$3 gateway=$4 dns=67.15.31.131 hostname=$1.ecualinux.com ks=http://67.15.60.47/ks$1.cfg" on_reboot = 'destroy' EOF xm create -c $1 cat > /etc/xen/$1 << EOF kernel="/boot/vmlinuz-2.6.9-55.ELxenU" ramdisk="/boot/initrd-2.6.9-55.ELxenU.img" root = "/dev/xvda3 ro" memory = $7 name = "$1" vif = [ 'mac=$hwaddr' ] disk = [ 'phy:/dev/dsk/$1,xvda,w' ] on_reboot = 'restart' on_crash = 'restart' EOF xm create -c $1
La instalacin queda en menos de 600MB.
Puedo ahora hacerle un fdisk a esta particin que se ver como un disco a futuro:
fdisk /dev/dsk/deb01
Aqu creo dos particiones:
la primera ser linux (tipo 83) la segunda ser swap (tipo 82)
kpartx -a /dev/dsk/deb01
Oh s, les presento a kpartx: "kpartx: este es mi amigo. Mi amigo: este es kpartx". Podemos seguir ahora? kpartx dividir el disco en particiones de forma tal que lo pueda formatar y montar una particin especfica (deb01p1). podemos ver la lista de particiones en /dev/mapper, vers que aparecern dos: deb01p1 y deb01p2 (las dos particiones que anteriormente cre). Ahora proceder a formatear ambas (una en ext3 y otra en swap), as como montar la primera que es la de ext3
chroot /mnt su -
mount -t proc proc /proc mount -t sysfs sysfs /sys /etc/init.d/mountdevsubfs.sh start mkdir /boot/grub aptitude update aptitude install locales dpkg-reconfigure locales (aqui sal y entr del su - no s si sea bueno) aptitude install linux-image-xen-686 libc6-xen grub ssh
El nuevo debian no tiene fstab, as que me toca crearle a mano: vi /etc/fstab
/dev/xvda1 / ext3 errors=remount-ro,noatime 0 1 /dev/xvda2 swap swap defaults 0 0 proc /proc proc defaults 0 0
Falta igualmente un pequeo /etc/hosts, lo pongo: vi /etc/hosts
auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 7.5.2.23 netmask 255.255.255.0 gateway 7.5.2.1
Tambien pongo un nombre a la maquina: vi /etc/hostname
deb01.nuestroserver.com
Cambio la clave de root
passwd
En el /etc/inittab busco una linea que comience con 1:2345:...... y le comento, entonecs agrego esta. Es para que puedas ver la consola serial:
creo un archivo llamado /boot/grub/menu.lst que contenga esto (Verificar versin del kernel y ramdisk):
#boot=/dev/xvda default=0 timeout=3 hiddenmenu title debian root (hd0,0) kernel /boot/vmlinuz-2.6.26-2-xen-686 ro root=/dev/xvda1 initrd /boot/initrd.img-2.6.26-2-xen-686
adems creo un enlace directo para menu.lst
ln -s /boot/grub/menu.lst /boot/grub/grub.conf
Salgo del chroot y creo la configuracin de la mquina /etc/xen/deb01 que contiene esto:
Le activo automticamente
ln -s /etc/xen/deb01 /etc/xen/auto/
desmonto /mnt
7- Instalando KVM
hum, bueno, KVM es un bonito experimento que le garantizo buen futuro. Es un sistema en el cual las mquinas virtuales se ven como procesos para el kernel de tu CentOS. Quieres matar una mquina virtual? Matas un proceso. Quieres arrancar una mquina virtual? Se arranca un proceso, etc. Bueno, KVM es medio reciente, es incorporado a partir del kernel 2.6.20; ni RedHat ni CentOS han implementado soporte para KVM en el presente. Sin embargo existe un paquete de kvm que est siendo actualizado y mantenido, aunque en testing todava, en el sitio de CentOS. KVM requiere de un procesador que tenga implementada virtualizacin. Es decir, no trabaja con cualquier procesador. En el futuro ms y ms procesadores ya vendrn con la virtualizacin provista. Instalemos el KVM Lo que vamos a hacer es: 1- Instalar el repo de testing para CentOS-5 2- Instalar el KVM de ese repo 3- ver cmo funciona y arranca una mquina 4- explicar trucos, si es que existen, para cada linux que he instalado.
Device Boot Start End Blocks Id System /dev/dsk/ecualug1 1 570 4578493+ 83 Linux /dev/dsk/ecualug2 571 587 136552+ 82 Linux swap / Solaris
Fjate, tiene como 4GB en la primera particin. y unos 128MB en la segunda, la segunda es de SWAP. El LV se llama /dev/dsk/ecualug y es el que debo redimensionar. Le agregar 10GB aproximadamente. Aqui va el paso a paso: 1- Apago la mquina virtual (cos02 se llama en mi caso)
xm shutdown cos02
No trabajes con la mquina encendida o jodes todo! 2- Una vez est apagada, reljate que cualquier error de aqui en adelante es mortal. 3- procedo a revisar la particin 1 (y en tu caso cualquier particin ext3 que tengas)
fdisk /dev/dsk/ecualug Command (m for help): p Disk /dev/dsk/ecualug: 4831 MB, 4831838208 bytes 255 heads, 63 sectors/track, 587 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/dsk/ecualug1 1 570 4578493+ 83 Linux /dev/dsk/ecualug2 571 587 136552+ 82 Linux swap / Solaris Command (m for help): d Partition number (1-4): 2 Command (m for help): w The partition table has been altered! [root@xen2 ~]# partprobe
te resumo: elimin la particin 2, grab (con w) y proced a partprobe para que retomara el cambio. 5- Voy a extender el LV:
The number of cylinders for this disk is set to 1892. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/dsk/ecualug: 15.5 GB, 15569256448 bytes 255 heads, 63 sectors/track, 1892 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/dsk/ecualug1 1 570 4578493+ 83 Linux Command (m for help): d Selected partition 1 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-1892, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-1892, default 1892): 1750 Command (m for help): p Disk /dev/dsk/ecualug: 15.5 GB, 15569256448 bytes 255 heads, 63 sectors/track, 1892 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/dsk/ecualug1 1 1750 14056843+ 83 Linux
Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 2 First cylinder (1751-1892, default 1751): Using default value 1751 Last cylinder or +size or +sizeM or +sizeK (1751-1892, default 1892): Using default value 1892 Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 82 Changed system type of partition 2 to 82 (Linux swap / Solaris) Command (m for help): p Disk /dev/dsk/ecualug: 15.5 GB, 15569256448 bytes 255 heads, 63 sectors/track, 1892 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/dsk/ecualug1 1 1750 14056843+ 83 Linux /dev/dsk/ecualug2 1751 1892 1140615 82 Linux swap / Solaris Command (m for help): w The partition table has been altered!
Fjate, antes acababa en el cilindro 570, entonces borr la primera particin, y la cre comenzando en el mismo cilindro que antes (1) pero esta vez le puse ms cilindros (1750). Aprovech y cre una segunda particin para swap que cubriera hasta el final de los cilindros. 7- Ahora proceder a hacer un resize2fs a la particin 1, para que ocupe el sistema de archivos su nuevo tamao pues al momento la particin es ms grande que el sistema de archivos:
[root@xen2 ~]# kpartx -a /dev/dsk/ecualug [root@xen2 ~]# resize2fs /dev/mapper/ecualug1 resize2fs 1.39 (29-May-2006)
Resizing the filesystem on /dev/mapper/ecualug1 to 3514210 (4k) blocks. The filesystem on /dev/mapper/ecualug1 is now 3514210 blocks long. [root@xen2 ~]# mkswap /dev/mapper/ecualug2 Setting up swapspace version 1, size = 1167982 kB [root@xen2 ~]# kpartx -d /dev/dsk/ecualug
Ah s, de paso cre una swap en la segunda particin. y listo, ahora s, arranca la mquina que te debe funcionar si respetastes todos los pasos. Te resumo: El redimensionamiento se puede dar en particiones que queden al final del disco. De forma tal que se pueda extender el disco (lvextend) y despus borrar esa ultima particin y crearla del nuevo valor pero siempre partiendo del mismo cilindro.No se te ocurra redimensionar una particin partiendo desde un cilindro diferente al que tena antes!!!! Esto es lo primordial. En mi caso la particin a redimensionar estaba delante de otra (swap), pero como la swap se puede borrar y crear de nuevo, lo que hice fue precisamente esto, la borr, de forma tal que me qued con la particin a redimensionar al final (pues quedaba slo una). Despus que la redimension proced a crear la swap nuevamente al final. Si quieres que te ayude redimensionando particiones, con sumo gu$to...
00:16:3e:XX:YY:ZZ
Manejamos decenas de mquinas virtuales diariamente en nuestro negocio y ya la "generacin cerebral pseudoaleatoria de numeros" me estaba fallando, as que me dije: bueno, por qu a nadie se le ha ocurrido lo que a m, en crear un script para generar aleatoriamente nmeros? Cre un tremendo script, slo para darme cuenta que alguien ya lo haba hecho! (eso pasa por NO leer la documentacin). Disculpen, le encontr en un doc de RedHat, pero para que no se olvide aqu le dejo puesto:
vi /usr/sbin/macgen.py
pongo:
#! /usr/bin/python # macgen.py script generates a MAC address for Xen guests # import random mac = [ 0x00, 0x16, 0x3e, random.randint(0x00, 0x7f), random.randint(0x00, 0xff), random.randint(0x00, 0xff) ] print ':'.join(map(lambda x: "%02x" % x, mac))
Despus le das derecho de ejecucin : chmod +x /usr/sbin/macgen.py y ya puedes invocarlo cuantas veces quieras, mira:
[root@xen01 ~]# macgen.py 00:16:3e:4e:5c:0a [root@xen01 ~]# macgen.py 00:16:3e:34:3c:01 [root@xen01 ~]# macgen.py 00:16:3e:50:ec:04 [root@xen01 ~]# macgen.py 00:16:3e:04:e8:d9
La MAC es un protocolo de capa 2 por lo que slo funciona en redes fsicas, no atraviesa ruteadores ni nada por el estilo, por lo que el nico requerimiento es que este nmero no coincida para mquinas que estn presentes en la misma red.
cp /etc/xen/scripts/network-bridge /etc/xen/scripts/network-bridge.xen
3- vi /etc/xen/xend-config.sxp y comentar:
#(network-script network-bridge)
(network-script network-xen-multi-bridge)
quedara as:
vi /etc/xen/scripts/network-xen-multi-bridge
Que contenga lo siguiente:
#!/bin/sh # network-xen-multi-bridge # Exit if anything goes wrong. set -e # First arg is the operation. OP=$1 shift script=/etc/xen/scripts/network-bridge.xen case ${OP} in start) $script start vifnum=1 bridge=xenbr1 netdev=eth1 $script start vifnum=0 bridge=xenbr0 netdev=eth0 ;; stop) $script stop vifnum=1 bridge=xenbr1 netdev=eth1 $script stop vifnum=0 bridge=xenbr0 netdev=eth0 ;; status) $script status vifnum=1 bridge=xenbr1 netdev=eth1 $script status vifnum=0 bridge=xenbr0 netdev=eth0 ;; *) echo 'Unknown command: ' ${OP} echo 'Valid commands are: start, stop, status' exit 1 esac
A este script le doy derechos de ejecucin:
chmod +x /etc/xen/scripts/network-xen-multi-bridge
Y listo. Reinicio el xend:
ifconfig
vers algo as:
xenbr0 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:801 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:116109 (113.3 KiB) TX bytes:0 (0.0 b) xenbr1 Link encap:Ethernet HWaddr FE:FF:FF:FF:FF:FF UP BROADCAST RUNNING NOARP MTU:1500 Metric:1 RX packets:61236 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:4675108 (4.4 MiB) TX bytes:0 (0.0 b)
ves? xenbr0 y xenbr1 Configuracin de las mquinas virtuales para usar ambas tarjetas Ahora, las mquinas virtuales que configures, vendrn configuradas para usar la primera red, si haces por ejemplo un cat /etc/xen/cos01 (pensando que as se llame tu mquina virtual) vers lo siguiente:
. vif = [ "mac=00:16:36:62:9d:9b,bridge=xenbr0" ] .
Si no viene bridge=xenbr0 eso es porque es por defecto, no te preocupes. Si quieres usar ambos switches (tarjetas de red) simplemente modificas esta linea y la dejas as:
. vif = [
"mac=00:16:36:62:9d:9b,bridge=xenbr0","mac=00:16:36:6e:93:9b,bridge=xenbr 1" ] .
Lo que estoy indicando es lo siguiente: eth0 tiene de MAC 00:16:36:62:9d:9b y est conectada al switch virtual llamado xenbr0 (a la eth0) eth1 tiene de MAC 00:16:36:6e:93:9b y est conectada al switch virtual llamado xenbr1 (a la eth1) Apagas y enciendes la mquina virtual. Y listo,ahi tienes un equipo domU conectado a ambos switches, a ambas redes. Al arrancar por primera vez la mquina virtual, eth1 estar configurada para usar dhcp, te tocar dentro de la mquina virtual configurar eth1 para no usar dhcp si es que en la red donde est eth1 no hay servidor de dhcps. Eso es normal como siempre se hace.
VLANS en xen
Todo se desarrollar en principio en /etc/sysconfig/network-scripts/ Por ejemplo si quiero crear una vlan llamada 9 debo crear un archivo para mi bridge llamado ifcfg-xenbr9 que ser el bridge (switch) que se relacionar con la vlan9 El contenido de este archivo dir:
Por supuesto si tu interfaz se llama eth0 y no bond0, ajusta los valores. Al final, en el archivo de configuracin de la mquina virtual ajusto vif:
vif = [ "ip=x.y.z.w,bridge=xenbr9"]
fjate que dice: bridge=xenbr9 de esta forma usar la mquina virtual el bridge9 que es el perteneciente a la vlan9 reinicio una vez el xend:
y listo, ya puedo arrancar mi mquina en la vlan9 Antes de que preguntes, ten en cuenta una cosa, en el 100% de las ocasiones esto no funciona porque la VLAN no est bien creada por el administrador de la red, verifica una y mil veces que la vlan funcione antes de preguntar.
kpartx -a /dev/dsk/backup
Fijate, estoy usando el snapshot, no se te ocurra usar el LV de la maquina que est viva. Usa el del snapshot que recin creastes Al usar kpartx se crea un dispositivo en /dev/mapper por cada particin dentro del LVM, se veran como
/dev/mapper/backupp1 /dev/mapper/backupp2 .
. .
p1, p2 (particin 1, particin2) Podra entonces montar la o las particiones que tienen datos (en mi ejemplo pensar que es slo una y la otra es swap). Swap no necesita ser respaldada