5.2. 自定义对象存储服务


根据 Red Hat OpenStack Platform (RHOSP)环境的要求,您可能想要自定义 Object Storage 服务(swift)的一些默认设置来优化部署性能。

5.2.1. 配置 fast-post

默认情况下,Object Storage 服务会在其元数据的任何部分更改时复制对象整个。您可以使用 fast-post 功能来防止这种情况。当您更改多个大型对象的内容类型时,fast-post 功能会节省时间。

要启用 fast-post 功能,请在 Object Storage 代理服务中禁用 object_post_as_copy 选项。

流程

  1. Edit swift_params.yaml:

    cat > swift_params.yaml << EOF
    parameter_defaults:
        ExtraConfig:
          swift::proxy::copy::object_post_as_copy: False
    EOF
    Copy to Clipboard Toggle word wrap
  2. 在部署或更新 overcloud 时包含参数文件:

    openstack overcloud deploy [... previous args ...] -e swift_params.yaml
    Copy to Clipboard Toggle word wrap

5.2.2. 启用静态加密

默认情况下,上传到 Object Storage 服务(swift)的对象是未加密的。因此,可以直接从文件系统访问对象。如果磁盘在丢弃前没有正确清除磁盘,则可能会造成安全风险。

您可以使用 OpenStack Key Manager (barbican)来加密 at-rest swift 对象。如需更多信息,请参阅 加密 at-rest swift 对象

5.2.3. 部署独立对象存储集群

您可以使用可组合角色概念,使用最少的其他服务(如 Keystone、HAProxy)部署独立 Object Storage 服务(swift)集群。创建 roles_data 文件 部分包含角色的相关信息。

流程

  1. 复制 /usr/share/openstack-tripleo-heat-templates 中的 roles_data.yaml
  2. 编辑新文件。
  3. 删除不需要的控制器角色,如 Aodh047、Chcter、Ceph、Ceph、Cinder、Glance、Heat、Ironic、Manila、Mistral 过程、Nova114、Octct、Octavia、Swift。
  4. roles_data.yaml 中找到 ObjectStorage 角色。
  5. 将此角色复制到同一文件中的新角色,并将其命名为 ObjectProxy
  6. SwiftStorage 替换为此角色中的 SwiftProxy

    以下 roles_data.yaml 文件示例显示了示例角色。

    - name: Controller
      description: |
    	Controller role that has all the controller services loaded and handles
    	Database, Messaging and Network functions.
      CountDefault: 1
      tags:
    	- primary
    	- controller
      networks:
    	- External
    	- InternalApi
    	- Storage
    	- StorageMgmt
    	- Tenant
      HostnameFormatDefault: '%stackname%-controller-%index%'
      ServicesDefault:
    	- OS::TripleO::Services::AuditD
    	- OS::TripleO::Services::CACerts
    	- OS::TripleO::Services::CertmongerUser
    	- OS::TripleO::Services::Clustercheck
    	- OS::TripleO::Services::Docker
    	- OS::TripleO::Services::Ec2Api
    	- OS::TripleO::Services::Etcd
    	- OS::TripleO::Services::HAproxy
    	- OS::TripleO::Services::Keepalived
    	- OS::TripleO::Services::Kernel
    	- OS::TripleO::Services::Keystone
    	- OS::TripleO::Services::Memcached
    	- OS::TripleO::Services::MySQL
    	- OS::TripleO::Services::MySQLClient
    	- OS::TripleO::Services::Ntp
    	- OS::TripleO::Services::Pacemaker
    	- OS::TripleO::Services::RabbitMQ
    	- OS::TripleO::Services::Securetty
    	- OS::TripleO::Services::Snmp
    	- OS::TripleO::Services::Sshd
    	- OS::TripleO::Services::Timezone
    	- OS::TripleO::Services::TripleoFirewall
    	- OS::TripleO::Services::TripleoPackages
    	- OS::TripleO::Services::Vpp
    
    - name: ObjectStorage
      CountDefault: 1
      description: |
    	Swift Object Storage node role
      networks:
    	- InternalApi
    	- Storage
    	- StorageMgmt
      disable_upgrade_deployment: True
      ServicesDefault:
    	- OS::TripleO::Services::AuditD
    	- OS::TripleO::Services::CACerts
    	- OS::TripleO::Services::CertmongerUser
    	- OS::TripleO::Services::Collectd
    	- OS::TripleO::Services::Docker
    	- OS::TripleO::Services::FluentdClient
    	- OS::TripleO::Services::Kernel
    	- OS::TripleO::Services::MySQLClient
    	- OS::TripleO::Services::Ntp
    	- OS::TripleO::Services::Securetty
    	- OS::TripleO::Services::SensuClient
    	- OS::TripleO::Services::Snmp
    	- OS::TripleO::Services::Sshd
    	- OS::TripleO::Services::SwiftRingBuilder
    	- OS::TripleO::Services::SwiftStorage
    	- OS::TripleO::Services::Timezone
    	- OS::TripleO::Services::TripleoFirewall
    	- OS::TripleO::Services::TripleoPackages
    
    - name: ObjectProxy
      CountDefault: 1
      description: |
    	Swift Object proxy node role
      networks:
    	- InternalApi
    	- Storage
    	- StorageMgmt
      disable_upgrade_deployment: True
      ServicesDefault:
    	- OS::TripleO::Services::AuditD
    	- OS::TripleO::Services::CACerts
    	- OS::TripleO::Services::CertmongerUser
    	- OS::TripleO::Services::Collectd
    	- OS::TripleO::Services::Docker
    	- OS::TripleO::Services::FluentdClient
    	- OS::TripleO::Services::Kernel
    	- OS::TripleO::Services::MySQLClient
    	- OS::TripleO::Services::Ntp
    	- OS::TripleO::Services::Securetty
    	- OS::TripleO::Services::SensuClient
    	- OS::TripleO::Services::Snmp
    	- OS::TripleO::Services::Sshd
    	- OS::TripleO::Services::SwiftRingBuilder
    	- OS::TripleO::Services::SwiftProxy
    	- OS::TripleO::Services::Timezone
    	- OS::TripleO::Services::TripleoFirewall
    	- OS::TripleO::Services::TripleoPackages
    Copy to Clipboard Toggle word wrap
  7. 使用常规 openstack deploy 命令部署 overcloud,包括新角色。

    openstack overcloud deploy --templates -r roles_data.yaml -e [...]
    Copy to Clipboard Toggle word wrap

5.2.4. 使用外部 SAN 磁盘

默认情况下,当 Red Hat OpenStack Platform (RHOSP) director 部署 Object Storage 服务(swift)时,对象存储配置为使用独立本地磁盘。此配置可确保工作负载在所有磁盘上分布,这有助于降低节点故障或其他系统问题期间的性能影响。

在性能影响事件类似,使用单个 SAN 的环境会降低所有 LUN 的性能。Object Storage 服务无法缓解使用 SAN 磁盘的环境中的性能问题。

因此,红帽强烈建议您为对象存储使用额外的本地磁盘来满足性能和磁盘空间要求。如需更多信息,请参阅 Deployment Recommendations for Specific Red Hat OpenStack Platform Services 中的 Configuration recommendations for the Telemetry service 部分。

将外部 SAN 用于对象存储需要基于每个情况进行评估。如需更多信息,请联系红帽支持团队。

重要

如果您选择将外部 SAN 用于对象存储,请注意以下条件:

  • 默认情况下,Object Storage 服务存储遥测数据和镜像服务(glance)镜像。Glance 镜像需要更多磁盘空间,但从性能角度来说,存储 glance 镜像的影响比存储遥测数据的影响要小。存储和处理遥测数据需要提高性能。红帽不支持将外部 SAN 用于对象存储的性能。
  • 红帽不支持核心对象存储服务之外的问题。要获得高可用性和性能的支持,请联系您的存储厂商。
  • 红帽不使用对象存储服务测试 SAN 解决方案。有关第三方产品兼容性、指导和支持的更多信息,请联系您的存储供应商。
  • 红帽建议您通过部署来评估和测试性能需求。要确认您的 SAN 部署经过测试、支持并满足您的性能要求,请联系您的存储供应商。

流程

  • 此模板是如何将两个设备(/dev/mapper/vdb/dev/mapper/vdc)用于对象存储的示例:

    parameter_defaults:
      SwiftMountCheck: true
      SwiftUseLocalDir: false
      SwiftRawDisks: {"vdb": {"base_dir":"/dev/mapper/"}, "vdc": {"base_dir":"/dev/mapper/"}}
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat