acch.spectrum_scale


IMPORTANTE: Desafortunadamente, este proyecto ya no es mantenido activamente por sus creadores originales. El código se ha fusionado en el proyecto "oficial" IBM/ibm-spectrum-scale-install-infra — que es donde se llevarán a cabo todos los desarrollos futuros. Aunque este (proyecto original) puede no recibir más actualizaciones o soporte, el código sigue siendo accesible y disponible para cualquier persona interesada en continuar su desarrollo.


Rol de Ansible para IBM Spectrum Scale (GPFS)

Estado de Construcción Problemas en GitHub Estrellas en GitHub Descargas del Rol Licencia

Rol de Ansible altamente personalizable para instalar y configurar IBM Spectrum Scale (GPFS)

¡Buscamos especialmente comentarios y futuras necesidades!

Características

  • Instalar paquetes de Spectrum Scale en nodos de Linux
  • Opción de verificar la integridad del paquete comparando sumas de verificación
  • Realizar una actualización (fuera de línea) si el servicio está detenido
  • Compilar o instalar extensión del kernel de Linux precompilada
  • Configurar autenticación de clave pública SSH
  • Crear un nuevo clúster o extender uno existente
  • Configurar Discos Compartidos en Red (NSDs)
  • Crear nuevos sistemas de archivos o extender los existentes
  • Configurar clases de nodos
  • Definir parámetros de configuración basados en clases de nodos

Los siguientes métodos de instalación están disponibles:

  • Instalar desde un repositorio YUM (existente)
  • Instalar desde un paquete de instalación remoto (accesible en el nodo gestionado por Ansible)
  • Instalar desde un paquete de instalación local (accesible en la máquina de control de Ansible)

Planes futuros:

  • Instalar paquetes CES
  • Instalar paquetes de GUI y zimon

Instalación

$ ansible-galaxy install acch.spectrum_scale

Requisitos

Como no hay un repositorio público disponible, necesitarás descargar los paquetes de Spectrum Scale (GPFS) desde el sitio web de IBM. Visita https://www.ibm.com/support/fixcentral y busca 'IBM Spectrum Scale (almacenamiento definido por software)'.

IBM Spectrum Scale Developer Edition

Si no tienes una suscripción, ahora puedes descargar la Edición para Desarrolladores de IBM Spectrum Scale:

  • Proporciona todas las características de la Edición de Gestión de Datos de IBM Spectrum Scale, pero está limitada a 12 TB por clúster.
  • No hay soporte de IBM para la Edición para Desarrolladores de Spectrum Scale. Además, su uso en un entorno de producción está prohibido.
  • La Edición para Desarrolladores se puede acceder a través de https://www.ibm.com/us-en/marketplace/scale-out-file-and-object-storage.

Repositorio Local

Para crear un repositorio local de Spectrum Scale en un servidor web:

cd /tu/carpeta/webserver
# Descarga el paquete de instalación. Obtén el enlace directo o cópialo manualmente...
wget <paquete de instalación de Spectrum Scale>
sh ./Spectrum_Scale_Data_Management-5.0.X.X-x86_64-Linux-install --dir ./SpectrumScaleRpms/5.0.X.X/ --silent
cd SpectrumScaleRpms/5.0.X.X/
yum -y install createrepo
createrepo .

Variables del Rol

Las variables predeterminadas se definen en defaults/main.yml. También encontrarás documentación detallada en ese archivo. Define tus propias variables de host en tu inventario para sobrescribir las predeterminadas.

Definir la variable scale_version es obligatorio. Además, necesitarás configurar un método de instalación definiendo uno de los siguientes variables:

  • scale_install_repository_url
  • scale_install_remotepkg_path (accesible en el nodo gestionado por Ansible)
  • scale_install_localpkg_path (accesible en la máquina de control de Ansible)

Membresía del Clúster

Todos los hosts en la tarea se configurarán como nodos en el mismo clúster. Si deseas agregar hosts a un clúster existente, entonces agrega al menos un nodo de ese clúster existente a la tarea.

Puedes crear múltiples clústeres ejecutando múltiples tareas.

Ejemplo de Playbook

El playbook más simple posible para instalar Spectrum Scale en un nodo:

---
- hosts: scale01.ejemplo.com
  vars:
    - scale_version: 4.2.3.4
    - scale_install_localpkg_path: /ruta/a/Spectrum_Scale_Standard-4.2.3.4-x86_64-Linux-install
  roles:
    - acch.spectrum_scale

Esto instalará todos los paquetes necesarios y creará un clúster de Spectrum Scale de un solo nodo.

En realidad, es probable que desees instalar Spectrum Scale en varios nodos, y también querrás considerar los roles de los nodos para lograr alta disponibilidad. El clúster se configurará con todos los hosts en la tarea actual:

# hosts:
[cluster01]
scale01  scale_cluster_quorum=true   scale_cluster_manager=true
scale02  scale_cluster_quorum=true   scale_cluster_manager=true
scale03  scale_cluster_quorum=true   scale_cluster_manager=false
scale04  scale_cluster_quorum=false  scale_cluster_manager=false
scale05  scale_cluster_quorum=false  scale_cluster_manager=false
# playbook.yml:
---
- hosts: cluster01
  vars:
    - scale_version: 4.2.3.4
    - scale_install_repository_url: http://infraserv/gpfs_rpms/
    - scale_cluster_clustername: cluster01.ejemplo.com
  roles:
    - acch.spectrum_scale

Consulta defaults/main.yml para obtener una explicación detallada de las posibles variables y opciones de configuración.

Definir roles de nodo como scale_cluster_quorum y scale_cluster_manager es opcional. Si no especificas ningún nodo de quórum, los primeros siete hosts en tu inventario se asignarán automáticamente a este rol.

Los ejemplos anteriores instalarán los paquetes requeridos y crearán un clúster funcional de Spectrum Scale que se puede utilizar para, por ejemplo, montar sistemas de archivos remotos existentes. Para también crear sistemas de archivos locales en el nuevo clúster, necesitarás proporcionar información adicional. Se sugiere utilizar archivos de inventario host_vars para ese propósito:

# host_vars/scale01:
---
scale_storage:
  - filesystem: gpfs01
    blockSize: 4M
    defaultMetadataReplicas: 2
    defaultDataReplicas: 2
    numNodes: 16
    automaticMountOption: true
    defaultMountPoint: /mnt/gpfs01
    disks:
      - device: /dev/sdb
        nsd: nsd_1
        servers: scale01
        failureGroup: 10
        usage: metadataOnly
        pool: system
      - device: /dev/sdc
        nsd: nsd_2
        servers: scale01
        failureGroup: 10
        usage: dataOnly
        pool: data
# host_vars/scale02:
---
scale_storage:
  - filesystem: gpfs01
    disks:
      - device: /dev/sdb
        nsd: nsd_3
        servers: scale02
        failureGroup: 20
        usage: metadataOnly
        pool: system
      - device: /dev/sdc
        nsd: nsd_4
        servers: scale02
        failureGroup: 20
        usage: dataOnly
        pool: data

Consulta man mmchfs y man mmchnsd para obtener una descripción de los parámetros de almacenamiento anteriores.

El nombre del filesystem es obligatorio, y la variable device es obligatoria para cada uno de los disks del sistema de archivos. Todos los demás parámetros de sistema de archivos y disco son opcionales. Por lo tanto, una configuración mínima del sistema de archivos se vería así:

# host_vars/scale01:
---
scale_storage:
  - filesystem: gpfs01
    disks:
      - device: /dev/sdb
      - device: /dev/sdc
# host_vars/scale02:
---
scale_storage:
  - filesystem: gpfs01
    disks:
      - device: /dev/sdb
      - device: /dev/sdc

Ten en cuenta que los parámetros de sistema de archivos pueden definirse como variables para cualquier host en la tarea — el host para el cual defines los parámetros del sistema de archivos es irrelevante. Para los parámetros de disco el host es solo relevante si omites la variable servers. Al omitir la variable servers, el host para el cual defines el disco se considerará automáticamente como el (único) servidor NSD para ese disco en particular.

Importante: scale_storage debe definirse para uno o varios host(s) usando archivos de inventario host_vars. No definas parámetros de disco usando archivos de inventario group_vars o vars: en línea en tu playbook. Hacerlo aplicaría a todos los hosts en el grupo/tarea, definiendo así el mismo disco varias veces...

Además, las clases de nodos de Spectrum Scale pueden definirse por nodo definiendo la variable scale_nodeclass:

# host_vars/scale01:
---
scale_nodeclass:
  - classA
  - classB
# host_vars/scale02:
---
scale_nodeclass:
  - classA
  - classC

Estas clases de nodo pueden usarse opcionalmente para definir parámetros de configuración de Spectrum Scale. Se sugiere utilizar archivos de inventario group_vars para ese fin:

# group_vars/all:
---
scale_config:
  - nodeclass: classA
    params:
      - pagepool: 16G
      - autoload: no
      - ignorePrefetchLUNCount: yes

Consulta man mmchconfig para obtener una lista de los parámetros de configuración disponibles.

Ten en cuenta que los parámetros de configuración pueden definirse como variables para cualquier host en la tarea — el host para el cual defines los parámetros de configuración es irrelevante.

Limitaciones

Este rol se puede (actualmente) utilizar para crear nuevos clústeres o extender clústeres existentes. Del mismo modo, se pueden crear o extender nuevos sistemas de archivos. Pero este rol no eliminará nodos, discos, sistemas de archivos o clases de nodos existentes — ¡a propósito! Esta es también la razón por la cual no se puede usar para, por ejemplo, cambiar el grupo de almacenamiento de un disco. Cambiar el grupo requiere eliminar y luego volver a agregar el disco a un sistema de archivos, lo que actualmente no está en el alcance de este rol.

Además, las actualizaciones en línea no están actualmente en el alcance de este rol. Spectrum Scale admite actualizaciones en línea con interrupciones (apagando un nodo a la vez), pero esto requiere una cuidadosa planificación y monitoreo, y puede requerir intervención manual en caso de problemas imprevistos.

Solución de Problemas

Este rol almacena archivos de configuración en /var/tmp en el primer host en la tarea. Estos archivos de configuración se mantienen para determinar si las definiciones han cambiado desde la ejecución anterior, y para decidir si es necesario ejecutar ciertos comandos de Spectrum Scale (de nuevo). Al experimentar problemas, uno puede simplemente eliminar estos archivos de configuración de /var/tmp para borrar la caché — esto forzará la reaplicación de todas las definiciones en la siguiente ejecución. Como desventaja, la siguiente ejecución puede tardar más de lo esperado, ya que podría volver a ejecutar comandos innecesarios de Spectrum Scale. Hacer esto regenerará automáticamente la caché.

Por favor, utiliza el rastreador de problemas para hacer preguntas, reportar errores y solicitar nuevas funciones.

Copyright 2017 Achim Christ, publicado bajo la licencia MIT

Acerca del proyecto

Highly-customizable Ansible role for installing and configuring IBM Spectrum Scale (GPFS)

Instalar
ansible-galaxy install acch.spectrum_scale
Licencia
mit
Descargas
3.2k
Propietario