jueves, 21 de enero de 2010

Creación de zonas con Solaris Containers

Introducción a Solaris Containers
Solaris containers es la implementación de un sistema operativo virtualizado sobre Solaris 10, proporciona la gestión de recursos del sistema y la virtualización de sistemas operativos a través de las zonas.
La zona global es la primaria, desde la que instalaremos otras zonas (no globales), así el administrador puede gestionar de una forma mas eficaz los recursos del servidor, ahorrando costes, espacio, tiempo ...
Las zonas actúan como un sistema operativo independiente, les podemos asignar una interfaz de red virtual, un sistema de archivos independiente, memoria, cpu ... Todo esto es personalizable y altamente recomendado ya que podemos optimizar el rendimiento del sistema según creemos conveniente.
Pooladm

Pooladm es un gestor de recursos de cpu, con esta herramienta podemos crear “pools” o procesadores virtuales que contienen un número deseado de cpu's, de este modo podemos asignarle a una zona muy importante unos recursos grandes y a otra zona menos importante unos recursos mas pequeños, también podemos igualar cargas ... etc.Pooladm por defecto está desactivado , si no se activa las zonas obtendrán los recursos de la zona global, éste no discriminará y tratará a todas las zonas por igual.
La configuración consta de un pool y un pset asociados entre ellos.
Pset es donde almacena las cpus mínimas y máximas que va a tener el pool, la carga que tiene, el tamaño en cpus...
Pool contiene parámetros como el id del pool en el sistema, si esta activado o desactivado, la importancia del pool o prioridad y además tiene asociado un pset que trabaja para el pool.

Primero habilitamos pooladm

bash-3.00# pooladm -e
bash-3.00# pooladm -s
Creamos un pset (este tendrá como mínimo una cpu y como máximo 4)
bash-3.00# poolcfg -c 'create pset pset1 (uint pset.min=1; uint pset.max=4)'

Creamos un pool
bash-3.00# poolcfg -c 'create pool pool1'

Asociamos el pool con el pset
bash-3.00# poolcfg -c 'associate pool pool1 (pset pset1)'
Zonas

Crearemos una zona de prueba llamada "test-zone" y le pondremos una configuración básica.

Primero creamos el directorio físico donde se almacenará en la zona global, y le asignamos permisos 700.
bash-3.00# mkdir -p /opt/zones/test-zone
bash-3.00# chmod 700 /opt/zones/test-zone

Empezamos con la configuración de la zona.
bash-3.00# zonecfg -z test-zone
test: No se ha configurado esa zona
Use 'create' para comenzar a configurar una zona nueva.

zonecfg:test> create

Definimos donde se creará el sistema de archivos de la zona global.
zonecfg:test> set zonepath=/opt/zones/test-zone

La configuramos para que sea autoarrancable.
zonecfg:test> set autoboot=true

Configuramos la red. En mi caso me interesa asignar la interfaz bge3 de la zona global.
zonecfg:test> add net
zonecfg:test:net> set address=192.168.1.35/24
zonecfg:test:net> set physical=bge3
zonecfg:test:net> end


Configuramos el pool que creamos anteriormente.
zonecfg:test:net> set pool=pool1


Podemos añadir discos.
zonecfg:test> add device
zonecfg:test:device> set match=/dev/dsk/c0t0d3s1
zonecfg:test:device> end

zonecfg:test> add device
zonecfg:test:device> set match=/dev/rdsk/c0t0d3s1
zonecfg:test:device> end

Verificamos y guardamos los cambios.
zonecfg:test:net> verify
zonecfg:test:net> commit
zonecfg:test:net> exit
Instalamos la zona.
bash-3.00# zoneadm -z test-zone install

Arrancamos la zona.

bash-3.00# zoneadm -z test-zone boot
La primera vez que accedemos a la zona lo haremos en modo consola. Nos preguntará por configuraciones básicas como el nombre del host.
bash-3.00# zlogin -C test-zone

Ya tenemos nuestra zona funcionando! ahora podemos acceder a ella desde la zona global con el comando zlogin o directamente con la ip que le hemos asignado.

Por último listo algunos comandos básicos para la administración de las zonas.
Listar todas las zonas
bash-3.00# zoneadm list -cv
Arrancar una zona
bash-3.00# zoneadm -z test-zone boot
Parar una zonabash-3.00# zoneadm -z test-zone halt
Reiniciar una zonabash-3.00# zoneadm -z test-zone reboot
Loguearse en una zonabash-3.00# zlogin test-zone

No hay comentarios:

Publicar un comentario