servidores
Algunas recomendaciones básicas de cómo manejarse con trabajo en un servidor compartido
Contenido |
Consideraciones iniciales
Cuando se trabaja desde un servidor el entorno gráfico NO EXISTE
Un servidor es un recurso compartido ¡¡ Seamos respetuoses con el resto !!
Acceso
El acceso a los clúster de computación (HPC del Inglés) o servidores se realiza en la mayoría de los casos via ssh
$ ssh [NombreUsuarioenServidor]@[nombreServidor].[domino]
Por ejemplo, el CIMA dispone de un clúster de computación llamado hydra y con el domino cima.fcen.uba.ar
. Si Juan Perez quiere acceder a Hydra usa el siguiente comando (al apretar enter, el sistema te pide la clave pero no aparece ningún cursor):
$ ssh juan.perez@hhydra.cima.fcen.uba.ar juan.perez@hydra.cima.fcen.uba.ar's password: [juan.perez@hydra ~]$
- Una vex en el servidor/clúster le usuarie tiene un entorno linux estándard. Al trabajar en un espacio compartido es necesario tener cuidado ya que los cambios podrían afectar a otras personas.
- Para salir, se usa la instrucción
exit
[juan.perez@hydra ~]$ exit $
vpn
La virtual private network o VPN nos permite conectarnos de forma segura a un servidor. En frente de la vulnerabilidad de la red, cada vez es más común conectarse a servidores a través de una VPN.
Para ello será necesario contar con una credencial de acceso (dada por la adminstración del recurso al cuál nos queremos conectar). Antes de conectarnos será necesario activar la VPN
Entorno de trabajo
En un servidor, se tendrá que hacer todo desde la terminal. Puesto que si queremos utilizar una interfaz gráfica (si es que es posible), seremos muy poco eficientes, porque a parte de mandarse las instrucciones por internet, también se tiene que mandar todos los gráficos.
Cuando se entra a un sevidor, se hace directamente al ${HOME}
de cada usuarie.
En general, podemos encontrarnos con 2 tipos de servidores: datos, cálculo. Si bien conceptualmente son iguales, presentan distintas singularidades
Lo habitual es cada usuarie tenga una cantidad de recursos designados (espacio en disco, horas de cálculo, ...) si un usuarie supera estos límites, se imposibilita que continúe trabajando hasta que no se solucione el sobreuso.
Servidor de datos
Estos servidores suelen tener una jerarquía de directorios dentro de los cuáles están bien organizados los datos. Es necesario saber donde se encuentran los datos (desde una web, correo, ...) que queremos porque puede ser muy difícil encontrarnos.
Servidor de cálculo
Estos servidores suelen tener una jerarquía de directorios cada uno de los cuáles con distintas características y propósitos:
-
$HOME
: punta de entrada al servidor, con poca capacidad, sin copia de seguridad y sin límite de tiempo -
$WORKDIR
: lugar de los códigos y scripts con capacidad limitada y con copia de seguridad y sin límite de tiempo -
$SCRATCHDIR
: lugar de simulado, con bastante capacidad, sin copia de seguridad y con límite de tiempo (1 mes) -
$STOREDIR
: lugar de almacenaje, con mucha capacidad, sin copia de seguridad y sin límite de tiempo
librerías sistema
Los servidores, suelen tener una gran batería de librerías ya pre instaladas llevado a cabo por los gestores del servidor. No es una tarea obvia, puesto que en un servidor, es clave la eficiencia, así que las librerías se suelen instalar desde los códigos fuentes y para distintas versiones y distintos compiladores. Además, si se escae, con flags de compilación específicos para el servidor. Toda esta complejidad está bien ordenada y hecha accesible para todes les usuaries. Se mantienen múltiples versiones (hasta un punto) para facilitar la reproducibilidad de experimentos antiguos.
entornos: anaconda, conda, miniconda
Trabajo desde terminal
Distribución espacios de almacenaje
Sistema de colas
Todo trabajo en una máqiuna en remoto y multi-procesador tiene que ser ejecutado dentro de un trabajo del servidor de colas