RAID y LVM. Sistemas de almacenamiento
Vamos a crear un raid 1, también llamado espejo, con dos discos, que nos proporcione redundancia y mayor velocidad de lectura y escritura. Sobre el raid crearemos un sistema LVM, que nos permitirá la posibilidad de redimensionar los volúmenes y realizar capturas de estado, añadiendo seguridad a nuestro sistema de almacenamiento, y facilitando su administración.
Este procedimiento lo podemos implementar directamente sobre el hardware y después instalar el sistema operativo. En este caso añadiremos a una máquina dos discos y crearemos un raid 1 con ellos. Sobre este raid crearemos un volumen lógico (LVM), haremos las particiones, las formatearemos y las montaremos en nuestro sistema de ficheros.
Sumario
- Consideraciones previas
- Definición de raid
- Definición de LVM
- Creación de un RAID 1
- Creación de LVM
- Formateo de las particiones (Volúmenes lógicos)
- Montaje de los sistemas de ficheros
Consideraciones previas
Vamos a ver que es un raid y que es LVM, ya que nos ofrece diferentes alternativas.
Definición de raid
En informática, el acrónimo RAID (del inglés Redundant Array of Independent Disks, «conjunto redundante de discos independientes») hace referencia a un sistema de almacenamiento que usa múltiples discos duros entre los que distribuye o replican los datos.
Dependiendo de su configuración (a la que suele llamarse «nivel»), los beneficios de un RAID respecto a un único disco son uno o varios de los siguientes: mayor integridad, mayor tolerancia a fallos, mayor throughput (rendimiento) y mayor capacidad.
Puedes encontrar algo más de información sobre RAid en este enlace, donde se habla sobre la «reconstrucción de datos en discos duros».
Con un RAID 1 creamos una copia exacta (o espejo) de un conjunto de datos en dos o más discos. Esto resulta una ventaja muy útil cuando el rendimiento en lectura y escritura, y la seguridad, son más importantes que la capacidad, ya que perdemos la mitad del espacio de almacenamiento.
Tenemos que tener claro que un conjunto RAID 1 sólo puede ser tan grande como el más pequeño de sus discos. Es decir, al crear un espejo de los discos, solo dispondremos del espacio que ofrezca el más pequeño de ellos. Un RAID 1 clásico consiste en dos discos en espejo, lo que incrementa exponencialmente la fiabilidad respecto a un solo disco; es decir, la probabilidad de fallo del conjunto es igual al producto de las probabilidades de fallo de cada uno de los discos (pues para que el conjunto falle es necesario que lo hagan todos sus discos).
Tenemos dos opciones para la creación del raid. Hacerlo por hardware o por software.
Hardware
El manejo de los discos es realizado por el hardware del equipo, de manera que al sistema operativo se le ofrece un único disco, pudiendo ser en realidad cualquier tipo de RAID manejado por el hardware del equipo. Esta configuración la realizaremos directamente desde el BIOS, si el firmware de la motherboard cuenta con los drivers necesarios para poder manejar la controladora RAID por hardware. Es decir, si en un servidor contamos con tres discos y creamos un RAID5 por hardware, e instalamos un sistema operativo capaz de manejar la controladora de RAID, este verá un único disco duro que podremos particionar, formatear y utilizar como creamos oportuno, contando siempre con la seguridad y el rendimiento que nos ofrece el RAID.
Software
En un RAID creado por software, es el propio sistema operativo el que se encarga de la gestión del RAID. Tiene la ventaja de que podemos realizar el RAID con particiones en lugar de discos completos, y que no necesitaremos una motherboard con drivers específicos para el controlador hardware. Pero tiene el inconveniente de que consumirá recursos del sistema operativo para gestionar el RAID.
Definición de LVM
LVM (Logical Volume Manager) es una implementación de un gestor de volúmenes lógicos para el núcleo Linux, se utiliza para gestionar el espacio de almacenamiento. LVM establece una capa lógica entre el sistema de ficheros y las particiones del almacenamiento de datos utilizado. Esto le permite crear un sistema de ficheros que abarque varias particiones y/o discos. De este modo, por ejemplo, se puede combinar el espacio de almacenamiento de varias particiones o soportes de datos.
Este sistema aporta más ventajas a la implementación ya que podemos crear, ampliar o reducir los volúmenes lógicos (LV), sobre la marcha, sin necesidad de formatear los soportes de almacenamiento, tendremos los datos distribuidos por varios soportes, aumentando el rendimiento del sistema y es posible la realización de snapshots. Puedes ver como se implementa en este enlace a «lvm que es como se instala y gestiona»
Creación de un RAID 1
Vamos a añadir dos discos de 5 Gb a una máquina y configuraremos un RAID 1 con ellos por software. Para ello tenemos que crear dos particiones del mismo tamaño (requisito de RAID-1), ya que se va a realizar un espejo entre el contenido de ambas. De esta manera conseguiremos mayor seguridad en los datos en caso de que uno de los discos falle, y duplicar la velocidad de lectura del disco.
Vemos los disco instalados con el comando «lsblk»
Comenzamos. En primer lugar tenemos que crear las particiones en nuestros discos. Para ello utilizamos el comando «fdisk», con los dos discos. Una vez que nos encontremos en la tabla de particiones crearemos una única partición con todo el espacio que tengamos del tipo «LINUX RAID AUTODETECT», después repetimos el proceso para el segundo disco.
Si no tuviésemos instalado el paquete «mdadm» lo instalamos
En Ubuntu/Debian
apt-get install mdadm
Red Hat y otras distribuciones que usan el gestor yum
yum -y install mdadm
Para crear el RAID utilizamos el comando «mdadm» (Multiple Device Administrator) con la siguiente sintaxis:
mdadm –-create /dev/md0 –-level=1 –-raid-devices=2 /dev/sd[lasletrasasignadas] sudo mdadm –-create /dev/md0 –-level=1 –-raid-devices=2 /dev/sd[bc]
Si lo hiciésemos con particiones, en vez de con discos, deberíamos añadir el número de partición al final del comando. Nos puede dar un error «mdadm: you haven’t given enough devices (real or missing) to create this array» por no tener las particiones hechas.
Así creamos un RAID 1 llamado rd0 (/dev/md0) que contiene las particiones de los dos discos. Podemos ver el estado del raid ejecutando el comando mdadm con los siguientes parámetros
sudo mdadm --misc --detail /dev/md0
Creación de LVM
Una vez creado el raid, podríamos instalar el sistema directamente en el, pero por las ventajas que ofrecen los volúmenes lógicos como hemos visto antes, posibilidad de realizar capturas de estado, y redimensionar volúmenes, creamos un volumen lógico sobre el RAID1 para realizar la instalación.
De nuevo, si no tenemos instalado el paquete lvm2, lo tendremos que instalar.
En Ubuntu/Debian
sudo apt-get install lvm2
Red Hat y otras distribuciones que usan el gestor yum
yum -y install lvm2
Y vamos con la configuración. Añadimos el volumen físico.
sudo pvcreate /dev/md0
Y lo comprobamos con
sudo pvdisplay
A continuación, tenemos que crear un volumen de grupo al que vamos a llamar «sharefiles»
sudo vgcreate sharefiles /dev/md0
y lo comprobamos con «vgdisplay»
Ahora que tenemos el volumen de grupo, creamos 3 volúmenes lógicos de 1 Gb cada uno, a los que nombraremos como «public», «private» y «shared».
sudo lvcreate --name public --size 1Gb sharefiles sudo lvcreate --name private --size 1Gb sharefiles sudo lvcreate --name shared --size 1Gb sharefiles
Lo comprobamos
sudo lvdisplay
Formateo de las particiones (Volúmenes lógicos)
Les damos formato a las particiones, con ext4, con el comando «mkfs».
mkfs.ext4 /dev/sharefiles/public mkfs.ext4 /dev/sharefiles/private mkfs.ext4 /dev/sharefiles/shared
Montaje de los sistemas de ficheros
Para tener las particiones creadas montadas en el sistema de forma permanente en los directorios que queramos, tenemos que proceder de la siguiente manera. Primero creamos los directorios donde serán montadas. En nuestro caso las montaremos en los directorios «Publico», «Privado» y «Compartido». Los creamos y comprobamos que existen
mkdir ~/Publico ~/Privado ~/Compartido cd ~/ ls -l
Para hacer un montaje permanente tenemos que editar el fichero «fstab» y añadir los puntos de montaje. Tienes más información de la sintaxis de este fichero en el artículo «Cambiar la ubicación del directorio home a otro disco».
sudo nano /etc/fstab
Y añadimos las lineas
/dev/sharefiles/public /home/Publico ext4 defaults 0 2 /dev/sharefiles/private /home/Privado ext4 defaults 0 2 /dev/sharefiles/shared /home/Compartido ext4 defaults 0 2
Y con esto hemos terminado nuestra implementación, ganando en seguridad y velocidad de lectura y escritura de datos.
Si tienes algún comentario que hacer sobre este artículo, al pie del post tienes un formulario para hacerlo.
Si quieres contactar conmigo por cualquier otro asunto relacionado con el sitio, en la página de contacto, tienes un formulario más adecuado.
Y para suscribirte y recibir las novedades publicadas, tienes un enlace en el pie de la página o desde aquí mismo.
Qué fácil lo expones!!!
Como siempre, directo, sencillo. Muy didáctico.
Gracias Alfonso, por la visita y el comentario.