• No se han encontrado resultados

Virtualización Zonas. David Galán Ortiz. < Spain OpenSolaris Users Groups > USE IMPROVE EVANGELIZE

N/A
N/A
Protected

Academic year: 2021

Share "Virtualización Zonas. David Galán Ortiz. < Spain OpenSolaris Users Groups > USE IMPROVE EVANGELIZE"

Copied!
20
0
0

Texto completo

(1)

USE IMPROVE EVANGELIZE

Virtualización Zonas

David Galán Ortiz.

www.opensolarisblog.org

[email protected]

<OrangeBooks>

< Spain OpenSolaris Users Groups >

(2)

LICENCIA...3

REFERENCIAS ...3

CONTENEDORES...4

ZONASEN SOLARIS 10...4

CREAR UNA ZONA...5

Asignar CPU...6

Memoria...7

Espacio en disco...7

RED...8

Creación de una zona no compartida o Small-Zone...8

Arrancar la zona...12

Zlogin entrar en la nueva zona...12

Parar la Zona virtual...14

Crear una zona no compartida o BIG-ZONE...15

ESTADOSDEUNAZONA...17

MONITORIZARUNAZONA...18

VALIDARSE EN UNA ZONA...19

(3)

Licencia

Esta obra está bajo una licencia Reconocimiento-NoComercial-SinObraDerivada-2.5 España de Creative Commons. Para ver una copia de esta licencia, visite http://creativecommons.org/licenses/by-nc-nd/2.5/es o envíe una carta a Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Usted es libre de:

- Copiar, distribuir y comunicar públicamente la obra. Bajo las condiciones siguientes:

- Reconocimiento. Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador.

- No comercial. No puede utilizar esta obra para fines comerciales.

- Compartir bajo la misma licencia. Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta.

- Al reutilizar o distribuir la obra, tiene que dejar bien claro los términos de la licencia de esta obra.

Alguna de estas condiciones puede no aplicarse si se obtiene el permiso del titular de los derechos de autor.

Referencias

Todos los nombres propios de programas, sistemas operativos, equipos hardware, etc., que aparecen en este libro son marcas registradas de sus respectivas compañías u organizaciones.

(4)

Contenedores

Zonas en Solaris 10

La tecnología de contendedores permite la virtualización de Solaris 10 en zonas aisladas del resto del sistema. La denominación de contenedores es la suma de el SRM (Gestor de Recursos de Solaris) + Zonas.

Las zonas ejecutan los procesos de forma aislada al sistema anfitrión sin comunicación con otros procesos fuera de la zona.

Las zonas solo pueden ejecutar entornos virtuales con el operativo Solaris 10 compartiendo el kernel del sistema anfitrión

Las zonas se dividen en:

- Zona Global: es la primera instalación que se realiza de Solaris 10 físicamente en la máquina y en la que se basan el resto de zonas. Tiene el control de todo el sistema y el hardware de la máquina. - Zona no global: es un contenedor aislado de la zona global donde se

pueden ejecutar Solaris 10 y aplicaciones forma aislada a la zona global.

(5)

Crear una zona

La zonas no globales pueden compartir directorios con la zona global o estar aislada. Una zona no global puede compartir con la zona global los sistemas de ficheros:

 /usr

 /lib

 /sbin

 /platform

El uso de una zona no global compartida ocupa tan solo 100MB al tener compartidos directorios con la zona global tal como se puede ver en la figura 5.1.

Figura 5.1 Zona compartida

/usr /lib /sbin /platform /var /etc

Zona Global 0 Zona local Compartida /dev/rdsk/c0d0s0 lofs(ro) /usr /lib /sbin /platform /var /etc 100MB 4GB

(6)

Figura 5.2 Zona no compartida

Las zonas no compartidas o zonas grandes ocupan 4GB ya que no comparten sistema de ficheros. Al no compartir sistemas de ficheros con la zona global podemos aplicar parches a la zona distintos a los de la zona global. Podemos tener varias zonas con niveles de parche distintos según las necesidades de las aplicaciones. En la figura 5.2 se representa una zona no compartida.

Control de recursos

Cuando creamos una zona tenemos que asignarlas recursos como red, memoria, CPU etc..

Asignar CPU

El control de recursos sobre la CPU en zonas puede ser de tres tipos: /usr /lib /sbin /platform /var /etc Zona Global 0 BIG ZONE /dev/dsk/c1d0 /usr /lib /sbin /platform /var /etc 3GB 4GB /dev/dsk/c0d0

(7)

- CPU fija: una zona puede tener asignada una o mas CPUs de forma fija. Esta forma puede ser útil cuando licenciamos aplicaciones por el numero de CPU. Esta opción tiene una desventaja si la zona no requiere mucho uso de CPU ya que perdemos capacidad de procesamiento estando la CPU solamente asignada una zona.

- CPUs dinamicas: se asigna un mínimo y un máximo de CPU´s para una zona. El demonio poold se encarga de balancear el numero de CPUs disponibles según la necesidades de cada zona.

- CPUs compartidas: consiste en un pool de CPUs asignado a todas las zonas. El sistema repartirá las CPU según las necesidades de cada zona.

Memoria

El control de memoria para zonas no globales hasta la versión 11/06 de Solaris 10 no se podía realizar de forma directa se utiliza el

resource control del sistema. Se ha incluido una nueva propiedad denominada zone.max-locked-memory que establece el limite de memoria para una zona.

Espacio en disco

La zonas puedes ser creadas en:

 Discos independientes o particiones (slices): una zona puede ser creada en un directorio de cualquier sistema de ficheros, una partición o en un disco independiente.

(8)

 Volúmenes independientes: puede instalarse las zonas en volúmenes de Solaris Volume Manager y beneficiarse de políticas como RAID1, RAIRD 5 etc..

 ZFS: Puede instalarse una zona en uns sistema de ficheros ZFS o compartir un sistema de ficheros de la zona global.

RED

Cuando creamos una zona se le asigna una dirección IP e interfaz de red de la zona global.

Creación de una zona no compartida o Small-Zone

En el siguiente apartado vamos a seguir los pasos necesarios para crear una zona Solaris 10 no compartida ocupando tan solo 100MB . La zona a crear tiene un dirección IP asociada a la interfaz pcn1 y se instala en /babilonia/mizona.

Ejecutamos el comando zonecfg con la opción –z de la siguiente forma:

zonecfg –z [nombre de la zona]

Al ejecutar el comando aparece un mensaje indicando que la zona no esta configurada. Para configurar la zona tenemos que introducir los comandos de configuración el editor de zonezfg. Los datos a introducir son:

autoboot=trae: este parámetro define si la zona es persintente a los reinitos del sistema. Si reiniciamos la máquina anfitriona la zona también arrancara.

zonepath: PATH donde se instalara la zona Solarias 10.

(9)

set physical: asocia una interfaz de la zona no global para su uso en la zona.

El ejemplo siguiente muestra el proceso completo para la creación de la zona:

# zonecfg -z mizona

mizona: No se ha configurado esa zona

Use 'create' para comenzar a configurar una zona nueva.

zonecfg:mizona> create

zonecfg:mizona> set autoboot=true

zonecfg:mizona> set zonepath=/babilonia/mizona zonecfg:mizona> add net

zonecfg:mizona:net> set address=10.73.111.25 zonecfg:mizona:net> set physical=pcn1 zonecfg:mizona:net> end zonecfg:mizona> info zonename: mizona zonepath: /babilonia/mizona autoboot: true pool: limitpriv: inherit-pkg-dir: dir: /lib inherit-pkg-dir: dir: /platform inherit-pkg-dir: dir: /sbin inherit-pkg-dir: dir: /usr net: address: 10.73.130.25 physical: pcn1 zonecfg:mizona> verify zonecfg:mizona> commit zonecfg:mizona> exit

Con los pasos anteriores hemos creado la zona. Al realizar el commit se crea un fichero XML en /etc/zones con los datos de la zona:

(10)

Ejemplo de mizona.xml:

# more mizona.xml

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE zone PUBLIC "-//Sun Microsystems Inc//DTD Zones//EN" "file:///usr/share/lib/xml/dtd/zonecfg.dtd.1">

DO NOT EDIT THIS FILE. Use zonecfg(1M) instead. -->

<zone name="mizona" zonepath="/babilonia/mizona" autoboot="true"> <inherited-pkg-dir directory="/lib"/>

<inherited-pkg-dir directory="/platform"/> <inherited-pkg-dir directory="/sbin"/> <inherited-pkg-dir directory="/usr"/>

<network address="10.73.130.25" physical="pcn1"/> </zone>

Para comprobar que la máquina esta correctamente creada ejecutamos el comando:

zoneadm list -cv

# zoneadm list -cv

ID NAME STATUS PATH 0 global running /

- mizona configured /babilonia/mizona

Ya esta creada la zona y tenemos que inicializarla para que se instalen los paquetes necesarios. Este paso puede tardar varios minutos por que implica la copia de todos los paquetes necesarios.

Antes de iniciar la instalación de paquetes para la zona debemos de comprobar los permisos de la zona par ello acudimos al comando

zoneadm para verificar que la zona tiene los permisos necesarios para su creación.

Para verificar ejecutamos:

(11)

Al lanzar el comando nos muestra un mensaje avisando que los permisos sobre los ficheros de la zona no son los correctos:

bash-3.00# zoneadm -z mizona verify

/babilonia/mizona no debe ser legible por grupo. /babilonia/mizona no debe ser ejecutable por grupo. /babilonia/mizona no debe ser legible por todos. /babilonia/mizona no debe ser ejecutable por todos. no se ha podido verificar rutazona /babilonia/mizona

debido a los errores anteriores.

zoneadm: la zona mizona no se ha podido verificar

Solucionamos el problema aplicando el comando chmod con los permisos 700.

chmod 700 /babilonia/mizona/

Si ejecutamos nuevamente el comando zoneadm para verificar la zona no observaremos ningún error. Instalamos la máquina ejecutando la orden:

zoneadm –z [nombre de la zona] install

bash-3.00# zoneadm -z mizona install

Preparing to install zone <mizona>.

Creating list of files to copy from the global zone. Copying <2430> files to the zone.

Initializing zone product registry.

Determining zone package initialization order. Preparing to initialize <1042> packages on the zone. Initialized <1042> packages on zone. Zone <mizona> is initialized.

El archivo </babilonia/mizona/root/var/sadm/system/logs/install_log> contiene un registro de la instalación por zonas.

Una vez finalizada la copia de paquetes comprobamos que la maquina esta instalada correctamente ejecutando zoneadm list –cv:

(12)

bash-3.00# zoneadm list -cv

ID NAME STATUS PATH 0 global running /

- mizona installed /babilonia/mizona

Arrancar la zona

La máquina ya esta configurada e instalada ahora tenemos que arrancar la zona con el comando zoneadm y el parámetro boot:

zoneadm –z [nombre de la zona] boot

bash-3.00#zoneadm –z mizona boot

bash-3.00# zoneadm list -cv

ID NAME STATUS PATH 0 global running /

4 mizona running /babilonia/mizona

Para verificar que la zona esta arrancada ejecutamos el comando

zoneadm list –cv y veremos que su estado es running.

Zlogin entrar en la nueva zona

Tenemos la máquina virtual ejecutándose correctamente y queda realizar el ultimo paso supone entrar en la máquina y responder unas preguntas sobre la configuración que queremos para la zona. Las preguntas son las mismas que en una instalación normal de Solaris, realizará las siguientes preguntas:

 Nombre de la máquina

 Idioma del sistema

(13)

 Tipo de Terminal

 Zona geográfica

 Contraseña de root

 Compatibilidad NTFS v4

Para entrar en la máquina ejecutamos la orden zlogin con el parámetro

–C:

zlogin –C [nombre de la zona]

Como se aprecia en el siguiente ejemplo se inicia un pequeño instalador que pregunta nuestras preferencias para el sistema:

bash-3.00# zlogin -C mizona

[Conectado a la consola de la zona 'mizona'] Select a Language

0. English 1. Spanish 2. it

Please make a choice (0 - 2), or press h or ? for help:

Sobre el Terminal:

¿Qué tipo de terminal esta usando? 1) Est√°ndar ANSI CRT

2) DEC VT52 3) DEC VT100 4) Heathkit 19

5) Lear Siegler ADM31 6) Consola PC

7) Herramienta de comandos Sun

8) Estación de Trabajo (Workstation) Sun 9) Televideo 910

10) Televideo 925 11) Wyse, modelo 50

(14)

13) Emulador de terminal CDE (dtterm) 14) Otros

Introduzca el número seleccionado y presione Intro:

Cuando finalizamos la preguntas se configura e inicia el arranque del sistema operativo Solaris 10 como en cualquier máquina:

SunOS Release 5.10 Version Generic_118855-33 32-bit

Copyright 1983-2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.

Hostname: babilonia

babilonia console login: Feb 13 03:09:03 babilonia sendmail[5971]: My unqualified host name (localhost) unknown; sleeping for retry

babilonia console login:

Estamos dentro de la máquina virtual babilonia y podemos hacer login con el usuario introducido en las preguntas de la instalación de la zona. Ahora podemos instalar y configurar la máquina virtual como cualquier otra.

Ahora se puede hacer telnet o ssh a la dirección IP que tenemos asociada a nuestra máquina virtual e instar cualquier servicio normalmente.

Parar la Zona virtual

Para parar una máquina virtual podemos proceder de dos formas diferentes:

1. Al ser una máquina virtual responde a los mismos comandos de parada que cualquier instalación normal de Solaris por lo tanto podemos parar con comandos como init 0, shutdown o halt.

2. Desde la zona global podemos o reiniciar la máquina utilizando el comando zoneadm con los parámetros reboot y halt:

(15)

a. zoneadm -z [nombre de la zona] reboot b. zoneadm -z [nombre de la zona] halt

Crear una zona no compartida o BIG-ZONE

Tal como hemos visto al comienzo una zona no compartida no comparte los directorios /usr./lib,/sbin y /platform por lo tanto ocupa 4GB de espacio aportando la ventaja de tener una zona totalmente independiente donde se puede aplicara un nivel de parches diferente a la zona global.

Para crear una zona no compartida vamos utilizar un disco completo de 6GB con sistema de ficheros UFS montado en /bigzone.

Antes de instalar la zona vemos que tan solo ocupamos el 1% del disco:

/dev/dsk/c1d0s0 5783070 5753 5719487 1% /bigzone

Al finalizar la instalación el espacio ocupado por la zona es igual a una instalación completa de Solaris 10:

/dev/dsk/c1d0s0 5783070 2951463 2773777 52% /bigzone

Una zona no compartida o BigZone se crea igual que una zona compartida con la salvedad de que indicamos que no se compartan los sistemas de ficheros /usr./lib,/sbin y /platform con los parámetros:

remove inherit-pkg-dir dir=/sbinremove inherit-pkg-dir dir=/usrremove inherit-pkg-dir dir=/platformremove inherit-pkg-dir dir=/lib

(16)

# zonecfg -z mibigzone

mibigzone: No se ha configurado esa zona

Use 'create' para comenzar a configurar una zona nueva. zonecfg:mibigzone> create

zonecfg:mibigzone> remove inherit-pkg-dir dir=/sbin

zonecfg:mibigzone> remove inherit-pkg-dir dir=/usr

zonecfg:mibigzone> remove inherit-pkg-dir dir=/platform

zonecfg:mibigzone> remove inherit-pkg-dir dir=/lib

zonecfg:mibigzone> set autoboot=true

zonecfg:mibigzone> set zonepath=/bigzone

zonecfg:mibigzone> add net

zonecfg:mibigzone:net> set address=127.0.0.100

zonecfg:mibigzone:net> set physical=lo0

zonecfg:mibigzone:net> end zonecfg:mibigzone> info zonename: mibigzone zonepath: /bigzone autoboot: true pool: limitpriv: net: address: 127.0.0.100 physical: lo0 zonecfg:mibigzone> verify zonecfg:mibigzone> commit zonecfg:mibigzone> exit

Establecemos los permisos de fichero para la zona:

chmod 700 /bigzone

Verificamos la zona y procedemos a la instalación de los paquetes necesarios para la ejecución de la zona:

bash-3.00# zoneadm -z nocompartida verify

bash-3.00# zoneadm -z nocompartida install

Preparing to install zone <nocompartida>. Creating list of files to copy from the global zone.

(17)

Copying <130622> files to the zone. Initializing zone product registry.

Determining zone package initialization order. Preparing to initialize <1042> packages on the zone. Initialized <1042> packages on zone.

Zone <nocompartida> is initialized.

El archivo </bigzone/root/var/sadm/system/logs/install_log> contiene un registrde la instalación por zonas.

Arrancamos la zona:

# zoneadm list -cv

ID NAME STATUS PATH 0 global running /

- nocompartida installed /bigzone # zoneadm -z nocompartida boot

# zoneadm list -cv

ID NAME STATUS PATH 0 global running /

2 nocompartida running /bigzone

Y finalizamos el proceso de instalación estableciendo el nombre de máquina, contraseña de root, zona geográfica etc..:

bash-3.00# zlogin -C nocompartida

[Conectado a la consola de la zona 'nocompartida'] Select a Language

0. English 1. Spanish 2. it

Please make a choice (0 - 2), or press h or ? for help:

Estados de una zona

Hemos visto como crear una zona, configurarlas y las operaciones de parada y arranque. Ahora veremos como detectar el

(18)

estado de una máquina desde la zona global. Con el comando zoneadm list –cv obtenemos información sobre el estado de una zona:

# zoneadm list -cv

ID NAME STATUS PATH 0 global running /

- nocompartida installed /bigzone

Los estados posibles son:

Configured: se encuentra en estado estado cuando finalizamos la configuración y realizamos un commit.

Incomplete: mostrará este estado muestran se están instalando los paquetes al ejecutar zoneadm con la opción install.

Installed: la zona tiene todos los paquetes necesarios para su funcionamiento.

Ready: la zona esta lista tiene creado el kernel, los controladores de red están cargados y los sistemas de ficheros montados.

Running: la zona esta arrancada.

Shutting Down: la zona esta en proceso de parada.

Monitorizar una zona

Una zona puede ser monitorizada desde la zona global utilizando el comando zlogin con la opción –S que permite la ejecución de un comando dentro la zona y enviar la salida del comando a la zona global.

Zlogin –S [nombre de la zona] “comando”

(19)

Uptime:

# zlogin -S nocompartida "uptime"

10:43am up 8 min(s), 0 users, load average: 0.18, 0.87, 0.98

FileSystems:

#

# zlogin -S nocompartida "df -k"

Filesystem kbytes used avail capacity Mounted on / 5783070 2964445 2760795 52% / /dev 5783070 2964445 2760795 52% /dev proc 0 0 0 0% /proc ctfs 0 0 0 0% /system/contract swap 513036 260 512776 1% /etc/svc/volatile mnttab 0 0 0 0% /etc/mnttab /usr/lib/libc/libc_hwcap1.so.1 5783070 2964445 2760795 52% /lib/libc.so.1 fd 0 0 0 0% /dev/fd swap 512812 36 512776 1% /tmp swap 512796 20 512776 1% /var/run Uname –a:

# zlogin -S nocompartida "uname -a"

SunOS babilonia 5.10 Generic_118855-33 i86pc i386 i86pc

Validarse en una zona

Para entrar a una zona podemos realizar un telnet o ssh a la dirección IP asociada a la zona o entrar por consola con la utilizad zlogin:

zlogin –l [usuario] [nombre de zona]

(20)

# zlogin -l aulaunix nocompartida

[Conectado a la zona 'nocompartida' pts/5] No directory! Logging in with home=/

Sun Microsystems Inc. SunOS 5.10 Generic January 2005 $ id

uid=100(aulaunix) gid=1(other) $

Desinstalar una zona

Para desinstalar una zona tenemos que detener la zona y ejecutar el comando zoneadm con la opción uninstall. Hay que usar esta opción con mucha precaución ya que elimina todos los ficheros:

# zoneadm -z nocompartida halt # zoneadm -z nocompartida uninstall –F # df –k

/dev/dsk/c1d0s0 5783070 5894 5719346 1% /bigzone

La desinstalación de la zona puede tardar varios minutos al igual que al crearla.

Referencias

Documento similar

Se observa como dentro de la facies de los esquistos -- verdes pueden ser individualizadas dos zonas: zona de la cl o cita y zona de la biotita.. Aunque la clorita es el mineral

Desde esta interpretación, la forma de participación “movimiento social” no existe puesto que su acción se “leerá” como la de grupos de interés en formación

Volviendo a la jurisprudencia del Tribunal de Justicia, conviene recor- dar que, con el tiempo, este órgano se vio en la necesidad de determinar si los actos de los Estados

Escorias, bombas, lapilli y cenizas de basaltos olivínicos, basaltos afaníticos, traquibasaltos, basanitas, foiditas y basaltos olivínico- piroxénicos.. 33 Coladas basálticas

Para ello se recurre al realismo ofensivo de John Mearsheimer (2003), que estudia la política conflictiva entre grandes potencias y las estrategias utilizadas para incrementar

El Centro de juventud y familia del colegio Santa Mariana de Jesús orienta, guía y acompaña a la comunidad Marianita dinamizando espacios para la formación en liderazgo,

La diferencia en la cantidad de ADN genómico entre las dos cepas de Beauveria bassiana se deben probablemente al efecto inhibitorio espora-espora que se presenta en la

En el estado final (Fig. 1-C) el liquido de la zona queda en parte flotando en el Interior del recipiente dividido en gotas de diversos tamaños y en par te adherido a los discos y