Desde el lanzamiento de la versión del sistema operativo Solaris 10 del año 2005, se pueden realizar virtualizaciones a través de software, esta funcionalidad se llama Solaris Zones (Zonas de Solaris).
Tabla de Contenidos
- ¿Qué es una Zona en Solaris?
- ¿Para que se usa una zona?
- Crear un Capacity Planning
- Recomendaciones de Oracle para las zonas
- Comandos más usados para administrar zonas
- Conclusión
¿Qué es una Zona en Solaris?
La idea es crear a través de las zonas, un servidor aislado con una cantidad limitada de recursos de CPU, Memoria y Almacenamiento. Este servidor sería una instancia del servidor principal (que se denomina GLOBAL aquí se encuentra el sistema operativo instalado). Cada servidor virtualizado (zona) se ejecuta sobre la misma versión del kernel, pudiendo usar todos los recursos asignados hasta el límite de esa zona en el momento que está fue configurada.
¿Para que se usa una zona?
Cada zona puede ejecutar diferentes aplicaciones, también una zona tiene su propio nombre, cantidad de memoria, procesadores, acceso a una interface de red sea física o virtual y su almacenamiento. Por seguridad, una zona no puede tener acceso a ningún proceso de otra zona.
El estado de una zona puede ser: configured, installed, incomplete, ready, running.
Crear un Capacity Planning
No obstante, ¿Cuál es la justificación para usar zonas? Las zonas son idóneas para entornos computacionales que consolidan varias aplicaciones en un único servidor y se necesitan tener un nivel de aislamiento entre las zonas.
Una consideración muy importante cuando trabajamos con infraestructura, es tener un plan de capacidad (capacity planning) para establecer nuestras necesidades de recursos computacionales y el uso que le vamos a dar a cada zona en nuestra empresa, siempre … siempre ... siempre debemos documentar en detalle la distribución/asignación de los recursos.
Recomendaciones de Oracle Corporation para las zonas
Aquí listo algunas de las tareas recomendadas por Oracle Corporation a la hora de crear las zonas:
- Identificar las aplicaciones que desea ejecutar en las zonas.
- Determinar cuántas zonas vamos a configurar.
- Determinar si la zona utilizará agrupaciones de recursos o CPU asignadas para particionar los recursos del equipo.
- Llevar a cabo tareas de pre-configuración.
- Desarrollar configuraciones.
- Como administrador global o un usuario con las autorizaciones adecuadas, verificar e instalar las zonas configuradas.
- Como administrador global o un usuario con las autorizaciones adecuadas, iniciar las zonas no globales.
- Preparar la zona nueva para uso de producción.
Comandos más usados para administrar zonas
Esta es una guía resumida de los comandos más comunes de uso de Zonas en Solaris. Para una referencia completa usar la documentación de las zonas del sistema operativo Solaris.
Activar el servicio de zonas
Para poder utilizar las zonas, ejecutamos:
global# svcadm enable zones
Listar las zonas
Para obtener un listado de todas las zonas se usa el siguiente comando. En el resultado, la columna ID es la identificación de la zona (debemos considerar que GLOBAL siempre es 0). La columna STATUS indica el estado de la zona. La columna PATH es el directorio donde se encuentra el almacenamiento de los archivos de la zona correspondiente.
global# zoneadm list -icv
Verificar el almacenamiento disponible de una zona
Al ejecutar el comando a continuación desde la zona global, se puede obtener la cantidad de espacio que tiene asignado la zona (gigabytes), cuanto espacio esta siendo usado (gigabytes), cuanto espacio aún hay disponible (gigabytes) y el porcentaje de uso. Usamos el directorio del contenido de la columna PATH de la zona en la cual que estamos interesados en saber su almacenamiento. Donde nombre_directorio_zona es el directorio que asignamos a la zona en el parámetro zonepath.
global# df -kh nombre_directorio_zona
Crear una zona
Para crear una zona debemos considerar que el nombre empieza con un carácter alfanumérico; la longitud máxima es 64 caracteres; el nombre acepta alfanuméricos, subrayado, guiones y puntos; esta reservado el nombre global y no puede iniciar por SUNW; el nombre de la zona debe ser único y no existir previamente.
Entonces, para crear una zona seguimos los siguientes pasos:
- Creamos el directorio donde va a queda el almacenamiento en la zona global.
- Escoger el nombre de la zona, vamos a poner para este artículo mi-zona.
- Creamos la zona con el nombre escogido (mi-zona).
- Configuramos el directorio donde estará el almacenamiento /export/zonas/mi-zona.
- Configuramos la interface de red.
- Asignamos CPU dedicado.
- Asignamos memoria.
A continuación, usando los siguientes comandos creamos la zona:
global# mkdir –p /export/zonas/mi-zona
global# chmod 700 /export/zonas
global# zonecfg -z mi-zona
zonecfg:mi-zona> create
zonecfg:mi-zona> set zonepath=/export/zonas/mi-zona
zonecfg:mi-zona> set autoboot=false
zonecfg:mi-zona> add net
zonecfg:mi-zona:net> set address=10.1.1.10
zonecfg:mi-zona:net> set defrouter=10.1.1.1
zonecfg:mi-zona:net> set physical=hme0
zonecfg:mi-zona:net> end
zonecfg:mi-zona> add dedicated-cpu
zonecfg:mi-zona:dedicated-cpu> set ncpus=1-3
zonecfg:mi-zona:dedicated-cpu> set importance=2
zonecfg:mi-zona:dedicated-cpu> end
zonecfg:mi-zona> add capped-memory
zonecfg:mi-zona:capped-memory> set physical=500m
zonecfg:mi-zona:capped-memory> set swap=100m
zonecfg:mi-zona:capped-memory> set locked=50m
zonecfg:mi-zona:capped-memory> end
zonecfg:mi-zona> verify
zonecfg:mi-zona> commit
zonecfg:mi-zona> exit
global# zoneadm -z mi-zona install
global# zoneadm -z mi-zona boot
Conectarse a una zona
Para conectarnos a una zona utilizamos el comando:
# zlogin mi-zona
Para arrancar una zona
Para arrancar una zona usamos el comando:
# zoneadm –z mi-zona boot
Para detener una zona
Para parar una zona usamos el comando:
# zoneadm –z mi-zona halt
Para reiniciar una zona
Para reiniciar una zona usamos el comando:
# zoneadm –z mi-zona reboot
Desinstalar una zona
Cuando se desinstala una zona pasa a STATUS configured.
# zoneadm -z mi-zona uninstall -F
Eliminar una zona
Eliminamos la zona con el comando:
# zonecfg -z mi-zona delete -F
Mostrar el nombre de la zona
Este comando imprime en la consola el nombre de la zona donde estamos actualmente:
# zonename
Conclusión
La gestión de zonas en Solaris es una habilidad esencial para cualquier administrador de sistemas que busque optimizar los recursos y la seguridad en su entorno de trabajo. A través de comandos específicos como `zoneadm`, `zonecfg`, y `zlogin`, es posible crear, configurar, administrar y eliminar zonas de manera eficiente. Estas capacidades permiten consolidar múltiples aplicaciones en un solo servidor físico mientras se mantienen aisladas, garantizando un uso óptimo de los recursos y la seguridad.