3.3. 为 Red Hat Enterprise Linux 安装和配置存储节点
要在外部存储节点上使用 Red Hat OpenStack Platform Object Storage 服务(swift),您必须安装并配置运行帐户、容器和对象服务进程的存储节点。此配置引用了两个存储节点,每个节点包含两个空的本地块存储设备。
对象存储服务的内部网络没有进行身份验证。为了安全起见,红帽建议您将存储节点保留在专用网络或 VLAN 中。
这些说明使用 /dev/sdb
和 /dev/sdc
作为设备名称,但您可以替换环境中特定节点的值。
3.3.1. 准备存储设备
在存储节点上安装和配置对象存储服务前,您必须准备存储设备。
在每个存储节点上执行这些步骤。
流程
安装支持工具软件包:
# yum 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
编辑
/etc/fstab
文件并在其中添加以下数据:/dev/sdb /srv/node/sdb xfs defaults 0 2 /dev/sdc /srv/node/sdc xfs defaults 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 地址。
启动
rsyncd
服务并将其配置为在系统引导时启动:# systemctl enable rsyncd.service # systemctl start rsyncd.service
3.3.2. 配置组件
配置帐户、容器和对象存储服务器。
流程
安装软件包:
# yum install openstack-swift-account openstack-swift-container \ openstack-swift-object
编辑
/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]
部分中,启用healthcheck
和recon
模块:[pipeline:main] pipeline = healthcheck recon account-server
在
[filter:recon]
部分中,配置 recon 缓存目录:[filter:recon] use = egg:swift#recon ... recon_cache_path = /var/cache/swift
为帐户服务打开默认防火墙端口:
# firewall-cmd --permanent --add-port=6202/tcp
编辑
/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]
部分中,启用healthcheck
和recon
模块:[pipeline:main] pipeline = healthcheck recon container-server
在
[filter:recon]
部分中,配置 recon 缓存目录:[filter:recon] use = egg:swift#recon ... recon_cache_path = /var/cache/swift
为容器服务打开默认防火墙端口:
# firewall-cmd --permanent --add-port=6201/tcp
编辑
/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]
部分中,启用healthcheck
和recon
模块:[pipeline:main] pipeline = healthcheck recon object-server
在
[filter:recon]
部分中,配置recon_cache_path
和recon_lock_path
目录:[filter:recon] use = egg:swift#recon ... recon_cache_path = /var/cache/swift recon_lock_path = /var/lock
为对象服务打开默认防火墙端口:
# firewall-cmd --permanent --add-port=6200/tcp
确保挂载点目录结构的所有权正确:
# 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