RAID

Anuncio
Ubuntu Server 12.10
HOW TO :
CREACIÓN DE RAID
EN ESTE SE REALIZA LO SIGUIENTE:
En este how to se le va a enseñar crear raid en el cliente.
¿Que es RAID?
RAID (Redundant Array of Independent Disks, conjunto redundante de discos
independientes). RAID es un sistema un sistema de almacenamiento que usa
múltiples discos duros entre los que distribuye o replica los datos. Con esto se
consigue un nivel de redundancia alto. Con ello se consigue que en un sistema con
RAID, cuando se rompe un disco duro, el sistema continúe funcionando. En realidad
habría que matizar lo anterior, pues dependiendo del tipo de RAID (nivel), los
beneficios de utilizar este sistema frente a un único único disco pueden ser uno o
varios: mayor integridad de los datos almacenados, mayor tolerancia a fallos, mayor
rendimiento (throughput) y mayor capacidad.
En el nivel más simple, un RAID combina varios discos duros en una sola unidad
lógica. Así, en lugar de ver varios discos duros diferentes, el sistema operativo ve uno
solo. En este tutorial vamos a comenzar con la creación De RAID 0 por software.
RAID 0
RAID 0 o Data Striping es el tipo de RAID que
se
encarga
de
distribuir
los
datos
equitativamente entre dos o mas discos sin
información de paridad que proporcione
redundancia. Es importante señalar que el
RAID 0 no era uno de los niveles RAID
originales y que no es redundante. El RAID 0
se usa normalmenten para incrementar el
rendimiento, aunque también puede utilizarse
como forma de crear un pequeño numero de
grandes discos virtuales a partir de un gran
número de pequeños discos físicos. Un RAID 0
puede ser creado con discos de diferentes
tamaños, pero el espacio de almacenamiento
añadido al conjuento estará limitado por el
tamaño del disco más pequeño (por ejemplo, si un disco de 300 GB se divide con uno
de 100 GB, el tamaño del conjunto resultante será solo de 200 GB, ya que cada disco
aporta 100 GB).
Después de saber la utilidad y la ventaja que nos ofrece RAID 0 vamos a proceder con
la instalación, pero para ello vamos a aclarar ciertos punto. En primer lugar vamos a
trabajar en ubuntu 10.04 en su versión Live CD sobre un disco duro virtual de 10GB
que será dividio en 2 particiones y por ende obviamente nuestro RAID será totalmente
lógico.
Para realizar el particionado de disco vamos a utilizar la herramienta de linux Gparted
que en mi caso ya viene instalada en ubuntu 10.04, pero de usted no tenerla, la puede
instalar con el siguiete comando en la terminal: $ sudo apt-get install gparted.
Una vez abierto el programa veremos nuestro disco duro local lógico, que cuenta con
una capacidad de 10 GB y no tiene ningún tipo de sistema instalado.
Ahora procedemos a crear las dosparticiones que utilizaremos para ello
seleccionamos nuestra partición denominada “unallocated” y procedemos luego hacer
clic en el menú Device en la parte superior y luego presionamos la opción Create
Partition Table.
Una vez hecho todo esto, procedemos a seleccionar una pequeña hoja blanca que
aparece en lado superior izquierdo y nos aparecerá la siguiente ventana.
Aquí seleccionaremos el tamaño de nuestra nueva partición <<New size (MiB)>>,
luego dejaremos tal partición en partición primaria <<Create as>> ya que queremos
que simule un disco duro real, después seleccionamos el tipo de sistema de archivos a
instalar <<File system>> que en este caso no le asignaremos ningun sistema de
archivos eligiendo la opción unfformated y por ultimo le agregaremos un nombre
<<Label>>. Quedando entonces de la siguiente manera:
Presionando luego Add y hacemos lo mismo con las otras particiones.
Una vez realizado todo seleccionamos el cotejo verde de la parte superior para
confirmar los cambios.
Si queremos podemos guardar los detalles o simplemente cerrar la ventana.
Nuestro proximo paso es instalar el paquete mdadm. Este paquete funciona para crear
RAID por medio software. Para ello en la terminal ejecutamos el comando sudo
apt-get install mdadm.
Para que nuestro sistema operativo pueda trabajar con RAID tenemos que cargar el
modulo correspondiente, indicando que tipo de raid vamos a utilizar. Para ello
utilizamos el comando modprobe seguido del tipo de raid que en este caso es raid0,
es decir, sudo modprobe raid0.
Ya tenemos todo lo necesario para empezar a crear los RAID, verifiquemos con el
comando fdisk que nuestras particiones son reconocidas por el sistema.
Viendo que efectivamente están ahí. Notemos que están dentro del directorio /dev,
este es el directorio es el encargado de almacenar todos los dispositivos registrados
en nuestro sistema. Vamos a crear el RAID.
Ahora procedemos a crear el md, que es en donde crearemos la RAID. Para
implementar dicha acción utilizamos el comando mknod, es decir, sudo mknod
/dev/md0 b 9 0. En este caso crearemos el md0 porque no tenemos otros pero puede
ser 1,2,3.....
Ahora creamos la RAID para ello utilizamos la sintaxis de comando sudo mdadm -create /dev/md0 -- level=raid0 -- raid-devices=2 /dev/sda1 /dev/sda2. Donde El
comando principal es $ sudo mdadm Seguido representamos el md al que vamos a
asignar el array, sería entonces -- create /dev/md0, luego agregamos que nivel de
raid vamos a implementar, en este caso es el nivel 0. Luego especificamos el numero
de discos a utilizar - -raid-devices=2. Y por último la ruta a cada uno de esos discos,
por ejemplo: /dev/sda1 donde /dev es el directorio y /sda1 es el nombre del archivo
del disco.
Para verificar de que realmente se está creando nuestro RAID vamos a utilizar el
comando cat/proc/mdstat.
Ahora procedemos a formatear los discos RAID, para especificarles en que sistema de
archivos ellos escribirán. El comando utilizado en este casoi es mkfs. La sintaxis para
la implementación de este comando es
mkfs.[sistemas de archivos a
implementar] /dev/md0.
Ahora procederemos a montar el RAID. Para ello en mi caso crearé una carpeta en mi
directorio /home para que sea el punto de montaje y la llamaré RAID0. Luego el
comando para montar el RAID es: sudo mount /dev/md0 /home/ubuntu/raid0.
Donde sudo mount es el comando principal, /dev/md0 es nuestro RAID y
/home/ubuntu/raid0 es el directoiro que n os servirá como punto de montaje.
En la siguiente imagen podremos nuestro RAID montado en el escritorio.
Ahora vamos a realizar el RAID 1 por software. Para ello utilizaremos un método
similar pero diferente al momento de crear las particiones, es decir, en este caso no
utilizaremos Gparted.
Un RAID 1 crear una copia exacta (o espejo) de
un conjunto de datos en dos o más discos. Esto
resulta útil cuando el rendimiento en lectura es
más importante que la capacidad. Un conjunto
RAID 1 solo puede ser tan grande como el más
pequeño de sus discos. 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). Adicionalmente,
dado que todos los datos están en dos o más
discos,
con
hardware
habitualmente
independiente, el rendimiento de lectura se
incrementa aproximadamente como múltiplo
lineal del numero de copias; es decir, un RAID 1 puede estar leyendo simultáneamente
dos datos diferentes en dos discos diferentes, por lo que su rendimiento se duplica.
Para maximizar los beneficios sobre el rendimiento del RAID se recomienda el uso de
controladoras de disco independientes, una para cada disco (practica que algunos
denominan spliting o duplexing).
Como en el RAID 0, el tiempo medio de lectura se reduce, ya que los sectores a
buscar pueden dividirse entre los discos, bajando el tiempo de búsqueda y subiendo la
tasa de transferencia, con el único limite de la velocidad soportada por la controladora
RAID. Sin embargo, muchas tarjetas RAID 1 IDE antiguas leen solo un disco de la
pareja, por lo que su rendimiento es igual al de un único disco. Algunas
implementaciones RAID 1 antiguas también leen de ambos discos simultáneamente y
comparan los datos para detectar errores. La detección y corrección de errores en los
discos duros modernos hacen esta práctica poco útil. Al escribir, el conjunto se
comporta como un único disco, dado que los datos deben ser escritos en todos los
discos del RAID 1. Por lo tanto, el rendimiento no mejora.
El RAID 1 tiene muchas ventajas de administración. Por ejemplo, en algunos entornos
24/7, es posible <<dividir el espejo>>: marcar un disco como inactivo, hacer una copia
de seguridad de dicho disco y luego <<reconstruirlo>> el espejo. Esto requiere que la
aplicación de gestión del conjunto soporte la recuperación de los datos del disco en el
momento de la división. Este procedimiento es menos critico que la presencia de una
característica de snapshot en algunos sistemas de archivos, en la que se reserva
algún espacio para los cambios, presentando una vista estática en un punto temporal
dado del sistema de archivos. Alternativamente, unconjunto de discos puede ser
almacenado de forma parecida a como se hace con las tradicionales cintas.
Lógicamente no es recomendable utilizar un RAID 1 lógico por software para un
sistema en producción del que queramos obtener una alta disponibilidad y
redundancia, pues un RAID lógico está creado sobre el mismo disco duro físico,
con lo cual, si éste falla, fallará todo el RAID.
Para poder ejecutar los comandos debemos registrarnos como Usuario Root. Esto lo
hacemos con el comando Sudo -s.Crearemos un fichero de tamaño 100MB llamado
"fs1", que será el que simulará el disco físico 1, para ello utilizamos el comando: dd
if=/dev/zero of=/fs1 bs=4k count=25000.
Crearemos un fichero también de tamaño 100MB llamado "fs2", que será el que
simulará el disco físico 2, para ello utilizamos el comando: dd if=/dev/zero of=/fs2
bs=4k count=25000.
Ejecuntando el siguiente comando podremos ver los dos ficheros creados: ls /fs* -lah.
A continuación asignaremos a estos ficheros sendas particiones, para que Linux los
trate como discos duros. Para realizar esta acción ejecutaremos los siguientes
comandos Linux: losetup /dev/loop0 /fs1 y losetup /dev/loop1 /fs2.
A continuación, como hicimos anteriormente utilizaremos el comando "mdadm. lo que
conseguiremos con este comando es crear el RAID 1 propiamente dicho,como ya
sabemos el siguiente comando utilizará las dos particiones creadas anteriormente
sobre los dos ficheros: mdadm --create /dev/md0 --level=raid1 --raid-devices=2
/dev/loop0 /dev/loop1.
El siguiente paso será establecer el sistema de ficheros para el RAID 1 creado, para
ello ejecutaremos el comando: mkfs -t ext4 /dev/md0. En este caso hemos utilizado
ext4, que es el sistema de ficheros utilizado habitualmente por Linux.
Por último, para que el dispositivo creado sea accesible y utilizable por el sistema
operativo Linux, deberemos montarlo, para ello en esta ocasión nos vamos a mover al
directorio /mnt ejecutando el comando: cd /mnt. Luego crearemos una carpeta
llamada raid1 con el comando mkdir.
Luego procedemos a montar nuestro raid1 para ello utilizaremos el comando: mount
-t ext4 /dev/md0 /mnt/raid1.
En la siguiente imagen podremos nuestro RAID montado en el escritorio.
Ahora vamos a realizar el RAID 5 por software. Para ello utilizaremos el mismo método
que utilizamos para crear RAID0.
Un RAID 5 usa división de datos
a nivel de bloques distribuyendo
la información de paridad entre
todos los discos miembros del
conjunto. El RAID 5 ha logrado
popularidad gracias a su bajo
coste
de
redundancia.
Generalmente, el RAID 5 se
implementa
con
soporte
hardware para el cálculo de la
paridad. RAID 5 necesita un
mínimo de 3 discos para ser
implementado. Cada vez que un
bloque de datos se escribe en
un RAID 5, se genera un bloque
de paridad dentro de la misma división (denominado stripe). Un bloque se compone a
menudo de muchos sectores consecutivos de disco. Una series de bloques (un bloque
de cada uno de los discos del conjunto) recibe el nombre colectivo de división, el
bloque de paridad (o una parte del mismo) es recalculada y vuelta a escribir.
El disco utilizado por el bloque de paridad esta escalonado de una división a la
siguiente, de ahí el término <<bloques de paridad distribuidos>>. Las escrituras en un
RAID 5 son costosas en términos de operaciones de disco y trafico entre los discos y
la controladora.
Los bloques de paridad no se leen en las operaciones de lectura de datos, ya que esto
seria una sobrecarga innecesaria y disminuiría el rendimiento. Sin embargo, los
bloques de paridad se leen cuando la lectura de un sector de datos provoca un error
de CRC. En este caso, el sector en la misma posición relativa dentro de cada uno de
los bloques de datos restantes de la división y dentro del bloque de paridad en la
división se utiliza para reconstruir el sector erróneo.
El error CRC se oculta asi al resto del sistema. De la misma forma, si falla un disco del
conjunto, los bloques de datos de los discos restantes para reconstruir los datos del
disco que ha fallado <<al vuelo>>. Lo anterior se denomina a veces Modo Interino de
Recuperacion de Datos (Interim Data Recovery Mode)
Para realizar el particionado de disco vamos a utilizar la herramienta de linux Gparted
que en mi caso ya viene instalada en ubuntu 10.04, tal y como lo hicimos
anteriormente.
Mi disco duro local lógico cuenta con una capacidad de 10 GB y no tiene ningún tipo
de sistema instalado y hecho en el 4 particiones. No explico aquí el proceso ya
que es el mismo que seguimos cuando creamos RAID0.
Como ya sabemos despues de instalar el el paquete mdadm para que nuestro sistema
operativo pueda trabajar con RAID tenemos que cargar el modulo correspondiente,
indicando que tipo de raid vamos a utilizar. Para ello utilizamos el comando modprobe
seguido del tipo de raid que en este caso es raid5, es decir, sudo modprobe raid5.
Ya tenemos todo lo necesario para empezar a crear los RAID, verifiquemos con el
comando fdisk que nuestras particiones son reconocidas por el sistema.
Viendo que efectivamente están ahí. Notemos que están dentro del directorio /dev,
este es el directorio es el encargado de almacenar todos los dispositivos registrados
en nuestro sistema. Vamos a crear el RAID.
Ahora procedemos a crear el md, que es en donde crearemos la RAID. Para
implementar dicha acción utilizamos el comando mknod, es decir, sudo mknod
/dev/md0 b 9 0. En este caso crearemos el md0 porque no tenemos otros pero puede
ser 1,2,3.....
Ahora creamos la RAID para ello utilizamos la sintaxis de comando sudo mdadm -create /dev/md0 -- level=raid5 -- raid-devices=4 /dev/sda1 /dev/sda2 /dev/sda3
/dev/sda4. Donde El comando principal es $ sudo mdadm Seguido representamos el
md al que vamos a asignar el array, sería entonces -- create /dev/md0, luego
agregamos que nivel de raid vamos a implementar, en este caso es el nivel 5. Luego
especificamos el numero de discos a utilizar - -raid-devices=4. Y por último la ruta a
cada uno de esos discos, por ejemplo: /dev/sda1 donde /dev es el directorio y /sda1
es el nombre del archivo del disco.
Ahora procedemos a formatear los discos RAID, para especificarles en que sistema de
archivos ellos escribirán. El comando utilizado en este casoi es mkfs. La sintaxis para
la implementación de este comando es
mkfs.[sistemas de archivos a
implementar] /dev/md0.
Ahora procederemos a montar el RAID. Para ello en mi caso crearé una carpeta en mi
directorio /home para que sea el punto de montaje y la llamaré RAID5. Luego el
comando para montar el RAID es: sudo mount /dev/md0 /home/ubuntu/raid5.
Donde sudo mount es el comando principal, /dev/md0 es nuestro RAID y
/home/ubuntu/raid5 es el directoiro que n os servirá como punto de montaje.
En la siguiente imagen podremos nuestro RAID montado en el escritorio.
Descargar