Tutorial sobre sistemas de archivos con LVM en Linux El Logical Volume Manager, LVM, nos permite el uso de volúmenes lógicos en Linux. Un volumen lógico esta compuesto por particiones de disco o discos enteros. LVM nos va a permitir tener una visión de alto nivel del almacenamiento de nuestro servidor en lugar del tradicional uso de discos y particiones. Vamos a ver paso a paso como podemos implementar y administrar sistemas de archivos con LVM. 1. Discos o particiones. Para trabajar con LVM podemos hacerlo con particiones de disco o discos enteros, esto dependerá de la cantidad de discos que tengamos y de su tamaño. Siempre que se pueda es mejor trabajar con discos enteros que con particiones de disco. En el tutorial vamos a trabajar con una partición y un disco entero para ver que con LVM podemos usar sin problemas ambas soluciones El particionamiento de disco se realiza con la herramienta fdisk, para crear una partición lo haremos así. Con fdisk -l obtenemos una lista de los discos disponibles. #fdisk -l Disco /dev/sda: 10.7 GB, 10737418240 bytes 255 cabezas, 63 sectores/pista, 1305 cilindros /dev/sda1 * 1 892 7164958+ 83 Linux /dev/sda2 893 1147 2048287+ 82 Linux swap Disco /dev/sdb: 5368 MB, 5368709120 bytes /dev/sdb1 * 1 652 5237158+ 83 Linux Disco /dev/sdc: 5368 MB, 5368709120 bytes /dev/sdc1 * 1 652 5237158+ 83 Linux Disco /dev/sdd: 5368 MB, 5368709120 bytes /dev/sdd1 * 1 652 5237158+ 83 Linux Página - 1 -
El siguiente paso es crear una partición, vamos a crear una partición de 2GB en el disco /dev/sdb, ejecutamos fdisk /dev/sdb y el prompt de fdisk tecleamos la n de nuevo y seguimos los pasos del cuadro de abajo. #fdisk /dev/sdb Orden (m para obtener ayuda): n Acción de la orden e Partición extendida p Partición primaria (1-4) p Número de partición (1-4): 1 Primer cilindro (1-652, default 1): Using default value 1 Último cilindro o +tamaño o +tamañom o +tamañok (1-652, default 652): +2048M Orden (m para obtener ayuda): p Disco /dev/sdb: 5368 MB, 5368709120 bytes /dev/sdb1 1 250 2008093+ 83 Linux *Importante con q salimos sin guardar cambios, con w salimos y guardamos cambios Repetiríamos el proceso por cada partición que deseáramos crear y listo, salimos de fdisk con w para que nos guarde los cambios. Para este tutorial vamos a utilizar la partición que hemos creado de 2 GB /dev/sdb1 y un disco entero de 5GB, el /dev/sdc1. 2. Inicializar volúmenes físicos - physical volume PV. Los dispositivos que vamos a usar son /dev/sdb1 (2GB) y /dev/sdc1 (5GB) y utilizaremos el comando pvcreate para inicializarlos. Desde el prompt del sistema ejecutamos lo siguiente: #pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created #pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created Una vez creados con el comando pvdisplay podemos ver las características de los physical volumen. 3. Crear grupo de volúmenes - volume group VG. Un grupo de volúmenes es una agrupación tanto física como lógica de volúmenes físicos, como veremos más adelante cuando creemos un filesystem le asignaremos espacio de un grupo de volúmenes, si nuestro grupo de volúmenes se queda sin espacio libre con añadirle otro physical volume podremos ampliar los Página - 2 -
filesystem que se nos han quedado sin espacio, esta es una de las ventajas de LVM respecto al uso tradicional de particiones o discos de forma directa. Vamos a crear un volume group para una instalación por ejemplo de software Oracle 10g u Oracle 11g y la posterior creación de una BBDD Oracle 10g u Oracle 11g. Nuestro volume group se va a llamar vgoraclesoft y va a contener los dos physical volume que hemos creado. #vgcreate vgoraclesoft /dev/sdb1 /dev/sdc1 Volume group "vgoraclesoft" successfully created 4. Crear volúmenes lógicos - logical volume LV. Una vez que ya tenemos nuestro volumen group creado vamos a crear un logical volume que usaremos para montar un filesystem que contendrá una instalación de Oracle 10g o Oracle 11g. Nuestro primer logical volume que se llamará lvu01, tendrá 4GB, de espacio y en él montaremos posteriormente el filesystem /u01. #lvcreate L 4G -n lvu01 vgoraclesoft Logical volume "lvu01" created 5. Crear un filesystem basado en LVM. Una vez tenemos creado logical volumen vamos a crear filesystem /u01 sobre el logical volumen lvu01. #mkfs.ext3 /dev/vgoraclesoft/lvu01 Una vez tenemos el filesystem creado vamos a crear el punto de montaje. Los pasos son crear el directorio /u01 y montar el filesystem /u01. #mkdir p /u01 #mount /dev/vgoraclesoft/lvu01 /u01 Para terminar esta parte ponemos los permisos y grupo adecuados al filesystem /u01. #chown oracle:dba /u01 #chmod 755 /u01 El nuevo filesystem /u01 queda de esta manera, usamos el comando Linux/Unix df h. Página - 3 -
#df h /u01 Filesystem size used avail capacity Mounted on /dev/vgoraclesoft/lvu01 4G 0G 4G 0% /u01 6. Mantenimiento de filesystem. - Ampliación de un filesystems Lo habitual en el día día en la administración de un sistema Linux es que algún filesystem este cerca de llenarse o incluso se llegue a estar lleno por completo. Como ampliamos un filesystem? Buena pregunta, realmente lo que haremos es ampliar el logical volume correspondiente. Antes de realizar la ampliación deberíamos ver el espacio libre que nos queda en el volumne group, para ello usaremos el comando vgdisplay de siguiente manera: #vgdisplay vgoraclesoft Como todavía tenemos espacio libre vamos a añadirle por ejemplo 500MB al logical volumen lvu01. #lvresize L 500M /dev/vgoraclesoft/lvu01 Extending logical volume lvu01 to 500 MB Logical volume lv01 successfully resized Y por último refrescamos el filesystem /u01 para que tome la ampliación. #resize2fs /dev/vgoraclesoft/lvu01 resize2fs 1.40.2 (12Jul2007) Filesystem at /dev/vgoraclesoft/lvu01 is mounted on /u01; online resizing required old desc_blocks = 2, new_desc_blocks = 2 Performing an online resize of /dev/vgoraclesoft/lvu01 to 491520 (1k) blocks. The filesystem on /dev/vgoracleu01/lvu01 is now 491520 blocks long. 7. Mantenimiento de volume group. - Añadir un disco a un volume group. Si nuestro volume group se queda sin espacio libre le añadiremos una partición o un disco entero. El primer paso será preparar el phisical volumen, pvcreate, y lo añadiremos a nuestro volume group vgoraclesoft, vamos a usar el disco /dev/sdd1. Página - 4 -
#vgextend v vgoraclesoft /dev/sdd1 Checking for volume group "vgoraclesoft" Archiving volume group "vgoraclesoft" metadata (seqno 5). Adding physical volume '/dev/sdd1' to volume group 'vgoraclesoft' Volume group "vgoraclesoft" will be extended by 1 new physical volumes Creating volume group backup "/etc/lvm/backup/vgdatos" (seqno 6). Volume group "vgoraclesoft" successfully extended Página - 5 -