Solaris Containers-Resource Management and Solaris Zones Contenedor Nombre: o2cmx Zonepath: /export/zone/o2cmx Autoboot: true Herencia dir: /lib, /platform, /usr, /sbin (por default) Format para dejar 34 GB partición 0, 34 GB en partición 1 (depende del requerimiento) y 256 MB partición 7 (para réplicas) # prtvtoc /dev/rdsk/c1t2d0s2 > /tmp/disco cat /tmp/disco #fmthard -s /tmp/disco /dev/rdsk/c1t3d0s2 Verificar con format Verificar replicas con metadb (nos indica las 3 réplicas en cada disco). Los mirror donde residiran los zonepaths, y los fs's se llamará d7 para una zona y d8 para la otra y estarán formado por los submirror d71, d72, d81, d82 respectivamente. Para crear los metadispositivos #metainit d71 1 1 c1t2d0s0 #metainit d72 1 1 c1t3d0s0 Crear el espejo #metainit d7 -m d71 Crear la soft partition donde residira el zone path de la zona (este fs SI debe estar montado) #metainit d700 -p d7 12g Ahora crear la soft partition donde residiran los fs's de la aplicación (estos fs's NO deben de estar montados, y se crean de la misma forma) # metainit d701, d702, d703 y asi sucesivamente los demas fs's de las soft partition Metastat después de haber atachado los dos submirrors (d71, d72) # metastat -p d7 -m d71 d72 1 d71 1 1 c1t2d0s0 d72 1 1 c1t3d0s0 d700 -p d7 -o 10208 -b 25165824 d701 -p d7 -o 25176064 -b 3072000 d702 -p d7 -o 28248096 -b 3072000 Crear el file system de cada soft partition: #newfs /dev/md/rdsk/d700 #newfs /dev/md/rdsk/d701 #newfs /dev/md/rdsk/d702 Crear el punto de montaje (solo para el zonepath de la zona) #mkdir /export/zone/o2cmx Ponemos en el /etc/vfstab la linea del zonepath de la zona: /dev/md/dsk/d700 /dev/md/rdsk/d700 /export/zone/o2cmx ufs 2 yes - Montar Zone #mountall Cambiamos permisos a el punto de montaje #chmod 700 /expor/zone/o2cmx Ahora crear zonas #zoneadm list -cv Crear el contenedor #zonecfg -z o2cmx zonecfg:o2cmx> create zonecfg:o2cmx>set zonepath=/export/zone/o2cmx (ya fue anteriormente creado y montado Desheredar FS Globales zonecfg:sabam_db> remove inherit-pkg-dir dir=/lib Renombrar una Zona, Solaris 10 8/07 release zonecfg:my-zone> set zonename=newzone zonecfg:my-zone> commit zonecfg:my-zone> exit Para la instalación del sistema operativo (hace un montado read-only) #zoneadm -z o2cmx install (tarda alrededor de 20 minutos) Verificar si ya tengo el nuevo contenedor: #zoneadm list -cv Para bootear la zona: #zoneadm -z o2cmx boot Para conectarse a la consola (emula consola serial y concluye la configuración de S.O en la zona) #zlogin -C o2cmx Para añadir los otros fs's (los cuales no deben estar montados en la zona global ): # zonecfg -z o2cmx zonecfg:myzone> add fs zonecfg:myzone:fs> set special=/dev/md/dsk/d701 zonecfg:myzone:fs> set raw=/dev/md/rdsk/d701 zonecfg:myzone:fs> set type=ufs zonecfg:myzone:fs> add options logging zonecfg:myzone:fs> set dir=/o2cmx/logs (directorio que será creado en la zona no global) zonecfg:myzone:fs> end zonecfg:myzone> verify zonecfg:myzone> commit zonecfg:myzone> add fs zonecfg:myzone:fs> set special=/dev/md/dsk/d702 zonecfg:myzone:fs> set raw=/dev/md/rdsk/d702 zonecfg:myzone:fs> set type=ufs zonecfg:myzone:fs> add options logging zonecfg:myzone:fs> set dir=/o2cmx/interfaces (directorio que sera creado en la zona no global) zonecfg:myzone:fs> end zonecfg:myzone> verify zonecfg:myzone> commit zonecfg:myzone> exitfs, cpu shares, dispositivos de cinta, etc. Example>: Dedicated CPUs Con este comando eliminamos la necesidad de crear CPU Pools y asignacion del pool a la zona. zonecfg:g5_mx> add dedicated-cpu After using that command, when that Container boots, Solaris: 1. removes a CPU from the default pool 2. assigns that CPU to a newly created temporary pool 3. associates that Container with that pool, i.e. only schedules that Container's processes on that CPU Further, if the load on that CPU exceeds a default threshold and another CPU can be moved from another pool, Solaris will do that, up to the maximum configured amount of three CPUs. Finally, when the Container is stopped, the temporary pool is destroyed and its CPU(s) are placed back in the default pool. Configurar Red para Zone desde zona global #zonecfg -z g5_mx >info >add net > set address=172.19.200.107 >set physical=ce2 >end >commit >info >exit # zoneadm -z g5_mx reboot (reboot a la zona g5_mx) Para cambiar IP desde la zona global (en forma dinámica sin reboot)# ifconfig ce2:1 plumb 172.19.200.109 netmask 255.0.0.0 + broadcast + up # ifconfig ce2:1 zone g5_mx Para que quede en forma permanente debe hacerse con el zonecfg #zonecfg -z g5_mx >select net address=172.19.200.107 (ip configurada) >set address=172.19.200.109 (nueva ip) >end >verify >commit >exit Esta forma se complementa con la forma dinámica para no hacer reboot Borrar una direccion ip en una zona zonecfg:o2c_mx> remove net address=172.18.156.127 zonecfg:o2c_mx> commit zonecfg:o2c_mx> info Borrar un fs de la zona no global global# zonecfg -z my-zone zonecfg:my-zone> remove fs dir=/cdrom zonecfg:my-zone> commit zonecfg:my-zone> exitZone needs a reboot after permanent change, or perform the dynamic way Mounting Veritas and SVM File Systems 1. Disco SAN - OK Montar vxfs usando lofs # zonecfg -z g5_mx >add fs >set dir=/g5mxtx (punto de montaje que sera creado en la zona) >set special=/export/zone/fs/g5_mx/g5mxtx (punto de montaje del volumen previamente creado, y montado sobre la zona global) >set type=lofs >end >verify >commit >exitRaw Devices Para asignar raw device # zonecfg -z my_zone Para que los cambios sean aplicados es necesario un reboot a la zone: # zoneadm -z my_zone reboot Desde la zona global reboot a zona para que tome el cambio o lo montamos en linea de la siguiente forma: 1) Creamos el punto de montaje en la zona no global# mkdir /export/zone/g5_mx/root/g5mxtx 2) Montar de la siguiente forma en donde el primer path es el punto de montaje en la zona global del vxfs el cual ya esta montado, y el segundo es el path absoluto de el punto de montaje de la zona no global visto desde la global creado en el punto anterior. # mount -F lofs /export/zone/fs/g5_mx/g5mxtx /export/zone/g5_mx/root/g5mxtx Posteriormente entramos a la zona y verificamos el correcto montaje del fs. Para un UFS root@guiam2-adm # pwd (on global zone) Add an rctl (dynamic way) #prctl -n zone.cpu-shares -rv 1 -i zone g5_mx (1 es el numero de shares, votos o acciones que se le asignan a la zona) Add an rctl (permanent way) #zonecfg -z g5_mx Remove a rctl rctl: DB KERNEL PARAMETERS Parámetro Descripción Valor shmsys:shminfo_shmmax Cantidad total de memoria compartida. (1/4 de la memoria fisica por default) Max-shm-memory 4GB shmsys:shminfo_shmmni Max-shm-ids 100 semsys:seminfo_semmni Max-sem-ids 100 semsys:seminfo_semmsl Max-sem-nsems 256 Los valores mostrados en la columna valor, fueron obtenidos del documento "Best Practices for Running Oracle Databases in Solaris Containers" CONFIGURE KERNEL PARAMETERS (WORKSHOP INSTALATION g5_mx zone) WAY 1: A container was created WAY 2 (RECOMMENDED) A container was created Para la memoria compartida: project.max-shm-memory=(privileged,4294967296,deny) = 4G de memoria compartida project.max-shm-memory=(privileged,1073741842,deny) = 1G de memoria compartida project.max-shm-memory=(privileged,8589934592,deny) = 8G de memoria compartida project.max-shm-memory=(privileged,10737418240,deny) = 10G de memoria compartida project.max-shm-memory=(privileged,12884902104,deny) = 12G de memoria compartida TO LIMIT MEMORY FOR PROJECTS Set the rcap.max-rss attribute in /etc/projects file:HOW TO ENABLE RESOURCE CAPPING Turn on resource capping.ENABLE CAPPED MEMORY, SWAP TEMPORARY root@ # rcapadm -z myzone -m 12gbENABLE CAPPED MEMORY, SWAP PERMANENT zonecfg:my-zone> add capped-memory-------------------------------------------------------------------- TIP: Cambiar el zone path de una zona Solaris 10 -------------------------------------------------------------------- Mover zonepath de una Zona a nueva ruta "zonepath". |