安装和配置存储节点

安装和配置存储节点

本章节描述怎样为操作帐号,容器和对象服务安装和配置存储节点。为简单起见,这里配置两个存储节点,每个包含两个空本地块存储设备。这个向导用的是 /dev/sdb``和 ``/dev/sdc,但是你可以用不同的值代替您的特定节点。

尽管对象存储通过 :term:`extended attributes (xattr)`支持所有文件系统,但测试表明使用 :term:`XFS`时性能最好可靠性最高。 更多关于横向扩展你环境的信息,参考 `Deployment Guide <http://docs.openstack.org/developer/swift/deployment_guide.html>`_

先决条件

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

注解

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

  1. 安装支持的工具包:

    # yum install xfsprogs rsync
    
  2. 使用XFS格式化``/dev/sdb``和``/dev/sdc``设备:

    # 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 noatime,nodiratime,nobarrier,logbufs=8 0 2
    /dev/sdc /srv/node/sdc xfs noatime,nodiratime,nobarrier,logbufs=8 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地址。

    注解

    ``rsync``服务不需要认证,所以考虑将它安装在私有网络的环境中

  1. 启动 “rsyncd” 服务和配置它随系统启动:

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

安全并配置组件

注解

默认配置文件在各发行版本中可能不同。你可能需要添加这些部分,选项而不是修改已经存在的部分和选项。另外,在配置片段中的省略号(...)表示默认的配置选项你应该保留。

注解

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

  1. 安装软件包:

    # yum install openstack-swift-account openstack-swift-container \
      openstack-swift-object
    
  1. 从对象存储源仓库中获取accounting, container以及object服务配置文件

    # curl -o /etc/swift/account-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/account-server.conf-sample?h=stable/mitaka
    # curl -o /etc/swift/container-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/container-server.conf-sample?h=stable/mitaka
    # curl -o /etc/swift/object-server.conf https://git.openstack.org/cgit/openstack/swift/plain/etc/object-server.conf-sample?h=stable/mitaka
    
  2. 编辑 /etc/swift/account-server.conf 文件并完成下面操作:

    • 在``[DEFAULT]`` 部分,配置绑定IP地址,绑定端口,用户,配置目录和挂载目录:

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

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

    • 在``[pipeline:main]``部分,启用合适的模块:

      [pipeline:main]
      pipeline = healthcheck recon account-server
      

      注解

      更多关于启用其他模块的额外功能的信息,请参考`Deployment Guide <http://docs.openstack.org/developer/swift/deployment_guide.html>`__。

    • 在``[filter:recon]``部分,配置recon (meters)缓存目录:

      [filter:recon]
      use = egg:swift#recon
      ...
      recon_cache_path = /var/cache/swift
      
  3. 编辑``/etc/swift/container-server.conf``文件并完成下列操作:

    • 在``[DEFAULT]`` 部分,配置绑定IP地址,绑定端口,用户,配置目录和挂载目录:

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

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

    • 在``[pipeline:main]``部分,启用合适的模块:

      [pipeline:main]
      pipeline = healthcheck recon container-server
      

      注解

      更多关于启用其他模块的额外功能的信息,请参考`Deployment Guide <http://docs.openstack.org/developer/swift/deployment_guide.html>`__。

    • 在``[filter:recon]``部分,配置recon (meters)缓存目录:

      [filter:recon]
      use = egg:swift#recon
      ...
      recon_cache_path = /var/cache/swift
      
  4. 编辑``/etc/swift/object-server.conf``文件并完成下列操作:

    • 在``[DEFAULT]`` 部分,配置绑定IP地址,绑定端口,用户,配置目录和挂载目录:

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

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

    • 在``[pipeline:main]``部分,启用合适的模块:

      [pipeline:main]
      pipeline = healthcheck recon object-server
      

      注解

      更多关于启用其他模块的额外功能的信息,请参考`Deployment Guide <http://docs.openstack.org/developer/swift/deployment_guide.html>`__。

    • 在``[filter:recon]``部分,配置recon(meters)缓存和lock目录:

      [filter:recon]
      use = egg:swift#recon
      ...
      recon_cache_path = /var/cache/swift
      recon_lock_path = /var/lock
      
  5. 确认挂载点目录结构是否有合适的所有权:

    # chown -R swift:swift /srv/node
    
  6. 创建 “recon” 目录和确保它有合适的所有权:

    # mkdir -p /var/cache/swift
    # chown -R root:swift /var/cache/swift
    # chmod -R 775 /var/cache/swift
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.