\newpage
%===========================================================================
%       x.18 > Problemas m\'as comunes
%===========================================================================
\pagestyle{empty}
\begin{latexonly}
\ifpdf
 \begin{figure}[htbp]
 \includegraphics[bb = -255 220 0 0, scale=1]{./TuXes/tux-jailbait.png}
 \end{figure}
 \vspace{5in}
\else
 \begin{figure}
       \includegraphics[-250,620][0,0]{./TuXes/tux-jailbait}
 \end{figure}
\fi
\hfill\line(1,0){400}
\end{latexonly}
\topmargin 1in
\section{PROBLEMAS M\'AS COMUNES}
\begin{latexonly}
\line(1,0){400}
\newpage
\end{latexonly}
\topmargin 0in
\pagestyle{fancy}
%========================cita===============================================
\begin{latexonly}
\hspace{1in}\textcolor{blue_omosix}{{\em To err is human - and to blame it on a computer is even more so.}}

\hspace{4in}\textcolor{blue_omosix}{{\em Robert Orben}}
\vspace{0.5in}
\end{latexonly}
%===========================================================================
\subsection{No veo todos los nodos}
Antes de nada deberemos asegurarnos de estar utilizando la misma versi\'on del kernel en todas las m\'aquinas y que todos ellos hayan estado debidamente parcheados.

Ejecute {\tt mosmon} y pulse {\tt t} para ver el total de nodos que est\'an
funcionando. Para ver los nodos {\em muertos} simplemente bastar\'a con darle
a la {tt d} y aparecer\'a la palabra{\tt DEAD} sobre todos aquellos IDs que
correspondan a nodos que, apareciendo en el mapa de openmosix, no se
encuentran funcionales.

Si este proceso le advierte que no tiene openMosix funcionando en alguna
m\'aquina -o no aparecen todas- aseg\'urese de haber incluido su direcci\'on ip en el {\em
  /etc/openmosix.map} (no use 127.0.0.1 ya que probablemente habr\'a
problemas con el servidor de nombres/dhcp).

Si openMosix puede ver una m\'aquina pero esta no recibe o envia los paquetes
que debiera, entonces probablemente es que est\'a protegida
por un firewall que no deja actuar debidamente a openMosix.

Si el problema sigue sin solucionarse y se da el caso de tener varias targetas
de red en cada nodo habr\'a que editarse el fichero {\em /etc/hosts} para
tener una l\'\i nea con el formato

\begin{verbatim}
       non-cluster_ip  cluster-hostname.cluster-domain cluster-hostname
\end{verbatim}

Tendremos que configurar debidamente la tabla de enrutamiento, que podemos
visualizar con

\vspace{.1in}
\hspace{1in}\colorbox{gray}{{\tt netstat -nr}}

\vspace{.1in}
No obstante esta tarea cae fuera del alcance de este libro.

Otros posibles problemas pueden venir por los diferentes par\'ametros de
configuraci\'on del kernel, especialmente si usamos clusters con la opci\'on
de topolog\'\i a de red compleja.
Con esa opci\'on hay que vigilar de no utilizar el mismo valor que aparece en
la opci\'on de {\em Maximum network-topology complexity support} en cada nodo.
%-------------------------------------------------------------------------------------
\subsection{FAQ de openMosix {\em -preguntas m\'as frecuentes-}}
\subsubsection{General}

\vspace{.2in}
{\bf \ ?`Qu\'e es openMosix?}

El sistema openMosix es una extensi\'on del kernel del sistema operativo 
GNU/Linux que ampl\'\i a grandemente sus posibilidades en computaci\'on
paralela, a la vez que implementa una arquitectura SSI. 

Est\'a basado en el proyecto MOSIX del profesor A. Barak, pero con licencia 
GNU (General Public License, GPL). 

\vspace{.2in}
{\bf \ ?`Qu\'e significan las siglas SSI -{\em single system image-?}}

Hay muchas variedades de clusters y un cluster SSI tiene
copias de un \'unico kernel de sistema operativo en varios nodos que permiten
ver el conjunto como un todo.

Esto aporta ventajas a diversos niveles, entre los cuales se cuenta una mayor
facilidad de uso y transprencia frente al usuario, procesos y los propios nodos.

\vspace{.2in}
{\bf \ ?`Existe una p\'agina web para openMosix?}

S\'\i\, es {\tt http://www.openmosix.org} . Tambi\'en est\'a la p\'agina web del 
proyecto en SourceForge en {\tt http://sourceforge.net/projects/openmosix} .

\vspace{.2in}
{\bf \ ?`Hay una lista de correo para openMosix?}

S\'\i\ claro, existen dos:
\begin{itemize}
        \item Para {\em discusiones generales} est\'a {\tt openmosix-general@lists.sourceforge.net} ,
cuya p\'agina de informaci\'on general es 
{\tt http://lists.sourceforge.net/lists/listinfo/openmosix-general}
        \item Para {\em desarrolladores} \'usese {\tt openmosix-devel@lists.sourceforge.net}, 
cuya p\'agina de informaci\'on general es 
{\tt http://lists.sourceforge.net/lists/listinfo/openmosix-devel}
\end{itemize}

\vspace{.2in}
{\bf \ ?`Puedo contribuir al proyecto openMosix?}

!`Por supuesto! El proyecto cuenta con un gran n\'umero de contribuidores. A diferencia del
sistema de mantenimiento del kernel de linux, Moshe Bar (coordinador principal
de openMosix) nombra desarrolladores 
oficiales y les otorga a \'estos la clave {\em commit bit} del directorio CVS para el
c\'odigo fuente de openMosix, de manera similar al sistema usado para FreeBSD.

Se est\'an buscando programadores familiarizados con el kernel de linux
para trabajar en nuevas caracter\'\i\ sticas. Si usted mismo est\'a interesado
escriba a {\tt moshe@moelabs.com} .

\vspace{.2in}
{\bf \ ?`Qui\'en posee la licencia de openMosix?}

Todo el c\'odigo fuente de MOSIX est\'a licenciado por el profesor Amnon Barak de
la Hebrew University of Jerusalem. Todo el c\'odigo fuente de openMosix est\'a 
licensiado por Moshe Bar -residente en Tel Aviv-. El sistema openMosix no contiene ning\'un
c\'odigo fuente que no est\'e licenciado bajo la GPL.

\vspace{.2in}
{\bf \ ?`Es openMosix una versi\'on de MOSIX?}

Originalmente openMosix era una versi\'on de MOSIX, pero se ha desarrollado en
una plataforma avanzada de clustering. Comparado con MOSIX, hay cierta cantidad de caracter\'\i sticas que ya han 
sido agregadas:

\begin{itemize}
        \item una versi\'on para la arquitectura UML (linux de modo de usuario),
        \item nuevo y m\'as ordenado c\'odigo de migraci\'on,
        \item un mejor balanceador de procesos,
        \item reducci\'on de latencias del kernel,
        \item soporte para Dolphin e IA64 (arquitectura 64-bit),
        \item un sistema de instalaci\'on simplificado usando paquetes RPM,
        \item gran cantidad de documentatci\'on,
        \item y gran n\'umero de parches\footnote{Se trata de c\'odigo beta
        que se agrega a openMosix una vez se garantiza su funcionalidad.} sobre el propio de openMosix para
        dotarle de mejores caracteristicas.
\end{itemize}

\vspace{.2in}
{\bf \ ?`Por qu\'e se separ\'o openMosix de MOSIX?}

La cuesti\'on principal era que MOSIX {\bf no} est\'a licenciado bajo una licencia 
abierta. Esto evita que puedas ver el c\'odigo fuente, que puedas desarrollar
e implementar las mejoras que creas convenientes y, sobretodo, que crezca la
comunidad de usuarios.
%---------------------------------------------------------------------------------------
\subsubsection{Obteniendo, compilando, instalando y funcionando con openMosix}

\vspace{.2in}
{\bf \ ?`D\'onde puedo conseguir openMosix?}

Los fuentes oficiales para openMosix pueden encontrarse en SourceForge
\footnote{{\tt
    \htmladdnormallink{http://sourceforge.net/project/showfiles.php?group\_id=46729}{http://sourceforge.net/project/showfiles.php?group\_id=46729}}}. Aseg\'urese de leer la documentaci\'on antes de bajar los archivos para comprobar que adquiere la versi\'on adecuada a su sistema.

\vspace{.2in}
{\bf \ ?`Puedo mezclar nodos MOSIX y openMosix en el mismo cluster?}

!`NO! Como en MOSIX, no es recomendado mezclar nodos porque los 
protocolos est\'an ligados a cambiar sin anuncios entre versiones. Adem\'as,
cada nueva versi\'on contempla correcciones de errores anteriores que vale la pena eliminar. 

\vspace{.2in}
{\bf \ ?`C\'omo compilar openMosix?}

Primero desempaquete tanto el c\'odigo fuente del kernel de linux como la 
distribuci\'on correspondiente de openMosix en un directorio, por ejemplo

\begin{verbatim}
      $ cd /usr/src 
      $ tar xzvf linux-2.X.Y.tar.gz 
      $ gunzip openMosix2.X.Y.gz 
      $ cd linux-2.X.Y
\end{verbatim}

Luego aplique los parches de openMosix al c\'odigo fuente original del kernel de linux con el comando

\begin{verbatim}
      $ patch -p1 openMosix2.X.Y-Z
\end{verbatim}

El directorio {\em /usr/src/linux-2.X.Y} contiene el c\'odigo fuente del kernel
2.X.Y de linux con los parches de openMosix aplicados. Compile e 
instale el nuevo kernel como cualquier otro.

\vspace{.2in}
{\bf \ ?`Qu\'e son las {\em userland-tools} -herramientas de usuario-?}

Las herramientas de usuario son una colecci\'on de herramientas administrativas
para examinar y controlar un nodo openMosix. Son estrictamente necesarias y
pueden obtenerse desdel mismo directorio donde se encuentra en parche para el
kernel.

Para mayores problemas consulte la secci\'on {\em Las herramientas de \'area
  de usuario} del cap\'\i tulo 5.
%-------------------------------------------------------------------
\subsubsection{Preguntas del kernel (n\'ucleo)}

\vspace{.2in}
{\bf \ ?`Qu\'e versiones del kernel est\'an soportadas por openMosix?}

El primer kernel kernel de linux soportado es el 2.4.17. Versiones futuras del la serie
2.4 -la serie 2.6- tambi\'en van a ser soportadas por openMosix.

Transcurre poco m\'as de una semana entre la aparicici\'on de un nuevo kernel
linux y el parche openMosix.

\vspace{.2in}
{\bf Estoy tratando del compilar el kernel con el parche de openMosix. \ ?`Qu\'e versi\'on 
de compilador debo usar?}

La versi\'on recomendada para un kernel parcheado con openMosix es la misma
que para la versi\'on del kernel linux. Por tanto la correcta compilaci\'on
por parte de {\tt gcc} es no s\'olo un
requerimiento de openMosix, sino del kernel de linux.

\vspace{.2in}
{\bf He compilado el kernel de las fuentes. \ ?`C\'omo hago para agregarlo al cargador
de inicio ({\em bootloader}) (LILO, GRUB, otro)?}

El kernel de openMosix es como cualquier otro kernel porque openMosix es tan
solo una extensi\'on del kernel, y va a ser tratado como un kernel est\'andar.
Use los m\'etodos normales del cargador de inicio para agregar un kernel.

\vspace{.2in}
{\bf He instalado una distribuci\'on de linux que viene con el kernel X.Y. El
README de openMosix dice que no debemos mezclar kernels. \ ?`Significa esto que
el RPM para el kernel openmosix-X.Y+1-Z no va a funcionar en mi m\'aquina?}

No. Cuando se dice que no se deben mezclar versiones de kernels se refiere
a los parches de openMosix. Mientras todas las m\'aquinas usen las mismas 
versiones del kernel de openMosix no habr\'a problemas.

N\'otese que con versi\'on nos referimos al n\'umero de versi\'on de
openMosix; esto implica que se pueden mezclar kernels de openMosix que son
para diferentes arquitecturas de hardware. Por ejemplo, instalando
el kernel openmosix-2.4.18-4  se pueden usar tanto el RPM openmosix-2.4.18-4-i686 en una
m\'aquina con Pentium II y el kernel openmosix-2.4.18-4-athlon
en una m\'aquina con un procesador Athlon.
%-------------------------------------------------------------------
\subsubsection{Sistema de ficheros}
{\bf \ ?`Cu\'al es la diferencia entre MFS y DFSA, y por qu\'e me conviene
tener DFSA?}

DFSA es el acr\'onimo de {\em Direct File System Access} (acceso directo al sistema de 
archivos) y es una optimizaci\'on. Permite que procesos remotos ejecuten 
llamadas de sistema localmente en vez de mandarlas al nodo local, factor que
mejora sustancialmente el rendimiento de sistemas SSI. MFS significa
Mosix File System (sistema de archivos Mosix) y permite que todos los nodos en
un cluster tengan acceso al sistema de archivos de todos los otros nodos. DFSA
se ejecuta encima de un sistema de archivos de cluster, en este caso MFS.

\vspace{.2in}
{\bf \ ?`Qu\'e es MFS, c\'omo lo uso, y d\'onde lo consigo?}

El sistema de archivos de openMosix (MFS) es la implementaci\'on de MFS en 
openMosix (v\'ease la pregunta anterior para detalles acerca de MFS). El
soporte para el tipo {\tt mfs} se adquiere con la configuraci\'on de un kernel
openMosix con la opci\'on MFS (viene est\'andar con los archivos RPM). Si
ud. instala su propio kernel, le sugerimos 
que tambi\'en use la opci\'on DFSA (vea la pregunta anterior para detalles acerca
de DFSA). El uso y la administraci\'on de MFS es muy similar a NFS, pero MFS
provee ciertas ventajas sobre NFS como
\begin{itemize}
        \item consistencia de cache
        \item timestamp
        \item link consistency
\end{itemize}
%-------------------------------------------------------------------
\subsubsection{Programando openMosix}

\vspace{.2in}
{\bf En general, \ ?`c\'omo escribo un programa que utilice openMosix?}

Escriba sus programas de manera normal. Cualquier proceso que sea creado es un
candidato a ser migrado a otro nodo. 

Un consejo para poder aprovechar al m\'aximo la tecnolog\'\i a que openMosix pone a su alcance ser\'\i a servirse de la sentencia {\em fork()} de UNIX.
Como se ha comentado en este documento, openMosix hereda de MOSIX el {\em
  fork-and-forget} que realiza la migraci\'on autom\'atica de cualquier nuevo
proceso -siempre que se mejore el rendimiento del cluster-.

\vspace{.2in}
{\bf ?`Es posible escribir programas para openMosix con Perl?}

Evidentemente s\'\i\ . Ud. deber\'a usar {\tt Parallel::ForkManager}, disponible en CPAN.
%-------------------------------------------------------------------
\subsubsection{Miscel\'anea}

\vspace{.2in}
{\bf Estoy recibiendo un mensaje que advierte de}

\begin{verbatim}
    setpe the supplied table is well-formatted, 
    but my IP address (127.0.0.1) is not there!
\end{verbatim}


Se deber\'a modificar el archivo {\em /etc/hosts}, donde se debe aparecer una
l\'\i nea similar a

\begin{verbatim}
      127.0.0.1 localhost 
\end{verbatim}

para que todo funcione correctamente. Por ejemplo
\begin{verbatim}
      192.168.10.250  hostname.domain.com 
      127.0.0.1       localhost 
\end{verbatim}

\vspace{.2in}
{\bf Quiero instalar openMosix en mi m\'aquina, pero temo que es demasiado lenta.}

El proyecto opeMosix no se desentiende de la filosof\'\i a de linux frente al
hardware antiguo. Cualquier m\'aquina puede beneficiarse con el uso de
openMosix mientras sea del x586 compatible 

El cluster puede ser heterog\'eneo, es decir, ni siquiera hace falta tener
todas las m\'aquinas del mismo tipo.

\vspace{.2in}
{\bf \ ?`Bajo qu\'e condiciones se puede usar VMware con openMosix?}

Si se desea ejecutar VMware en una m\'aquina con openMosix instalado para 
aprovechar la capacidad de computaci\'on de las m\'aquinas remotas, no hay 
problema. Por otro lado, ud. no podr\'a correr openMosix dentro de sesiones
de VMware y dejar que las sesiones balanceen su carga porque VMware tiene un
defecto en su emulaci\'on de Pentium que causa que VMware (no openMosix) falle 
cuando un proceso migre.

\vspace{.2in}
{\bf \ ?`Qu\'e arquitecturas aparte de x86 (por ejemplo SPARC, AXP, PPC) son soportadas
por openMosix?}

Por el momento openMosix solo corre en x86. 

\vspace{.2in}
{\bf \ ?`Existe una utilidad paralela de {\tt make} para openMosix similar a
  {\tt MPmake}?}

Se puede compilar usando el {\tt make} de gcc con la opci\'on {\tt
  -j}. As\'\i\ por ejemplo

\begin{verbatim}
   make -j 10 
\end{verbatim}

ejecuta make con 10 procesos en paralelo.
