PDF de programación - Seguridad y disponibilidad: RAID por software y backup diferencial con DAR usando GNU/Linux

Imágen de pdf Seguridad y disponibilidad: RAID por software y backup diferencial con DAR usando GNU/Linux

Seguridad y disponibilidad: RAID por software y backup diferencial con DAR usando GNU/Linuxgráfica de visualizaciones

Publicado el 29 de Abril del 2018
438 visualizaciones desde el 29 de Abril del 2018
130,1 KB
19 paginas
Creado hace 17a (28/07/2006)
Seguridad y disponibilidad: RAID por software y backup diferencial

con DAR usando GNU/Linux*

Mauro Silvosa Rivera

28 de julio de 2006 (Rev. 1)

Resumen

En un servidor de producción hay que garantizar la seguridad y la disponibilidad de los datos.
Pero éstos, para variar, están sujetos a los dos principales peligros permanentes de la informática:
los fallos hardware y los usuarios. Para reducir estos riesgos debemos establecer (1) sistemas de
almacenamiento redundantes que nos eviten la pérdida de datos ante fallos hardware de discos
duros, y (2) sistemas de backup lo suficientemente potentes como para permitir recuperar datos
que los usuarios hayan modificado o eliminado por error a partir de copias anteriores. Las soluciones
hardware orientadas a resolver estos problemas (RAID por hardware y robots de cintas de backup)
son caras o muy caras. Pese a todo, con GNU/Linux dispondremos de los drivers, software y
documentación necesarios para afrontar los anteriores problemas de forma eficiente y económica.
En esta charla-taller mostraremos cómo montar un sistema RAID completo (centrándonos en los
niveles 1 y 5) por software y un sistema de backup diferencial basado en DAR.

*This work is licensed under a Creative Commons Attribution2.5 License. You can get more information at

http://creativecommons.org/licenses/by/2.5/

1

Parte I

RAID por software con GNU/Linux

1.

Instalación del sistema base

Iniciamos la instalación del sistema base a partir del Network Installation Disk de Debian1. Llegado
el momento, definimos en el primer disco las particiones que finalmente queramos usar. En este caso,
por tratarse de un ejemplo, haremos las siguientes particiones:

Partición
/dev/sda1
/dev/sda2
/dev/sda3
/dev/sda5
/dev/sda6
/dev/sda7

Punto de montaje Tamaño
/
2 GBytes
512 MBytes
swap
30 MBytes
/boot
/home
2 GBytes
1 GBytes
/tmp
/dat
2 GBytes

Tipo
MD
Formato
Primary - Linux md0
Ext3
Primary - swap md1
swap
Primary - Linux md2
Ext2
Logical - Linux
md3
ReiserFS
md4
Ext2
Logical - Linux
RaiserFS Logical - Linux
md5

Cuadro 1: Tabla de particiones definidas en el primer disco.

Como BootLoader usaremos LILO, de modo que cuando el software de instalación nos pregunte
acerca de configurar GRUB le diremos que no lo haga y que continuamos nosotros indicando el siguiente
paso. El siguiente paso será decirle que use LILO como BootLoader instalándolo en el MBR.

Una vez finalizado el proceso de instalación se nos pedirá que retiremos el CD de la unidad y
el sistema se reiniciará para arrancar el sistema operativo recién instalado. Posteriormente termina-
remos con la configuración mínima del sistema: contraseñas de root, configuración horaria, APT y
configuración de los paquetes seleccionados.

Hecho esto, tendremos un servidor con una configuración mínima de Linux.

2. Recompilación del kernel

En el servidor que estamos configurando, todas las particiones serán arrays RAID por software.
Esto quiere decir que incluso la partición /boot desde la que arranca el sistema también será un
volumen RAID. Incluso el sistema de ficheros raíz es un volumen RAID. Por todo esto, tendremos que
hacer que el kernel tenga el soporte para dispositivos MD RAID-1 compilado en el propio kernel y no
como módulos ya que de otro modo no podrá montar la partición raíz para cargarlo.

Aprovechando la recompilación del kernel podemos personalizar más el kernel para ajustarlo al
hardware del propio servidor. Es fundamental no olvidarse de los sistemas de ficheros usados en el
arranque ni de las tarjetas SATA que estemos usando para acceder a los discos de arranque. El soporte
para discos SCSI también debe estar presente.

1http://www.debian.org/CD/netinst/

2

Para seleccionar las opciones que queramos instalar (como módulos o como parte del kernel)

usamos:

$cd /usr/src/linux-source-2.6.15

$ make menuconfig

Y para compilar el kernel y los módulos hacemos:

$ make-kpkg kernel-image

$ cd /usr/src

$ dpkg -i nombre_paquete.deb

Antes de reiniciar el servidor para arrancar con el nuevo kernel es apropiado revisar la configuración
de /etc/lilo.conf para asegurarse de que tendremos la posibilidad de arrancar tanto con el kernel
nuevo como con el anterior (por si falla el nuevo). Hay que prestar especial atención a los enlaces
simbólicos /vmlinuz y /vmlinuz.old y a /initrd.img.old y comprobar que están bien definidos.

Cuando todo esté listo reiniciamos el servidor:

$reboot

Si todo ha ido bien, ahora mismo estaremos ejecutando un sistema operativo a medida de nuestro

servidor y con soporte para dispositivos MD RAID-1.

3. Creación de los arrays RAID-1

Ahora es el turno de crear los arrays RAID. Para ello seguiremos los siguientes pasos:

3.1. Copia de la estructura de particiones del primer disco a los demás

Los demás discos implicados en el volumen RAID-1 que vamos a crear deben ser de igual o mayor
capacidad que el primero y deben tener la misma estructura. Lo ideal es que sean discos iguales (incluso
en marca y modelo) sobretodo para no tener que desperdiciar espacio en el disco de mayor tamaño.
No tendría sentido que aprovechásemos ese espacio sobrante en otra partición porque los accesos a esa
nueva partición enlentecerían los accesos a las particiones que se usan para construir los volúmenes
RAID, que son nuestra prioridad.

La copia de la tabla de particiones de un disco en otro es tan sencilla como:

$ sfdisk -d /dev/sda | sfdisk /dev/sdb

$ sfdisk -d /dev/sda | sfdisk /dev/sdc

3.2. Linux RAID autodetect

Dado que queremos que el sistema arranque desde unidades MD RAID-1 tendremos que indicarle
de alguna manera que durante el arranque las busque para que pueda crear el volumen y posteriormente

3

montarlas. Esto se hace indicando en las particiones que forman parte de los arrays RAID que son
del tipo FD o lo que es lo mismo “Linux RAID Autodetect”. Usando la utilidad fdisk podremos
cambiar el tipo de cada partición. Hay que tener cuidado para no cambiar el tipo de la partición de
tipo Extended que permite definir las particiones lógicas.

Inicialmente, este cambio de tipos en las particiones de todos los discos excepto el primero, es
decir, excepto el que estamos usando actualmente, dado que el primero todavía lo necesitamos tal y
como está dado que contiene el sistema con el que actualemente estamos trabajando.

3.3. Creando los arrays RAID-1

Para poder crear los arrays tendremos que tener instaladas las herramientas mdadm. Si no las

tenemos instaladas las instalamos2:

$ apt-get install mdadm

Si ya las tenemos instaladas creamos los arrays de la siguiente manera:

$ mdadm --create /dev/md0 --verbose --level=1 --raid-devices=2

--spare-devices=1 missing /dev/sdb1 missing

$ mdadm --create /dev/md1 --verbose --level=1 --raid_devices=2

--spare-devices=1 missing /dev/sdb2 missing

$ mdadm --create /dev/md2 --verbose --level=1 --raid-devices=2

--spare-devices=1 missing /dev/sdb3 missing

$ mdadm --create /dev/md3 --verbose --level=1 --raid-devices=2

--spare-devices=1 missing /dev/sdb5 missing

$ mdadm --create /dev/md4 --verbose --level=1 --raid-devices=2

--spare-devices=1 missing /dev/sdb6 missing

$ mdadm --create /dev/md5 --verbose --level=1 --raid-devices=2

--spare-devices=1 missing /dev/sdb7 missing

Como podemos observar, inicialmente los arrays RAID-1 creados sólo tienen un disco de los tres
que lo componen. El disco que falta todavía no lo podemos añadir porque lo estamos usando ahora
en el sistema que se está ejecutando actualmente. Esto nos obligará a arrancar desde un volumen
RAID compuesto de un disco en lugar de dos. Tampoco podemos añadir aún el disco de spare, porque
de hacerlo entraría inmediatamente a cubrir el hueco del disco que falta para completar el RAID-
1. Posteriormente, una vez arrancado el sistema sobre los volúmenes RAID, ya podremos añadir en
caliente el disco que falta y el spare. En todo momento podemos ver el estado de todos los dispositivos
MD con la orden:

$ cat /proc/mdstat

2Durante el proceso de instalación se nos preguntará si deseamos que los volúmenes se monten automáticamente y si

queremos activar el demonio de monitorización. En ambos casos responderemos afirmativamente.

4

3.4. Creación de mdadm.conf

Aunque no es necesario, procederemos a la creación del fichero /etc/mdadm/mdadm.conf porque

su existencia permite abreviar la longitud de los comandos mdadm que ejecutemos en el día a día.

$ mdadm --detail -scan > /etc/mdadm/mdadm.conf

3.5. Creación de los filesystems en los arrays

Una vez creados los arrays RAID, tendremos que crear en ellos los sistemas de ficheros correspon-

dientes. En este caso:

$ mkfs.ext3 /dev/md0

$ mkswap /dev/md1

$ mkfs.ext2 /dev/md2

$ mkfs.ext3 /dev/md3

$ mkfs.ext3 /dev/md4

$ mkfs.ext3 /dev/md5

4. Reinicio

Aunque no es necesario reiniciar para proceder con los siguientes pasos, no es mala idea hacerlo
para coprobar que lo que hemos hecho hasta ahora es correcto. Si reiniciamos la máquina tendremos
que ver como el sistema detecta los dispositivos MD RAID. Tratará de buscar los dos discos por array
y sólo verá uno, pero todo eso lo reflejará en los mensajes que aparecen en pantalla.

Como siempre, podremos ver el estado de los arrays con la siguiente orden:

$ cat /proc/mdstat

El resultado será un listado, que indica que los arrays están definidos y constituidos por un sólo

de disco de los dos que deberían ser, parecido al siguiente:

Personalities : [raid1]
md1 : active raid1 sdb2[1]

497920 blocks [1/2] [_U]

md2 : active raid1 sdb3[1]

7920 blocks [1/2] [_U]

md3 : active raid1 sdb5[1]

4883648 blocks [1/2] [_U]

md4 : active raid1 sdb6[1]

5

29294400 blocks [1/2] [_U]

md5 : active raid1 sdb7[1]

33680128 blocks [1/2] [_U]

md0 : active raid1 sdba1[1]

9767424 blocks [1/2] [_U]

Si no podemos ver un listado similar, es que algo ha ido mal anteriormente y no podríamos

continuar.

5. Preparación del sistema para arrancar desde los arrays RAID-1

Los últimos pasos de este pr
  • Links de descarga
http://lwp-l.com/pdf10717

Comentarios de: Seguridad y disponibilidad: RAID por software y backup diferencial con DAR usando GNU/Linux (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad