Ajustando ram en Openvz
Para modificar los parámetros de memoria ram de las máquinas virtuales que manejo en el trabajo utilizo los siguientes valores (en el ejemplo 102 es el # de la mvirtual)
El primer valor es la memoria asignada (fija) el segundo valor es la memoria tope en caso que la máquina virtual requiera (solo por cortos periodos de tiempo) con el fin de evitar una caída en el servicio. Este valor en la mayoría de sitios es conocida como “Burstable”
256:512
vzctl set 102 –vmguarpages 256M –oomguarpages 256M –privvmpages 256M:512M –save
512:1024
vzctl set 102 –vmguarpages 512M –oomguarpages 512M –privvmpages 512M:1024M –save
1024:2048
vzctl set 102 –vmguarpages 1024M –oomguarpages 1024M –privvmpages 1024M:2048M –save
2048:4096
vzctl set 102 –vmguarpages 2048M –oomguarpages 2048M –privvmpages 2048M:4096M –save
Comandos para OpenIndiana – Manejo de servicios
Como ya hemos hablado en ocasiones pasadas el proyecto Opensolaris de la empresa Sun Microsystems dejo de ser oficialmente soportado por la empresa Oracle (nuevo dueño de Sun). Sin embargo el nucleo del proyecto fue tomando por Illumos.
Para resumir copio / pego un pedazo de texto de wikipedia sobre esto:
“Después de la adquisición de Sun Microsystems, en agosto de 2010, Oracle decidió interrumpir la publicación y distribución de OpenSolaris, así como su modelo de desarrollo, basado en la disponibilidad de versiones de desarrollo compiladas cada dos semanas y versiones estables cada seis meses. Sin embargo, los términos de su licencia libre no han sido modificados, por lo que el código fuente afectado por ella será publicado cuando Oracle publique nuevas versiones de Solaris.
A raíz del cierre del repositorio de OpenSolaris por parte de Oracle, un grupo de ex-desarrolladores de OpenSolaris decidió hacer una bifurcación del código y ahora el desarrollo del núcleo del sistema operativo (o lo que hubiera sido OpenSolaris) continúa con un nuevo proyecto de la comunidad llamada illumos. Illumos es básicamente el código fuente de OpenSolaris, pero reemplazando los componentes privativos que quedaban por código libre, y basado en el desarrollo continuo en forma de comunidad.”
Uno de los “hijos” de Illumos es Open Indiana. (http://openindiana.org/) Distribución en la cual están basados los comandos y ejemplos a continuación.
SMF – utilidad de gestión de servicios administra los servicios en la máquina. La unidad fundamental de administración en la estructura SMF es la instancia de servicio. Cada instancia de servicio se denomina con un identificador de recursos de administración de fallos (FMRI) el cual incluye el nombre del servicio y el de la instancia. Por ejemplo, el FRMI del servicio sendmail es svc:/network/smtp:sendmail; en este ejemplo network/smtp identifica el servicio y sendmail identifica la instancia del servicio.
El comando svcs se utiliza para identificar los servicios que están instalados en el sistema. El comando svcadm se usa para administrar o cambiar el estado de un servicio.
* Para enumerar los servicios instalados en un sistema y el estado de cada uno:
# svcs -a
* Para mostrar un servicio con problemas de cualquier tipo:
# svcs -x
* Mostrar el estado de un servicio específico:
# svcs -l FMRI (FMRI = Fault Managed Resource Identifier – imagina que es el nombre abreviado del servicio)
# svcs -l ssh
fmri svc:/network/ssh:default
name SSH server
enabled true
state online
next_state none
state_time 20 de octubre de 2011 10:49:03 COT
logfile /var/svc/log/network-ssh:default.log
restarter svc:/system/svc/restarter:default
contract_id 76
dependency require_all/none svc:/system/filesystem/local (online)
dependency optional_all/none svc:/system/filesystem/autofs (online)
dependency require_all/none svc:/network/loopback (online)
dependency require_all/none svc:/network/physical (multiple)
dependency require_all/none svc:/system/cryptosvc (online)
dependency require_all/none svc:/system/utmp (online)
dependency optional_all/error svc:/network/ipfilter:default (disabled)
dependency require_all/restart file://localhost/etc/ssh/sshd_config (online)
* Para iniciar un servicio:
# svcadm enable FMRI
* Comprobar que se esta ejecutando:
# svcs -a | grep FMRI
* Detener un servicio:
# svcadm disable FMRI
Al instalar el sistema algunos servicios se encuentran en ejecución que no son necesarios (ejemplo sendmail)… vamos a ver como des-habilitarlos
1. verificar estado del servicio:
# svcs -a |grep sendmail
online 11:22:39 svc:/network/sendmail-client:default
online 11:22:39 svc:/network/smtp:sendmail
2. bajar el servicio
# svcadm disable sendmail-client sendmail
3. verificar cambios
# svcs -a |grep sendmail
disabled 13:46:28 svc:/network/smtp:sendmail
disabled 13:47:07 svc:/network/sendmail-client:default
El misterioso caso del espacio en disco desaparecido…
En ocasiones en nuestros servidores nos encontramos con el extraño caso de espacio “desaparecido”.
Cuando df -h y du -ch no concuerdan, “espacio perdido”, lo que nos pasa es que cuando borramos logs del httpd y el proceso sigue corriendo, éstos no son reclamados por el sistema de archivos porque el proceso los tiene atados.
[root@servidor ~]# du -ch –max-depth=0 /
7,7G /
7,7G total[root@servidor ~]# df -h
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/mapper/VolGroup00-LogVol00
32G 28G 1,7G 95% /
/dev/sda1 99M 24M 71M 25% /boot
tmpfs 1014M 0 1014M 0% /dev/shm
21 gigas “perdidos”, por qué?
Se verifica primero que mensajes esta marcando apache – httpd
[root@servidor ~]# lsof | grep httpd | grep deleted
httpd 1672 root 2w REG 253,0 361 7996589 /var/log/httpd/error_log (deleted)
httpd 1672 root 10w REG 253,0 361 7996589 /var/log/httpd/error_log (deleted)
httpd 1672 root 11w REG 253,0 237 7996597 /var/log/httpd/ssl_error_log (deleted)
httpd 1672 root 12w REG 253,0 21653919235 7996497 /var/log/httpd/access_log (deleted)
httpd 1672 root 13w REG 253,0 0 7996465 /var/log/httpd/ssl_access_log (deleted)
httpd 1672 root 14w REG 253,0 0 7996476 /var/log/httpd/ssl_request_log (deleted)
httpd 13568 apache 2w REG 253,0 361 7996589 /var/log/httpd/error_log (deleted)
httpd 13568 apache 10w REG 253,0 361 7996589 /var/log/httpd/error_log (deleted)
httpd 13568 apache 11w REG 253,0 237 7996597 /var/log/httpd/ssl_error_log (deleted)
httpd 13568 apache 12w REG 253,0 21653919235 7996497 /var/log/httpd/access_log (deleted)
httpd 13568 apache 13w REG 253,0 0 7996465 /var/log/httpd/ssl_access_log (deleted)
httpd 13568 apache 14w REG 253,0 0 7996476 /var/log/httpd/ssl_request_log (deleted)
httpd 13570 apache 2w REG 253,0 361 7996589 /var/log/httpd/error_log (deleted)
httpd 13570 apache 10w REG 253,0 361 7996589 /var/log/httpd/error_log (deleted)
httpd 13570 apache 11w REG 253,0 237 7996597 /var/log/httpd/ssl_error_log (deleted)
httpd 13570 apache 12w REG 253,0 21653919235 7996497 /var/log/httpd/access_log (deleted)
Desde cuando httpd está corriendo? desde agosto 20 (en este ejemplo)
[root@servidor ~]# ps aux | grep httpd
root 1672 0.0 0.6 163100 12868 ? Ss Aug20 0:27 /usr/sbin/httpd
apache 13572 0.6 0.4 163628 8408 ? S 14:07 0:00 /usr/sbin/httpd
apache 13573 0.5 0.4 163628 8408 ? S 14:07 0:00 /usr/sbin/httpd
apache 13574 0.6 0.4 163628 8408 ? S 14:07 0:00 /usr/sbin/httpd
apache 13591 0.5 0.4 163628 8408 ? S 14:07 0:00 /usr/sbin/httpd
apache 13592 0.4 0.4 163628 8408 ? S 14:07 0:00 /usr/sbin/httpd
apache 13593 0.4 0.4 163628 8408 ? S 14:07 0:00 /usr/sbin/httpd
root 13595 0.0 0.0 3940 728 pts/1 R+ 14:08 0:00 grep httpd
En un intento de liberar espacio se han borrado los logs varias veces como se ve en el lsof.
Solución:
service httpd stop
service httpd start
Razón: bajar el proceso libera los archivos eliminados de forma que el espacio libre es reclamado por el sistema de archivos.
du y df vuelven a ser consistentes.
[root@servidor ~]# service httpd start
Iniciando httpd: httpd: apr_sockaddr_info_get() failed for servidor
httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
[ OK ]
[root@servidor ~]# lsof | grep httpd | grep deleted
[root@servidor ~]# df -h
S.ficheros Tamaño Usado Disp Uso% Montado en
/dev/mapper/VolGroup00-LogVol00
32G 7,7G 22G 27% /
/dev/sda1 99M 24M 71M 25% /boot
tmpfs 1014M 0 1014M 0% /dev/shm
Nota: esta mini-guia fue basada en un correo de Miguel Molina, quien amablemente me mostró como encontrar las gb perdidas en el camino. Si lo ven salúdenlo y denle las gracias…
El freno de la evolución usando una red social
El ser humano es una criatura de cambios, de retos superados, de innovación. Nuestra especie se distingue por intentar mejorar (en ocasiones con éxito) el medio ambiente o las condiciones a su alrededor y para lograr este objetivo crea o destruye según le convenga.
En la década de los 60 se planeo y llevo a cabo la interconexión de máquinas de calculo en una red llamada ARPANET la cual tenía como objetivo principal la unión de ordenadores de diferentes agencias del gobierno de USA para defensa principalmente.
Luego de esta base se fueron agregando otras entidades, universidades y con el paso de los años se llegó a la red Internet que conocemos actualmente. (Nota: obviamente falta mucha mas información pero en resumen esta es la historia de por donde navegas)
Yo personalmente creo que el ciberespacio será el final de la especie humana… Porque significa el fin de la innovación. Michael Crichton lo expreso de manera excelsa en estas líneas:
“Esa idea de mantener interconectado al mundo entero equivaldrá a la muerte en masa. Todo biólogo sabe que los pequeños grupos aislados evolucionan más rápidamente. Si dejamos mil aves en una isla, evolucionan muy deprisa. Si ponemos mil aves en un gran continente, el ritmo evolutivo disminuye. Actualmente en nuestra especie la evolución se produce en esencia a través del comportamiento. Innovamos el comportamiento para adaptarnos. Y todo el mundo sabe que la innovación sólo se da en pequeños grupos. Si tenemos un comité de tres personas, es posible que lleguen a alguna parte. Con diez personas el asunto se complica. Y si son treinta ya no hay nada que hacer. Con treinta millones resulta absolutamente imposible. Ése es el resultado de la comunicación de masas: impide que ocurran cosas.
La comunicación de masas anula la diversidad. Uniforma todos los rincones del planeta. Bangkok, Tokio o Londres se convierten en lo mismo: un McDonald’s en una esquina, un negocio de Benneton en otra, y un negocio de Gap al otro lado de la calle. Las diferencias regionales se desvanecen.
En un mundo dominado por los medios de comunicación, hay menos de todo salvo listas de los diez mejores libros, discos, películas o ideas. A la gente le preocupa que se pierda la diversidad de las especies en las selvas tropicales, pero, ¿y la diversidad intelectual, nuestro recurso más valioso? Eso está desapareciendo más deprisa que los árboles. Sin embargo, de eso no nos damos cuenta, y ahora planeamos conectar a siete mil millones de personas mediante el ciberespacio. Y con eso se paralizará la especie entera. Todo se detendrá de repente. Todo el mundo pensará lo mismo al mismo tiempo. Uniformidad global.”
Es cierto que continuaremos inventando y mejorando, se crearan mejores antibióticos y mediante ingeniería genética se desarrollaran plantas mas resistentes que produzcan mas – transgenicos (y de paso generen mutaciones en las personas que consuman dichos alimentos) (no mutaciones de superpoderes sino de las mutaciones de enfermedad). El ser humano mejorará sus condiciones de salud y con la destrucción de su medio ambiente y especies que considera “no vitales o necesarias” podrá continuar su camino por la tierra.
Sin embargo perderemos esa parte no tangible que nos permite comunicarnos de manera eficiente con personas a nuestro alrededor. Uno de los primeros pasos para esto se encuentra en las redes sociales.
Tienes una cuenta en Facebook o similar? cuantos “amigos virtuales” tienes en tu lista? Cuantos “amigos reales” tienes?
Que es un “amigo real”? Bueno, no lo pongamos difícil como que sabe tooodo de ti. Algo simple: conoce un poco a tu familia, a entrado a tu casa y en alguna ocasión saliste a algún sitio con este amigo. O si es compañero de trabajo o estudio al menos todos los días tratas con el y sabe que te gusta o desagrada.
Listo, entonces cuantos “amigos reales” tienes? obviamente dentro de esta definición encajan los familiares cercanos.
En el rango de ideas anterior (disculpame si ya estas un poco enredado) entonces decimos que la interconexión con el mundo y todos estos “amigos virtuales” es bueno?
No lo creo, porque nos convertimos en seres superficiales que dependemos de una página de internet para saber cuando alguien esta enfermo o se graduó, sabemos de noviazgos, compromisos, matrimonios y separaciones por medio de mirar el estado de una persona (ya no nos interesamos en saber con quien o porque…) nos enteramos de nacimientos, primeros pasos y primeras palabras por la red social (recuerdo cuando mis hermanos caminaron solos que mis familiares se enteraron porque nos visitaban o por llamadas telefónicas)
Nos enteramos de la vida de las personas sin necesidad de interactuar con ellas. Somos meros espectadores (como si se tratase de una novela) de la vida de nuestros “amigos”.
El primer paso para detener el desarrollo de la humanidad es perder contacto con nuestra propia humanidad y dejar que la humanidad pase sin tocarnos.
6 Ventajas de la virtualización – Casos reales
La virtualización se basa en unir, integrar, mejorar.
Unir: En los centros de computo por lo general vemos una gran cantidad de máquinas fisicas corriendo un servicio por máquina, dejando de utilizar todo el poder de los procesadores actuales. El administrador de infraestructura se siente orgulloso (y con razón) de que sus 30 servidores funcionan como un reloj, pero si una máquina falla por lo general no se tiene un segundo servidor que pueda reemplazarlo.Con virtualización puedo migrar o recuperar un backup en una nueva máquina para no tener largos tiempos muertos.
En ocasiones en un solo servidor (sin importar su tamaño) se encarga de 1 o 2 aplicaciones corriendo dentro de ella. Por ejemplo la pagina de tu compañía esta corriendo sobre 1 máquina física? Que % de uso de CPU está en uso?
Lo que un sysadmin por lo general implementaría en el anterior ejemplo es un servidor con poca memoria como para no desaprovechar mucho la máquina (estoy hablando de una pagina simple… nada de alto trafico / aplicaciones)
Si se virtualiza un número de esos sistemas infrautilizados en un solo servidor físico, se ahorrará energía, espacio, capacidad de refrigeración y administración, debido a que se ha reducido el número de servidores físicos.
Algunas ventajas de la virtualización son:
Aislamiento: las máquinas virtuales son totalmente independientes, entre sí y con el hypervisor. Por tanto un fallo en una aplicación o en una máquina virtual afectará únicamente a esa máquina virtual. El resto de máquinas virtuales y el hypervisor seguirán funcionando normalmente.
Un hipervisor (en inglés hypervisor) o monitor de máquina virtual (virtual machine monitor) es una plataforma que permite aplicar diversas técnicas de control de virtualización para utilizar, al mismo tiempo, diferentes sistemas operativos (sin modificar o modificados en el caso de paravirtualización) en una misma computadora. Es una extensión de un término anterior, “supervisor”, que se aplicaba a kernels de sistemas operativos. (Tomado de wikipedia – mas info: google)
Seguridad: cada máquina tiene un acceso privilegiado (root o administrador) independiente. Por tanto, un ataque de seguridad en una máquina virtual sólo afectará a esa máquina.
Flexibilidad: podemos crear las máquinas virtuales con las características de CPU, memoria, disco y red que necesitemos, inclusive especificando a que “vlan” debe estar conectada, sin necesidad de “comprar” un servidor con esas características. También podemos tener máquinas virtuales con distintos sistemas operativos, ejecutándose dentro de una misma máquina física.
Agilidad: el despliegue o creación de una máquina virtual es un proceso muy rápido, básicamente la ejecución de un comando. Por tanto, si necesitamos un nuevo servidor lo podremos tener casi al instante, sin pasar por el proceso de compra, configuración, etc.
Portabilidad: toda la configuración de una máquina virtual reside en uno o varios ficheros. Esto hace que sea muy fácil clonar o transportar la máquina virtual a otro servidor físico, simplemente copiando y moviendo dichos ficheros que encapsulan la máquina virtual.
Recuperación rápida en caso de fallo: si se dispone de una copia de los ficheros de configuración de la máquina virtual, en caso de desastre la recuperación será muy rápida, simplemente arrancar la máquina virtual con los ficheros de configuración guardados. No es necesario reinstalar, recuperar backups y otros procedimientos largos que se aplican en las máquinas físicas.
Estas ventajas tienen un precio, que consiste fundamentalmente en una pérdida de rendimiento, es decir, una aplicación generalmente correrá más despacio en una máquina virtual que en un servidor físico.
La degradación dependerá de la tecnología de virtualización utilizada, de la configuración realizada a nivel hypervisor y de la propia aplicación.
Por regla general, las aplicaciones que más repercuten la pérdida de rendimiento son las que realizan operaciones frecuentes de entrada/salida.
Y el hardware?
Otro aspecto a tener en cuenta es que la máquina física deberá contar con suficiente memoria para poder arrancar todas las máquinas virtuales.
Si queremos crear, por ejemplo, 10 máquinas virtuales en un servidor físico y que estén funcionando simultáneamente, hay tecnologías que permiten hacerlo con 1 sola CPU física. Pero al menos necesitaremos 1 GB de memoria para cada máquina virtual, más la requerida por el hypervisor, lo que daría lugar a unos requerimientos de unos 12 GB de memoria. Es decir, necesitaríamos un servidor con 1 CPU y 12 GB de memoria (lo que es una configuración bastante extraña). Recordemos sin embargo que la mayoría de servidores actuales manejan procesadores de múltiples núcleos y algunas herramientas para virtualización permiten asignar por ejemplo a una máquina virtual múltiples núcleos.
En casa por ejemplo se pueden desplegar múltiples máquinas virtuales con el fin de realizar pruebas (instalar al mismo tiempo Windows y todas las máquinas Linux que queramos probar sin necesidad de formatear el disco duro con cada instalación)
