安装和配置 Red Hat Enterprise Linux 和 CentOS 的存储节点¶
本节描述了如何安装和配置运行账户、容器和对象服务的存储节点。为了简化配置,这里引用了两个存储节点,每个节点包含两个空的本地块存储设备。指令中使用 /dev/sdb 和 /dev/sdc,但您可以根据您的特定节点替换不同的值。
虽然对象存储支持具有扩展属性 (xattr) 的任何文件系统,但测试和基准测试表明 XFS 具有最佳的性能和可靠性。有关水平扩展您的环境的更多信息,请参阅 部署指南。
本节适用于 Red Hat Enterprise Linux 9 和 CentOS Stream 9。
先决条件¶
在存储节点上安装和配置对象存储服务之前,您必须准备存储设备。
注意
在每个存储节点上执行以下步骤。
安装支持的实用程序包
# dnf install xfsprogs rsync
将
/dev/sdb和/dev/sdc设备格式化为 XFS# mkfs.xfs /dev/sdb # mkfs.xfs /dev/sdc
创建挂载点目录结构
# mkdir -p /srv/node/sdb # mkdir -p /srv/node/sdc
查找新分区的 UUID
# blkid编辑
/etc/fstab文件,并向其中添加以下内容UUID="<UUID-from-output-above>" /srv/node/sdb xfs noatime 0 2 UUID="<UUID-from-output-above>" /srv/node/sdc xfs noatime 0 2
挂载设备
# mount /srv/node/sdb # mount /srv/node/sdc
创建或编辑
/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服务不需要身份验证,因此建议在生产环境中在专用网络上运行它。
启动
rsyncd服务并配置它在系统启动时启动# systemctl enable rsyncd.service # systemctl start rsyncd.service
安装和配置组件¶
注意
默认配置文件因发行版而异。您可能需要添加这些部分和选项,而不是修改现有的部分和选项。此外,配置片段中的省略号 (...) 表示您应该保留的潜在默认配置选项。
注意
在每个存储节点上执行以下步骤。
安装软件包
# dnf install openstack-swift-account openstack-swift-container \ openstack-swift-object
从对象存储源代码仓库获取会计、容器和对象服务配置文件
# curl -o /etc/swift/account-server.conf https://opendev.org/openstack/swift/raw/branch/2025.2/etc/account-server.conf-sample # curl -o /etc/swift/container-server.conf https://opendev.org/openstack/swift/raw/branch/2025.2/etc/container-server.conf-sample # curl -o /etc/swift/object-server.conf https://opendev.org/openstack/swift/raw/branch/2025.2/etc/object-server.conf-sample
编辑
/etc/swift/account-server.conf文件并完成以下操作在
[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 地址。在
[pipeline:main]部分,启用适当的模块[pipeline:main] pipeline = healthcheck recon account-server
注意
有关启用其他功能的其他模块的更多信息,请参阅 部署指南。
在
[filter:recon]部分,配置 recon (计量器) 缓存目录[filter:recon] use = egg:swift#recon ... recon_cache_path = /var/cache/swift
编辑
/etc/swift/container-server.conf文件并完成以下操作在
[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 地址。在
[pipeline:main]部分,启用适当的模块[pipeline:main] pipeline = healthcheck recon container-server
注意
有关启用其他功能的其他模块的更多信息,请参阅 部署指南。
在
[filter:recon]部分,配置 recon (计量器) 缓存目录[filter:recon] use = egg:swift#recon ... recon_cache_path = /var/cache/swift
编辑
/etc/swift/object-server.conf文件并完成以下操作在
[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 地址。在
[pipeline:main]部分,启用适当的模块[pipeline:main] pipeline = healthcheck recon object-server
注意
有关启用其他功能的其他模块的更多信息,请参阅 部署指南。
在
[filter:recon]部分,配置 recon (计量器) 缓存和锁目录[filter:recon] use = egg:swift#recon ... recon_cache_path = /var/cache/swift recon_lock_path = /var/lock
确保挂载点目录结构的适当所有权
# chown -R swift:swift /srv/node
创建
recon目录并确保其适当的所有权# mkdir -p /var/cache/swift # chown -R root:swift /var/cache/swift # chmod -R 775 /var/cache/swift
在防火墙中启用必要的访问
# firewall-cmd --permanent --add-port=6200/tcp # firewall-cmd --permanent --add-port=6201/tcp # firewall-cmd --permanent --add-port=6202/tcp
rsync 服务包含其自身的防火墙配置。从一个节点连接到另一个节点,以确保允许访问。