Nine, Swift object storage service (two-node structures)

Nine, Swift object storage service (two-node structures)

Requirements: Controoler node needs a blank disc 2

Compute node need to add a blank disc 2Here Insert Picture Description

Here Insert Picture Description

The structures employed Controller and dual node do Compute swift assembly

Install and configure the control node 1.Controller

Install and configure the storage node 2.Compute

Install and configure the node components 3.Compute

4.Controller node to create, distribute and initialize rings

5. Start Services

6.Controller verify operation

Install and configure the control node 1.Controller

1. Obtain credentials and create authentication service credentials

# . /root/admin-openrc
# openstack user create --domain default --password 000000 swift
# openstack role add --project service --user swift admin
# openstack service create --name swift --description "OpenStack Object Storage" object-store

Here Insert Picture Description

Create Object Storage Services API endpoint

# openstack endpoint create --region RegionOne object-store public http://controller:8080/v1/AUTH_%\(tenant_id\)s

# openstack endpoint create --region RegionOne object-store internal http://controller:8080/v1/AUTH_%\(tenant_id\)s

# openstack endpoint create --region RegionOne object-store admin http://controller:8080/v1

Here Insert Picture Description
Here Insert Picture Description

3. Install and configure the components

[root@controller ~]# yum -y install openstack-swift-proxy python-swiftclient python-keystoneclient python-keystonemiddleware memcached xfsprogs rsync openstack-swift-account openstack-swift-container openstack-swift-object

Edit the file /etc/swift/proxy-server.conf, 删除原有内容, add the following directly

# vi /etc/swift/proxy-server.conf


[DEFAULT]
bind_port = 8080
swift_dir = /etc/swift
user = swift
[pipeline:main]
pipeline = catch_errors gatekeeper healthcheck proxy-logging cache container_sync bulk ratelimit authtoken keystoneauth container-quotas account-quotas slo dlo versioned_writes proxy-logging proxy-server
[app:proxy-server]
use = egg:swift#proxy
account_autocreate = True
[filter:tempauth]
use = egg:swift#tempauth
user_admin_admin = admin .admin .reseller_admin
user_test_tester = testing .admin
user_test2_tester2 = testing2 .admin
user_test_tester3 = testing3
user_test5_tester5 = testing5 service
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
auth_uri = http://controller:5000
auth_url = http://controller:35357
memcached_servers = controller:11211
auth_type = password
project_domain_name = default
user_domain_name = default
project_name = service
username = swift
password = 000000
delay_auth_decision = True
[filter:keystoneauth]
use = egg:swift#keystoneauth
operator_roles = admin,user
[filter:healthcheck]
use = egg:swift#healthcheck
[filter:cache]
memcache_servers = controller:11211
use = egg:swift#memcache
[filter:ratelimit]
use = egg:swift#ratelimit
[filter:domain_remap]
use = egg:swift#domain_remap
[filter:catch_errors]
use = egg:swift#catch_errors
[filter:cname_lookup]
use = egg:swift#cname_lookup
[filter:staticweb]
use = egg:swift#staticweb
[filter:tempurl]
use = egg:swift#tempurl
[filter:formpost]
use = egg:swift#formpost
[filter:name_check]
use = egg:swift#name_check
[filter:list-endpoints]
use = egg:swift#list_endpoints
[filter:proxy-logging]
use = egg:swift#proxy_logging
[filter:bulk]
use = egg:swift#bulk
[filter:slo]
use = egg:swift#slo
[filter:dlo]
use = egg:swift#dlo
[filter:container-quotas]
use = egg:swift#container_quotas
[filter:account-quotas]
use = egg:swift#account_quotas
[filter:gatekeeper]
use = egg:swift#gatekeeper
[filter:container_sync]
use = egg:swift#container_sync
[filter:xprofile]
use = egg:swift#xprofile
[filter:versioned_writes]
use = egg:swift#versioned_writes

Edit the file /etc/swift/swift.conf 删除原有内容, add the following

# vi /etc/swift/swift.conf

[swift-hash]
swift_hash_path_suffix = changeme
swift_hash_path_prefix = changeme
[storage-policy:0]
name = Policy-0
default = yes
aliases = yellow, orange
[swift-constraints]
View empty plate
lsblk 

Here Insert Picture Description

Each disk partition dividing a blank

# fdisk /dev/sdb
# fdisk /dev/sdc

Here Insert Picture Description
Here Insert Picture Description

Create a mount directory

[root@controller ~]# mkdir -p /swift/sdb
[root@controller ~]# mkdir -p /swift/sdc

Here Insert Picture Description

Specify the partition format

Here Insert Picture Description

Mount the partition to the directory

Here Insert Picture Description

Add to / etc / fstab configuration file

[root@controller ~]# vi /etc/fstab 
/dev/sdb1 /swift/sdb xfs noatime,nodiratime,nobarrier,logbufs=8 0 0
/dev/sdc1 /swift/sdc xfs noatime,nodiratime,nobarrier,logbufs=8 0 0

Here Insert Picture Description

Edit the configuration file /etc/rsyncd.conf

[root@controller ~]# vi /etc/rsyncd.conf

Here Insert Picture Description

Start Service

[root@controller ~]# systemctl start rsyncd.service
[root@controller ~]# systemctl enable rsyncd.service

Here Insert Picture Description

6. Empowerment:

# mkdir -p /var/cache/swift
# chown -R root:swift /var/cache/swift
# chmod -R 775 /var/cache/swift
# chown -R swift:swift /swift
# chown -R root:swift /etc/swift

Edit three configuration files account container object

1.编辑 /etc/swift/account-server.conf 文件,删除原有内容,直接添加以下内容
#vi /etc/swift/account-server.conf

[DEFAULT]
bind_ip = 192.168.100.10
bind_port = 6002
user = swift
swift_dir = /etc/swift
devices = /swift
mount_check = false
[pipeline:main]
pipeline = healthcheck recon account-server
[app:account-server]
use = egg:swift#account
[filter:healthcheck]
use = egg:swift#healthcheck
[filter:recon]
use = egg:swift#recon
recon_cache_path = /var/cache/swift
[account-replicator]
[account-auditor]
[account-reaper]
[filter:xprofile]
use = egg:swift#xprofile


2.编辑``/etc/swift/container-server.conf``文件,删除原有内容,直接添加以下内容:
# vi /etc/swift/container-server.conf

[DEFAULT]
bind_ip = 192.168.100.10
bind_port = 6001
user = swift
swift_dir = /etc/swift
devices = /swift
mount_check = false
[pipeline:main]
pipeline = healthcheck recon container-server
[app:container-server]
use = egg:swift#container
[filter:healthcheck]
use = egg:swift#healthcheck
[filter:recon]
use = egg:swift#recon
recon_cache_path = /var/cache/swift
[container-replicator]
[container-updater]
[container-auditor]
[container-sync]
[filter:xprofile]
use = egg:swift#xprofile


3.编辑``/etc/swift/object-server.conf``文件,删除原有内容,直接添加以下内容:
# vi /etc/swift/object-server.conf

[DEFAULT]
bind_ip = 192.168.100.10
bind_port = 6000
user = swift
swift_dir = /etc/swift
devices = /swift
mount_check = false
[pipeline:main]
pipeline = healthcheck recon object-server
[app:object-server]
use = egg:swift#object
[filter:healthcheck]
use = egg:swift#healthcheck
[filter:recon]
use = egg:swift#recon
recon_cache_path = /var/cache/swift
recon_lock_path = /var/lock
[object-replicator]
[object-reconstructor]
[object-updater]
[object-auditor]
[filter:xprofile]
use = egg:swift#xprofile

Install and configure the storage node 2.Compute

1. Install Packages

[root@compute ~]# yum -y install xfsprogs rsync openstack-swift-account openstack-swift-container openstack-swift-object

Swift Compute nodes need to set up two empty pan, here we view the added disk space

# lsblk

Here Insert Picture Description

Create a partition

# fdisk /dev/sdc
# fdisk /dev/sdd

Here Insert Picture Description
Here Insert Picture Description

Specify the file format

# mkfs.xfs /dev/sdc1
# mkfs.xfs /dev/sdd1

Here Insert Picture Description

3. Create a mount point directory structure:

[root@compute ~]# mkdir -p /swift/sdc
[root@compute ~]# mkdir -p /swift/sdd

Here Insert Picture Description

Mount the partition to the directory

[root@compute ~]# mount /dev/sdc1 /swift/sdc/
[root@compute ~]# mount /dev/sdd1 /swift/sdd/ 

Here Insert Picture Description

4. Edit /etc/fstabthe file and add the following:

vi /etc/fstab

/dev/sdc1 /swift/sdc xfs noatime,nodiratime,nobarrier,logbufs=8 0 0
/dev/sdd1 /swift/sdd xfs noatime,nodiratime,nobarrier,logbufs=8 0 0

Here Insert Picture Description

5. Edit /etc/rsyncd.confthe file and add the following:

[root@compute ~]#vi /etc/rsyncd.conf

pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
uid = swift
gid = swift
address = 192.168.100.20
[account]
path            = /swift
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            = /swift
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            = /swift
read only       = false
write only      = no
list            = yes
incoming chmod  = 0644
outgoing chmod  = 0644
max connections = 25
lock file =     /var/lock/object.lock

Here Insert Picture Description

6. Start "rsyncd" service and configure it to start with the system:

# systemctl start rsyncd.service
# systemctl enable rsyncd.service

6. Empowerment:

# mkdir -p /var/cache/swift
# chown -R root:swift /var/cache/swift
# chmod -R 775 /var/cache/swift
# chown -R swift:swift /swift
# chown -R root:swift /etc/swift

Edit the configuration file account container object

1.编辑 /etc/swift/account-server.conf 文件,删除原有内容,直接添加以下内容
#vi /etc/swift/account-server.conf

[DEFAULT]
bind_ip = 192.168.100.20
bind_port = 6002
user = swift
swift_dir = /etc/swift
devices = /swift
mount_check = false
[pipeline:main]
pipeline = healthcheck recon account-server
[app:account-server]
use = egg:swift#account
[filter:healthcheck]
use = egg:swift#healthcheck
[filter:recon]
use = egg:swift#recon
recon_cache_path = /var/cache/swift
[account-replicator]
[account-auditor]
[account-reaper]
[filter:xprofile]
use = egg:swift#xprofile


2.编辑``/etc/swift/container-server.conf``文件,删除原有内容,直接添加以下内容:
# vi /etc/swift/container-server.conf

[DEFAULT]
bind_ip = 192.168.100.20
bind_port = 6001
user = swift
swift_dir = /etc/swift
devices = /swift
mount_check = false
[pipeline:main]
pipeline = healthcheck recon container-server
[app:container-server]
use = egg:swift#container
[filter:healthcheck]
use = egg:swift#healthcheck
[filter:recon]
use = egg:swift#recon
recon_cache_path = /var/cache/swift
[container-replicator]
[container-updater]
[container-auditor]
[container-sync]
[filter:xprofile]
use = egg:swift#xprofile


3.编辑``/etc/swift/object-server.conf``文件,删除原有内容,直接添加以下内容:
# vi /etc/swift/object-server.conf

[DEFAULT]
bind_ip = 192.168.100.20
bind_port = 6000
user = swift
swift_dir = /etc/swift
devices = /swift
mount_check = false
[pipeline:main]
pipeline = healthcheck recon object-server
[app:object-server]
use = egg:swift#object
[filter:healthcheck]
use = egg:swift#healthcheck
[filter:recon]
use = egg:swift#recon
recon_cache_path = /var/cache/swift
recon_lock_path = /var/lock
[object-replicator]
[object-reconstructor]
[object-updater]
[object-auditor]
[filter:xprofile]
use = egg:swift#xprofile

4. Edit the file /etc/swift/swift.conf delete the original content, add the following

# vi /etc/swift/swift.conf

[swift-hash]
swift_hash_path_suffix = changeme
swift_hash_path_prefix = changeme
[storage-policy:0]
name = Policy-0
default = yes
aliases = yellow, orange
[swift-constraints]

Here Insert Picture Description

3.Controller Compute node and install and configure the components

4.Controller node to create, distribute and initialize rings

1. Create Account ring

1.切换到 ``/etc/swift``目录。创建基本 account.builder 文件:

# cd /etc/swift
# swift-ring-builder account.builder create 18 1 1
2.添加每个节点到 ring 中:
# swift-ring-builder account.builder add --region 1 --zone 1 --ip 192.168.100.20 --port 6002 --device sdc1 --weight 100
# swift-ring-builder account.builder add --region 1 --zone 1 --ip 192.168.100.20 --port 6002 --device sdd1 --weight 100
# swift-ring-builder account.builder add --region 1 --zone 1 --ip 192.168.100.10 --port 6002 --device sdc1 --weight 100
# swift-ring-builder account.builder add --region 1 --zone 1 --ip 192.168.100.10 --port 6002 --device sdb1 --weight 100
2.验证ring内容
# swift-ring-builder account.builder
3.平衡ring
# swift-ring-builder account.builder rebalance

Here Insert Picture Description

2. Create a container ring

1.切换到 ``/etc/swift``目录。创建基本``container.builder``文件:
# cd /etc/swift
# swift-ring-builder container.builder create 10 1 1
2.添加每个节点到 ring 中:
# swift-ring-builder container.builder add --region 1 --zone 1 --ip 192.168.100.20 --port 6001 --device sdc1 --weight 100
# swift-ring-builder container.builder add --region 1 --zone 1 --ip 192.168.100.20 --port 6001 --device sdd1 --weight 100
# swift-ring-builder container.builder add --region 1 --zone 1 --ip 192.168.100.10 --port 6001 --device sdc1 --weight 100
# swift-ring-builder container.builder add --region 1 --zone 1 --ip 192.168.100.10 --port 6001 --device sdb1 --weight 100
3.验证 ring 的内容:
# swift-ring-builder container.builder
4.平衡 ring:
# swift-ring-builder container.builder rebalance

Here Insert Picture Description

3. Create Object Ring

1.切换到 ``/etc/swift``目录。创建基本``object.builder``文件:
# swift-ring-builder object.builder create 10 1 1
2.添加每个节点到 ring 中:
# swift-ring-builder object.builder add --region 1 --zone 1 --ip 192.168.100.20 --port 6000 --device sdc1 --weight 100
# swift-ring-builder object.builder add --region 1 --zone 1 --ip 192.168.100.20 --port 6000 --device sdd1 --weight 100
# swift-ring-builder object.builder add --region 1 --zone 1 --ip 192.168.100.10 --port 6000 --device sdc1 --weight 100
# swift-ring-builder object.builder add --region 1 --zone 1 --ip 192.168.100.10 --port 6000 --device sdb1 --weight 100
3.验证 ring 的内容:
# swift-ring-builder object.builder
4.平衡 ring:
# swift-ring-builder object.builder rebalance

Here Insert Picture Description

4.Compute copy Controller node configuration file

复制``account.ring.gz``,container.ring.gz``和``object.ring.gz 文件到每个存储节点和其他运行了代理服务的额外节点的 /etc/swift 目录。
[root@compute ~]# scp controller:/etc/swift/*.ring.gz /etc/swift/

Here Insert Picture Description

5. Start Services

1. In the control node Controller, start a proxy object storage services and their services and configure them to start with the system:

# systemctl start openstack-swift-proxy.service memcached.service
# systemctl enable openstack-swift-proxy.service memcached.service

Here Insert Picture Description

2. In the storage node Controller 和 Compute 两个节点, the object storage service start, and set to start with the system

Two nodes are required to operate

# systemctl start openstack-swift-account.service openstack-swift-account-auditor.service openstack-swift-account-reaper.service openstack-swift-account-replicator.service
# systemctl enable openstack-swift-account.service openstack-swift-account-auditor.service openstack-swift-account-reaper.service openstack-swift-account-replicator.service

# systemctl start openstack-swift-container.service openstack-swift-container-auditor.service openstack-swift-container-replicator.service openstack-swift-container-updater.service
# systemctl enable openstack-swift-container.service openstack-swift-container-auditor.service openstack-swift-container-replicator.service openstack-swift-container-updater.service

# systemctl start openstack-swift-object.service openstack-swift-object-auditor.service openstack-swift-object-replicator.service openstack-swift-object-updater.service
# systemctl enable openstack-swift-object.service openstack-swift-object-auditor.service openstack-swift-object-replicator.service openstack-swift-object-updater.service

6.Controller verify operation

Document 1. Import demo

# . /root/admin-openrc

2. Display service status:

# swift stat 

Here Insert Picture Description

3. Create a container container1

# openstack container create container1

Here Insert Picture Description

4. Upload the file to a test container1container

# openstack object create container1 /root/demo-openrc

Here Insert Picture Description

5. List container1all the files in the container

# openstack object list container1

Here Insert Picture Description

6. From the container1download a test file container

# openstack object save container1 /root/demo-openrc

Here Insert Picture Description

Guess you like

Origin www.cnblogs.com/zhijian1574/p/11961240.html