¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. LINUX
  3. Particionamiento avanzado: RAID, LVM y BTRFS
Extrait - LINUX Dominar la administración del sistema (5ª edición)
Extractos del libro
LINUX Dominar la administración del sistema (5ª edición)
1 opinión
Volver a la página de compra del libro

Particionamiento avanzado: RAID, LVM y BTRFS

Particionamiento avanzado RAID por software

1. Definiciones

El RAID (Redundant Array of Independent Disks) ha sido definido por la Universidad de Berkeley en 1987 con el doble objetivo de reducir los costes y aumentar la fiabilidad del almacenamiento de datos. El objetivo es compaginar varios pequeños discos físicos independientes en una matriz (array: tabla, conjunto, fila, matriz) de discos cuya capacidad supera la del SLED (Single Large Expensive Drive). Hoy en día, la palabra Independent ha remplazado a Inexpensive. Una matriz aparece como una unidad lógica de almacenamiento único.

El MTBF (Mean Time Between Failure - intervalo entre fallos) del conjunto es igual al MTBF de un disco individual dividido por el número de discos en el conjunto y por lo tanto, teóricamente, una solución RAID puede no ser la adecuada en sistemas críticos. Afortunadamente, un sistema RAID es tolerante a los fallos gracias a que almacena de manera redundante su información según varios métodos:

  • RAID-0, llamado stripe mode: al menos dos discos forman un único volumen. En principio, los dos discos tienen el mismo tamaño. Se fraccionará y efectuará cada operación de lectura/escritura en cada uno de los discos. Por ejemplo, se escribirán 4 KB en el disco 0, 4 KB en el disco 1, 4 KB en el disco 2, luego 4 KB en el disco 0, etc.

    Así, se aumentan las prestaciones, ya que se efectúan en paralelo las operaciones de lectura y escritura sobre los discos. Si N es el número de discos y P la velocidad de transferencia, la velocidad de transferencia del volumen RAID es, en principio, próxima a N*P mbps. El RAID-0 no tiene ninguna redundancia. En caso de fallo de uno de los discos, es probable que se pierda el conjunto de datos.

  • RAID-1, llamado mirroring: primer modo redundante. Se puede utilizar a partir de dos discos o más con posibles discos de emergencia (Spare Disk). Se duplica cada información escrita en un disco sobre los demás. Si N-1 discos del RAID caen, los datos siguen intactos. Si hay un disco de emergencia, en caso de fallo, se reconstruye automáticamente y se sustituye el disco que falla. Las prestaciones en escritura pueden ser malas: escritura en N discos al mismo tiempo, con el riesgo de saturar el controlador de disco y el bus. Los discos deben estar preferentemente en dos controladores...

Introducción al LVM

1. Principio

El Logical Volume Manager es un sistema de gestión muy perfeccionado de los soportes de almacenamiento. El objetivo es superar, incluso transcender, la gestión física de los discos y su organización lógica básica (las particiones) para extender la capacidad global de los soportes, usando una gestión completamente lógica de ella.

Un LVM permite, del mismo modo que el RAID 0 por ejemplo, crear espacios de datos lógicos en varios discos. Permite también hacer mirroring, como el RAID 1. Pero la comparación no va más allá. El RAID se limita a crear una «partición» en un espacio de almacenamiento definido por el propio RAID (por ejemplo, una partición de 100 GB en un RAID 0 de dos discos de 50 GB).

El LVM agrupa discos físicos o cualquier otro soporte de almacenamiento denominado físico (disco, hardware RAID, software RAID, soporte de almacenamiento procedente de un SAN), que llama a volúmenes físicos PV (Physical Volume) en un grupo de volúmenes VG (Volume Group). El LVM ve el grupo VG como una especie de metadisco en el cual va a crear volúmenes lógicos LV (Logical Volume) a voluntad.

  • Volumen físico PV: un soporte físico de almacenamiento de datos: disco duro, por ejemplo.

  • Grupo de volúmenes VG: una agrupación lógica de 1 a n VG.

  • Volumen lógico LV: un recorte lógico en el interior de un VG.

Se ve el volumen lógico como una partición y se puede utilizar como tal. Puede contener datos; basta con crear un sistema de archivos ordinario (ext4, por ejemplo) y montarlo de manera totalmente clásica.

images/chap10_04.png

Al contrario del Software RAID 0, donde la partición de datos debe ocupar todo el espacio, se pueden crear tantos volúmenes lógicos de cualquier tamaño como se desee. Pero va mucho más allá.

El LVM es dinámico. Se pueden añadir y suprimir volúmenes físicos de un grupo de volúmenes. Al añadir volúmenes físicos, la capacidad, y por lo tanto el espacio disponible del grupo, aumenta. El nuevo espacio disponible puede permitir crear nuevos volúmenes lógicos, pero también ampliar un volumen lógico existente.

Un volumen lógico es dinámico: se puede ampliar...

Utilización extendida de BTRFS

1. Los subvolúmenes

a. Un sistema de archivos dentro de otro sistema de archivos

Los subvolúmenes son con frecuencia comparados a los volúmenes lógicos de LVM. Esto es un recurso rápido para explicar una cosa diferente. Un subvolumen BTRFS puede ser visto como un espacio de nombres (namespace) POSIX diferenciado. En la práctica, la creación de un subvolumen se parece a un subsistema de archivos dentro de un sistema de archivos: debe formar parte del sistema de archivos donde ha sido creado, pero es utilizable como si fuera un sistema de archivos totalmente aparte: puede ser montado, disponer de sus propios derechos y cuotas, y puede hacerse una instantánea (un snapshot).

Y sobre todo, al contrario que un volumen lógico, no se crea ningún dispositivo de tipo bloque. Cuando creamos un subvolumen, aparece como una simple carpeta en el entorno de su creación.

La raíz de un sistema de archivos btrfs es en sí un subvolumen, por defecto.

Los subvolumenes se manipulan con el comando btrfs subvolume.

b. Creación

Empleamos el comando btrfs subvolume create. Aquí un ejemplo de la creación de un subvolumen subvol1 y un ejemplo de su comportamiento:

# df -Th .  
S. archivos         Tipo    Tamaño    Usados     Disp   Uso%    Montado en 
/dev/sdh1           btrfs   10,0G       17M     9,5G     1%    /my_btrfs 
# btrfs subvolume create subvol1  
     Create subvolume './subvol1'  
# ls  
     subvol1   

Puede listar los subvolúmenes de esta forma:

# btrfs subvolume list /my_btrfs  
ID 257 gen 8 top level 5 path subvol1 

c. Montaje

El principal interés de los subvolúmenes es el de poder montarlos en cadena. También se pueden utilizar opciones de montaje diferentes. Algunas no se admiten y es posible que su lista evolucione según las versiones del núcleo. La opción ro (read only) no se admite hasta la versión del núcleo 3.15. Aquí vemos una demostración. En primera instancia, montamos el subvolumen en /subvol1 mnt, luego escribimos un archivo allí. Posteriormente verificamos...