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

jueves, 31 de julio de 2014

Virtualización en Solaris (Solaris Zones) Parte I

Virtualización en Solaris (Solaris Zones)



La tecnología de zonas permite particionar el sistema operativo para incorporar varios sistemas operativos independientes  con su propio espacio de procesos, sus propios usuarios y una asignación de recursos independientes.
La tecnología de partición proporciona servicios de sistema operativo virtuales que le muestran al usuario como si hubiese varias instancias de Solaris en ejecución. Esto permite una administración mas granular y poder hacer funcionar en el mismo servidor físico, aplicaciones incompatibles. Ej: dos servidores web en el mismo puerto.
Cada zona contiene:
*        Propia contraseña root.
*        Su propio espacio de procesos y sistemas de archivos y solo se puede interactuar.



  • Caracteristicas de las zonas:
  1. Seguridad:  los servicios de red se pueden ejecutar en una zona para limitar posibles daños en caso de una violación de la seguridad. El reinicion o cierre de una zona no afecta a las otra zonas.
  2. Aislamiento: las zonas permiten implementar varias aplicaciones en la misma maquina y cada zona esta aislada de otra.
  3. Granularidad: las zonas pueden proporcionar aislamiento con un neviel de granularidad arbritario. Se pueden tener todas las zonas que se quiera y granular los sistemas.
  4. Transparencia: las zonas presentan las mismas API y el mismo entorno que el sistema solaris.  

  • Conceptos sobre las zonas:
  1. Tipos de zonas
  2. Demonios de zonas.
  3. Sistema de archivos de zonas.
  4. Configuracion de red de Zonas.
  5. Estados de las zonas.

1. Tipos de zonas:

Solo se admiten dos tipos de zonas:
La zona global: es única en el sistema operativo. Desde esta zona se permite configurar, instalar, desinstalar o arrancar otras zonas.  Es la única zona que se arranca desde el hardware del sistema y tiene la base de datos de todo el hardware.  Esta zona contiene todos los paquetes de instalación de sistema operativo. Procesos de la zona global pueden intercartuar con alguna zona, pero no alrevez.
Zona no global: estas zonas tienen instalados un subconjunto de los paquetes de software de solaris. Tambien pueden contener los paquetes de software de solaris compartidos de la zona global. Desde estas no se ven otras zonas ni tampoco se puede configurar ella misma.

2. Demonios de las zonas:

El sistema utiliza dos demonios para controlar el funcionamiento de las zonas: zoneadmd y zsched. El demonio zoneadmd es el proceso principal para administrar la plataforma cirtual de la zona. Existe un proceso zoneadmd por cada zona en el sistema. Este demonio se encarga de:
- Administrar el arranque y cierre de las zonas.
- Asignar el ID de zona e iniciar el proceso zsched.
- Establecer los controles de los recursos en toda la zona.
- Preparar los dispositivos de la zona como se especifica en la configuración de ésta.
- Abrir y activar las interfaces de red virtuales.
- Montar sistemas de archivos de bucle y convencionales.

Si el demonio zoneadmd no está en ejecución, el comando zoneadm lo inicia.

3.

4. Configuracion de red de la zonas:

Cada zona no global puede contener una o varias direcciones IP. Estas interfaces están asociadas a la interfaz física a travez de sub interfaces. Las interfaces configuradas con el comando zonecfg se activan y se situan automáticamente en la zona cuando arranca. El comando ifconfig puede utilizarse para agregar o suprimir las interfaces lógicas. SOLO EL ADMINISTRADOR DE LA ZONA GLOBAL PUEDE MODIFICAR LA CONFIGURACION DE LAS INTERFACES Y RUTAS DE RED.
IPMP se puede configurar en la zona global y ampliar su funcionalidad a las zonas no globales situando las direcciones IP de la zona en un grupo IPMP cuando se configura la zona.




5. Estados de las zonas:

Los posibles estados de las zonas son:
- Indefinida: cuando la configuración de la zona no se ha finalizado o cuando la configuración de la zona se ha borrado.
- Configurada: la configuración de la zona ha finalizado.
- Inclompleta: es un estado de transición entre la instalación y desinstalación.
- Instalada: la zona ya se ha instalado y la instancia esta lista.
- Preparada: es una etapa donde se han abierto ya las interfaces de red y se montan los sistemas de archivos. Todavía no se ha iniciado ningún proceso.
- Ejecucion: la zona ya tiene procesos de usuario ejecutándose.
- En proceso de cierre: es un proceso de transición y aparecen cuando una zona se esta deteniendo.

  • Configuracion de las zonas: es preciso realizar estas tareas:
- Identificar los componentes que compondrán la zona.
- Configurar la zona.
- Verificar y confirmar (commit) la zona configurada.

  • Identificación de los componentes de la zona
- Un nombre de zona.
- Una ruta de acceso al sistema de archivo raíz de la zona.
- Las interfaces de red de las zonas.
- Los sistemas de archivos montados en las zonas.
- Los depósitos configurados en las zonas.

  • Asignación del espacio para los sistemas de archivos:
Las zonas no tienen limetes de espacio de disco. El administrador de cada zona es el encargado de espacio que ésta ocupa. El espacio que la zona ocupa depende los paquetes de software y aplicaciones que estén instaladas dentro de la misma.
Como regla general se necesitan 100 MB por cada zona cuando se instalan los paquetes normales. Ademas se puede utilizar cualquel lugar del disco para aalmacenar las zonas.
Se recomienda asignar 40 MB de RAM mas por cada zona, pero no es obligatorio en maquinas donde el espacio de intercambio es suficiente.

Click aquí para ingresar a las Segunda parte.

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