¿Sueña Tux en código fuente?

No solo sobre pingüinos se puede escribir

Ajustando ram en Openvz

dejar un comentario »

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

Escrito por jmmejiav

26 enero 2012 a 5:25 PM

Comandos para OpenIndiana – Manejo de servicios

dejar un comentario »

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

Escrito por jmmejiav

20 octubre 2011 a 12:19 PM

Escrito en openindiana, opensolaris

El misterioso caso del espacio en disco desaparecido…

dejar un comentario »

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…

Escrito por jmmejiav

7 octubre 2011 a 12:13 PM

Escrito en GNU/Linux

El freno de la evolución usando una red social

dejar un comentario »

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.

Escrito por jmmejiav

28 septiembre 2011 a 2:37 PM

Escrito en Personal

Etiquetado con

6 Ventajas de la virtualización – Casos reales

dejar un comentario »

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)

Escrito por jmmejiav

14 septiembre 2011 a 5:11 PM

Seguir

Get every new post delivered to your Inbox.

Únete a otros 114 seguidores