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 zonabash-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