PDF de programación - Instalando Debian a un Software RAID 0

Imágen de pdf Instalando Debian a un Software RAID 0

Instalando Debian a un Software RAID 0gráfica de visualizaciones

Publicado el 22 de Mayo del 2018
441 visualizaciones desde el 22 de Mayo del 2018
50,8 KB
5 paginas
Creado hace 20a (29/12/2003)
-=[·]=- Instalando Debian a un Software RAID 0

Enviado por GomoX | 30/12/03 - 14:04



Sigue la movida con un nuevo documento de los tantos prometidos... No se cuando me haré espacio
para escribir algo más digno de un blog y menos digno de TLDP. El tema del día de la fecha es el
software RAID, más precisamente como instalar Debian en uno y como tener la partición raíz (/) en un
dispositivo de este tipo. Si bien me voy a enfocar a Debian mínimamente, este documento es 99.9%
genérico y aplicable a cualquier distribución. Manos a la obra, como quien diría...



1) Introducción: Que es esto del RAID?

RAID es la sigla de Redundant Array of Inexpensive Disks (conjunto redundante de discos baratos).
Que significa esto? Básicamente, una unidad almacenamiento RAID se compone de muchos discos
rígidos que, unidos, conforman un solo dispositivo. Así, por ejemplo, podemos combinar 3 discos
rígidos de 80 GB para formar una unidad de 240 GB, y la información se distribuye de forma más o
menos uniforme por todos los discos que forman parte del RAID.

Pero que es esto de "redundante"? Un disco rígido, como todos sabemos, puede fallar
inesperadamente. Usando algunos tipos especiales de RAID se puede hacer que la falla de un disco
rígido del conjunto no impida que este siga funcionando: así, un RAID evita la pérdida de datos en caso
de fallos de hardware.

Para utilizar RAID antiguamente era necesario tener costosas controladoras RAID a las que se
enchufaban múltiples discos rígidos (SCSI, tradicionalmente) y estas administraban la distribución de
la información entre los diferentes discos. Hoy por hoy se ven en el mercado alternativas más
económicas del tipo "ata raid" (controladoras RAID para discos IDE), e incluso lo motherboards más
modernos vienen con una controladora RAID para discos Serial ATA "on board" (incorporada).

Ahora, en plan de ahorrarnos unos dólares podemos (cuando no?) recurrir a nuestro kernel favorito que
desde hace ya bastante tiempo lleva incorporada la funcionalidad de RAID por Software. Esto,
básicamente, significa que Linux es capaz de unificar varios discos rígidos en un RAID sin necesidad
de una controladora especial. Vamos a ver entonces, a lo largo de este artículo, como configurar una
unidad "software raid" en Linux y luego algo un poco más delicado: como utilizar la unidad RAID
como partición raíz (ya van a ver que hay un problema con esto).


2) La teoría: Niveles de RAID

Como mencioné antes hay diferentes tipos o niveles de RAID, cada uno con sus propias ventajas e
inconvenientes. Vamos a detallarlos a continuación:


Raid "append": Se agregan nuevos discos rígidos al final del volumen para aumentar su capacidad, se
escribe de forma lineal: hasta que no se llena el primer disco no se escribe en el segundo, y así.
+ Pros: simple, forma barata de tener mucho espacio
- Contras: no hay redundancia, la velocidad de escritura es la misma que con un solo disco.

Raid 0: también denominado "striping", se escribe en paralelo a los discos del RAID (por ejemplo, si
hay que escribir 2 KB a un RAID de 2 HDs se escribe un KB a cada uno, al mismo tiempo, con el
consiguiente aumento de velocidad).
+ Pros: la velocidad se ve prácticamente duplicada, económico
- Contras: no hay redundancia, si falla un disco, se pierde todo

Raid 1: tambien denominado "mirroring", se usan generalmente dos discos que son una copia exacta.
La falla de uno de los discos hace que el RAID siga funcionando sin problemas ya que todos los datos
están en cada uno de los discos. Sin embargo, dos disco de 80 Gb forma un volumen del mismo
tamaño, con el consiguiente desperdicio de espacio.
+ Pros: tolera fallas de hardware
- Contras: caro, hace falta el doble de espacio en disco rígido que el que se va a utilizar, y la velocidad
es la misma que si hubiera un solo disco

Raid 5: un dispositivo de este tipo debe estar formado por al menos 3 discos. Se lleva de forma
redundante una parte de la información de modo que si un disco falla ésta es recuperable. Ofrece un
beneficio en la velocidad con respecto a un disco normal, y no requiere de tanto espacio adicional como
un Raid 1. Requiere cálculos más complicados por parte de la controladora, y por lo tanto la
implementación por software puede ser lenta: es mejor tener una controladora por hardware.
+ Pros: redundante, incremento en la velocidad
- Contras: hecho por software puede ser lento, no es tan veloz como un raid 0

Raid 10 o 0+1: No voy a explicarlo pero voy a dar la definición. Un momento de meditación se los
aclarará:
"un raid 10 es un dispositivo raid 1 formado por dos dispositivos raid 0"
+ Pros: más veloz que raid 5, redundante
- Contras: requiere mucho espacio adicional, igual que el Raid 1.


3) A trabajar: Creando un dispositivo software RAID

Voy a detallar ahora como crear un software RAID de nivel 0, aunque el procedimiento es el mismo
para raid 1, es solo cambiar un archivo de configuración, como se verá. Para tener nuestro dispositivo
software RAID hay un par de requerimientos básicos. Necesitamos, más que nada:
Soporte en el Kernel
Simplemente es cuestion de compilar un kernel Linux de la manera que nos parezca más comodo
(usuarios de Debian vean el Debian Kernel COMO, incluyendo soporte para software RAID 0. Esto se
encuentra dentro de "Multiple Device Support (RAID and LVM)" en la configuración del núcleo 2.4.x,
y bajo esa misma opción pero dentro de "Device Drivers" en el núcleo 2.6.x. Simplemente habilitamos
"RAID support" y luego el o los tipos de RAID que pensamos usar (en mi caso habilito solo raid 0).
Compilamos, instalamos y reiniciamos.
Particiones en los discos
De más está decir que hace falta tener más de un disco rígido para hacer un RAID. Es necesario hacer
en cada uno una partición del tipo "Linux RAID autodetect", de preferencia aproximadamente del
mismo tamaño en ambos discos. Esta manipulación puede hacerse con fdisk o cfdisk, simplemente

seteen el tipo de partición a "Linux RAID autodetect" (el código es el fd). En mi caso, voy a utilizar las
particiones /dev/sda2 y /dev/sdb2, de 40 GB cada una para formar un RAID 0 de 80 GB.
Las raidtools2
Es necesario que sean las raidtools2 (con el 2) ya que las versiones anteriores eran para una generación
precedente de software RAID que no es la que viene incluída con los kernels actuales. Para esto,
Debian lo hace tan sencillo como apt-get install raidtools2, pero siempre pueden descargarse desde
http://people.redhat.com/mingo/raidtools/
Una vez que tenemos estas cosas listas, vamos a crear nuestro raid. Las raidtools, que vamos a utilizar
para este fin, utilizan el archivo de configuración /etc/raidtab. Como probablmente no exista,
simplemente creamos uno nuevo, con el siguiente contenido:
raiddev /dev/md0
raid-level 0
nr-raid-disks 2
persistent-superblock 1
chunk-size 4
device /dev/sda2
raid-disk 0
persistent-superblock 1
device /dev/sdb2
raid-disk 1
persistent-superblock 1

Creo que al archivo se entiende solo, básicamente creamos un nuevo "raiddev" (raid device,
dispositivo raid) de nivel ("raid-level") 0, integrado por dos discos ("nr-raid-disks"). El "chunk-size" es
una opción de configuración que puede afectar la performance del raid, pero un tamaño de 4 está bien
para configuraciones como esta.
A continuación, se definen las particiones que integran el raid, y se selecciona un número para cada
una (0 y 1, en mi caso). La única opción que nos queda es "persistent-superblock". Digamos que esta
opción hace toda la magia, ya lo voy a explicar más adelante, tranquilos. En caso de que quieran usar
otro tipo de RAID, una búsqueda en google les devolverá raidtabs adecuados para estas
configuraciones.

Una vez que llegamos a este punto, creamos nuestro nuevo dispositivo RAID usando las raidtools, y a
continuación lo formateamos, en mi caso usando ext3:
# mkraid /dev/md0
# mkfs.ext3 /dev/md0

En principio, el RAID ya está funcionando y podemos copiar datos en él. Cada vez que queramos usar
el raid tendríamos que ejecutar el comando "mkraid" para crear el dispositivo, razón por la que alguna
gente lo pone en un script de arranque en /etc/init.d. Ahora, si queremos tener nuestra partición root (/)
en el RAID para así ganar la mayor performance posible, nos faltan algunas cosas. Hagamos un
pequeño benchmark:

# hdparm -t /dev/sda5
/dev/sda5:
Timing buffered disk reads: 154 MB in 3.01 seconds = 55.16 MB/sec

# hdparm -t /dev/md0
/dev/md0:
Timing buffered disk reads: 332 MB in 3.00 seconds = 110.67 MB/sec

Como ven, la velocidad de lectura del dispositivo se duplica al usar raid 0.

4) Lo más delicado: bootear en un RAID

La pregunta del millón: como hacemos para bootear desde un software RAID? Si es el kernel quien
crea el RAID, pero también debemos cargar el kernel desde el RAID: es como el huevo y la gallina.
Hay varias soluciones para esto. En raid 1, se puede usar un LILO parchado que sepa "leer" el kernel
del RAID para cargarlo. Siempre se puede, también bootear desde un diskette o un cd especificando la
opción "root=/dev/XXX" al kernel, aunque esto no sería estrictamente "bootear desde el raid". Sin
embargo, vamos a hacer una variante de esto (al fin y al cabo, yo dije "root en raid", no "bootear desde
raid".

No crean que habiendo llegado hasta acá les voy a salir con que tienen que arrancar su sistema desde
un diskette! Una práctica común es tener la carpeta de arranque /boot en una partición separada, de
unos 15 MB. Es exactamente lo que vamos a hacer: creamos una partición ext3 de ese tamaño
aproximadamente y la montamos en una ubicación temporal para copiar el kernel y las demás cosas
desde /boot.
# mount /dev/sda1 /mnt/tmp
# cd /boot && cp -a ./ /mnt/tmp
# umount /mnt/tmp

Ahora, la montamos en el lugar adecuado y modificamos /etc/fstab para que refleje los cambios.
Ejecutamos LILO a continuación para que se ente
  • Links de descarga
http://lwp-l.com/pdf11184

Comentarios de: Instalando Debian a un Software RAID 0 (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