|
|
Como montar LVM en una máquina Debian
(34819 lectures)
Por Daniel Lombraña González
teleyinex
(http://www.sleon.org)
Creado el 28/08/2003 19:04 modificado el 29/08/2003 10:15
|
Este artículo está hecho para aquellas personas que estén hartas de
tener que formatear y reparticionar cada vez que se quedan sin espacio
en una de sus particiones de GNU/Linux. Os presento una opción LVM.
LVM nos permite agrandar y empequeñecer particiones en "caliente"
salvando las distancias, pero eso sería otro tema. Aquí solo explico
cómo hacer que unas particiones sean del tipo LVM y se puedan usar
como tal. | Pagina1/1 |
Vamos a utilizar LVM que es una herramienta muy útil sobre todo si la
usamos en servidores. Esta herramienta nos permite crear particiones que
posteriormente podremos hacer crecer o empequeñecer en caliente.
Instalación de LVM
Lo primero de todo es asegurarnos que nuestro kernel tiene soporte
para LVM, sino es así hay que compilarlo con este soporte y después desde
Debian ejecutar:
apt-get install lvm10
Eso nos instalará las herramientas necesarias para trabajar con LVM.
Qué vamos a crear
Antes de nada vamos a definir un poco e identificar que son los LVMs
y su tecnología. Tenemos los siguientes elementos:
volume group: (grupo volumen) Es el punto de abstracción
más alto en LVM.Este concepto define la unión de
varios volúmenes físicos y lógicos en una unidad administrativa.
physical group: (grupo físico) Habitualmente es un disco duro,
pero puede ser algo que parezca un disco duro (RAIDS por software)
logical volume: (volumen lógico) Es el equivalente a una partición
en un sistema que no es LVM. El volumen lógico es visto como un
dispositivo de bloque, ya que puede contener un sistema de ficheros.
physical extent: (extensión física) Cada volumen físico
está dividido en trozos de datos, eso es lo que se conoce como
extensión física. Estas extensiones tienen el mismo tamaño que las
extensiones lógicas para el grupo de volúmenes.
logical extent: (extensión lógica) Cada volumen lógico está dividido en
trozos de datos, eso es lo que se conoce como extensión lógica.
El tamaño de las extensiones es igual para todos los volúmenes
lógicos en el grupo volumen.
Veamos un ejemplo que nos ayudará a entender todo esto junto:
Supongamos que tenemos un grupo volumen que se llama VG1, este VG
tiene una extensión física de 4 MB. Dentro de este volumen
introducimos dos particiones: /dev/hda1 /dev/hdb1.
Estas particiones se convertirán en los volúmenes físicos PV1 y PV2
(se les puede llamar como queramos). los PV's se dividen en trozos
de 4 MB, porque este es el tamaño de la extensión física del grupo
volumen. Las particiones tienen distintos tamaños por lo que tenemos
99 extensiones en PV1 y 248 extensiones en PV2. Con todo esto podemos
crear un volumen lógico que puede tener un tamaño entre 1 y 347
(254 + 99) extensiones.
Cuando un volumen lógico es creado se realiza un mapping entre las extensiones lógicas
y las extensiones físicas; por ejemplo: supongamos que la extesión lógica 1 está mapeada
a la extesión física 51, entonces los datos que se escriban en los 4
primeros MB de la extensión lógica se están escribiendo realmente
en la extensión física 51.
Bien ahora ya hemos aprendido la lección, pasemos a la parte práctica :0)
Un ejemplo práctico
Tenemos un disco duro con tres particiones. Cada una de estas
particiones va a ser posteriormente el punto de montaje
para /var /usr que es donde van a tener los datos en su mayoría
los servidores. Las particiones son /dev/sdb1 y /dev/sdb2 (cada cual
tendrá sus particiones). Lo primero es crearlas o si ya las tenemos
creadas darles el tipo 8e que es el tipo LVM. Para esta tarea he
usado el cfdisk:
cfdisk /dev/sdb
Aquí creo y borro como yo quiera y elijo el tipo de partición,
como ya he dicho 8e.
Ahora entramos en la parte de la preparación de las particiones para
que LVM pueda trabajar correctamente. (Esta acción borra todos los datos
que hubiese en esas particiones o discos). El comando que vamos a usar
es pvcreate:
pvcreate /dev/sdb1
pvcreate /dev/sdb2
Os debería salir lo siguiente si todo ha ido bien:
pvcreate -- physical volume "/dev/sdbX" sucessfully created
Donde la X sería 1 o 2, o en vuestro caso el número de la partición.
Configuración de un grupo volumen
Vamos a crear un grupo volumen que se llame grupo_servidores:
vgcreate grupo_servidores /dev/sdb1 /dev/sdb2
Si todo ha ido bien obtendréis una respuesta así:
vgcreate -- INFO: using default physical extent size 4 MB
vgcreate -- INFO: maximum logical volume size is 255.99 Gigabyte
vgcreate -- doing automatic backup of volume group "grupo_servidores"
vgcreate -- volume group "grupo_servidores" successfully created and activated
Ahora que hemos generado el grupo volumen vamos a verificarlo
con el comando vgdisplay:
vgdisplay
La salida del comando si todo ha ido bien es:
--- Volume group ---
VG Name grupo_servidores
VG Access read/write
VG Status available/resizable
VG # 0
MAX LV 256
Cur LV 0
Open LV 0
MAX LV Size 255.99 GB
Max PV 256
Cur PV 2
Act PV 2
VG Size 8.46 GB
PE Size 4 MB
Total PE 2166
Alloc PE / Size 0 / 0
Free PE / Size 2166 / 8.46 GB
VG UUID qFePyg-SvH1-Q10s-i885-1ZF2-hurF-VsPCnW
Lo más importante que hay que observar son los tres primeros elementos.
También es importante que el VG Size sea aproximadame igual al tamaño
de los discos o particiones sumados. En mi caso deberían ser 9 GB, pero se
quedan en 8.46 GB. Imagino que es por información que usa en cada
una de las particiones para uso interno del LVM.
Creación del Volumen Lógico
Si hasta ahora no hemos tenido ningún problema podemos pasar a a la creación de un
volumen lógico. Podemos hacer el volumen lógico del tamaño que queramos. (Es muy
parecido a una partición que no pertenezca a un sistema LVM.) Voy a crear dos volumenes
lógicos de tamaños 8.40 / 2, es decir 4.20 GB cada uno. El comando es lvcreate. Con -L le
decimos el tamaño del volumen, y con -n le damos un nombre al volumen lógico, tenemos
que indicar por último el grupo volumen en el que queremos crearlo:
lvcreate -L4.20G -n usr grupo_servidores
lvcreate -L4.20G -n var grupo_servidores
Si estos comando van bien obtendremos algo parecido a esto:
lvcreate -- rounding size up to physical extent boundary
lvcreate -- doing automatic backup of "grupo_servidores"
lvcreate -- logical volume "/dev/grupo_servidores/usr" successfully created
Creación del Sistema de Ficheros
Ahora solo nos queda crear un sistema de ficheros en los volúmenes lógicos.
Es muy sencillo. Aquí depende del sistema de ficheros que vamos a montar,
yo en mi caso voy a usar ReiserFS, por lo que sólo hay que hacer lo siguiente:
mkfs.reiserfs /dev/grupo_servidores/usr
mkfs.reiserfs /dev/grupo_servidores/var
Nota: si no tenéis el comando mkfs.reiserfs es que os falta instalar el paquete siguiente:
apt-get install reiserfsprogs
Con esto ya tendríamos lo que queríamos.
Puntos finales
Bien ahora solo queda hacer que cada una de las particiones sea realmente /usr y /var
para ello vamos a montar primero /dev/grupo_servidores/usr y var en /mnt para copiar
en el sistema montado lo que tenemos en /usr. Veamos como hacerlo:
mount /dev/grupo_servidores/usr /mnt
cp -R /usr/* /mnt
umount /mnt
mount /dev/grupo_servidores/var /mnt
cp -R /var/* /mnt
umount /mnt
Nota: Me han comentado que mejor que usar cp es utilizar el
siguiente comando para "copiar TODO":
mount /dev/grupo_servidores/usr /mnt
cd /usr && find . -depth -print0 | afio -px -0a /mnt
umount /mnt
mount /dev/grupo_servidores/var /mnt
cd /var && find . -depth -print0 | afio -px -0a /mnt
umount /mnt
Ahora hay que añadir las entradas al fstab para que cuando se inicie el sistema se
consigan montar las particiones y así funcionar sobre LVM. El archivo fstab quedaría
así:
/dev/grupo_servidores/usr /usr reiserfs defaults 0 0
/dev/grupo_servidores/var /var reiserfs defaults 0 0
Finalmente hay que añadir al Init del sistema que active el grupo volumen para que así
pueda montar el kernel el sistema de ficheros de manera correcta. Entonces en /etc/rcS.d/
añadimos lo siguiente:
ln -s /etc/init.d/lvm S25lvm
Esto lo tenéis que hacer sólo si no tenéis hecho ya el enlace, en Debian ya debería de estar.
Nada más, ahora solo que reiniciar el sistema. Una cosa deberíais de tener una manera por
ahí para poder arrancar en caso de que esto "casque", un cd de knoppix o el rescue de Debian
ALGO.
Enlaces
Howto en Inglés de LVM
Espero que os haya servido de algo este tutorial.
Taluek |
|
|
|
|
|
Comentarios Es posible que se hayan omitido algunos comentarios considerados poco constructivos
| 1. Re: Como montar LVM en una máquina Debian (28/08/2003 21:49, #16745) Por: El cobarde anónimo |
| El evms es mejor que el LVM? |
|
2. Re: Como montar LVM en una máquina Debian (28/08/2003 23:21, #16747) Por: El cobarde anónimo |
| No es que sea mejor, es que LVM está dentro de EVMS (como plugin). Prefiero EVMS por la cantidad de cosas prácticas que tiene, como por ejemplo los snapshots, que son ideales para hacer copias de seguridad "en caliente" :D |
|
3. Re: Como montar LVM en una máquina Debian (29/08/2003 01:56, #16755) Por: Alexdum |
No hace falta evms para hacer snapshots, lvm10 los soporta tambien.
Respecto al articulo, prefiero usar una notacion:
vg01, vg02, o vgnombre1, vgnombre2... para los nombres de vgs
y lvol1, lvol2, o lvnombre1, lvnombre2 para los nombre de lvoles
(Pero es cuestion de costumbre sobre todo ;) ). |
|
|
|
|
|
5. Re: Como montar LVM en una máquina Debian (28/08/2003 23:01, #16746) Por: El cobarde anónimo |
Genial el artículo, solo me gustaría hacerte una sugerencia. Casi al final, cuando traspasas los datos de /usr y /var a los nuevos volúmenes, lo haces con un simple cp -R. Esta no es la mejor forma en el caso de que existan enlaces duros. En lugar de cp, es mejor utilizar afio de la siguente forma: cd /var && find . -depth -print0 | afio -px -0a /dev/grupo_servidores/usr Este comando lo saqué de la Guía de referencia Debian Un saludoDrager |
|
6. Re: Como montar LVM en una máquina Debian (29/08/2003 10:12, #16763) Por: Teleyinex (http://www.sleon.org) |
| Muchas gracias, tanto por el comentario como por el comando. Ahora mismo añado esa opción al artículo. |
|
7. Re: Como montar LVM en una máquina Debian (30/08/2003 13:46, #16777) Por: El cobarde anónimo |
Hey hey!! el comando de afio no es para copiar TODO. Tal y como te lo puse traspasaría solo la carpeta /var (y si te fijas la traspaso a donde no es, a /dev/grupo_servidores/usr). Te lo dejé así como ejemplo. Para este caso concreto los comandos necesarios serian estos:
# cd /var && find . -depth -print0 | afio -px -0a /dev/grupo_servidores/var
# cd /usr && find . -depth -print0 | afio -px -0a /dev/grupo_servidores/usr
Espero que ahora te haya quedao más claro. Un saludo. Drager |
|
|
|
8. Re: Como montar LVM en una máquina Debian (29/08/2003 17:08, #16765) Por: El cobarde anónimo |
| Me hubiera gustado que también hubieses incluido el uso de RAID (especificamente nivel 0) con LVM, y algún comentario si se puede realizar un sistetetema distribuido, en distintas máquinas (se podrá?), que permita redundancia, que la suma de todos los discos de las maquinas sean uno solo, etc. |
|
9. Re: Como montar LVM en una máquina Debian (09/09/2003 14:16, #17016) Por: El cobarde anónimo |
Al incluir en el articulo la sugerencia sobre el afio para hacer el copiado de directorios te has dejado una '&'
Quedaria como sigue:
...
#cd /var && find . -depth -print0 | afio -px -0a /mnt/
...
#cd /usr && find . -depth -print0 | afio -px -0a /mnt/
...
por lo demas el articulo esta muy bien :)
|
|
10. Re: Como montar LVM en una máquina Debian (09/09/2003 14:33, #17018) Por: El cobarde anónimo |
| Perdon, en el articulo esta bien, pero no es asi en la version en PDF :) |
|
|
11. Re: Como montar LVM en una máquina Debian (05/04/2004 11:39, #20530) Por: Kopernix (http://www.kopernix.com) |
Felicidades un articulo genial.
Solo un par de cosas, tendrias que quitar lo del cp que es incorrecto ya que no respeta los atrib.
Si quieres usar cp aunque no lo aconsejo usalo con -a para que los respeta... a una mala, tambien pordrias usar tar.
Aqui te adjunto otra forma de hacerlo, igual de sencilla/elegante/eficaz que con afio:
En lugar de usar afio tambien se puede usar cpio.
montamos la particion en algo asi como /mnt/var
y luego un peaso de cpio combinado con find:
find /var/ -mount -xdev | cpio -pdm /mnt
Saludos!
|
|
12. Re: Como montar LVM en una máquina Debian (28/06/2004 10:55, #22101) Por: Anónimo |
| cp -a va mas rapido, el cpio es mas c00l pero el cp da mejores resultados xD |
|
13. Re: Como montar LVM en una máquina Debian (28/06/2004 10:56, #22102) Por: Anónimo |
cp -a si que respeta los atributos, de hecho:
mount /dev/hdvacio /mnt
cp -a /bin /boot /dev /etc /lib /sbin /usr /var /mnt
mkdir /mnt/proc
mkdir /mnt/tmp
instalamos lilo... y funciona perfectamente =) |
|
14. Re: Como montar LVM en una máquina Debian (28/06/2004 13:37, #22106) Por: Kopernix (http://www.kopernix.com) |
> cp -a si que respeta los atributos, de hecho
Disculpa, yo en ningun momento he dicho que con -a no los respetara, todo lo contrario, aconsejaba usar -a ya para que se respetaran... Si lees lo que puse pese a mi error se entiende.
"Si quieres usar cp aunque no lo aconsejo usalo con -a para que los respeta"
Si puse eso es porque en el articulo solo dice cp -R y me dolio a los ojos ver eso... |
|
15. Re: Como montar LVM en una máquina Debian (29/06/2004 10:08, #22126) Por: Anónimo |
Querido amigo Kopernix, en ningún momento fue mi intención ofenderte, ni tampoco replicarte, tan sólo aclaré tu comentario ya que me pareció que dabas a entender que el "cp -a" es peor que el "cpio" o que se pueden obtener peores resultados.
Personalmente y por las pruebas que he realizado, el cp -a es el método mas rápido de copiar un sistema completo a otro disco duro, y nunca he tenido errores (con el cpio tampoco he tenido errores, pero es algo mas lento)
De nuevo mis disculpas si en algo te he ofendido, recibe un cordial saludo. |
|
|
|
|
16. Re: Como montar LVM en una máquina Debian (20/10/2004 14:39, #23879) Por: Duende |
| Me gustaria saber cual es el modulo del kernel ke hay ke cargar para poder instalar el LVM |
|
17. Re: Como montar LVM en una máquina Debian (10/05/2006 17:05, #32461) Por: Anónimo |
| Me gustaria saber como incuir Raid en la configuracion,
es decir ya que esta herrmienta es para utilizar principalmente en servidores, se suele implemetar algun tipo de proteccion ante rotura de discos en los mismos mayormente Raid1 o Raid5
¿Como es poible implemetar alguna proteccion ante alguna rotura de un disco?
Gracias
Juan Manuel |
|
18. Recuperación de LVM (23/11/2006 15:52, #36671) Por: cesar |
| Cómo se recupera un LVM? Si yo agarro y saco un disco que este como lvm y lo llevo a otro server, como haría para recuperarlo? Porqué Fedora se muere de vez en cuando? Porqué empiezo a odiar a Fedora? |
|
|
|
|
|---|
|
|
|
|
Calificacion
    Vots: 16 |
Danos tu opinion:
|
|
|
|
|
|
|