Escrito el 25 julio 2012 por Luis Ignacio Díaz Martínez
Tabla de contenidos
Llevo varios días montando un nuevo servicio de compartición de ficheros (Samba) conjunto a un sistema de centralización de usuarios (OpenLDAP).
Hemos realizado el cambio de un sistema físico a uno virtual, y por ello aprovechamos para reinstalar los servicios y de paso actualizarlos bien. Sencillamente, hemos realizado el cambio para aumentar y optimizar los recursos y maximizar a su vez la seguridad.
Nos topamos con un pequeño problema, queremos montar una unidad física (conectada en la máquina anfitriona) en la máquina virtual que ya tenemos en funcionamiento, el disco duro tiene que ser único para la máquina virtual, por lo tanto, esta lo tiene que visualizar como propio, y la máquina física no tiene que saber de su existencia.
Tenemos un servidor equipado con Debian y tiene instalado todo el sistema de virtualización (con XenServer).
Bien, ahora toca hacer ampliación de servicios y queremos conectar un disco duro directamente a una de nuestras máquinas virtuales.
La máquina virtual en cuestión tiene instalada una Ubuntu server 12.04.
Primo comprobaremos que unidad queremos montar en nuestra máquina virtual:
1 |
fdisk -l |
Y nos devolverá lo siguiente:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Disk /dev/sda: 500.1 GB, 500107862016 bytes 255 heads, 63 sectors/track, 60801 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0006f627 Device Boot Start End Blocks Id System /dev/sda1 * 1 59817 480474112 83 Linux /dev/sda2 59817 60802 7909377 5 Extended /dev/sda5 59817 60802 7909376 82 Linux swap / Solaris Disk /dev/sdb: 2000.4 GB, 2000398934016 bytes 255 heads, 63 sectors/track, 243201 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 4096 bytes I/O size (minimum/optimal): 4096 bytes / 4096 bytes Disk identifier: 0x00026d42 Device Boot Start End Blocks Id System /dev/sdb1 1 243201 1953512001 83 Linux Partition 1 does not start on physical sector boundary. |
El disco duro que queremos utilizar es «/dev/sdb» que contiene una partición «/dev/sdb1».
Ahora, tenemos realizaremos lo mismo en la máquina virtual para poder ver que unidades tenemos disponibles:
1 2 3 4 5 6 7 8 9 10 11 |
Disco /dev/xvda: 16.1 GB, 16106127360 bytes 255 cabezas, 63 sectores/pista, 1958 cilindros, 31457280 sectores en total Unidades = sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico / físico): 512 bytes / 512 bytes Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes Identificador del disco: 0x0006c4e8 Dispositivo Inicio Comienzo Fin Bloques Id Sistema /dev/xvda1 2048 30410751 15204352 83 Linux /dev/xvda2 30412798 31455231 521217 5 Extendida /dev/xvda5 30412800 31455231 521216 82 Linux swap / Solaris |
Vale, como podemos ver tan solo tenemos una unidad en nuestra máquina virtual.
A continuación viene lo divertido… en la máquina anfitriona (física) vamos a realizar lo siguiente:
1 |
xm block-attach servidor-virtual phy:/dev/sdb1 /dev/xvdb1 w |
Ahora explicaremos cada parámetro del comando:
Comprendiendo estos parámetros será sencillo poder asignar la unidad física a la virtual.
1 |
fdisk -l |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
Disco /dev/xvda: 16.1 GB, 16106127360 bytes 255 cabezas, 63 sectores/pista, 1958 cilindros, 31457280 sectores en total Unidades = sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico / físico): 512 bytes / 512 bytes Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes Identificador del disco: 0x0006c4e8 Dispositivo Inicio Comienzo Fin Bloques Id Sistema /dev/xvda1 2048 30410751 15204352 83 Linux /dev/xvda2 30412798 31455231 521217 5 Extendida /dev/xvda5 30412800 31455231 521216 82 Linux swap / Solaris Disco /dev/xvdb: 2000.4 GB, 2000396289024 bytes 255 cabezas, 63 sectores/pista, 243200 cilindros, 3907024002 sectores en total Unidades = sectores de 1 * 512 = 512 bytes Tamaño de sector (lógico / físico): 512 bytes / 512 bytes Tamaño E/S (mínimo/óptimo): 512 bytes / 512 bytes Identificador del disco: 0xf79d64da Dispositivo Inicio Comienzo Fin Bloques Id Sistema /dev/xvdb2 63 3907007999 1953503968+ 83 Linux |
Podemos observar que ahora tenemos un nuevo disco (xvdb), esto quiere decir que la asignación ha salido tal y como esperábamos…
A continuación dejo las referencias que he utilizado para redactar este artículo…