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