Cuando elegí y cree las particiones en mi disco hace ya cosa de 3 años, era un principiante linuxero que utilizaba Windows y Linux a partes iguales. En la actualidad ya no es así y aunque sigo teniendo Windows instalado, lo uso una vez cada varios meses. Sin embargo, en todo este tiempo no he encontrado las ganas, ni el tiempo para reorganizar un poco mi disco, ya que me daba una pereza tremenda.
Esta es una captura de Gparted de mi único disco en el portátil. En azul la partición primaria de Windows con marca de arranque, en negro la partición de Nexenta OpenSolaris y la extendida es Linux Ubuntu 7.04, sí ya sé que está Gutsy pero me temo que mi RAM me va a obligar a congelarme en Feisty.

Como no me bajo demasiadas cosas y tiro mucho de mi disco externo para no saturar el del portátil, he vivido bastante cómodo a pesar de lo que pueda parecer.
Desde el último Viernes Técnico me quedé con ganas de Probar la Versión Express Developer de Solaris en mi portátil, para poder jugar y seguir aprendiendo zonas, ZFS, DTrace… y tantos otros. Así que ya no me interesa conservar Nexenta (bien podría probar la última versión Core Platform 1, queda pendiente) y quiero utilizar ese espacio para guardar cosas desde Linux.
Aquí como siempre el número de posibilidades es tremendo, pero yo voy a optar por una solución que algunos calificarán de técnica, pero que es cómoda, flexible y no me impedirá escalar en el futuro, LVM2.
Aunque no es mi intención explicar y hacer un tutorial de LVM, sino más bien un ejemplo práctico, procuraré que se entienda. Al final del artículo dejaré algunas referencias para los que quieran dominar LVM, algo obligatorio para todo administrador de sistemas.
LVM son las siglas de Logical Volume Manager. En su página en español de la wikipedia podremos informarnos sobre esta tecnología. Se podría decir que LVM es el ZFS de Linux, aunque las comparaciones son odiosas y realmente no tienen nada que ver. Ahora alguno dirá que es ZFS, pues eso ya es harina de otro costal amigo. Con LVM podremos crear un “pool” o conjunto de particiones que se administran como una sola. Consiste en una capa de abstracción que aporta ventajas como sencillez de administración, escalabilidad de volúmenes, instantáneas o snapshots, redimensionado seguro…
Primero borraré la partición de Nexenta con Gparted (para evitar complicar demasiado las cosas con la consola). La marco para borrar.

Después en el espacio vacío creo una partición sin formato. Doy a nueva partición:

En el diálogo que se abre marco “Sistemas de Archivos” >> “sin formatear”:

Ahora tengo que reinstalar GRUB en el MBR, ya que Nexenta había tomado posesión de este espacio.
A continuación instalo lvm2:
Al ejecutar pvcreate me llevo la primera sorpresa, resulta que no encuentra el comando:
La solución al problema viene muy bien explicada en este foro. Ejecuto:
Ahora ya puedo empezar a definir mis volúmenes físicos. Todos los comandos de LVM disponen de una ayuda contextual muy buena y clara. Para ello basta con ejecutarlos con la opción
"--help"
.
Hago un cfdisk sobre mi disco para ver qué partición es la que me ha creado Gparted, no puedo evitar usar la consola, qué le vamos a hacer.
Ahora ya sé que es la partición /dev/sda2, así que la añado a volúmenes físicos:
Compruebo resultados:
— Physical volume —
PV Name /dev/sda2
VG Name almacen
PV Size 9,99 GB / not usable 0
Allocatable yes
PE Size (KByte) 4096
Total PE 2557
Free PE 2557
Allocated PE 0
PV UUID gOGspm-rHfZ-ZoyW-QcH2-gqCD-8bN6-JXW4BX
Creo el grupo de volúmenes lógicos almacen:
Miro sus características:
— Volume group —
VG Name almacen
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 9,99 GB
PE Size 4,00 MB
Total PE 2557
Alloc PE / Size 0 / 0
Free PE / Size 2557 / 9,99 GB
VG UUID wuF2Aq-YV6p-Wcax-MTtB-wja1-wFIW-ggxTRs
Si hicieramos un lvcreate ahora, nos daría el siguiente error:
Is device-mapper driver missing from kernel?
Failure to communicate with kernel device-mapper driver.
/proc/misc: No entry for device-mapper found
Is device-mapper driver missing from kernel?
Failure to communicate with kernel device-mapper driver.
Incompatible libdevmapper 1.02.08 (2006-07-17)(compat) and kernel driver
striped: Required device-mapper target(s) not detected in your kernel
lvcreate: Create a logical volume
Esto se debe a que el kernel de Ubuntu que trae soporte para LVM2 no tiene el módulo cargado. En teoría al reiniciarlo lo detectaría y lo añadiría. Pero lo vamos a hacer a mano. Cargo el módulo y lo añado al fichero “/etc/modules” para que Ubuntu lo cargue con el sistema automáticamente:
echo "dm-mod" >> /etc/modules
Ahora sí que creamos el volumen lógico descargas, de 2000 extents por no ocupar todo el espacio, recuerda que se puede redimensionar en cualquier momento:
Damos formato al volumen lógico, yo he elegido ext3:
mke2fs 1.40-WIP (14-Nov-2006)
Etiqueta del sistema de ficheros=
Tipo de SO: Linux
Tamaño del bloque=4096 (bitácora=2)
Tamaño del fragmento=4096 (bitácora=2)
1024128 nodos i, 2048000 bloques
102400 bloques (5.00%) reservados para el súper usuario
Primer bloque de datos=0
Número máximo de bloques en el sistema de archivos=2097152000
63 bloque de grupos
32768 bloques por grupo, 32768 fragmentos por grupo
16256 nodos i por grupo
Respaldo del súper bloque guardado en los bloques:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
Mientras se escribían las tablas de nodos i: terminado
Creando el fichero de transacciones (32768 bloques): hecho
Escribiendo superbloques y la información contable del sistema de ficheros: hecho
Este sistema de ficheros se revisará automáticamente cada 28 meses o
180 dias, lo que suceda primero. Utilice tune2fs -c o -i para cambiarlo.
Edito el /etc/fstab sabiendo que los dispositivos lvm se crean en /dev/nombre-grupo-volúmenes/nombre-volumen-lógico en /dev/mapper con links simbólicos. Añado al fstab lo siguiente:
/dev/almacen/descargas /media/descargas ext3 defaults 0 0
Ahora creo el directorio donde se va a montar el volumen y lo monto:
sudo mount -a
Si vamos al directorio:
El comando “ls” debería mostrarnos el directorio “lost+found”. Este directorio yo suelo borrarlo. Ahora ya podré guarda mis descargas en esta “partición” y estar mucho menos apretado de espacio. En cualquier momento podemos añadir otras particiones que no tiene porque estar en el mismo disco o contiguas, bien puede ser un hub con 4 pendrives.
CONCLUSIÓN
LVM es realmente útil y vale la pena conocerlo. Para comprenderlo conviene tener los conceptos claros: particionado, herramientas disponibles, sistemas de ficheros… Es probable que exista alguna interfaz gráfica, sin embargo no por ello resultará más fácil crear un LVM y administrarlo sin conocer los entresijos internos.
Lo explicado es solo la punta del IceBerg, se utiliza para muchas cosas y es algo que todo administrador de sistemas que se precie debe manejar. Es el pan nuestro de cada día en mi trabajo sin ir más lejos.
BIBLIOGRAFÍA LVM
Todo sobre las particiones por Fent Linux
LVM HOWTO
A Beginner’s Guide to LVM HowtoForge
Managing disk space with LVM LinuxDevCenter



Josekont Comenta:
March 15th, 2008 a las 9:47 pm
Muy interesante, yo jamas habia escuchado de esta aplicacion. Precisamente en este momento ando buscando como solucionar un problema que tengo en el grub (bueno, creo que no tiene mucho que ver este post con mis busqueda jaja!) ya que con ningun metodo he logrado arrancar ubuntu.
Saludos !!
anaspeople Comenta:
March 15th, 2008 a las 11:05 pm
Muy buen tutorial! Me preguntaba si es posible utilizar LVM para crear un disco duro virtual montando carpetas/discos compartidos en red de otros ordenadores. Si no se puede, conoces alguna forma de crear ese “cluster” de almacenamiento? Gracias
Miguel Comenta:
March 16th, 2008 a las 12:02 pm
Para Josekont:
LVM es realmente práctico y debería ser más conocido, pero asusta tanto al principiante que no le suele dedicar tiempo y se queda más como un tema de sysadmins. Tu problema con el GRUB, si me lo comentas trato de echarte una mano que soy perro viejo con estos temas ya.
Para anaspeople:
Es muy importante que tengas claro que lo que quieres hacer es exportar discos y no sistemas de ficheros. Así que aquí por ejemplo NFS no te sirve. Lo que quieres hacer es una especie de SAN con un sistema de ficheros de clustering o agrupación.
Si esos volúmenes los quieres exportar a varios ordenadores de forma que la escritura concurrente sea segura y no corrompa volúmenes, tendrías que utilizar algún hack como dispositivos de loopback sobre directorios exportados por NFS, o bien sistemas de ficheros de cluster (que son bien complejos de instalar) como el Global File System de Redhat.
El caso fácil, si no necesitas concurrencia, podrías usar una configuración clásica como es GNBD + LVM o GNBD + RAID0. Estas tecnologías se utilizan mucho en empresas con sistemas en red, o para simular SAN baratos o cabinas de disco con bajo presupuesto.
Hay más opciones. AoE, iSCSI + ZFS. Pero yo me quedaría con las que te he dicho. ¡Suerte!
Saludos
juan Comenta:
March 25th, 2008 a las 1:36 am
Hola tengo una pregunta tengo 2 discos duros uno de 40GB (sda)donde tengo instalado linux distro fedora 8 y otro que acabo de instalar de 250GB (sdb) lo que hago es clonar el disco sda al disco sdb como? pues con el comando “dd” todo muy bien pero que pasa bueno que de los 250GB solo se ocupan los 40GB y quedan sabrando un poco mas de 190GB tengo como ves 2 particiones en sda1 esta el /boot este solo es de 30MB y el otro es sda2 donde esta el /root pero esta particion esta en LVM (8e) ahora biene la pregunta ¿Como le hago para redimencionar esta particion? acordante que LVM agrupa 3 LogVol00 —> donde esta el /root y LogVol01 ——> donde esta la swap yo lo que quiero es mandar los 192GB al VolGroup00 para que me quede en +200GB y asi ocupar todo el espacio del disco si tienes una solucion o sugerencia te los agradeceria mucho
gracias
juan
Miguel Comenta:
March 25th, 2008 a las 10:10 am
Hola Juan:
Entiendo tu problema. Lo que tienes que hacer es crear una partición en el sdb con el espacio que te quede restante. Es importante que sea una partición sin formato. Puedes hacerla con gparted como explico yo o con el programa de consola que te guste.
Luego esa partición la añade al grupo de volúmenes físicos. Para eso usas pvcreate sobre la partición. Luego añades ese volumen físico al grupo de volúmenes con el comando vgextend (vgextend: Add physical volumes to a volume group).
Ahora verás como al hacer vgdisplay te muestra más espacio libre para poder crecer. A partir de ahí podrás hacer un lvresize de tu volumen lógico.
Espero que lo hayas entendido, mírate las opciones de cada comando.
Un saludo
juan Comenta:
March 26th, 2008 a las 3:51 pm
Gracias Miguel
entendi perfectamente y ya lo hice y me funciono a la perfeccion nuevamente gracias
att
juan
Miguel Comenta:
March 26th, 2008 a las 7:04 pm
Me alegro ¡genial!
juan Comenta:
May 10th, 2008 a las 5:23 pm
Hola Miguel
Disculpa las molestias queria preguntarte su hubiera alguna manera de que el disco de 250GB quede identico como el de 40GB solo con 2 particiones sda1 (/boot) y el sda2 (VolGroup00) ya que actualmente al hacer el redimencionado me a quedado 3. Lo que pasa es que voy a comprar otro disco esta vez de 500GB y voy hacer lo mismo pero estaba pensando que ahora serian 4 particones sda1 (/boot), sda2 (VolGroup00), sda3 (nada vacia), y sda4 (nada vacia).
Me he explicado bien.
Como hago para luego de redimencinar las particiones, borrarla luego para que con fdisk -l solo me queden 2 particones como era orignalmente el disco de 40GB.Si tienes alguna idea o sugerencias te lo agradecere mucho.
Gracias nuevamente y disculpa las molestias
att.
juan
Miguel Comenta:
May 10th, 2008 a las 7:56 pm
No estoy seguro de entender lo que quieres hacer, y lo he releído tres veces. Si quieres dejar sólo 2 particiones en el disco de 250 GB y en estos momentos tienes cuatro, tendrás que borrar aquellas que no te interesen. Ahora bien las particiones normales no se redimensionan a la ligera, se pueden perder datos fácilmente (Esto si no son LVM. En LVM solo puede haber problemas si empequeñecemos la partición demasiado).
El comando de redimensión de ext3 es resize2fs. Tienes aquí un fantástico manual que lo explica:
http://howtoforge.com/linux_resizing_ext3_partitions
Si no entiendes algo, o no es esto lo que querías, dímelo y cambio de explicación.
Un saludo
juan Comenta:
May 12th, 2008 a las 4:02 pm
Hola ok me voy a volver a explicar
# 1. Yo tenia el siguiente problemas el 25 de marzo. te lo pongo textual
“”"Hola tengo una pregunta tengo 2 discos duros uno de 40GB (sda)donde tengo instalado linux distro fedora 8 y otro que acabo de instalar de 250GB (sdb) lo que hago es clonar el disco sda al disco sdb como? pues con el comando “dd” todo muy bien pero que pasa bueno que de los 250GB solo se ocupan los 40GB y quedan sabrando un poco mas de 190GB tengo como ves 2 particiones en sda1 esta el /boot este solo es de 30MB y el otro es sda2 donde esta el /root pero esta particion esta en LVM (8e) ahora biene la pregunta ¿Como le hago para redimencionar esta particion? acordante que LVM agrupa 3 LogVol00 —> donde esta el /root y LogVol01 ——> donde esta la swap yo lo que quiero es mandar los 192GB al VolGroup00 para que me quede en +200GB y asi ocupar todo el espacio del disco si tienes una solucion o sugerencia te los agradeceria mucho”"”
# 2. Tu repuesta que me fue de maravilla
“”"Hola Juan:
Entiendo tu problema. Lo que tienes que hacer es crear una partición en el sdb con el espacio que te quede restante. Es importante que sea una partición sin formato. Puedes hacerla con gparted como explico yo o con el programa de consola que te guste.
Luego esa partición la añade al grupo de volúmenes físicos. Para eso usas pvcreate sobre la partición. Luego añades ese volumen físico al grupo de volúmenes con el comando vgextend (vgextend: Add physical volumes to a volume group).
Ahora verás como al hacer vgdisplay te muestra más espacio libre para poder crecer. A partir de ahí podrás hacer un lvresize de tu volumen lógico.
Espero que lo hayas entendido, mírate las opciones de cada comando.”"”
# 3 . Bueno ahora la pregunta: Cuando hice lo que me sujeriste de “”Lo que tienes que hacer es crear una partición en el sdb con el espacio que te quede restante. Es importante que sea una partición sin formato”" Lo hice con fdisk y me quedo una tercera particion, como hago para despues de redimencinarla con lvresize o creo que use lvextended y luego resize2fs y me que muy bien Pero, Pero hay viene el pero
fdisk -l
Disposit. Inicio Comienzo Fin Bloques Id Sistema
/dev/sda1 * 1 25 200781 83 Linux
/dev/sda2 26 4865 38877300 8e Linux LVM
/dev/sda3 4866 30401 205117920 0 Vacía
Ahora quiero comprar un disco de 500GB voy a hacer lo mismo que el # 1, clonar el disco de 250GB y hacer los mismo lvresize pero esta ves tambien tendre que crear otra particion sin formato para poder crecer el VolGroup/LogVol00 mi /root, Ahora si viene la pregunta ¿Como le hago una vez que haya crecido el /root borrar esos 2 particiones para que me quede solo el /boot (sda1) y /root (sda2) como era original del disco de 40GB leer # 1. del 25 de marzo mas arriba,
Bueno espero haberme explicado esta vez con mas a detalle. Si no entiendes porfa lee los post mios arriba y talvez se te aclare mas el asunto jejeje xD
gracias y disculpa las molestias
att
Juan
Miguel Comenta:
June 6th, 2008 a las 5:12 pm
Hola Juan, pues te he leído varias veces y aún no tengo del todo claro lo que quieres hacer. Las particiones las puedes borrar si te sobran y si tienes espacio sin utilizar puedes crear otras y añadirlas al grupo de volúmenes físicos.
Si quieres quitar el volumen que creaste para hacer crecer /root de:
/dev/sda2 26 4865 38877300 8e Linux LVM
Tienes que utilizar el comando pvremove, que ahora mismo no sé que consecuencias puede tener. Luego te creas otra partición del tamaño que necesites y lo añades al grupo LVM como antes.
En fin, si quieres enviarme más datos, me mandas un mail y a ver si nos aclaramos.
Un saludo