5.2. 自定义对象存储服务


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

5.2.1. 配置 fast-post

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

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

流程

  1. 编辑 swift_params.yaml:

    cat > swift_params.yaml << EOF
    parameter_defaults:
        ExtraConfig:
          swift::proxy::copy::object_post_as_copy: False
    EOF
  2. 在部署或更新 overcloud 时包括参数文件:

    openstack overcloud deploy [... previous args ...] -e swift_params.yaml

5.2.2. 启用 at-rest 加密

默认情况下,上传到对象存储服务(swift)的对象是未加密的。因此,可以直接从文件系统访问对象。如果磁盘在丢弃前没有正确清除,这可能会带来安全风险。对象存储对象。有关更多信息, 请参阅使用 OpenStack Key Manager 管理 Secret 中的 加密 Object Storage (swift) at-rest 对象

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

您可以使用可组合角色概念来部署独立 Object Storage 服务(swift)集群,使其具有最小的其他服务,如 OpenStack Identity 服务(keystone)或 HAProxy。

流程

  1. /usr/share/openstack-tripleo-heat-templates 复制 roles_data.yaml
  2. 编辑新文件。
  3. 删除不需要的控制器角色,如 Aodh*、Ceiloe*、Ceph*、Cinder*、Glance*、Heat*、Ironic*、Manila*、Nova*、Octich、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
  7. 使用常规的 openstack deploy 命令(包括新角色)部署 overcloud。

    $ openstack overcloud deploy --templates -r roles_data.yaml -e [...]

5.2.4. 使用外部 SAN 磁盘

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

在性能影响事件中,使用单个 SAN 的环境可在所有 LUN 中降低性能。Object Storage 服务无法缓解使用 SAN 磁盘的环境中的性能问题。因此,为对象存储使用额外的本地磁盘来满足性能和磁盘空间要求。如需更多信息 ,请参阅对象存储服务的磁盘建议

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

重要

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

  • 红帽不对使用外部 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/"}}

5.2.5. 对象存储服务的磁盘建议

为 Red Hat OpenStack Platform (RHOSP) Object Storage 服务(swift)使用一个或多个单独的本地磁盘。

默认情况下,RHOSP director 将系统磁盘上的目录 /srv/node/d1 用于对象存储服务。在 Controller 上,这个磁盘也被其他服务使用,磁盘可能会成为性能瓶颈。

以下示例是 RHOSP 编排服务(heat)自定义环境文件摘录。在每个 Controller 节点上,对象存储服务使用两个独立的磁盘。两个磁盘的整个都包含一个 XFS 文件系统:

parameter_defaults:
  SwiftRawDisks: {"sdb": {}, "sdc": {}}

SwiftRawDisks 定义节点上的每个存储磁盘。这个示例在每个 Controller 节点上定义了 sdbsdc 磁盘。

重要

在配置多个磁盘时,请确保 Bare Metal 服务(ironic)使用预期的根磁盘。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2026 Red Hat
返回顶部