Balancín

Instalar y configurar el balanceador de carga de Seesaw

Instalar y configurar el balanceador de carga de Seesaw
En esta era de la multiprogramación, hay varios procesos que se ejecutan simultáneamente y se hace un gran esfuerzo para aumentar el rendimiento y la eficiencia del trabajo. Los servidores tienen que manejar una gran cantidad de trabajo y, a veces, es muy difícil administrar el tráfico. Por lo tanto, existen equilibradores de carga para distribuir los diversos recursos informáticos para una utilización óptima de los recursos, aumentar el rendimiento y el tiempo de respuesta. Lo que hacen los balanceadores de carga es distribuir la carga de tráfico a través de múltiples redes o hosts agrupados para aumentar la disponibilidad, confiabilidad y rendimiento de la red. A las solicitudes entrantes se les asigna una IP virtual, también conocida como VIP en el balanceador de carga, y luego el balanceador de carga pasa las solicitudes al servidor apropiado detrás de él con la menor modificación de los paquetes.  Luego, el servidor responde al balanceador de carga con los datos requeridos que finalmente el balanceador de carga envía al sitio del cliente.

Tipos de equilibrio de carga

Hay dos tipos de plataformas de equilibrio de carga: HAProxy y servidor virtual de Linux, también conocido como LVS, y Seesaw v2 es una plataforma de equilibrio de carga basada en un servidor virtual de Linux.

Seesaw es una herramienta muy flexible que se puede utilizar como un balanceador de carga básico para sitios web de tamaño pequeño a mediano o como un balanceador de carga avanzado para redes de nivel corporativo donde una docena de servidores están interconectados. Admite algunas de las funciones avanzadas de Ipv6, como anycast, multicast, unicast y retorno directo del servidor, múltiples VLAN.

Tener un diseño robusto lo hace adecuado para un fácil mantenimiento y confiabilidad. Está diseñado en 2012 para satisfacer las necesidades únicas de Google, que las opciones existentes no cumplían. Está desarrollado en Go, que es un lenguaje de tipado estático y se deriva de Lenguaje C. Contiene muchas características de lenguaje de alto nivel, como recolección de basura para limpiar la memoria, seguridad de tipos, matrices de longitud variable, capacidades de escritura dinámica y mapas de valores clave, y una gran biblioteca estándar. Golang es un lenguaje compilado desarrollado por Google. Muchas aplicaciones modernas como Docker, Kubernetes, InfluxDB, Gogs (Go Git Service) y Caddy están escritas en Go.

Requisito previo

  1. El enlace para descargar la última versión de GoLang para Linux está disponible en https: // golang.org / dl / en forma de archivo de almacenamiento.

  2. La integridad del tarball se puede verificar comparando el valor hash generado usando el comando shassum con el valor hash proporcionado en el sitio web. Si hay alguna diferencia en los valores hash, siempre se debe descargar un nuevo tarball del archivo. Si la verificación es exitosa, continúe con el tutorial.

    $ shasum -a 256 go1.11.5.linux-amd64.alquitrán.gz

    En este comando, -a se usa para especificar el algoritmo para generar valor hash y este comando en su conjunto realiza la suma de comprobación SHA256 de los archivos de almacenamiento.

  3. El siguiente paso es extraer los archivos tar, si la verificación de integridad es exitosa, en el directorio / usr / local usando el comando que se proporciona a continuación: $ sudo tar -C / user / local -xvzf go1.11.5.linux-amd64.alquitrán.gz

    En este comando -C especifica el directorio de destino donde se envían los archivos extraídos.

  4. Para configurar Go Environment en Ubuntu, configure el espacio de trabajo de Go creando un directorio ~ / go_project_directory que es la raíz del espacio de trabajo. El espacio de trabajo contiene tres directorios principales
    • bin: contiene archivos binarios del golang.
    • src- que almacena todos los archivos fuente.
    • pkg- que almacenará los objetos del paquete.
    Se puede crear un árbol de directorios de la siguiente manera:

    $ mkdir -p ~ / go_projects / bin, src, pkg
    $ cd go_projects /
    $ ls

  5. Para ejecutar Go, siga como el resto de programas de Linux sin especificar su ruta absoluta. El directorio donde está instalado golang debe usarse como uno de los valores de la variable de entorno $ PATH.
    • Para agregar / usr / local / go / bin a la variable de entorno PATH, se debe ejecutar el siguiente comando:
    $ sudo gedit $ HOME /.perfil

    O puede abrirlo en la terminal usando el comando

    $ vi .perfil

    Luego / usr / local / go / bin debe ser agregado a la ruta. Luego, todos los cambios deben guardarse y el usuario debe cerrar la sesión del perfil y volver a iniciar sesión para continuar con los procedimientos.

    • Todas las rutas se establecen en el perfil configurando los valores de GOPATH y GOBIN.
    exportar GOPATH = ”$ HOME / go”
    exportar GOBIN = "$ GOPATH / bin"
    • Si GoLang está instalado en un directorio personalizado que no sea el predeterminado (/ usr / local), existe el requisito de especificar ese directorio como la variable GOROOT. Se hace en th .perfil por
    exportar GOROOT = ”$ HOME / go
    export PATH = $ PATH: / usr / local / go / bin: $ GOPATH / bin

  6.  El entorno de GoLang después de una configuración exitosa se puede verificar en la terminal ejecutando el siguiente comando: $ go
    $ ir env

Instalación de balancín

  1. Era un requisito instalar Go, ya que Seesaw v2 está desarrollado con él y depende de varios paquetes de Go como:
> golang.org / x / crypto / ssh
> github.com / golang / glog
> github.com / dlintw / goconf
> github.com / golang / protobuf / proto
> github.com / miekg / dns
  1. Si se desea regenerar el código protobuf, también se necesitan el compilador protobuf y el generador del compilador Go protobuf: $ apt-get install protobuf-compiler
    $ ir a buscar -u github.com / golamg / protobuf / proto, proto-gen-go

    1. Siempre debe asegurarse de que $ GOPATH / bin esté en $ PATH y en el directorio de balancín.
    2. El siguiente paso es ejecutar el comando make, ya que lleva a la adición de varios binarios en $ GOPATH / bin con un prefijo seesaw_, estos binarios deben instalarse en las ubicaciones adecuadas.

      $ hacer prueba
      $ hacer instalar
      $ hacer proto

      Después de ejecutar los tres comandos anteriores, los binarios de balancín se configuran en las ubicaciones adecuadas. se puede hacer creando seesaw_install en $ GOPATH / bin y ejecutando el siguiente script.

      SEESAW_BIN = "/ usr / local / balancín"
      SEESAW_ETC = "/ etc / balancín
      SEESAW_LOG = "/ var / log / balancín"
      INIT = 'ps -p 1 -o comm ='
      instalar -d "$ SEESAW_BIN" "$ SEESAW_ETC" "$ SEESAW_LOG"
      instalar "$ GOPATH / bin / seesaw_cli" / usr / bin / seesaw
      para el componente en ecu, engine, ha, healthcheck, ncc, watchdog; hacer
      instalar "$ GOPATH / bin / seesaw _ $ component" "$ SEESAW_BIN"
      hecho
      si [$ INIT = "init"]; luego
      instalar "etc / init / seesaw_watchdog.conf "" / etc / init "
      elif [$ INIT = "systemd"]; luego
      instalar "etc / systemd / system / seesaw_watchdog.servicio "" / etc / systemd / system "
      systemctl --system daemon-reload
      fi
      instalar "etc / seesaw / watchdog.cfg "" $ SEESAW_ETC "
      # Habilite CAP_NET_RAW para binarios de balancín que requieren sockets sin procesar.
      / sbin / setcap cap_net_raw + ep "$ SEESAW_BIN / seesaw_ha"
      / sbin / setcap cap_net_raw + ep "$ SEESAW_BIN / seesaw_healthcheck"

Configuración de balancín

  1. Cada nodo requiere un balancín.cfg, conocido como archivo de configuración, donde se almacena la información sobre el nodo y su par perteneciente. Protobuf es el archivo de configuración del clúster para cada clúster y está en formato de texto sin formato. Esto permite que se abra con cualquier editor de texto de Linux como nano, vi. Se puede cambiar el balancín.cfg usando el siguiente comando:
$ vi / etc / balancín / balancín.cfg

Un ejemplo del balancín.archivo cfg

[grupo]
anycast_enabled = falso
nombre = au-syd
node_ipv4 = 192.168.
node_ipv6 = 2015: café :: 2
peer_ipv4 = 192.168.10.3
peer_ipv6 = 2015: café :: 3
vip_ipv4 = 192.168.10.1
vip_ipv6 = 2015: café :: 1
[config_server]
primario = balancín-config1.ejemplo.com
secundario = balancín-config2.ejemplo.com
terciario = seesaw-config3.ejemplo.com
[interfaz]
nodo = eth0
lb = eth1

La descripción de la cript antes mencionada se da a continuación

Conclusión

Debido a las inmensas ventajas de la función de equilibrio de carga, a menudo se usa en muchas redes corporativas. Hay tres tipos de modos de entrega en general en el estándar IPv4, Unicast, Multicast y Broadcast. Anycast se acepta en IPv6. Anycast rara vez está presente en IPv4. Anycast utiliza para identificar una interfaz de un grupo de interfaces que se conectan al mismo servicio.  Las VIP son direcciones IP virtuales que no pertenecen a ninguna interfaz de red física. Un equilibrador de carga debe ser confiable y tener las características más importantes de los servicios en la nube.

Muchos de los balanceadores de carga en el mercado no tienen monitoreo de servidor backend y muchas otras características específicas. Hay varios métodos de equilibrio de carga en la capa de interconexión de sistemas abiertos 2/3/4. Estas capas son la capa de enlace de datos, la capa de red y la capa de transporte. Seesaw utiliza la técnica de capa 4 con NAT Y DSR (Direct Server Return). DSR modifica el flujo de tráfico o la carga al permitir que el servidor responda directamente al cliente. Con todo, el balanceador de carga Seesaw es robusto y confiable debido a estos aspectos.

Cómo impulsar FPS en Linux?
FPS significa Cuadros por segundo. La tarea de FPS es medir la velocidad de fotogramas en reproducciones de video o actuaciones de juegos. En palabras...
Los mejores juegos de Oculus App Lab
Si es propietario de un visor Oculus, debe estar informado sobre la descarga lateral. Sideloading es el proceso de instalación de contenido que no es ...
Los 10 mejores juegos para jugar en Ubuntu
La plataforma Windows ha sido una de las plataformas dominantes para juegos debido al gran porcentaje de juegos que se están desarrollando hoy para ad...