acch.spectrum_scale


重要:不幸的是,这个项目不再由其原始创建者积极维护。代码已合并到“官方”的 IBM/ibm-spectrum-scale-install-infra 项目——未来的所有开发将在这里进行。虽然这个(原始)项目可能不再接收更新或支持,但代码库仍然对任何有兴趣继续开发的人开放和可用。


IBM Spectrum Scale(GPFS)Ansible 角色

构建状态 GitHub问题 GitHub星星 角色下载 许可

高度可定制的 Ansible 角色,用于安装和配置 IBM Spectrum Scale(GPFS)

特别希望得到 反馈 和未来的 要求

功能

  • 在 Linux 节点上安装 Spectrum Scale 软件包
  • 可选择通过比较校验和验证软件包完整性
  • 如果守护进程已停止,则执行(离线)升级
  • 编译或安装预编译的 Linux 内核扩展
  • 配置 SSH 公钥认证
  • 创建新集群或扩展现有集群
  • 配置网络共享磁盘(NSDs)
  • 创建新文件系统或扩展现有文件系统
  • 配置节点类
  • 根据节点类定义配置参数

可用的安装方法:

  • 从(现有的)YUM 仓库安装
  • 从远程安装包安装(在 Ansible 管理节点上可访问)
  • 从本地安装包安装(在 Ansible 控制机器上可访问)

未来计划:

  • 安装 CES 软件包
  • 安装 GUI 和 zimon 软件包

安装

$ ansible-galaxy install acch.spectrum_scale

要求

因为没有公共仓库可用,您需要从 IBM 网站下载 Spectrum Scale(GPFS)软件包。访问 https://www.ibm.com/support/fixcentral 并搜索“IBM Spectrum Scale(软件定义存储)”。

IBM Spectrum Scale 开发者版

如果您没有订阅,现在可以下载 IBM Spectrum Scale 开发者版:

本地仓库

要在 Web 服务器上创建本地 Spectrum Scale 仓库:

cd /your/webserver/folder
# 下载安装包。获取直接链接或手动复制...
wget <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 .

角色变量

默认变量定义在 defaults/main.yml 中。您还可以在该文件中找到详细文档。在您的清单中定义自己的主机变量以覆盖默认值。

定义变量 scale_version 是强制性的。此外,您需要通过定义以下变量中的 一个 来配置安装方法:

  • scale_install_repository_url
  • scale_install_remotepkg_path(在 Ansible 管理节点上可访问)
  • scale_install_localpkg_path(在 Ansible 控制机器上可访问)

集群成员

播放中的所有主机将被配置为同一集群中的节点。如果您想向现有集群添加主机,请至少添加一个来自该现有集群的节点到播放中。

您可以通过运行多个播放来创建多个集群。

示例剧本

在一个节点上安装 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_quorumscale_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 mmchfsman mmchnsd

filesystem 名称是强制性的,并且每个文件系统的 disksdevice 变量也是强制性的。所有其他文件系统和磁盘参数都是可选的。因此,最小的文件系统配置将如下所示:

# 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 Achim Christ,按照 MIT 许可证 发布

关于项目

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

安装
ansible-galaxy install acch.spectrum_scale
许可证
mit
下载
3.2k
拥有者