spectrum_scale


ВАЖНО: К сожалению, этот проект больше не поддерживается его оригинальными создателями. Код был объединён с "официальным" проектом IBM/ibm-spectrum-scale-install-infra — именно там будет проходить дальнейшая разработка. Хотя этот (оригинальный) проект может перестать получать обновления или поддержку, код остаётся доступным для всех, кто заинтересован в его дальнейшем развитии.


IBM Spectrum Scale (GPFS) Роль Ansible

Статус сборки Проблемы на GitHub Звёзды GitHub Загрузки роли Лицензия

Высоко настраиваемая роль Ansible для установки и настройки IBM Spectrum Scale (GPFS)

Особенно необходимы отзывы и будущие требования!

Особенности

  • Установка пакетов Spectrum Scale на узлах Linux
  • Опциональная проверка целостности пакетов с помощью сравнения контрольных сумм
  • Выполнение (офлайн) обновления, если демон остановлен
  • Компиляция или установка предкомпилированного расширения ядра Linux
  • Настройка аутентификации по публичным ключам SSH
  • Создание нового кластера или расширение существующего
  • Настройка сетевых совместно используемых дисков (NSD)
  • Создание новых файловых систем или расширение существующих
  • Настройка классов узлов
  • Определение параметров конфигурации на основе классов узлов

Доступные методы установки:

  • Установка из (существующего) YUM репозитория
  • Установка из удалённого пакета установки (доступного на управляемом узле Ansible)
  • Установка из локального пакета установки (доступного на управляющем компьютере Ansible)

Планы на будущее:

  • Установка пакетов CES
  • Установка GUI и zimon пакетов

Установка

$ ansible-galaxy install acch.spectrum_scale

Требования

Поскольку нет публичного репозитория, вам нужно будет загрузить пакеты Spectrum Scale (GPFS) с веб-сайта IBM. Посетите https://www.ibm.com/support/fixcentral и найдите 'IBM Spectrum Scale (programmed storage)'.

IBM Spectrum Scale Developer Edition

Если у вас нет подписки, вы можете загрузить версию IBM Spectrum Scale Developer Edition:

  • Предоставляет все функции версии IBM Spectrum Scale Data Management Edition, но ограничена 12 ТБ на кластер.
  • IBM не предоставляет поддержку для версии Spectrum Scale Developer Edition. Кроме того, использование в производственной среде запрещено.
  • Версия Developer Edition доступна по адресу https://www.ibm.com/us-en/marketplace/scale-out-file-and-object-storage.

Локальный репозиторий

Чтобы создать локальный репозиторий Spectrum Scale на веб-сервере:

cd /your/webserver/folder
# Загрузите пакет установки. Получите прямую ссылку или скопируйте её вручную...
wget <Spectrum Scale installation package>
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 .

Переменные роли

Переменные по умолчанию определены в defaults/main.yml. Вы также найдёте подробную документацию в этом файле. Определите свои собственные переменные хостов в инвентаре, чтобы переопределить значения по умолчанию.

Определение переменной scale_version является обязательным. Кроме того, вам нужно настроить метод установки, определив одну из следующих переменных:

  • scale_install_repository_url
  • scale_install_remotepkg_path (доступен на управляемом узле Ansible)
  • scale_install_localpkg_path (доступен на управляющем компьютере Ansible)

Членство в кластере

Все хосты в плей будут настроены как узлы в одном кластере. Если вы хотите добавить хосты в существующий кластер, добавьте как минимум один узел из этого существующего кластера в плей.

Вы можете создать несколько кластеров, запустив несколько плей.

Пример playbook

Самый простой возможный playbook для установки Spectrum Scale на узле:

---
- hosts: scale01.example.com
  vars:
    - scale_version: 4.2.3.4
    - scale_install_localpkg_path: /path/to/Spectrum_Scale_Standard-4.2.3.4-x86_64-Linux-install
  roles:
    - acch.spectrum_scale

Это установит все необходимые пакеты и создаст кластер Spectrum Scale с одним узлом.

На практике вы, вероятно, захотите установить Spectrum Scale на нескольких узлах, и вам также нужно учесть роли узлов для достижения высокой доступности. Кластер будет настроен со всеми хостами в текущем плей:

# 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.example.com
  roles:
    - acch.spectrum_scale

Смотрите defaults/main.yml для подробного объяснения возможных переменных и параметров конфигурации.

Определение ролей узлов, таких как scale_cluster_quorum и scale_cluster_manager, является необязательным. Если вы не укажете никаких узлов для кворума, то первые семь хостов в вашем инвентаре автоматически получат роль кворума.

Приведённые выше примеры установят необходимые пакеты и создадут функциональный кластер Spectrum Scale, который можно будет использовать, например, для монтирования существующих удалённых файловых систем. Чтобы также создать локальные файловые системы в новом кластере, вам потребуется предоставить дополнительную информацию. Рекомендуется использовать файлы инвентаря host_vars для этой цели:

# 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

Смотрите man mmchfs и man mmchnsd для описания вышеуказанных параметров хранения.

Имя filesystem является обязательным, и переменная device обязательна для каждого из дисков файловой системы. Все остальные параметры файловой системы и диска являются необязательными. Таким образом, минимальная конфигурация файловой системы может выглядеть так:

# 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

Обратите внимание, что параметры файловой системы могут быть определены как переменные для любого хоста в плей — хост, для которого вы определяете параметры файловой системы, не имеет значения. Для параметров диска хост имеет значение только в том случае, если вы пропустите переменную servers. При пропуске переменной servers хост, для которого вы определяете диск, автоматически считается (единственным) сервером NSD для этого конкретного диска.

Важно: scale_storage должен быть определён для отдельных хостов с использованием файлов инвентаря host_vars. Не определяйте параметры диска с помощью файлов инвентаря group_vars или встроенных vars: в вашем плейбуке. Это применит их ко всем хостам в группе/плей, что приведёт к определению одного и того же диска несколько раз...

Кроме того, классы узлов Spectrum Scale могут быть определены на уровне каждого узла, определив переменную scale_nodeclass:

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

Эти классы узлов могут быть, если это необходимо, использованы для определения параметров конфигурации Spectrum Scale. Рекомендуется использовать файлы инвентаря group_vars для этой цели:

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

Смотрите man mmchconfig для списка доступных параметров конфигурации.

Обратите внимание, что параметры конфигурации могут быть определены как переменные для любого хоста в плей — хост, для которого вы определяете параметры конфигурации, не имеет значения.

Ограничения

Эта роль может (в настоящее время) быть использована для создания новых или расширения существующих кластеров. Аналогично, новые файловые системы могут быть созданы или расширены. Но эта роль не удаляет существующие узлы, диски, файловые системы или классы узлов — это сделано умышленно! Это также причина, почему она не может быть использована, например, для изменения пула файловой системы диска. Изменение пула требует удалить и затем снова добавить диск в файловую систему, что в данный момент не является задачей этой роли.

Кроме того, онлайн-обновления в настоящее время не входят в задачи этой роли. Spectrum Scale поддерживает пошаговые онлайн-обновления (с остановкой одного узла за раз), но это требует тщательного планирования и мониторинга, а также может потребовать ручного вмешательства в случае непредвиденных проблем.

Устранение неполадок

Эта роль хранит конфигурационные файлы в /var/tmp на первом хосте в плей. Эти конфигурационные файлы сохраняются, чтобы определить, изменились ли определения с предыдущего запуска, и решить, необходимо ли снова выполнять определённые команды Spectrum Scale. Если возникают проблемы, можно просто удалить эти конфигурационные файлы из /var/tmp, чтобы очистить кэш — это заставит повторно применить все определения при следующем запуске. Однако, следующий запуск может занять больше времени, чем ожидалось, так как он может повторно запустить ненужные команды Spectrum Scale. Это автоматически заново сгенерирует кэш.

Пожалуйста, используйте трекер проблем для задавания вопросов, сообщения об ошибках и запроса функций.

Авторские права и лицензия

Авторские права 2017 года, Аким Крист, выпущены под лицензией MIT

О проекте

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

Установить
ansible-galaxy install acch/ansible-scale
Лицензия
mit
Загрузки
3193
Владелец