首页 OpenStack-Ansible Swift
配置服务¶
步骤 5.2. 更新对象存储配置文件 ``swift.yml`` 文件
将
/etc/openstack_deploy/conf.d/swift.yml.example文件复制到/etc/openstack_deploy/conf.d/swift.yml# cp /etc/openstack_deploy/conf.d/swift.yml.example \ /etc/openstack_deploy/conf.d/swift.yml
更新全局覆盖值
# global_overrides: # swift: # part_power: 8 # weight: 100 # min_part_hours: 1 # repl_number: 3 # storage_network: 'br-storage' # replication_network: 'br-repl' # drives: # - name: sdc # - name: sdd # - name: sde # - name: sdf # mount_point: /srv/node # account: # container: # storage_policies: # - policy: # name: gold # index: 0 # default: True # - policy: # name: silver # index: 1 # repl_number: 3 # deprecated: True # statsd_host: statsd.example.com # statsd_port: 8125 # statsd_metric_prefix: # statsd_default_sample_rate: 1.0 # statsd_sample_rate_factor: 1.0
part_power根据整个环使用的总存储量设置分区幂值。
将 swift 安装中使用的最大驱动器数量乘以 100,然后将该值向上舍入到最接近的 2 的幂次方。例如,最大六个驱动器乘以 100 等于 600。大于 600 的最接近的 2 的幂次方是 2 的 9 次方,因此分区幂为 9。在构建 swift 环之后,无法更改分区幂。
weight默认权重为 100。如果驱动器大小不同,请设置权重值以避免数据分布不均。例如,1 TB 磁盘的权重为 100,而 2 TB 驱动器的权重为 200。
min_part_hours默认值为 1。将最小分区小时数设置为移动分区后锁定分区副本的时间量。同时移动多个副本会使数据无法访问。此值可以在 swift、container、account 和 policy 部分中单独设置,较低部分的数值优先于 swift 部分的数值。
repl_number默认值为 3。将复制数量设置为每个对象的副本数。此值可以在 swift、container、account 和 policy 部分中单独设置,更细粒度的部分的数值优先于 swift 部分的数值。
storage_network默认情况下,swift 服务侦听默认管理 IP。可以选择指定存储网络的接口。
如果未设置
storage_network,但每个主机的storage_ips已设置(或者storage_ip不在storage_network接口上),则代理服务器将无法连接到存储服务。replication_network可以选择指定专用的复制网络接口,以便设置专用的复制。如果未指定此值,则未设置专用的
replication_network。如果
repl_ip无法连接到其他主机的repl_ip,则复制将无法正常工作。drives设置每个主机的默认驱动器。当所有主机具有相同的驱动器时,这很有用。这些可以在每个主机的基础上覆盖。
mount_point将
mount_point值设置为挂载 swift 驱动器的位置。例如,挂载点为/srv/node且驱动器为sdc时,驱动器将挂载在swift_host上的/srv/node/sdc上。这可以在每个主机的基础上覆盖。storage_policies存储策略确定数据存储在哪个硬件上,数据如何在这些硬件上存储,以及数据驻留在哪个区域。每个存储策略必须具有唯一的
name和唯一的index。在swift.yml文件中必须有一个索引为 0 的存储策略才能使用任何在实施存储策略之前创建的旧容器。default将默认值设置为
yes,至少针对一个策略。这是为任何非旧容器创建的默认存储策略。deprecated将弃用值设置为
yes以关闭存储策略。对于 account 和 container 环,
min_part_hours和repl_number是唯一可以设置的值。在此部分中设置它们会覆盖特定环的默认值。statsd_hostSwift 支持将额外的指标发送到
statsd主机。此选项设置接收statsd指标的statsd主机。在此处指定它将适用于集群中的所有主机。如果
statsd_host留空或省略,则将禁用statsd。所有
statsd设置可以在结构中更深入地覆盖,或者如果您只想在某些主机上捕获statsdv指标。statsd_port可选地,使用此选项指定您正在发送指标的
statsd服务器的端口。如果省略,则默认为 8125。statsd_default_sample_rate和statsd_sample_rate_factor这些
statsd相关选项更复杂,用于调整发送到statsd的样本数量。除非您需要调整这些设置,否则请省略它们,如果需要,请先阅读:https://docs.openstack.org/swift/2025.2/admin_guide.html
更新 swift 代理主机值
# swift-proxy_hosts: # infra-node1: # ip: 192.0.2.1 # statsd_metric_prefix: proxy01 # infra-node2: # ip: 192.0.2.2 # statsd_metric_prefix: proxy02 # infra-node3: # ip: 192.0.2.3 # statsd_metric_prefix: proxy03
swift-proxy_hosts设置 Ansible 连接到的主机的
IP地址,以部署swift-proxy容器。swift-proxy_hosts值与 infra 节点匹配。
statsd_metric_prefix此指标是可选的,并且仅在您已在某个地方定义
statsd_host时才进行评估。它允许您定义要添加到从此主机发送的所有statsd指标的前缀。如果省略,则使用节点名称。
更新 swift 主机值
# swift_hosts: # swift-node1: # ip: 192.0.2.4 # container_vars: # swift_vars: # zone: 0 # statsd_metric_prefix: node1 # swift-node2: # ip: 192.0.2.5 # container_vars: # swift_vars: # zone: 1 # statsd_metric_prefix: node2 # swift-node3: # ip: 192.0.2.6 # container_vars: # swift_vars: # zone: 2 # statsd_metric_prefix: node3 # swift-node4: # ip: 192.0.2.7 # container_vars: # swift_vars: # zone: 3 # swift-node5: # ip: 192.0.2.8 # container_vars: # swift_vars: # storage_ip: 198.51.100.8 # repl_ip: 203.0.113.8 # zone: 4 # region: 3 # weight: 200 # groups: # - account # - container # - silver # drives: # - name: sdb # weight: 75 # groups: # - gold # storage_port: 6010 # repl_port: 6110 # - name: sdc # - name: sdd # - name: sde # - name: sdf
swift_hosts指定用作存储节点的宿主机。
ip是 Ansible 连接到的宿主机的地址。设置每个 swift 主机的名称和 IP 地址。不需要swift_hosts部分。swift_vars包含 swift 主机特定值。
storage_ip和repl_ip根据主机的
storage_network或replication_network的 IP 地址设置这些值。例如,如果storage_network是br-storage并且 host1 在br-storage上具有 IP 地址 1.1.1.1,那么这就是用于storage_ip的 IP 地址。如果仅指定storage_ip,则repl_ip默认为storage_ip。如果两者都没有指定,则两者都默认为主机 IP 地址。storage_port和repl_port用于启用每个磁盘运行对象服务器。 两者的默认值为
swift_object_port。 https://docs.openstack.org/swift/2025.2/deployment_guide.htmlzone默认值为 0。可选地,设置环的 swift 区域。
region可选地,设置环的 swift 区域。
weight默认权重为 100。如果驱动器大小不同,请设置权重值以避免数据分布不均。可以在主机或驱动器基础上指定此值(如果同时在两者指定,则驱动器设置优先)。
groups设置要列出主机驱动器所属的环的组。这可以在每个驱动器基础上设置,从而覆盖主机设置。
drives设置 swift 主机上的驱动器名称。指定至少一个名称。
statsd_metric_prefix此指标是可选的,并且仅在某个地方定义了
statsd_host时才进行评估。这允许您定义要添加到从此主机发送的所有statsd指标的前缀。如果省略,则使用节点名称。在以下示例中,
swift-node5显示了在swift_hosts部分中覆盖全局值的swift_hosts部分中的值。设置了组,这覆盖了驱动器sdb的全局设置。权重被覆盖为主机,并专门调整为驱动器sdb。# swift-node5: # ip: 192.0.2.8 # container_vars: # swift_vars: # storage_ip: 198.51.100.8 # repl_ip: 203.0.113.8 # zone: 4 # region: 3 # weight: 200 # groups: # - account # - container # - silver # drives: # - name: sdb # weight: 75 # groups: # - gold # - name: sdc # - name: sdd # - name: sde # - name: sdf
确保
swift.yml位于/etc/openstack_deploy/conf.d/文件夹中。