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

martes, 5 de agosto de 2014

Virtualización en Solaris (Solaris Zones) Parte II

En la primera entrega vimos las características de las zonas en unix. Ahora vamos a ver como se configuran y los comandos relacionados.
Uno de los comandos más importante es zonecgf
El comando zonecfg se utiliza para configurar cada zona. Se pueden realizar las siguientes operaciones:
  • Crear o borrar la configuración de zona.
  • Establecer las propiedades de los recursos agregados a una configuración.
  • Consultar o verificar una configuración.
  • Recuperar una configuración anterior.
  • Salir de la sesión de zonecfg.

Parámetros de los recursos de zonecfg
La utilidad zonecfg incluye los siguientes tipos de recursos:
  • zonename: define el nombre de la zona y sirve de identificador de lazona para la utilidad de configuración.
  • zonepath: establece el recurso de rutas de acceso a la zona y constituye la ruta al sistema de archivos raíz de la zona.
  • autoboot: determina si la zona se reiniciará cuando se reinicie la zona global.
  • fs: asigna los parámetros de los recursos correspondientes a los sistemas de archivos. El uso del parámetro special permite a la zona local montar recursos del sistema de archivos global en diferentes directorios.

Parámetros del recurso fs:



dir
Punto de montaje de la zona no global.
special
Archivo de dispositivo de bloques que especifica la ubicación del sistema de archivos.
raw
Archivo de dispositivo que debe utilizarse para el comando fsck.
type
Tipo de sistema de archivos.
options
Admite parámetros similares a los utilizados con el comando mount.


  • inherit-pkg-dir: proporciona acceso a los paquetes de software del sistema global. La zona no global recibe el contenido de los paquetes de software situados en el directorio inherit-pkg-dir en modo de sólo lectura. Los recursos contenidos de forma predeterminada en inherit-pkg-dir son: /lib, /platform, /sbiny /usr.
  • net: proporciona a las zonas no globales interfaces lógicas de las interfaces de la zona global. Las interfaces de red se activan cuando la zona pasa del estado “instalada” al estado “preparada”.
  • device: hace referencia a dispositivos para los comandos select, add o remove. Cada zona puede tener dispositivos que deberían configurarse cuando pasa del estado “instalada” al estado “preparada”.
  • attr: permite al administrador global asignar parámetros de atributos genéricos, como el tipo de nombre y el valor. El tipo debe ser int (entero) uint (entero sin signo), Boolean (booleano) o string (cadena).

Proceso de configuración de zonas

El texto siguiente contiene un ejemplo de configuración de una zona llamada work-zone:
1 global# zonecfg -z work-zone
2 zonecfg:work-zone> create
3 zonecfg:work-zone> set zonepath=/export/work-zone
4 zonecfg:work-zone> set autoboot=true
5 zonecfg:work-zone> add fs
6 zonecfg:work-zone:fs> set dir=/mnt
7 zonecfg:work-zone:fs> set special=/dev/dsk/c0t0d0s7
8 zonecfg:work-zone:fs> set raw=/dev/rdsk/c0t0d0s7
9 zonecfg:work-zone:fs> set type=ufs
10 zonecfg:work-zone:fs> add options [logging]
11 zonecfg:work-zone:fs> end
12 zonecfg:work-zone> add inherit-pkg-dir
13 zonecfg:work-zone:inherit-pkg-dir> set dir=/usr/sfw
14 zonecfg:work-zone:inherit-pkg-dir> end
15 zonecfg:work-zone> add net
16 zonecfg:work-zone:net> set physical=ce0
17 zonecfg:work-zone:net> set address=192.168.0.1
18 zonecfg:work-zone:net> end
19 zonecfg:work-zone> add device
20 zonecfg:work-zone:device> set match=/dev/sound/*
21 zonecfg:work-zone:device> end
22 zonecfg:work-zone> add attr
23 zonecfg:work-zone:attr> set name=comentario
24 zonecfg:work-zone:attr> set type=string
25 zonecfg:work-zone:attr> set value="Zona de trabajo"
26 zonecfg:work-zone:attr> end
27 zonecfg:work-zone> verify
28 zonecfg:work-zone> commit
29 zonecfg:work-zone> exit

Línea 1: esta línea inicia la utilidad zonecfg en modo interactivo. La zona se denomina work-zone.
Línea 2: inicia la configuración en la memoria.
Línea 3: el recurso de ruta de acceso de la zona, en este caso /export/work-zone, es la ruta de acceso al directorio raíz de la zona. Cada zona tiene una ruta de acceso a su directorio raíz que es relativa al directorio raíz de la zona global. Esta ruta debe existir en el momento de la instalación. El directorio de la zona global debe tener visibilidad restringida. Debe ser propiedad de root con el modo 700. En este ejemplo, el directorio de la zona global es /export.
Línea 4: indica que la zona debería arrancar automáticamente al arrancar el sistema.
Línea 5: inicia la configuración de un sistema de archivos. El ámbito del comando cambia al de los sistemas de archivos.
Línea 6: establece el punto de montaje del sistema de archivos, en este ejemplo /mnt.
Línea 7: indica que el archivo de dispositivos de bloques especial /dev/dsk/c0t0d0s7 debe montarse como /mnt en work-zone.
Línea 8: establece /dev/rdsk/c0t0d0s7 como archivo de dispositivo sin formato (raw). El demonio zoneadmd ejecuta automáticamente el comando fsck en modo de comprobación no interactiva sobre este dispositivo antes de montar el sistema de archivos.
Línea 9: indica que el tipo de sistema de archivos es UFS.
Línea 10: indica la opción específica del sistema de archivos, habilitar el registro de las actualizaciones del sistema de archivos en este procedimiento.
Línea 11: finaliza la sección de configuración del sistema de archivos de este procedimiento.
Línea 12: inicia la configuración de un sistema de archivos de sólo lectura compartido que se ha montado en bucle desde la zona global.
Línea 13: indica que /usr/sfw debe montarse en bucle desde la zona global.
Línea 14: finaliza la sección de montaje en bucle de este procedimiento.
Línea 15: inicia la sección de configuración de red de este procedimiento.
Línea 16: indica que la interfaz de red física que debe usar esta zona es GigaSwift.
Línea 17: especifica la dirección IP de la interfaz de red, en este procedimiento es 192.168.0.1.
Línea 18: finaliza la sección de configuración de red de este procedimiento.
Línea 19: inicia la sección de configuración de dispositivos de este procedimiento.
Línea 20: proporciona visibilidad sobre la zona no global a los dispositivos que coinciden con el patrón /dev/sound/* de la zona global.
Línea 21: finaliza la sección de configuración de dispositivos de este procedimiento.
Línea 22: inicia la sección de configuración de atributos de este procedimiento.
Línea 23: establece el nombre del atributo, en este caso, comentario.
Línea 24: define el tipo de atributo como una cadena de caracteres.
Línea 25: asigna un valor a la cadena de caracteres, en este procedimiento, “Zona de trabajo”.
Línea 26: finaliza la sección de configuración de atributos de este procedimiento.
Línea 27: comprueba si la configuración actual es correcta. Verifica si todos los recursos tienen todas las propiedades necesarias especificadas.
Línea 28: confirma la configuración actual y la traslada de la memoria al medio de almacenamiento estable. Hasta que se confirma la configuración de la memoria, es posible anular los cambios con el comando revert.
Línea 29: cierra la sección de zonecfg. Puede utiliza la opción -F (forzar) con exit.

La zona ya está preparada para su instalación, arranque y uso.


Visualización de la configuración de las zonas

El comando zonecfg puede utilizarse para ver la configuración de la zona.
# zonecfg -z work-zone info
zonepath: /export/work-zone
autoboot: true
inherit-pkg-dir:
dir: /lib
inherit-pkg-dir:
dir: /platform
inherit-pkg-dir:
dir: /sbin
inherit-pkg-dir:
dir: /usr
inherit-pkg-dir:
dir: /opt/sfw
fs:
dir: /mnt
special: /dev/dsk/c0t0d0s7
raw: /dev/rdsk/c0t0d0s7
type: ufs
options: [logging]
net:
address: 192.168.0.1
physical: ce0
device
match: /dev/sound/*
attr:
name: comentario
type: string
value: "Zona de trabajo"
#

Cuando se traslada la configuración de la zona al medio de almacenamiento estable, el archivo se guarda en el directorio /etc/zones con formato XML.


Por ejemplo:
# more /etc/zones/work-zone.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE zone PUBLIC "-//Sun Microsystems Inc//DTD Zones//EN"
"file:///usr/share/lib/xml/dtd/zo
necfg.dtd.1">
<zone name="work-zone" zonepath="/export/work-zone" autoboot="true">



Uso del comando zoneadm

El comando zoneadm es la principal herramienta de instalación y administración de las zonas no globales. Las operaciones que utilicen este comando deben ejecutarse desde la zona global. Zoneadm permite realizar las siguientes tareas:
● Verificar la configuración de una zona.
● Instalar una zona.
● Arrancar una zona.
● Reiniciar una zona.
● Mostrar información sobre una zona en ejecución.
● Trasladar una zona.
● Desinstalar una zona.
● Suprimir una zona con el comando zonecfg


Verificación de una zona configurada

Es posible verificar una zona antes de instalarla. Si omite este procedimiento, la verificación se efectúa automáticamente al instalarla zona.

Para verificar la configuración de una zona, se utiliza el comando
zoneadm -z nombre_zona verify. Por ejemplo:

global# zoneadm -z work-zone verify
Warning: /export/work-zone does not exist, so it cannot be verified. When
zoneadm install is run, install will try to create /export/work-zone, and
verify will be tried again, but the verify may fail if: the parent
directory of /export/work-zone is group- or other-writable or
/export/work-zone overlaps with any other installed zones.
En este ejemplo, aparece un mensaje para advertir al administrador de que la ruta indicada en zonepath no existe. Esto ilustra el tipo de mensajes que envía el comando zoneadm.
Si no aparece ningún mensaje de error, puede instalar la zona


Instalación de una zona configurada

El comando zoneadm -z nombre_zona install se utiliza para realizar las tareas de instalación de las zonas no globales. Es preciso ser administrador global para instalar una zona. Por ejemplo:

global# zoneadm -z work-zone install

El comando zoneadm list -iv se utiliza para ver la lista de zonas instaladas y su estado:
global# zoneadm list -iv
ID NAME STATE PATH
0 global running /
- work-zone installed /export/work-zone

En este ejemplo, la zona work-zone ha alcanzado el estado de “instalada”.
Se le asignará el ID de zona cuando arranque.


Arranque de una zona

Cuando se arranca una zona, ésta entra en estado de ejecución. Si define la propiedad del recurso autoboot como true al configurar una zona, ésta arranca automáticamente al arrancar la zona global. El valor
predeterminado es false.
Las zonas pueden iniciarse de forma manual desde el estado de instaladas
.
Para arrancar una zona se utiliza el comando zoneadm -z nombre_zona
boot:
global# zoneadm -z work-zone boot
global# zoneadm list -v
ID NAME STATE PATH
0 global running /
1 work-zone running /export/work-zone

En este ejemplo, la zona work-zone ha alcanzado el estado de ejecución.
Durante el proceso de arranque, se le ha asignado el ID 1

Detención de una zona

El comando zoneadm halt se utiliza para suprimir el entorno de aplicaciones y la plataforma virtual de una zona. Una vez hecho, la zona regresa al estado de instalada. Todos los procesos se cancelan, los dispositivos
se desconfiguran, se desactivan las interfaces de red, se desmontan los sistemas de archivos y se destruyen las estructuras de datos del núcleo.

global# zoneadm -z work-zone halt
global# zoneadm list -v
ID NAME STATE PATH
0 global running /
- work-zone installed /export/work-zone
El comando halt no ejecuta ninguna secuencia de comandos de cierre dentro de la zona. El usuario root de la zona puede cerrar la sesión mientras está conectado a la zona y ejecutar en ella secuencias de cierre.


Reinicio de una zona

El comando zoneadm reboot se utiliza para reiniciar una zona. La zona se detiene y vuelve a arrancar.

global# zoneadm -z work-zone reboot
global# zoneadm list -v
ID NAME STATE PATH
0 global running /
2 work-zone running /export/work-zone
En este ejemplo, el ID de zona asignado antes de reiniciar es 1.
Después de volver arrancar, el ID de zona ha cambiado a 2.


Inicio de sesión y operaciones en la zona

El comando zlogin se utiliza para acceder a la zona instalada desde la zona global. Recuerde que, en la configuración predeterminada, los usuarios root no están autorizados a iniciar la sesión en las zonas. Para
acceder a una zona como si estuviese en su consola, utilice la opción -C.
# zlogin -C work-zone
[Connected to zone 'work-zone' console]
La primera vez que la zona arranca después de su instalación, se le pide que especifique un tipo de terminal, el nombre de host, la zona horaria y la contraseña de root.


Traslado de una zona

La función move zone permite trasladar una zona no global de un punto de un sistema a otro punto del mismo sistema. Se hace de tal manera que funciona dentro de un mismo sistema de archivos y entre sistemas de
archivos, siempre de acuerdo con las reglas de zonepath. Es decir, no puede ejecutarse con un sistema de archivos NFS montado.
Para trasladar una zona no global, se utiliza el comando zoneadm.
Por ejemplo:
# zoneadm -z work-zone move /rutanueva
En este ejemplo, /rutanueva indica la nueva ruta especificada con
zonepath para la zona.
Migración de una zona
Una zona no global pueden trasladarse de un sistema a otro utilizando los comandos zonecfg y zoneadm. El procedimiento desconecta la zona (detenida) de su ubicación actual y la conecta a otra ubicación.
La zona global del sistema de destino debe ejecutar lo siguiente:
● La misma versión que el host original
● Las mismas versiones de los paquetes y parches del sistema operativo que el host original
El proceso de desconexión de la zona genera la información necesaria para volver a conectar la zona a un sistema diferente. El proceso de conexión de la zona verifica si la nueva máquina tiene la configuración correcta para alojar la zona.
La migración de una zona de un sistema a otro implica los pasos siguientes:

1. Desconectar la zona: esto la deja en el estado configurada dentro del sistema de origen. Internamente, el sistema genera un archivo de manifiesto con la información necesaria para certificar que la zona podrá conectarse sin problemas al nuevo host.
Para desconectar una zona, primero deténgala y luego realice la desconexión:

host1# zoneadm -z work-zone halt
host1# zoneadm -z work-zone detach
Nota – La operación de desconexión genera metadatos que describen la versión de los paquetes y parches instalados en el host. Esta información se guarda en un archivo XML de zonepath, junto con los directorios
rooty dev. Esto facilita el traslado de zonepath al otro sistema.

2. Migrar los datos: es preciso trasladar a un nuevo sistema host los datos que representan a la zona. El fragmento siguiente contiene un ejemplo de migración de esos datos de host1 a host2.
En host1:
host1# cd /export/zones
host1# tar cf work-zone.tar work-zone
host1# sftp host2
Connecting to host2...
Password:
sftp> cd /export/zones
sftp> put work-zone.tar
Uploading work-zone.tar to /export/zones/work-zone.tar
sftp> quit

En host2:
host2# cd /export/zones
host2# tar xf my-zone.tar

3. Configurar la zona: debe crear la configuración de la zona en el nuevo host utilizando el comando zonecfg. Por ejemplo:
host2# zonecfg -z work-zone
work-zone: No such zone configured

Utilice el comando create para empezar a configurar una zona nueva.
zonecfg:work-zone> create -a /export/zones/work-zone

     /**** Hay que asegurarse que todos los ajustes necesarios se han hecho, ej: configuración de interfaz de red.

zonecfg:work-zone> commit
zonecfg:work-zone> exit

4. Conectar la zona: esta operación verifica si el host puede albergar la zona antes de efectuar la conexión. La zona queda en estado instalada.
La sintaxis para conectar una zona es:
host2# zoneadm -z work-zone attach



Supresión de una zona

Antes de suprimir una zona, no olvide hacer la copia de seguridad de todos lo archivos que quiera conservar. El primer paso de la supresión es detener Solaris 10 y liberar la memoria del sistema.
En el siguiente ejemplo, la zona se suprime del sistema global:
Atención – Esta operación no conlleva el cierre controlado o regular de la zona. Es posible que se pierdan datos de los procesos ejecutados en ella.

# zoneadm list -cp
0:global:running:/
3:work-zone:running:/export/work-zone
# zoneadm -z work-zone halt
# zoneadm list -cp
0:global:running:/
-:work-zone:installed:/zones/work-zone
En este punto, la zona no utiliza ningún recurso del sistema excepto el espacio del sistema de archivos. Desinstale la zona para anular el uso de los archivos.

# zoneadm -z work-zone uninstall
Are you sure you want to uninstall zone work-zone (y/[n])? y
# zoneadm list -cp
0:global:running:/
-:work-zone:configured:/export/work-zone

El último paso es borrar la configuración de la zona del sistema global con el subcomando delete.
# zonecfg -z work-zone delete
Are you sure you want to delete zone work-zone (y/[n])? y
# zoneadm list –cp
0:global:running:/


Modificar una zona: cuando se quiere modificar un recurso, primero se selecciona el recurso y luego se lo modifica.

Ej: se modifica la direccion IP:

# zonecfg -z zona1                             Ingresas a la zona.
zonecfg:zona1> info            Muestra informacion de los recursos de la zona.
zonename: zona1
zonepath: /zona1
brand: native
autoboot: true
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
inherit-pkg-dir:
        dir: /lib
inherit-pkg-dir:
        dir: /platform
inherit-pkg-dir:
        dir: /sbin
net:
        address: 172.20.4.183        Aca está el recurso que queremos modificar.
        physical: e1000g0
        defrouter no especificado
zonecfg:zona1> selec           
select attr              select dedicated-cpu     select net
select capped-cpu        select device            select rctl
select capped-memory     select fs
select dataset           select inherit-pkg-dir
zonecfg:zona1> select net address=172.20.4.183    Seleccionamos el recurso
zonecfg:zona1:net> set address=172.20.4.185    Seteamos el Nuevo valor.
zonecfg:zona1:net> end
zonecfg:zona1> commit                Confirmamos los cambios
zonecfg:zona1> exit

///Hay que tener en cuenta que si usamos commando vmstat en la zona par aver la memoria, estamos viendo la del sistema fisico por mas que tengamos configurado limites. Lo mejor es instalar el software top, este se puede ejecutar en cada zona y ver la memoria con los limites.///



Ej: Asignar limite de memoria a la zona.

# zonecfg -z zona1                Entras a la zona
zonecfg:zona1> info                Muestra informacion a la zona
zonename: zona1
zonepath: /zona1
brand: native
autoboot: true
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
inherit-pkg-dir:
        dir: /lib
inherit-pkg-dir:
        dir: /platform
inherit-pkg-dir:
        dir: /sbin
inherit-pkg-dir:
        dir: /usr
inherit-pkg-dir:
        dir: /usr/sfw
net:
        address: 172.20.4.185
        physical: e1000g0
        defrouter no especificado
zonecfg:zona1>                Despliego los commando presionando la tecla TAB.
add      commit   delete   export   info     revert   set
clear    create   exit     help     remove   select   verify
zonecfg:zona1> add ca
add capped-cpu     add capped-memory    Agrego el recurso de limite de memoria
zonecfg:zona1> add capped-memory
zonecfg:zona1:capped-memory>
cancel          clear swap      help            set physical=
clear locked    end             info            set swap=
clear physical  exit            set locked=
zonecfg:zona1:capped-memory> set physical=50M      Configuro el limite de memoria fisica.
zonecfg:zona1:capped-memory> set swap=100M        Configuro el limite de la swap.
zonecfg:zona1:capped-memory> end
zonecfg:zona1> commit                    Confirmo los cambios.
zonecfg:zona1> info                        Muestro la informacion
zonename: zona1
zonepath: /zona1
brand: native
autoboot: true
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
inherit-pkg-dir:
        dir: /lib
inherit-pkg-dir:
        dir: /platform
inherit-pkg-dir:
        dir: /sbin
inherit-pkg-dir:
        dir: /usr
inherit-pkg-dir:
        dir: /usr/sfw
net:
        address: 172.20.4.185
        physical: e1000g0
        defrouter no especificado
capped-memory:
        physical: 50M
        [swap: 100M]
rctl:
        name: zone.max-swap
        value: (priv=privileged,limit=104857600,action=deny)


Ej: Asignar limite de cpu a la zona.

# zonecfg -z zona1                Entras a la zona
zonecfg:zona1> info                Muestra informacion a la zona
zonename: zona1
zonepath: /zona1
brand: native
autoboot: true
bootargs:
pool:
limitpriv:
scheduling-class:
ip-type: shared
inherit-pkg-dir:
        dir: /lib
inherit-pkg-dir:
        dir: /platform
inherit-pkg-dir:
        dir: /sbin
inherit-pkg-dir:
        dir: /usr
inherit-pkg-dir:
        dir: /usr/sfw
net:
        address: 172.20.4.185
        physical: e1000g0
        defrouter no especificado
zonecfg:zona1>                Despliego los commando presionando la tecla TAB.
add      commit   delete   export   info     revert   set
clear    create   exit     help     remove   select   verify
zonecfg:zona1> add ca
add capped-cpu     add capped-memory    Agrego el recurso de limite al cpu
zonecfg:zona1> add capped-cpu
zonecfg:zona1:capped-cpu>
cancel                help            set ncpus=     end             info           
zonecfg:zona1:capped-memory> set ncpus=0.5      Configuro el limite de cpu al 50%.
zonecfg:zona1:capped-memory> end
zonecfg:zona1> commit


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


martes, 13 de mayo de 2014

Montar ZFS desde un Live CD



Para montar un pool zfs desde un CD Live ya sea porque queremos modificar algo o por ejemplo, recuperar la password de root, tenemos que saber que la configuracion de zfs queda en el disco, o sea que se puede importar.
Seguimos estos pasos:

1- Booteamos desde un Live Cd
2- Una vez booteado, si hacemos un #zfs list no vamos a ver nada. Lo que hacemos será importar la configuracion.
3- Importamos la configuración: #zpool import -f rpool (rpool es el nombre del pool)
4- Volvemos a tirar un #zfs list y veremos los pooles zfs.
5- Para que sea mas trasnparente y mas intuitivo el montaje, creamos un directorio donde montaremos el pool zfs a modificar.  #mkdir /a
6- Ahora, como el directorio de montaje zfs, es una propiedad del pool, debemos modificarla antes de montarla. Para esto ejecutamos: #zfs set mountpoint=/a rpool/ROOT/solaris
7- Ahora, montamos:  #zfs mount  rpool/ROOT/solaris
8- Una vez realizado el trabajo sobre el pool, se debe desmontar.
9- Para esto, primero se desmonta, #umount /a y luego se debe volver la propiedad de punto de montaje a la original, #zfs set mountpoint=/original rpool/ROOT/solaris
10-Listo

lunes, 5 de mayo de 2014

Squid en 3 pasos II

En la primera parte Squid en solaris en 3 pasos vimos como dejar funcionando un firewall/proxy rapidamente. Ahora veremos más en detalle algunas configuraciones más que se pueden agregar al squid.conf.



Definir una lista de permitidos a la navegación.

1- Crear un archivo (/etc/squid/permitidos) que contenga las direcciones IP a las cuales se les permite el acceso a internet.
Ej:
#cat /etc/squid/permitidos
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5

2- Luego creamos una ACL (Lista de control de acceso) para vincular el archivo creado en el paso 1. Para esto agregamos en el squid.conf la siguiente linea.
acl permitidos src "/etc/squid/permitidos"

3- Ahora solo nos resta crear la regla. En la seccion "Rules" del squid.conf la definimos de la siguiente manera:

http_access [deny o allow] [lista de control de acceso]

En este ejemplo sería:

http_access allow permitidos


Opción http_port

Como lo indica el título, esta opción define en que puerto squid escuchará solicitudes. Por defecto viene configurado como:
 
http_port 3128

Solo cambiando el número definimos otro puerto.


Opción cache_dir

Esta opción se utiliza para establecer que tamaño se desea que utilice Squid para almacenar el caché en el disco duro. El directorio en este ejemplo es /disco2/cache  y un caché de 500 MB, dividido en jerarquías de 16 directorios subordinados, hasta 256 niveles cada uno:

cache_dir ufs /disco2/cache 500 16 256

Estos datos son totalmente modificables. El caché se puede aumentar. Mientras más más grande, menos ancho de banda se consumirá.

Tambien se puede especificar el porcentaje en el cual el caché comienza a limpiarse. Se pueden especificar dos opciones:

cache_swap_low 85
cache_swap_high 95

La primera linea indica que el porcentaje en cual el caché comienza la limpieza. La segunda linea indica el porcentaje donde la limpieza comienza a ser más brusca.




domingo, 27 de abril de 2014

Squid en Solaris en 3 pasos

En este post veremos como configurar un servidor proxy sobre Solaris 11 con Squid + IPfilter. 
La red de prueba está diseñada así. 
Lo primero que haremos será configurar e iniciar el servicio Ipfilter y verificar que estamos saliendo hacia internet a través de la puerta de enlace. Si no saben como hacerlo pueden leer el post Configurar Ipfilter en Solaris.

Una vez que tenemos eso funcionando vamos a proceder a instalar el Squid. 
Ejecutamos: 

#pkg install squid 


 Alli se descargará, y se podrá ver el servicio detenido mediante el comando:
#svcs –a | grep squid

Ahora, si simplemente habilitamos el servicio y se inicia correctamente, squid funcionará con la configuración mínima del archivo /etc/squid/squid.conf.

Solo restar configurar los navegadores con la ip del proxy que hemos instalado (es este caso 192.168.1.2) y el puerto 3128.

El el siguiente post veremos configuraciones más avanzadas de squid como control de ancho de banda  y filtrado de páginas.



La parte dos en Squid en 3 pasos II.






jueves, 6 de febrero de 2014

¿Cuán seguro te sentís utilizando dispositivos móviles?

La invasión de dispositivos móviles inteligentes ha llegado para quedarse. Estos nuevos aparatos se han arraigado tan fuerte a lo cotidiano que hemos pasado a creer que "dependemos" de nuestro celular y que muchas veces sentimos que nos falta algo si lo olvidamos al salir de nuestros hogares (Nomofobia).
Pero esto no es noticia, en lo que debemos pensar ahora es ¿Cuán seguro te sentís utilizando dispositivos móviles? Nos planteamos esto ya que en estos días la información se ha vuelto el recurso más importante para las empresas, en realidad siempre lo fué, la diferencia es que ahora toda está en formato digital y que muchos la transportamos sin tomar el recaudo que debería. (Si la información no estuviera digitalizada, ¿ Usted se imagina transportando cientos o miles de expedientes todo el día? En la actualidad todos lo hacemos utilizando medios electrónicos.)
Pero, volvamos a la seguridad de estos datos. Existen decenas de variantes de programas cuyo fin malicioso es el robo de la información e intrusión.  Haciendo un estudio sobre algunos dispositivos móviles, sobre todo aparatos con Android, en el 80% de los casos he encontrado instalados  programas potencialmente dañinos. Enconces, piénselo bien,  ¿Usted ingresaría desde su celular al home banking sabiendo que es muy alta la probabilidad de que algún software malintencionado esté instalado en su teléfono? Yo le aconsejo que no. En mi caso no accedo nunca.

Según las estadísticas, existe  en promedio un periódo ventana de 3 meses, desde que un virus nuevo es liberado hasta que las companías antivirus lanzan las actualizaciones para dicho programa y si a eso le sumamos que el 70% de los dispositivos ni siquiera tiene instalado un antivirus, el panorama no es muy alentador.
Un estudio reciente de la companía Alcatel-Lucent muestra que las amenazas a los dispositivos móviles continúan en rápido ascenso, y que han infectado a más de 11,6 millones de dispositivos en la actualidad. Citando dicho estudio, "Las cifras del último trimestre y del último año de Kindsight, filial de Alcatel-Lucent, revelan que el software malicioso o malware usado por los hackers para obtener el acceso a los dispositivos continúa aumentando con la utilización de la banda ultra ancha por parte de los consumidores. Además del riesgo que representa para ellos, el malware se utiliza para actos de espionaje y lanzar ataques de denegación de servicio (DoS) a empresas y administraciones."
"El informe muestra que las infecciones con malware para dispositivos móviles aumentó un 20% en 2013, siendo los dispositivos LTE de 4G los más propensos a ser infectados. Los dispositivos Android representaron el 60% de las infecciones totales en redes móviles, normalmente bajo la forma de aplicaciones de “troyanos” descargadas de tiendas de aplicaciones (app stores) de terceros, Google Play™ Store o correo malicioso con suplantación de identidad (phising scams). El 40% del malware para dispositivos móviles se originó en portátiles con Windows™ conectados a un teléfono, a un lápiz USB para conexión móvil o a un nodo MIFI (WiFi móvil). Las infecciones en dispositivos iPhone® y BlackBerry® supusieron menos de un 1%."
En conclusión, el uso de dispositivos inteligéntes para manipular, almacenar y transportar información sensible es una practica no recomendada y poco segura.
Si de todas maneras desea hacerlo puede tomar algunas de nuestras recomendaciones:
- Mantener todos los dispositivos con antivirus actualizados y softwares que permitan el borrado seguro de los datos en caso de pérdida o robo.
- Siempre descargar los datos en las mismas PC. Conectar los dispositivos móviles a muchas PCs incrementa el riesgo a infección.
- De ser posible, trasladar los datos encriptados. Esto evitará que la información sea revelada.
- Acceder a los home banking desde la menor cantidad de aparatos y utilizando conexiones de internet seguras.