Site is under maintenance mode. Please wait few min!
Saltar al contenido

Cómo usar Yaourt para descargar fácilmente los paquetes de la comunidad Arch Linux

marzo 4, 2020

 

Estatus: Desaprobado

Este artículo incluye una versión de Ubuntu que ya no se admite. Si actualmente está operar un servidor que ejecuta Ubuntu 12.04, es muy recomendable actualizar o migrar a una versión compatible de Ubuntu:

  • Actualiza a Ubuntu 14.04.
  • Actualización de Ubuntu 14.04 a Ubuntu 16.04
  • migrar los datos del servidor a una versión compatible

Motivo: Ubuntu 12.04 alcanzó fin de vida (EOL) el 28 de abril 2017 y ya no recibe actualizaciones de seguridad o actualizaciones. Esta guía ya no se mantiene.

Ver lugar: Esta guía aún podría ser útil como una referencia, pero no puede funcionar en otras versiones de Ubuntu. Si está disponible, se recomienda encarecidamente el uso de una guía escrita para la versión de Ubuntu que está utilizando. Puede utilizar la funcionalidad de búsqueda en la parte superior de la página para encontrar una versión más reciente.

Introducción

La computación en nube con instancias de VPS ofrece una serie de posibilidades que no están disponibles para los usuarios domésticos. Uno de ellos es el concepto de agrupación.

Con las instancias del servidor de fácil despliegue, la computación en clúster es fácil de configurar y ampliar. En esta guía, vamos a discutir la forma de configurar un cluster Beowulf para el procesamiento distribuido entre los nodos.

Requisitos previos

En este tutorial, vamos a utilizar 4 Ubuntu 12.04 VPS casos. La mayoría de la configuración será la misma a lo largo de los nodos, por lo que vamos a utilizar un proceso de arranque para establecer un entorno inicial, luego aprovechar instantáneas digitalocean implementar esta a los otros nodos.

Esta configuración también se aprovechará de digitalocean red privada, que actualmente está disponible en la región nyc2 actualmente. Asegúrese de habilitar la red privada al crear su gota.

Vamos a crear un nodo de control y luego 3 nodos de trabajo para hacer realidad el trabajo.

vamos a utilizar gotas 4 GB con el fin de tomar ventaja de la mayor potencia de procesamiento, pero se puede utilizar nodos más pequeños.

Una descripción de nuestro hardware y la configuración de red: Nodo de Control

  • : Nombre de host: commandPrivate Dirección IP: 1.1.1.1
  • nombre de host: Dirección de comando
  • Private IP: 1.1.1.1
  • nombre de host: comando
  • privada Dirección IP: 1.1.1.1

El resto de los nodos no debe ser creado inicialmente. Ellos serán creados en una fecha posterior al copiar la configuración del nodo de control.

  • Trabajador nodo 1: Nombre de host: work1Private Dirección IP: 1.1.1.2
  • nombre de host: Dirección Trabajo1
  • Private IP: 1.1.1.2
  • Trabajador nodo 2: Nombre de host: work2Private Dirección IP: 1.1.1.3
  • nombre de host: work2 Dirección IP privada
  • : 1.1.1.3
  • Trabajador nodo 3: Nombre de host: Dirección IP work3Private: 1.1.1.4
  • nombre de host: Dirección Work3
  • Private IP: 1.1.1.4
  • nombre de host: Dirección trabajo1
  • IP privada : 1.1.1.2
  • nombre de host: Dirección work2
  • Private IP: 1.1.1.3
  • nombre de host: Work3
  • IP privada Dirección: 1.1.1.4

En este punto, usted debe tener su control de gotas creado con una imagen de Ubuntu 12.04 con funciones de red privada habilitada. Debe crear un usuario y darle privilegios sudo. Vamos a utilizar este usuario para este tutorial.

configuración inicial de control de nodos

sesión en su nodo de control de gotas a través de SSH.

Crear un usuario Cluster

Lo primero que vamos a hacer es crear una, usuario sin privilegios adicionales para operar nuestro grupo (esto debe estar separado del usuario que utiliza con sudo). Nombraremos nuestro cluster de usuario:

sudo adduser cluster --uid 900

El parámetro indica –uid el ID de usuario que se asociará con la cuenta. Un número por debajo de 1,000 indica un usuario del sistema que no se debe utilizar para tareas regulares.

dar al usuario una contraseña de clúster y no dude en la tecla “ENTER” por el resto de las instrucciones.

Crear SSH Credenciales

A continuación, tenemos que crear las credenciales SSH para nuestro usuario. Nuestros nodos del clúster se comunicarán con SSH y compartir información mediante el montaje de una partición NFS compartido. Tendremos que establecer un par de claves SSH para que todos los nodos pueden comunicarse sin el uso de contraseñas.

En primer lugar, los usuarios del cambio al nuevo usuario clúster. Suministrar la contraseña que estableció durante la creación:

su - cluster

Ahora, podemos generar claves RSA con el siguiente comando:

ssh-keygen

Pulse “ENTER” a través de todas las preguntas, (incluyendo la contraseña del sistema) para crear el par de claves.

Ahora podemos copiarlo en nuestro propio archivo de hosts conocidos. Esto normalmente no haría nada, pero ya que vamos a montar este directorio personal con NFS tarde, será compartida entre los nodos y permitir que se conectan entre sí a la perfección:

ssh-copy-id localhost

Tipo “sí” para aceptar la clave. Introduzca la contraseña del usuario clúster. volver

salida en su usuario habitual escribiendo:

exit

Instalar la aplicación MPI

Nuestros grupos de nodos se comunican con un sistema llamado Message Passing Interface, más comúnmente conocido como MPI . Esto permite que los procesos paralelos para comunicarse con facilidad y compartir el trabajo y la información de estado.

Vamos a utilizar la implementación MPICH2, que es una versión popular, bien apoyado.

Instalar el software escribiendo: interfaz

sudo apt-get install mpich2

El MPI ahora debe ser instalado.

Implementar trabajadores nodos de Nodo de Control

Crearemos nuestros nodos de trabajo mediante la creación de una instantánea de nuestra configuración nodo de control actual y luego divergiendo desde ese punto. A partir de octubre de 2016, instantáneas cuestan $ 0.05 por gigabyte por mes, basado en la cantidad de espacio utilizado en el sistema de archivos.

crear una instantánea del nodo de control

Para crear una instantánea, comenzar por apagar su gota. Si bien es posible tomar una instantánea de un sistema vivo, apagar asegura que el sistema de ficheros está en un estado coherente. En la línea de comandos, escriba:

sudo shutdown -h now

en el panel de control digitalocean, seleccione su nodo de control de gotas. Bajo el menú de instantáneas, escriba el nombre que desea utilizar para la instantánea y haga clic en “Tomar instantánea”:

Esto puede tardar unos minutos.

lanzamiento trabajadores nodos de instantáneas

Cuando la instantánea se haya completado, se puede utilizar la imagen instantánea como la base para sus nodos de trabajo. Vamos a crear 3 nodos adicionales, denominadas trabajo 1, trabajo2, y Trabajo3.

Haga clic en el botón “Crear” desde el panel de control digitalocean. Seleccione el nombre, tamaño de gota que le gustaría, y seleccione una región con redes privadas (nyc2 por ejemplo).

Al seleccionar la imagen base, haga clic en “Mis imágenes” y seleccionar el nombre de la instantánea que acaba de crear.

Asegúrese de seleccionar la casilla de verificación “Red privada” antes de crear la gota:

Crea tu gota.

Repita este paso para los nodos de trabajo adicionales.

Reunir las redes privadas de información

Usted necesitará su dirección IP de red privada para cada uno de los nodos. La forma más sencilla de hacer esto es a través del panel de control digitalocean.

Haga clic en el nombre de las gotas. Haga clic en el menú “Configuración”. Hay una sección de “Red Privada” que contiene su dirección IP privada:

Anote la dirección IP privada y el nombre de host asociado de cada nodo. Necesitará esta información momentáneamente.

completa Nodo de Control de configuración

ahora nos falta para completar la configuración del nodo de control. Hasta ahora, hacíamos configuración genérica para que nuestros cambios serían aplicables a los nodos de trabajo. Ahora vamos a empezar a diferenciar nuestra nodo de control.

vuelva a entrar en el nodo de control.

Como hemos mencionado, esta configuración utilizar NFS para compartir el directorio principal entre todos nuestros nodos. La gotita de control tendrá el servidor NFS. Instalarlo con estos comandos:

sudo apt-get update && sudo apt-get install nfs-kernel-server

estaremos exportando el directorio principal del nuestro usuario clúster para todos los nodos:

sudo nano /etc/exports

Añadir esta línea al final del archivo:

/home/cluster *(rw,sync,no_subtree_check)

Vamos a reiniciar nuestro servidor NFS con el siguiente comando :

sudo service nfs-kernel-server restart

nodo de configuración

Ahora que tenemos las direcciones IP privadas y los nombres de host asociados desde el panel de control digitalocean, podemos editar el archivo hosts en cada nodo (maestro y trabajadores) para hacer referencia a unos de otros.

En el nodo de control y trabajador nodos

En cada nodo, editar el archivo / etc / hosts y añadir la información de cada nodo en este formato. Las direcciones IP aquí representan los valores ficticios que he mencionado en la sección pre-requisito. Sustituir los valores que encontró en sus páginas de control de ajustes del panel:

1.1.1.1 command
1.1.1.2 work1
1.1.1.3 work2
1.1.1.4 work3

Abrir el archivo hosts con este comando:

sudo nano /etc/hosts

copiar y pegar la información anterior en la línea bajo la definición localhost en cada gotita:

127.0.0.1 localhost command
1.1.1.1 command
1.1.1.2 work1
1.1.1.3 work2
1.1.1.4 work3

guardar y cerrar el archivo.

en el trabajador nodos

continuación, tenemos que instalar y configurar los componentes de NFS en los nodos de trabajo. Podemos hacer esto con apt-get.

En cada nodo del trabajador, instalar las herramientas de NFS:

sudo apt-get install nfs-common -y

Ahora podemos ver las exportaciones NFS que hemos configurado en nuestro nodo de control:

sudo showmount -e command
Export list for command:
/home/cluster *

Esto significa que sus acciones se exportan correctamente para que la gota de comandos. Si se encuentra con problemas, se puede tratar de reiniciar el servidor NFS en la gota de comandos escribiendo:

sudo service nfs-kernel-server restart

vuelta en sus gotas de trabajadores, que ahora puede montar el directorio personal del usuario del clúster en la gota de comandos en el directorio personal del usuario del clúster en el trabajador gotitas.

En cada uno de los nodos de trabajo, escriba lo siguiente:

sudo mount command:/home/cluster /home/cluster

Esto montará el directorio home de la gotita de control para esta sesión. Para que esto suceda de forma automática en el arranque, agregar esta configuración en el archivo / etc / fstab.

Abrir el archivo en cada nodo del trabajador con privilegios administrativos:

sudo nano /etc/fstab

Añadir esta línea al final del archivo para que el montaje se produce automáticamente en el arranque:

command:/home/cluster /home/cluster nfs

Guardar y cerrar el archivo.

configuración completa Pasos Finales

Ahora tenemos una gota de control que comparte el directorio home de su usuario clúster a través de NFS. Se configura con SSH para iniciar sesión en los nodos de trabajo (mediante la exportación de sus propias credenciales de acceso con NFS, esencialmente).

Nos debe probar la capacidad de nuestros nodos de SSH sin contraseña. Esto nos dará la oportunidad de aceptar cada definición de host para que SSH no se quejará de un host desconocido cuando tratamos de ejecutarlo más tarde.

cambio a su usuario clúster en la gota de control:

su - cluster

SSH en cada nodo (maestro y trabajadores), a su vez:

ssh command

Tipo “Sí” para aceptar la definición de host para cada nodo. posterior salida hacia el nodo que estabas en:

exit

Repita este proceso con cada uno de los nodos por nombre (Trabajo1 ssh, work2 ssh, etc.). Asegúrese de que puede SSH en el uno al otro sin ninguna petición.

Crear el archivo de hosts

vamos a crear un archivo de hosts (diferente del archivo / etc / hosts) con el fin de enumerar los nodos que se deben utilizar para el trabajo de la agrupación.

Con nuestra configuración actual, se utilizará la gotita de control (comando llamado) para ejecutar comandos al clúster. Los 3 nodos de trabajo (trabajo 1, work2, y Trabajo3) serán distribuir la tarea entre ellos.

Nosotros no añadirá la gotita de control a la lista de los ejércitos. Esto permitirá que siga siendo sensible en caso de que nuestro grupo está bajo carga pesada.

En la gotita de control, inicie sesión en el usuario clúster si no lo ha hecho:

su - cluster

Crear un archivo hosts con este comando:

nano ~/hosts
Lista

los nombres de los nodos de trabajo, uno por línea:

work1
work2
work3

Guardar y cierre el archivo.

Por último, podemos crear un directorio bin local para contener nuestras aplicaciones de racimo:

mkdir ~/bin
prueba

el Cluster

El programa mpich2 que envía mensajes entre nodos incluye algunas aplicaciones de ejemplo que se puede utilizar para probar nuestra agrupación. Desafortunadamente, estos no se construyen de manera predeterminada.

Tendremos que compilarlas mismos.

En la gotita de control, como un usuario normal con privilegios sudo, obtener las dependencias de construcción del paquete ya instalado:

sudo apt-get build-dep mpich2

Ahora que tenemos las dependencias apropiadas, podemos adquirir los archivos de código fuente de la página web del proyecto:

wget http://www.mpich.org/static/downloads/1.4.1/mpich2-1.4.1.tar.gz

Descomprimir el archivo y el cambio resultante en el directorio:

tar xzvf mpich*
cd mpich*

Ahora, podemos configurar y hacer el paquete:

./configure && make

Esto tomará un poco de tiempo. Una vez hecho esto, el cambio en el usuario clúster:

su - cluster

Copiar el programa de ejemplo que hemos compilado en el directorio bin que hemos creado:

cp /home/regular_user/mpich2-1.4.1/examples/cpi /home/cluster/bin

Ahora podemos probar nuestra clúster mediante este programa de ejemplo.

Nos hará referencia el archivo hosts que hemos creado y especificar el número de procesos a ejecutar. También vamos a especificar la interfaz que los nodos deben conectarse en, ya que de digitalocean red privada utiliza interfaz eth1 en lugar de la eth0 regular.

mpiexec -f hosts -iface eth1 -n 12 /home/cluster/bin/cpi
Process 6 of 12 is on work1
Process 2 of 12 is on work3
Process 9 of 12 is on work1
Process 11 of 12 is on work3
Process 0 of 12 is on work1
Process 5 of 12 is on work3
Process 8 of 12 is on work3
Process 3 of 12 is on work1
Process 7 of 12 is on work2
Process 10 of 12 is on work2
Process 4 of 12 is on work2
Process 1 of 12 is on work2
pi is approximately 3.1415926544231256, Error is 0.0000000008333325
wall clock time = 0.003485

Como se puede ver, 12 procesos se generan. Si usted va a través de cada proceso de forma secuencial, se dará cuenta de que cada trabajador se utiliza de una manera round robin. Esta prueba demuestra nuestro cluster está funcionando correctamente.

Conclusión

Ahora tiene una Beowulf completamente funcional agrupado medio ambiente. Usted puede agregar fácilmente nodos mediante la instalación del software necesario, agregar hosts adicionales para el archivo hosts en el directorio principal clúster, y llenando en el archivo / etc / hosts.

Cualquier MPI aplicación se puede utilizar de la misma manera. MPI es un estándar, por lo que puede encontrar documentación en línea con la explicación detallada de cómo escribir aplicaciones MPI. Cualquier aplicación MPI puede utilizar este grupo para distribuir los procesos entre varios ordenadores.