Usamos cookies propias y de terceros para ayudarte en tu navegación. Si continuas navegando consideramos que aceptas el uso de cookies. OK

lunes, 14 de julio de 2014

Raid en Solaris con Solaris Volume Manager

Configuración de RAID en Solaris



Si bien, el hacer raid en Solaris ha sido casi reemplazado usando el sistema ZFS, en algunos casos podemos llevar a necesitar hacerlo usando  Solaris Volume Manager. Aquí vemos como se realiza.

RAID es un método orientado a la copia de seguridad y almacenamiento de datos en varias unidades de disco. Además de las implementaciones redundantes  existe una que no es redundante que es RAID 0. Con el software de Solaris Volume Manager podemos implementar RAID 0, RAID1, RAID 1+0 y RAID 5.

RAID 0: Es una matriz no redundante que permite ampliar la capacidad de almacenamiento del disco. Existen dos clases: Volumenes concatenados y Volumenes Fraccionados.  Los volúmenes concatenados escriben en el primer slice disponible, cuando éste se llena se comienza a escribir en el siguiente disponible y los Volumenes Fraccionados distibuyen los datos en forma uniforme en todos los slices que lo componen. El problema del RAID 0 es que no proporcionan redundancia de datos, y en el caso que falla un slice no se puede acceder al volumen total. Tenemos dos formas de hacerlo:
  •  Volumenes concatenados: se pueden combinar slices de diferente tamaño. Incluso se pueden ir agregando conforme al crecimiento.
  •   Volumenes fraccionados: en volúmenes  RAID 0 los datos se distribuyen en segmentos de igual tamaño entre los slices. Este método permite leer datos de vario slices al mismo tiempo, lo que aumenta el rendimiento de entrada y salida.

RAID 1: es una matriz de discos en espejo. Puede contener volúmenes RAID 0. Tiene como desventaja que se pierde la mitad del espacio disponible. 

RAID 0+1: Se crean 2 RAID 0 y a estos se los configura como RAID1.

RAID 1+0: Se crean varios RAID 1 y luego a estos se los configura como RAID 0.

RAID 5: Son volúmenes fraccionados en los que se emplea un esquema de paridad distribuida con un esquema de paridad. Los datos se distribuyen en los discos y también se distribuyen los datos de paridad. En caso de falla de un disco, estos se reconstruyen con los datos de las otras unidades. Es tolerante al fallo de un disco. El sistema operativo se entera del fallo solo para dar aviso del fallo, mientras tanto los datos y los programas pueden seguir funcionando sin problemas, pero con el rendimiento degradado.
Consejos para hacer RAID:
  • Mantenga los Slices de  subduplicaciones diferentes en discos y controladoras diferentes. Esto reduce la posibilidad de falla.
  • Utilice el mismo tipo de discos y controladores para la subduplicación-
  • No montar un slice que forma parate de una duplicación. 

Solaris Volume Manager:
  • Es la herramienta de Solaris para administrar volúmenes en RAID.
  •  Conceptos:
  •  Volumen Lógico: es una unidad lógica de almacenamiento. Un volumen puede ser un slice de disco, una parte de este o una concatenación de varios slice para hacer un volumen más grande.
Particiones de Software: son subdivisiones de discos o volumen lógicos para crear unidades más manejables. Ej: Se puede crear 1000 particiones de software sobre un volumen RAID 1 o RAID 5 para que cada usuario disponga de un espacio.  La ventaja de una partición de software que la podemos ir ampliando o reduciendo a medida que necesitamos.
Consejos para partiones de software:
  • Es posible crear una partición de software de un slice. Para eso hay que crear un slice que ocupe todo el disco y luego crear la partición de software sobre ese slice.
  • Para expandir y administrar el espacio, primero cree fracciones en los slices del disco y luego genere las particiones de software en las fracciones.
  • Para tener mayor flexibilidad, primero cree el RAID y luego haga particiones de software dentro del RAID.
Base de datos de estado: es un conjunto de varias copias de la base de datos. Esta base contiene toda la información de configuración y estado de todos los volúmenes. Solaris Volume Manager contiene varias copias de la base de datos para redundancia. Cuando el sistema pierde una réplica de la base de datos de estado, Solaris Volume Manager debe determinar cuales son las réplicas que todavía contienen datos no dañados, para esto usa un algoritmo. El Solaris Volume Manager no inicia a menos que la mitad +1 de las réplicas esté disponible.
 
  1. Configuración de Solaris Volume Manager:
  • Creación de una base de datos de estado:
metadb -a [-f] [-c n] [-l nnnn] slice_disco
donde:
-a Agrega una réplica de la base de datos de estado.
-f Fuerza la operación, incluso cuando no existen réplicas.
        Utilice este indicador para forzar la creación de las réplicas iniciales.
-c n Especifica el número de réplicas que se van a agregar al slice.
-l nnnn Especifica el tamaño de las nuevas réplicas, expresado en bloques.
slice_disco Especifica el nombre del slice_disco que va a contener la réplica.

Ej: #metadb –a –f c0d0s0 c0d1s0


  • Creación de RAID-0 Concatenacion y striped:
metainit -f concat/fracc númfracc ancho componente...
donde:
-f Obliga al comando metainit a continuar, incluso cuando uno de los slices contiene un sistema de archivos montado o se usa como espacio de intercambio. Esta opción es útil cuando se configuran duplicaciones o concatenaciones en sistemas de archivos raíz (/), swap y /usr.
concat Especifica el nombre del volumen de la concatenación o fracción que se está definiendo.
númfracc Especifica el número de fracciones separadas del metadispositivo. La variable númfracc siempre tiene el valor 1 cuando se trata de una fracción simple. En el caso de la concatenación, númfracc equivale al número total de slices.
ancho Especifica el número de slices que componen una fracción. Los slices están fraccionados cuando el valor de ancho es mayor que 1.
componente Especifica el nombre lógico del slice físico (partición) de una unidad de disco, como /dev/dsk/c0t0d0s1.
Ej: #metainit  -f  d0 1  2  c0d1s0  c1d1s0  ( Striped)
Ej: # metainit  –f  d0  2  1  c0d1s0   1  c1d1s0   (Concatenado)
Este comando crear el raid, solo falta ejecutar el newfs o e growfs  y montarlo.
Si estamos ampliando un slice que actualmente esta montado.
1- Se desmonta.
2- Se crea el d0 con el slice actual y el que queremos agregar.
3- Se monta el /dev/md/dsk/d0 en el mismo punto de montaje.
4- se hace el growfs para hacer crecer el volumen.
#growfs –M  /puntodemontaje   /dev/md/rdsk/d0
(Los datos no se pierden)
**** Haciendo #metastat se puede diferencia si el RAID 0 es striped o concatenado.  El stripe muestra una sola banda. El concatenado muestra tantas bandas como slice tenga en raid 0.

  • Creación RAID 1:
Los Raid 1 son duplicaciones.
El uso de subduplicaciones para crear un RAID 1, es cuando se usan 2 o más RAID 0 para crear luego un RAID 1. En este caso los RAID 0 son subduplicaciones y el RAID 1 una duplicación.
Para crear:
1-    # metadb  –a  –f  –c 3  /dev/rdsk/c0d0s7  /dev/rdsk/c0d1s7  (Crea las base de datos)
2-    # metainit  –f   d11  1  1   /dev/rdsk/c0d0s0  ( Crea la primera subduplicación – Volumen logico )
3-    # metainit  –f   d12  1  1   /dev/rdsk/c0d1s0  ( Crea la segunda subduplicación – Volumen logico)
4-    # metainit   -f  d10  -m  d11  ( Se crea el volumen principal que va a contener a los lógicos, donde d10 es el nombre del volumen principal y el d11 es el volumen lógico que se quiere espejar )
5-    # metattach  d10  d12 (Atachamos el volumen lógico d12  al principal d10)

RAID 1 en el  /:

Cuando creamos un RAID 1 del /, tenemos que hacer los mismos pasos de crear un RAID 1 en otro disco agregando el comando metaroot.
1-    # metadb  –a  -f  -c3 /dev/rdsk/c0d0s7  /dev/rdsk/c1d1s7 ( Crea las bases de datos )
2-    # metainit  –f  d11  1  1  /dev/rdsk/c0d0s0   ( Creamos la primera subduplicación - Volumen lógico )
3-    # metainit  -f  d12   1  1  /dev/rdsk/c1d1s0   ( Creamos la segunda subduplicacion – Volumen lógico )
4-    # metainit   d10  -m  d11 ( Se crea el columen principal que va a contener los lógicos, donde d10 es el nombre del volumen principal y el d11 es el volumen lógico que se quiere espejar )
5-    # metaroot  d10  ( Esta línea modifica el /etc/vfstab )
6-    # init 6
7-    # metattach  d10  d12  ( Atachamos el volumen lógico destino del espejo, en este caso  d12 ) 
***Para arrancar del otro disco en x86 hay que instalar grub en el otro disco:               #/sbin/installgrub  /boot/grub/stage1  /boot/grub/stage2  /dev/rdsk/c1d1s0
***Para arrancar del otro disco en SPARC se cambia el disco de booteo desde la OBP.

  • RAID 5: Es un raid que contiene paridad. 
Debe contener al menos 3 slices.
EL RAID 5 no puede ser striped, concatenado ni duplicado.
Este tipo de RAID no se debe hacer con un file system con datos, ya que este proceso borra todos los datos.
Para reemplazar un disco por otro se utiliza metareplace. Ej:
# metainit d3 -r c1t4d0s7 c2t4d0s7 c1t5d0s7
d3: RAID is setup


No hay comentarios:

Publicar un comentario