3.3. 为 Red Hat Enterprise Linux 安装和配置存储节点

要在外部存储节点上使用 Red Hat OpenStack Platform Object Storage 服务(swift),您必须安装并配置运行帐户、容器和对象服务进程的存储节点。此配置引用了两个存储节点,每个节点包含两个空的本地块存储设备。

注意

对象存储服务的内部网络没有进行身份验证。为了安全起见,红帽建议您将存储节点保留在专用网络或 VLAN 中。

注意

这些说明使用 /dev/sdb/dev/sdc 作为设备名称,但您可以替换环境中特定节点的值。

3.3.1. 准备存储设备

在存储节点上安装和配置对象存储服务前,您必须准备存储设备。

注意

在每个存储节点上执行这些步骤。

流程

  1. 安装支持工具软件包:

    # yum install xfsprogs rsync
  2. /dev/sdb/dev/sdc 设备格式化为 XFS:

    # mkfs.xfs /dev/sdb
    # mkfs.xfs /dev/sdc
  3. 创建挂载点目录结构:

    # mkdir -p /srv/node/sdb
    # mkdir -p /srv/node/sdc
  4. 编辑 /etc/fstab 文件并在其中添加以下数据:

    /dev/sdb /srv/node/sdb xfs defaults 0 2
    /dev/sdc /srv/node/sdc xfs defaults 0 2
  5. 挂载设备:

    # mount /srv/node/sdb
    # mount /srv/node/sdc
  6. 创建或编辑 /etc/rsyncd.conf 文件,使其包含以下数据:

    uid = swift
    gid = swift
    log file = /var/log/rsyncd.log
    pid file = /var/run/rsyncd.pid
    address = MANAGEMENT_INTERFACE_IP_ADDRESS
    
    [account]
    max connections = 2
    path = /srv/node/
    read only = False
    lock file = /var/lock/account.lock
    
    [container]
    max connections = 2
    path = /srv/node/
    read only = False
    lock file = /var/lock/container.lock
    
    [object]
    max connections = 2
    path = /srv/node/
    read only = False
    lock file = /var/lock/object.lock

    MANAGEMENT_INTERFACE_IP_ADDRESS 替换为存储节点上管理网络的 IP 地址。

  7. 启动 rsyncd 服务并将其配置为在系统引导时启动:

    # systemctl enable rsyncd.service
    # systemctl start rsyncd.service

3.3.2. 配置组件

配置帐户、容器和对象存储服务器。

流程

  1. 安装软件包:

    # yum install openstack-swift-account openstack-swift-container \
      openstack-swift-object
  2. 编辑 /etc/swift/account-server.conf 文件并完成以下操作:

    1. [DEFAULT] 部分中,配置绑定 IP 地址、绑定端口、用户、配置目录和挂载点目录:

      [DEFAULT]
      ...
      bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      bind_port = 6202
      user = swift
      swift_dir = /etc/swift
      devices = /srv/node
      mount_check = True

      MANAGEMENT_INTERFACE_IP_ADDRESS 替换为存储节点上管理网络的 IP 地址。

    2. [pipeline:main] 部分中,启用 healthcheckrecon 模块:

      [pipeline:main]
      pipeline = healthcheck recon account-server
    3. [filter:recon] 部分中,配置 recon 缓存目录:

      [filter:recon]
      use = egg:swift#recon
      ...
      recon_cache_path = /var/cache/swift
  3. 为帐户服务打开默认防火墙端口:

    # firewall-cmd --permanent --add-port=6202/tcp
  4. 编辑 /etc/swift/container-server.conf 文件并完成以下操作:

    1. [DEFAULT] 部分中,配置绑定 IP 地址、绑定端口、用户、配置目录和挂载点目录:

      [DEFAULT]
      ...
      bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      bind_port = 6201
      user = swift
      swift_dir = /etc/swift
      devices = /srv/node
      mount_check = True

      MANAGEMENT_INTERFACE_IP_ADDRESS 替换为存储节点上管理网络的 IP 地址。

    2. [pipeline:main] 部分中,启用 healthcheckrecon 模块:

      [pipeline:main]
      pipeline = healthcheck recon container-server
    3. [filter:recon] 部分中,配置 recon 缓存目录:

      [filter:recon]
      use = egg:swift#recon
      ...
      recon_cache_path = /var/cache/swift
  5. 为容器服务打开默认防火墙端口:

    # firewall-cmd --permanent --add-port=6201/tcp
  6. 编辑 /etc/swift/object-server.conf 文件并完成以下操作:

    1. [DEFAULT] 部分中,配置绑定 IP 地址、绑定端口、用户、配置目录和挂载点目录:

      [DEFAULT]
      ...
      bind_ip = MANAGEMENT_INTERFACE_IP_ADDRESS
      bind_port = 6200
      user = swift
      swift_dir = /etc/swift
      devices = /srv/node
      mount_check = True

      MANAGEMENT_INTERFACE_IP_ADDRESS 替换为存储节点上管理网络的 IP 地址。

    2. [pipeline:main] 部分中,启用 healthcheckrecon 模块:

      [pipeline:main]
      pipeline = healthcheck recon object-server
    3. [filter:recon] 部分中,配置 recon_cache_pathrecon_lock_path 目录:

      [filter:recon]
      use = egg:swift#recon
      ...
      recon_cache_path = /var/cache/swift
      recon_lock_path = /var/lock
  7. 为对象服务打开默认防火墙端口:

    # firewall-cmd --permanent --add-port=6200/tcp
  8. 确保挂载点目录结构的所有权正确:

    # chown -R swift:swift /srv/node
  9. 创建 recon 目录并确保正确所有权:

    # mkdir -p /var/cache/swift
    # chown -R root:swift /var/cache/swift
    # chmod -R 775 /var/cache/swift