OpenStack Caracal : Configure Swift (Storage Node)2024/04/10 |
Configure OpenStack Object Storage (Swift).
This example is based on the environment like follows.
------------+--------------------------+------------ | | eth0|10.0.0.30 eth0|10.0.0.50 +-----------+-----------+ +-----------+-----------+ | [ dlp.srv.world ] | | [ network.srv.world ] | | (Control Node) | | (Proxy Node) | | | | | | MariaDB RabbitMQ | | Swift Proxy | | Memcached Nginx | | Nginx | | Keystone httpd | | | +-----------------------+ +-----------------------+ ------------+--------------------------+--------------------------+----------- eth0|10.0.0.71 eth0|10.0.0.72 eth0|10.0.0.73 +-----------+-----------+ +-----------+-----------+ +-----------+-----------+ | [snode01.srv.world] | | [snode02.srv.world] | | [snode03.srv.world] | | (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 | +-----------------------+ +-----------------------+ +-----------------------+ |
Configure Storage Node on this section.
It's OK to set the same settings mostly on all Storage Nodes, but only IP address are different each other. For storage partition, it needs enough size of free area on disks to create new partitions. |
|
[1] | On all Storage Nodes, Configure OpenStack Caracal repository first like here of [3] and Install Swift-Account, Swift-Container, Swift-Object and others on all Storage Node like follows. |
root@snode01:~# apt -y install swift swift-account swift-container swift-object xfsprogs
|
[2] | Format free space of disk ([/dev/sdb1] on this example) with XFS and mount on [/srv/node/device] on all Storage Node like follows. |
root@snode01:~# mkfs.xfs /dev/sdb1 meta-data=/dev/sdb1 isize=512 agcount=4, agsize=5242816 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 bigtime=0 inobtcount=0 data = bsize=4096 blocks=20971264, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=10239, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 Discarding blocks...Done.
root@snode01:~#
mkdir -p /srv/node/device root@snode01:~# mount -o noatime,nodiratime /dev/sdb1 /srv/node/device root@snode01:~# chown -R swift. /srv/node
root@snode01:~#
blkid | grep sdb1 /dev/sdb1: UUID="3a8490e2-2c5f-42eb-b688-fe0c21ad3206" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="bc0f8b5e-01" root@snode01:~# vi /etc/fstab # add to the end /dev/disk/by-uuid/3a8490e2-2c5f-42eb-b688-fe0c21ad3206 /srv/node/device xfs defaults,noatime,nodiratime 0 0 |
[3] | Copy Swift Ring files from the Swift Proxy Node to all Storage Nodes. |
root@network:~# scp /etc/swift/*.gz 10.0.0.71:/etc/swift/ account.ring.gz 100% 3912 3.8KB/s 00:00 container.ring.gz 100% 3904 3.8KB/s 00:00 object.ring.gz 100% 3895 3.8KB/s 00:00 |
[4] | Configure Swift and Rsync on all Storage Nodes. |
root@snode01:~# chown swift. /etc/swift/*.gz
root@snode01:~#
vi /etc/swift/swift.conf # set the value which is set on Proxy Node [swift-hash] swift_hash_path_suffix = swift_shared_path swift_hash_path_prefix = swift_shared_path
root@snode01:~#
vi /etc/swift/account-server.conf # line 2 : confirm settings like follows bind_ip = 0.0.0.0 bind_port = 6002
root@snode01:~#
vi /etc/swift/container-server.conf # line 2 : confirm settings like follows bind_ip = 0.0.0.0 bind_port = 6001
root@snode01:~#
vi /etc/swift/object-server.conf # line 2 : confirm settings like follows bind_ip = 0.0.0.0 bind_port = 6000
root@snode01:~#
vi /etc/rsyncd.conf # create new
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
uid = swift
gid = swift
# specify the IP address of each storage node
address = 10.0.0.71
[account]
path = /srv/node
read only = false
write only = no
list = yes
incoming chmod = 0644
outgoing chmod = 0644
max connections = 25
lock file = /var/lock/account.lock
[container]
path = /srv/node
read only = false
write only = no
list = yes
incoming chmod = 0644
outgoing chmod = 0644
max connections = 25
lock file = /var/lock/container.lock
[object]
path = /srv/node
read only = false
write only = no
list = yes
incoming chmod = 0644
outgoing chmod = 0644
max connections = 25
lock file = /var/lock/object.lock
[swift_server]
path = /etc/swift
read only = true
write only = no
list = yes
incoming chmod = 0644
outgoing chmod = 0644
max connections = 5
lock file = /var/lock/swift_server.lock
root@snode01:~#
vi /etc/default/rsync # line 14 : change RSYNC_ENABLE= true
|
[5] | Start Swift services. |
root@snode01:~# systemctl restart rsync swift-account-auditor \
root@snode01:~# swift-account-replicator \ swift-account \ swift-container-auditor \ swift-container-replicator \ swift-container-updater \ swift-container \ swift-object-auditor \ swift-object-replicator \ swift-object-updater \ swift-object systemctl enable rsync swift-account-auditor \
swift-account-replicator \ swift-account \ swift-container-auditor \ swift-container-replicator \ swift-container-updater \ swift-container \ swift-object-auditor \ swift-object-replicator \ swift-object-updater \ swift-object |
Sponsored Link |
|