<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Rubén Ortiz &#187; OpenVZ</title>
	<atom:link href="http://www.rubenortiz.es/category/virtualizacion/openvz/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.rubenortiz.es</link>
	<description>Blog personal de Rubén Ortiz</description>
	<lastBuildDate>Fri, 30 Jul 2010 09:31:20 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>OpenVZ  &#8211; cambiar timezone</title>
		<link>http://www.rubenortiz.es/2009/12/15/openvz-cambiar-timezone/</link>
		<comments>http://www.rubenortiz.es/2009/12/15/openvz-cambiar-timezone/#comments</comments>
		<pubDate>Tue, 15 Dec 2009 15:07:49 +0000</pubDate>
		<dc:creator>Rubén Ortiz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenVZ]]></category>

		<guid isPermaLink="false">http://www.rubenortiz.es/?p=2715</guid>
		<description><![CDATA[http://wiki.openvz.org/Timezone During the distribution (redhat/centos) installer, you choose the timezone for your HN. The container template has its own preconfigured timezone. So, it is very possible for the zones to differ. #! /bin/bash for f in `ls /vz/private` do vzctl exec $f rm -f /etc/localtime 2>/dev/null vzctl exec $f ln -s /usr/share/zoneinfo/Europe/Madrid /etc/localtime done Y [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-2119 aligncenter" title="openvz_logo" src="http://www.rubenortiz.es/wp-content/uploads/2009/07/openvz_logo-300x76.jpg" alt="openvz_logo" width="300" height="76" /></p>
<p><a href="http://">http://wiki.openvz.org/Timezone</a></p>
<blockquote><p>During the distribution (redhat/centos) installer, you choose the timezone for your HN. The container template has its own preconfigured timezone. So, it is very possible for the zones to differ. </p></blockquote>
<p><code>#! /bin/bash<br />
for f in `ls /vz/private`<br />
do<br />
vzctl exec $f rm -f /etc/localtime 2>/dev/null<br />
vzctl exec $f ln -s /usr/share/zoneinfo/Europe/Madrid /etc/localtime<br />
done<br />
</code></p>
<p>Y funcionó <img src='http://www.rubenortiz.es/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubenortiz.es/2009/12/15/openvz-cambiar-timezone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Thread.error: can&#8217;t start new thread</title>
		<link>http://www.rubenortiz.es/2009/07/17/thread-error-cant-start-new-thread/</link>
		<comments>http://www.rubenortiz.es/2009/07/17/thread-error-cant-start-new-thread/#comments</comments>
		<pubDate>Fri, 17 Jul 2009 08:03:26 +0000</pubDate>
		<dc:creator>Rubén Ortiz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenVZ]]></category>

		<guid isPermaLink="false">http://www.rubenortiz.es/?p=2118</guid>
		<description><![CDATA[Al ejecutar &#8220;yum update&#8221; me apareció este error. Era bastante descriptivo pero aún y así busqué algo de información y estaba claro que era un tema de memoria. Como ese mismo día estaba actualizando mis contenedores, a nivel de recursos y demás, me quedó claro que al limitar los recursos de memoria del contenedor a [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: center;"><img class="size-medium wp-image-2119 aligncenter" title="openvz_logo" src="http://www.rubenortiz.es/wp-content/uploads/2009/07/openvz_logo-300x76.jpg" alt="openvz_logo" width="300" height="76" /></p>
<p>Al ejecutar &#8220;yum update&#8221; me apareció este error. Era bastante descriptivo pero aún y así busqué algo de información y estaba claro que era un tema de memoria. Como ese mismo día estaba actualizando mis contenedores, a nivel de recursos y demás, me quedó claro que al limitar los recursos de memoria del contenedor a un nivel muy mínimo (128 MB o 256 MB) yum no podía alojar en memoria la cantidad suficiente de datos para iniciar el proceso. Así que, deje dos contenedores de funcionalidades muy bajas a 512 MB de memoria y su respectiva capacidad de proceso. Entonces al ejecutar &#8220;yum update&#8221; de nuevo todo funcionó bien.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubenortiz.es/2009/07/17/thread-error-cant-start-new-thread/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Orphaned Socket Dropped (II)</title>
		<link>http://www.rubenortiz.es/2009/04/06/orphaned-socket-dropped-ii/</link>
		<comments>http://www.rubenortiz.es/2009/04/06/orphaned-socket-dropped-ii/#comments</comments>
		<pubDate>Mon, 06 Apr 2009 10:49:55 +0000</pubDate>
		<dc:creator>Rubén Ortiz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenVZ]]></category>

		<guid isPermaLink="false">http://www.rubenortiz.es/?p=1697</guid>
		<description><![CDATA[He querido rescatar este tema, porque he encontrado información útil al respecto. Investigando otros temas, volvió a aparecer este &#8220;problema&#8221;. Cuando miramos los mensajes del anfitrión, vemos lo siguiente: # cat /var/log/messages &#124; grep ’socket’ [...] Apr 20 20:46:32 hn248 kernel: Orphaned socket dropped (156,624 in CT248) [...] Se puede decir que, las causas de [...]]]></description>
			<content:encoded><![CDATA[<p>He querido rescatar este tema, porque he encontrado información útil al respecto. Investigando otros temas, volvió a aparecer este &#8220;problema&#8221;. Cuando miramos los mensajes del anfitrión, vemos lo siguiente:</p>
<p><code><br />
<strong># cat /var/log/messages | grep ’socket’</strong><br />
[...]<br />
Apr 20 20:46:32 hn248 kernel: Orphaned socket dropped (156,624 in CT248)<br />
[...]</code></p>
<p><span id="more-1697"></span>Se puede decir que, las causas de la aparición de este aviso, que no problema están claras.</p>
<ol>
<li>El número de sockets huérfanos en una VE es &gt;= 1/4 * (numtcpsock.barrier)</li>
<li>El número de sockets huérfanos en una VE es &gt; (sysctl net.ipv4.tcp_max_orphans)</li>
</ol>
<p>La regla uno dice que, si el número de sockets huérfanos es mayor o igual que la cuarta parte del numtcpsock.barrier asignado a una VE, nos informará de esta situación. La dos, explica que si el total de sockets huérfanos es mayor que el valor configurado en el sysctl, actuará igual.</p>
<p>¿Pero es realmente un &#8220;problema&#8221;? Según lo que he leído en los foros de OpenVZ, no.Voy a citarlo literalmente:</p>
<p><em>&#8220;Un socket huérfano es algo así como una sesión fantasma. No está cerrada correctamente que, sin embargo, puede contener data o por otras razones, no puede ser liberada inmediatamente y debe &#8220;vivir&#8221; algún tiempo más después de su cierre. Usualmente, estos sockets aparecen porque el cliente dejó de responder(crashed).<span class="MsgBodyText"><br />
</span></em></p>
<p><em>El kernel de OpenVZ limita el número de sockets tcp que pueden acceder por VE, y si todos los sockets de una VE son huérfanos, nadie puede conectarse a esa VE. Eso es por lo que el kernel limita el número máximo de sockets huérfanos a un 1/4 del numtcpsock asignado a una VE. C</em></p>
<p><em>Cuando dentro de una VE se alcanza ese límite, el kernel muestra el mensaje &#8220;<span class="MsgBodyText">TCP: too many of orphaned sockets&#8221; y <strong>libera esos sockets.</strong> Ese es el comportamiento correcto y los kernel de linux suelen hacer lo mismo en algunos casos extraños.<br />
</span></em></p>
<p><em>Es por eso que, esto no es un problema, el kernel sólo informa de que tu VE ha producido sockets que no se han cerrado correctamente. Para prevenir este mensaje  puedes intentar incrementar el numtcpsock para tus VE&#8217;s.<span class="MsgBodyText"><br />
Vasily Averin&#8221;.</span></em></p>
<p><strong><span class="MsgBodyText">Links</span></strong></p>
<ul>
<li><a title="openvz orphaned socket dropped" href="http://forum.openvz.org/index.php?&amp;t=msg&amp;th=2892"><span class="MsgBodyText">http://forum.openvz.org/index.php?&amp;t=msg&amp;th=2892</span></a><em><span class="MsgBodyText"><br />
</span></em></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.rubenortiz.es/2009/04/06/orphaned-socket-dropped-ii/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OpenVZ &#8211; sshd dead but subsys locked</title>
		<link>http://www.rubenortiz.es/2009/03/25/openvz-sshd-dead-but-subsys-locked/</link>
		<comments>http://www.rubenortiz.es/2009/03/25/openvz-sshd-dead-but-subsys-locked/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 09:28:58 +0000</pubDate>
		<dc:creator>Rubén Ortiz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenVZ]]></category>

		<guid isPermaLink="false">http://www.rubenortiz.es/?p=1687</guid>
		<description><![CDATA[Me apareció este error en un container de OpenVZ, parece que el error era que no el /dev/null no estaba bien creado y el servicio sshd lo necesita de alguna manera, seguí estos pasos y el servicio arrancó bien. # rm -rf /dev/null # mknod -m 666 /dev/null c 1 3 # /etc/init.d/sshd start]]></description>
			<content:encoded><![CDATA[<p>Me apareció este error en un container de OpenVZ, parece que el error era que no el /dev/null no estaba bien creado y el servicio sshd lo necesita de alguna manera, seguí estos pasos y el servicio arrancó bien.</p>
<p><code><strong># rm -rf /dev/null<br />
# mknod -m 666 /dev/null c 1 3<br />
# /etc/init.d/sshd start</strong></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubenortiz.es/2009/03/25/openvz-sshd-dead-but-subsys-locked/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Unable to open pty: No such file or directory</title>
		<link>http://www.rubenortiz.es/2009/01/09/unable-to-open-pty-no-such-file-or-directory/</link>
		<comments>http://www.rubenortiz.es/2009/01/09/unable-to-open-pty-no-such-file-or-directory/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 11:11:28 +0000</pubDate>
		<dc:creator>Rubén Ortiz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenVZ]]></category>

		<guid isPermaLink="false">http://www.rubenortiz.es/?p=589</guid>
		<description><![CDATA[Este problema es bastante común, y está bastante documentado. La razón es el paquete udev dentro del VE o container. Crear los dispositivos pty y tty sólo afecta al VE en cuestión. Udev no conoce nada sobre esos dispositivos. El crea archivos según sus propias reglas, por eso hemos de decirle a udev que ha [...]]]></description>
			<content:encoded><![CDATA[<p>Este problema es bastante común, y está bastante documentado. La razón es el paquete udev dentro del VE o container. Crear los dispositivos pty y tty sólo afecta al VE en cuestión. Udev no conoce nada sobre esos dispositivos. El crea archivos según sus propias reglas, por eso hemos de decirle a udev que ha de crear los dispositivos tty o pty.<br />
<span id="more-589"></span><br />
<code><br />
Error:<br />
vzctl enter VEID<br />
enter into VE VEID failed<br />
Unable to open pty: No such file or directory</code></p>
<p>Para sistemas RPM (RedHat, CentOS, Fedora), arreglar el problema temporalmente</p>
<p><code><strong># vzctl exec VEID /sbin/MAKEDEV pty<br />
# vzctl exec VEID /sbin/MAKEDEV tty<br />
#vzctl enter VEID</strong></code></p>
<p>Para solventar el problema permanentemente</p>
<p>1. Editamos el archivo /etc/rc.sysinit del container</p>
<p> 2. Comentamos  la linea donde se inicia udev<br />
<code><strong>#/sbin/start_udev</strong></code></p>
<p>3. Añadimos a continuación los siguientes comandos<br />
<code><strong>/sbin/MAKEDEV tty<br />
/sbin/MAKEDEV pty</strong></code></p>
<p>4. Reiniciamos nuestro container</p>
<p><code> <strong># vzctl restart VEID</strong></code></p>
<p>Para sistemas no basados en RPM. Es algo problemático utilizar Ubutun o Debian con OpenVZ por el simple hecho que, en el mismo foro de OpenVZ, recomiendan no utilizar containers de esas distribuciones. Se crean algunos problemas añadidos, aún así, hay gente que lo utiliza.</p>
<p>La solución descrita más arriba no funciona en Ubuntu:</p>
<p><code>Ubuntu 9.04<br />
vzctl exec 3333 '/sbin/MAKEDEV /pty'<br />
/sbin/MAKEDEV: warning: can't read /proc/devices<br />
/sbin/MAKEDEV: don't know how to make device "/pty"</code></p>
<p>Para resolver el error se comentan 2 opciones<br />
<code><strong># vzctl exec 3333 'dpkg --force-depends --purge udev'</strong></code></p>
<p>y<br />
<code><br />
<strong># vzctl exec veid update-rc.d -f udev remove<br />
# vzctl restart veid</strong></code></p>
<p>No puedo comentar nada porque no tengo ningún container con Ubuntu, Debian o Slackware.</p>
<p><strong>Links</strong></p>
<ul>
<li><a title="openitc" href="http://forum.openvz.org/index.php?t=tree&amp;th=6986&amp;mid=34077&amp;&amp;rev=&amp;reveal=">http://forums.openitc.co.uk/index.php?topic=3.0</a></li>
<li><a title="sherin.in" href="http://www.sherin.in/index.php/2008/05/15/unable-to-open-pty-no-such-file-or-directory/">http://www.sherin.in/index.php/2008/05/15/unable-to-open-pty-no-such-file-or-directory/</a></li>
<li><a title="unable to open pty" href="http://forum.openvz.org/index.php?t=tree&amp;th=6986&amp;mid=34077&amp;&amp;rev=&amp;reveal=">http://wiki.openvz.org/VPS_enter_failed</a></li>
<li><a title="unable to open pty" href="http://forum.openvz.org/index.php?t=tree&amp;th=6986&amp;mid=34077&amp;&amp;rev=&amp;reveal=">http://forum.openvz.org/index.php?t=tree&amp;th=6986&amp;mid=34077&amp;&amp;rev=&amp;reveal=</a></li>
<li><a title="david toribio" href="http://david.toribio.eu/2008/10/11/unable-to-open-pty-no-such-file-or-directory/">http://david.toribio.eu/2008/10/11/unable-to-open-pty-no-such-file-or-directory/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.rubenortiz.es/2009/01/09/unable-to-open-pty-no-such-file-or-directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenVZ &#8211; RPMFORGE para CentOS 5</title>
		<link>http://www.rubenortiz.es/2008/11/11/openvz-rpmforge-para-centos-5/</link>
		<comments>http://www.rubenortiz.es/2008/11/11/openvz-rpmforge-para-centos-5/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 12:21:31 +0000</pubDate>
		<dc:creator>Rubén Ortiz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenVZ]]></category>
		<category><![CDATA[centos]]></category>

		<guid isPermaLink="false">http://www.rubenortiz.es/?p=890</guid>
		<description><![CDATA[David Toribio dejó hace tiempo en un post una manera fácil y rápida de actualizar yum con el repositorio RPMFORGE, necesario si queremos instalar rápidamente aplicaciones como Lighttpd o otras que se salen de lo ofrecido por la distribución. Para añadirlo debemos editar el siguiente fichero y añadir el código que hay a continuación: # [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://david.toribio.eu/2008/05/12/repositorios-adicionales-en-openvz/" title="david toribio">David Toribio</a> dejó hace tiempo en un post una manera fácil y rápida de actualizar yum con el repositorio RPMFORGE, necesario si queremos instalar rápidamente aplicaciones como Lighttpd o otras que se salen de lo ofrecido por la distribución.<br />
<span id="more-890"></span><br />
Para añadirlo debemos editar el siguiente fichero y añadir el código que hay a continuación:</p>
<p><code><strong># joe /etc/yum.repos.d/CentOS-Base.repo</strong></code></p>
<p><code># Name: RPMforge RPM Repository for Red Hat Enterprise 5 - dag<br />
# URL: http://rpmforge.net/<br />
[RHEL5-rpmforge]<br />
name = Red Hat Enterprise 5 - RPMforge.net - dag<br />
#baseurl = http://apt.sw.be/redhat/el5/en/i386/dag<br />
mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge<br />
#mirrorlist = file:///etc/yum.repos.d/mirrors-rpmforge<br />
enabled = 1<br />
protect = 0<br />
#gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag<br />
gpgcheck = 0</code></p>
<p>Otra posible forma, la dejé explicada en estre otro <a href="http://www.rubenortiz.es/2008/02/07/instalar-rpmforge-en-centos/" title="rpmforge centos">post </a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubenortiz.es/2008/11/11/openvz-rpmforge-para-centos-5/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OpenVZ &#8211; Editar repositorios vzyum</title>
		<link>http://www.rubenortiz.es/2008/10/07/openvz-editar-repositorios-vzyum/</link>
		<comments>http://www.rubenortiz.es/2008/10/07/openvz-editar-repositorios-vzyum/#comments</comments>
		<pubDate>Tue, 07 Oct 2008 14:09:24 +0000</pubDate>
		<dc:creator>Rubén Ortiz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenVZ]]></category>

		<guid isPermaLink="false">http://www.rubenortiz.es/?p=641</guid>
		<description><![CDATA[Imaginamos que hacemos un # vzyum VPS_ID check-update y nos pasa esto [root@hn10 ~]# vzyum 101 check-update exec /usr/share/vzyum/bin/yum -c /vz/template/centos/5/i386/config/yum.conf --installroot /vz/root/101 --vps= 101 check-update Setting up repositories centos4-vz-addons 100% &#124;=========================&#124; 951 B 00:00 centos5-updates 100% &#124;=========================&#124; 951 B 00:00 centos5-base 100% &#124;=========================&#124; 1.1 kB 00:00 Cannot find a valid baseurl for repo: RHEL5-rpmforge [...]]]></description>
			<content:encoded><![CDATA[<p>Imaginamos que hacemos un</p>
<p># vzyum VPS_ID check-update</p>
<p>y nos pasa esto</p>
<p><code><br />
[root@hn10 ~]# vzyum 101 check-update<br />
exec /usr/share/vzyum/bin/yum -c /vz/template/centos/5/i386/config/yum.conf<br />
 --installroot /vz/root/101 --vps= 101 check-update<br />
Setting up repositories<br />
centos4-vz-addons         100% |=========================|  951 B    00:00<br />
centos5-updates           100% |=========================|  951 B    00:00<br />
centos5-base              100% |=========================| 1.1 kB    00:00<br />
Cannot find a valid baseurl for repo: RHEL5-rpmforge<br />
Error: Cannot find a valid baseurl for repo: RHEL5-rpmforge<br />
</code></p>
<p>Momentánemente uno de los repositorios no está disponible y no podemos proseguir la instalación de software en los containers. Hemos de editar el fichero siguiente, según el template que utilicemos</p>
<p><code><strong># joe /vz/template/centos/5/i386/config/yum.conf</strong></code></p>
<p>dejando el repositorio que no funciona en enabled = 0</p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubenortiz.es/2008/10/07/openvz-editar-repositorios-vzyum/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>OpenVZ &#8211; Memoria SWAP en VPS</title>
		<link>http://www.rubenortiz.es/2008/10/06/openvz-memoria/</link>
		<comments>http://www.rubenortiz.es/2008/10/06/openvz-memoria/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 15:02:59 +0000</pubDate>
		<dc:creator>Rubén Ortiz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenVZ]]></category>

		<guid isPermaLink="false">http://www.rubenortiz.es/?p=627</guid>
		<description><![CDATA[Hoy me han preguntado acerca de la memoria y su uso en OpenVZ. Primero debo decir que no conozco otros sistemas como VMWare o Xen. Los desconozco por completo a día de hoy. Lo que sí sé es que OpenVZ difiere &#8220;bastante&#8221; de ellos. El tema surgió hablando de la SWAP, un espacio en disco [...]]]></description>
			<content:encoded><![CDATA[<p>Hoy me han preguntado acerca de la memoria y su uso en OpenVZ. Primero debo decir que no conozco otros sistemas como VMWare o Xen. Los desconozco por completo a día de hoy. Lo que sí sé es que OpenVZ difiere &#8220;bastante&#8221; de ellos. El tema surgió hablando de la SWAP, un espacio en disco reservado para cuando el sistema operativo se queda sin RAM. Cuando creamos contenedores OpenVZ(debemos pensar en contenedores) asignamos unos recursos concretos. Cuando entramos en la máquina, la SWAP está a 0. ¿Quiere eso decir que no hay una SWAP? Sí y no. No hay una SWAP al estilo tradicional. Es decir, <strong>no podemos garantizar por container 1 GB de SWAP</strong>. OpenVZ no diferencia entre memoria y swap, todo forma parte de un todo &#8220;memoria&#8221; a nivel de contenedor. No podemos limitar la swap de un contenedor, sin embargo, podemos limitar la cantidad de memoria que consumirá un contenedor(sea SWAP o  no) o garantizar ciertos recursos. Para el contenedor, da igual que tengamos un HN(Hardware Node) de 64 MB de RAM y 6 GB de swap o 6 GB de RAM y 64 MB de SWAP. Para el contenedor es sólo memoria y los valores privvmpages, oomguarpes y vmguarpages no se ven afectados por esto.<br />
<span id="more-627"></span><br />
<strong>Privvmpages:</strong> permite el control del total de memoria asignada(utilizada) por aplicaciones. Hay que tener en cuenta que que privvmpages no garantiza al contenedor el total de la cantidad de memoria especificada, ni que los otros contenedores, tendrán la capacidad de utilizar su memoria. El mecanismo más útil para controlar la asignación de memoria es vmguarpages.</p>
<p><strong>Oomguarpages:</strong> cantidad de memoria reservada para el contenedor en situaciones de falta de memoria. Si una aplicación empieza a consumir más memoria que la que tiene la máquina, el sistema entra en condición de &#8220;sin-memoria&#8221;. En ese caso, el sistema operativo comenzará a matar los procesos de los containers, para liberar algo de espacio y prevenir la muerte total del sistema. </p>
<p>Oomguarpages cuenta el total de memoria y espacio swap utilizado por los procesos de un container en concreto. El &#8220;barrier&#8221; del parámetro oomguarpages es la cantidad de memoria garantizada(en condiciones de &#8220;sin-memoria&#8221;).</p>
<p>El total de &#8220;sin-memoria&#8221; garantizado dentro de un contenedor nunca deberá exceder los recursos físicos de la computadora, en caso contrario, no podrá hacer su función, que es la de eliminar procesos de los contenedores para detener un fallo grave del sistema.</p>
<p><strong>Vmguarpages:</strong> asignación de memoria garantizada. La cantidad total de memoria garantizada que un contenedor puede asignar es el barrier de vmguarpages, mientras que la cantidad actual de memoria asignada es contado por el parámetro privvmpages.</p>
<p>Si el total de memoria asignada actual no execede el &#8220;barrier&#8221; de vmguarpages, las asignaciones del contenedor siempre tendrán éxito. Si el total de memoria asignada actual excede del garantizado pero está por debajo de la barrera de privvmpages, dependerá del total de recursos que tenga el sistema.</p>
<p>Comandos relacionados:<br />
<code><strong><br />
# vzmemcheck -vA<br />
# vzcfgvalidate<br />
# free -m<br />
# vzsplit<br />
</strong></code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.rubenortiz.es/2008/10/06/openvz-memoria/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>OpenVZ &#8211; Beanmonitor</title>
		<link>http://www.rubenortiz.es/2008/09/05/openvz-beanmonitor/</link>
		<comments>http://www.rubenortiz.es/2008/09/05/openvz-beanmonitor/#comments</comments>
		<pubDate>Fri, 05 Sep 2008 10:49:32 +0000</pubDate>
		<dc:creator>Rubén Ortiz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenVZ]]></category>

		<guid isPermaLink="false">http://www.rubenortiz.es/?p=294</guid>
		<description><![CDATA[David Toribio, aparte de insistirme en montar un negocio de escobas y/o bragas aporta casi a diario soluciones para aplicar en diversos temas. La última es beanmonitor, una utilidad desarrollada en ruby que nos permite de una manera muy fácil detectar cambios en el /proc/user_beancounters y nos los envía por mail. Podemos incluso especificar cuentas [...]]]></description>
			<content:encoded><![CDATA[<p><strong>David Toribio</strong>, aparte de insistirme en montar un <a title="david toribio" href="http://david.toribio.eu/2008/09/03/memoria-de-marca/">negocio de escobas y/o bragas</a> <img src='http://www.rubenortiz.es/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' />  aporta casi a diario soluciones para aplicar en diversos temas. La última es <strong>beanmonitor</strong>, una utilidad desarrollada en ruby que nos permite de una manera muy fácil detectar cambios en el /proc/user_beancounters y nos los envía por mail. Podemos incluso especificar cuentas especificas de mail según VPS.</p>
<p><span id="more-294"></span></p>
<p>Instalarlo es cosa de pocos minutos</p>
<p><code><strong><br />
# yum install ruby ruby-libs ruby-mode<br />
ruby-rdoc ruby-irb ruby-ri ruby-docs<br />
# wget http://beanmonitor.googlecode.com/files/<br />
beanmonitor-singlesource-0.0.4.tar.bz2<br />
# tar jxf beanmonitor-singlesource-0.0.4.tar.bz2<br />
# rm LICENSE<br />
# cp beanmonitor /usr/bin/<br />
</strong></code></p>
<p>Ya tenemos copiado el comando, ahora sólo tenemos que hacer un par de cosas para empezar a probarlo. Seguidamente, configuramos el path donde beanmonitor, guarda los datos de nuestro beancounters y añadimos una cuenta de mail, que recibirá todos los cambios de beancounters que se produzcan en todas las VPS</p>
<p><code><strong><strong><br />
# /usr/bin/beanmonitor --savefile /tmp/savefile -w<br />
#/usr/bin/beanmonitor --email-add ruben@unmail.com<br />
</strong></strong></code></p>
<p>Podemos listar los usuarios que hemos añadido</p>
<p><code><strong><strong># /usr/bin/beanmonitor --email-list</strong></strong></code><strong><br />
<code><br />
:all: - ruben@unmail.com<br />
</code></strong></p>
<p><code><strong># beanmonitor --email</strong></code></p>
<p>Lo último es añadir beanmonitor al cron para recibir cada cierto tiempo los cambios detectados</p>
<p><code><strong># crontab -e</strong></code><strong><br />
<code>*/5 * * * */usr/bin/beanmonitor --email</code></strong></p>
<p>No será la herramienta definitiva de monitorizacion de VPS OpenVZ pero ya es un paso más en el objetivo de controlar algo tan crítico como la gestión de recursos, y más cuando tenemos decenas de VPS.</p>
<p>Saludos.</p>
<p><strong>Links</strong></p>
<ul>
<li><a href="http://david.toribio.eu/2008/05/04/recibir-avisos-de-failcount-de-userbeancounters/">http://david.toribio.eu/2008/05/04/recibir-avisos-de-failcount-de-userbeancounters/</a></li>
<li> <a href="http://code.google.com/p/beanmonitor/wiki/QuickInstall">http://code.google.com/p/beanmonitor/wiki/QuickInstall</a></li>
<li> <a href="http://code.google.com/p/beanmonitor/wiki/HowToGetGoing">http://code.google.com/p/beanmonitor/wiki/HowToGetGoing</a></li>
<li><a href="http://code.google.com/p/beanmonitor/downloads/list">http://code.google.com/p/beanmonitor/downloads/list</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.rubenortiz.es/2008/09/05/openvz-beanmonitor/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Vzmigrate</title>
		<link>http://www.rubenortiz.es/2008/07/01/vzmigrate/</link>
		<comments>http://www.rubenortiz.es/2008/07/01/vzmigrate/#comments</comments>
		<pubDate>Tue, 01 Jul 2008 08:59:59 +0000</pubDate>
		<dc:creator>Rubén Ortiz</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[OpenVZ]]></category>
		<category><![CDATA[ssh]]></category>

		<guid isPermaLink="false">http://www.rubenortiz.es/?p=84</guid>
		<description><![CDATA[Una vez tenemos instalado OpenVZ y la herramienta vzmigrate, necesitamos configurar los certificados ssh entre la máquina origen y la máquina destino. Crear certificados SSH entre servidores Máquina origen = 10.0.0.50 Máquina destino = 10.0.0.100 &#8220;You first have to setup SSH to permit the old HN to be able to login to the new HN [...]]]></description>
			<content:encoded><![CDATA[<p>Una vez tenemos instalado OpenVZ y la herramienta vzmigrate, necesitamos configurar los certificados ssh entre la máquina origen y la máquina destino.<br />
<span id="more-84"></span><br />
<strong>Crear certificados SSH entre servidores</strong></p>
<p>Máquina origen = 10.0.0.50<br />
Máquina destino = 10.0.0.100</p>
<p>&#8220;You first have to setup SSH to permit the old HN to be able to login to the new HN without a password prompt.&#8221; Es decir, hemos de permitir al viejo hardware node ser capaz de loguearse contra el nuevo, sin usar un password.</p>
<p>En la máquina origen, ejecutamos</p>
<p><code><strong>#ssh-keygen -t rsa</strong></code></p>
<p>No hemos de teclear nada cuando nos pide una frase, doble Enter y seguimos. Veremos lo siguiente:</p>
<p><code>Generating public/private rsa key pair.<br />
Enter file in which to save the key (/root/.ssh/id_rsa):<br />
Enter passphrase (empty for no passphrase):<br />
Enter same passphrase again:<br />
Your identification has been saved in /root/.ssh/id_rsa.<br />
Your public key has been saved in /root/.ssh/id_rsa.pub.<br />
The key fingerprint is:<br />
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx root@localhost.localdomain<br />
La llave se ha guardado den el directorio /root/.ssh/</code></p>
<p><code><strong><br />
# cd /root/.ssh<br />
# ls - ls /root/.ssh<br />
</strong></code></p>
<p>Veremos el archivo creado</p>
<p><code>4 -rw------- 1 root root 1743 May  6 10:03 id_rsa<br />
4 -rw-r--r-- 1 root root  408 May  6 10:03 id_rsa.pub</code></p>
<p>Copiamos la clave a la máquina destino:</p>
<p><code><strong># scp id_rsa.pub root@10.0.0.100:./id_rsa.pub</strong></code></p>
<p>Puede que veamos el siguiente error</p>
<p><code>ERROR!<br />
[root@localhost .ssh]# scp id_rsa.pub root@10.0.0.100:./id_rsa.pub<br />
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br />
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @<br />
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<br />
</code></p>
<p>Editamos known_hosts y quitamos la línea con la ip destino involucrada. Volvemos a repetir el proceso, y deberíamos poder copiar la llave pública sin problemas.</p>
<p><code><strong># scp id_rsa.pub root@10.0.0.100:./id_rsa.pub </strong></code></p>
<p><code>The authenticity of host '10.0.0.100 (10.0.0.100)' can't be established.<br />
Are you sure you want to continue connecting (yes/no)? yes<br />
Warning: Permanently added '10.0.0.100' (RSA) to the list of known hosts.<br />
reverse mapping checking getaddrinfo for es failed - POSSIBLE BREAK-IN ATTEMPT!<br />
root@10.0.0.100's password:<br />
id_rsa.pub                                    100%  408     0.4KB/s   00:00</code></p>
<p>Nos conectamos ahora al nuevo host, máquina destino. Añadimos la llave pública importada del servidor origen a autorized_keys2 para finalmente borrar el mismo archivo copiado.</p>
<p><code><strong><br />
# cd .ssh/<br />
# touch authorized_keys2<br />
# chmod 600 authorized_keys2<br />
# cat ../id_rsa.pub &gt;&gt; authorized_keys2<br />
# rm ../id_rsa.pub<br />
</strong></code></p>
<p>Desde el servidor origen:</p>
<p><code><strong># ssh -2 -v root@10.0.100</strong></code></p>
<p>Si nos conectamos bien, sin necesidad de teclear el password es que ya podemos utilizar la herramienta vzmigrate.</p>
<p><code><strong># /bin/sh /usr/sbin/vzmigrate -r no -v 10.0.0.100 VED_ID</strong></code></p>
<p><strong>Prerequisitos de Vzmigrate</strong></p>
<p>Make sure:</p>
<ul>
<li> you have at least one good backup of the virtual machine you intend to migrate</li>
<li> rsync is installed on the target host</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.rubenortiz.es/2008/07/01/vzmigrate/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
