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)
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 inventariohost_vars
. No definas parámetros de disco usando archivos de inventariogroup_vars
ovars:
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 y Licencia
Copyright 2017 Achim Christ, publicado bajo la licencia MIT
Highly-customizable Ansible role for installing and configuring IBM Spectrum Scale (GPFS)
ansible-galaxy install acch.spectrum_scale