CentOS Stream 8
Sponsored Link

OpenStack Xena : Configure Swift (Proxy Node)2021/11/24

 
Configure OpenStack Object Storage (Swift).
This example is based on the environment like follows.
------------+--------------------------+-------------+-----
            |                          |             |
        eth0|10.0.0.30             eth0|10.0.0.50    |
+-----------+-----------+  +-----------+-----------+ |
|    [ Control Node ]   |  |    [  Proxy Node  ]   | |
|                       |  |                       | |
|  MariaDB    RabbitMQ  |  |      Swift Proxy      | |
|  Memcached  httpd     |  |                       | |
|  Keystone             |  |                       | |
+-----------------------+  +-----------------------+ |
                                                     |
------------+--------------------------+-------------+------------+------------
        eth0|10.0.0.71             eth0|10.0.0.72             eth0|10.0.0.73
+-----------+-----------+  +-----------+-----------+  +-----------+-----------+
|   [ Storage Node#1 ]  |  |   [ Storage Node#2 ]  |  |   [ Storage Node#3 ]  |
|                       |  |                       |  |                       |
|     Swift-Account     |  |     Swift-Account     |  |     Swift-Account     |
|    Swift-Container    |  |    Swift-Container    |  |    Swift-Container    |
|     Swift-Object      |  |     Swift-Object      |  |     Swift-Object      |
+-----------------------+  +-----------------------+  +-----------------------+

[1] Install Swift-Proxy on Proxy Node.
# install from Xena, EPEL, PowerTools

[root@proxy ~]#
dnf --enablerepo=centos-openstack-xena,powertools,epel -y install openstack-swift-proxy python3-memcached openssh-clients
[2] Configure Swift-Proxy.
[root@proxy ~]#
vi /etc/swift/proxy-server.conf
[filter:cache]
use = egg:swift#memcache
# line 42 : specify Memcached server

memcache_servers =
10.0.0.30:11211
# add to the end
# change to your Keystone auth info

[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
#
admin_tenant_name = %SERVICE_TENANT_NAME%
#
admin_user = %SERVICE_USER%
#
admin_password = %SERVICE_PASSWORD%
#
auth_host = 127.0.0.1
#
auth_port = 35357
#
auth_protocol = http
#
signing_dir = /tmp/keystone-signing-swift
www_authenticate_uri = http://10.0.0.30:5000
auth_url = http://10.0.0.30:5000
memcached_servers = 10.0.0.30:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = swift
password = servicepassword
delay_auth_decision = true
[root@proxy ~]#
vi /etc/swift/swift.conf
# change and add
# it is shared among Swift Nodes - any words you like

[swift-hash]
swift_hash_path_suffix =
swift_shared_path
swift_hash_path_prefix = swift_shared_path
[3] Configure Swift Ring files.
[root@proxy ~]#
swift-ring-builder /etc/swift/account.builder create 12 3 1

[root@proxy ~]#
swift-ring-builder /etc/swift/container.builder create 12 3 1

[root@proxy ~]#
swift-ring-builder /etc/swift/object.builder create 12 3 1
[root@proxy ~]#
swift-ring-builder /etc/swift/account.builder add r0z0-10.0.0.71:6202/device 100

Device d0r0z0-10.0.0.71:6202R10.0.0.71:6202/device_"" with 100.0 weight got id 0
[root@proxy ~]#
swift-ring-builder /etc/swift/container.builder add r0z0-10.0.0.71:6201/device 100

Device d0r0z0-10.0.0.71:6201R10.0.0.71:6201/device_"" with 100.0 weight got id 0
[root@proxy ~]#
swift-ring-builder /etc/swift/object.builder add r0z0-10.0.0.71:6200/device 100

Device d0r0z0-10.0.0.71:6200R10.0.0.71:6200/device_"" with 100.0 weight got id 0
[root@proxy ~]#
swift-ring-builder /etc/swift/account.builder add r1z1-10.0.0.72:6202/device 100

Device d1r1z1-10.0.0.72:6202R10.0.0.72:6202/device_"" with 100.0 weight got id 1
[root@proxy ~]#
swift-ring-builder /etc/swift/container.builder add r1z1-10.0.0.72:6201/device 100

Device d1r1z1-10.0.0.72:6201R10.0.0.72:6201/device_"" with 100.0 weight got id 1
[root@proxy ~]#
swift-ring-builder /etc/swift/object.builder add r1z1-10.0.0.72:6200/device 100

Device d1r1z1-10.0.0.72:6200R10.0.0.72:6200/device_"" with 100.0 weight got id 1
[root@proxy ~]#
swift-ring-builder /etc/swift/account.builder add r2z2-10.0.0.73:6202/device 100

Device d2r2z2-10.0.0.73:6202R10.0.0.73:6202/device_"" with 100.0 weight got id 2
[root@proxy ~]#
swift-ring-builder /etc/swift/container.builder add r2z2-10.0.0.73:6201/device 100

Device d2r2z2-10.0.0.73:6201R10.0.0.73:6201/device_"" with 100.0 weight got id 2
[root@proxy ~]#
swift-ring-builder /etc/swift/object.builder add r2z2-10.0.0.73:6200/device 100

Device d2r2z2-10.0.0.73:6200R10.0.0.73:6200/device_"" with 100.0 weight got id 2
[root@proxy ~]#
swift-ring-builder /etc/swift/account.builder rebalance

Reassigned 12288 (300.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
[root@proxy ~]#
swift-ring-builder /etc/swift/container.builder rebalance

Reassigned 12288 (300.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
[root@proxy ~]#
swift-ring-builder /etc/swift/object.builder rebalance

Reassigned 12288 (300.00%) partitions. Balance is now 0.00. Dispersion is now 0.00
[root@proxy ~]#
chown swift. /etc/swift/*.gz

[root@proxy ~]#
systemctl enable --now openstack-swift-proxy

[4] If Firewalld is running, allow service ports.
[root@proxy ~]#
firewall-cmd --add-port=8080/tcp

success
[root@proxy ~]#
firewall-cmd --runtime-to-permanent

success
Matched Content