分享

九、Swift对象存储服务(双节点搭建)

 jyygp 2021-10-31

要求:Controoler节点需要2块空盘

Compute节点需要再加2块空盘九、Swift对象存储服务(双节点搭建) Cloud 第1张

九、Swift对象存储服务(双节点搭建) Cloud 第2张

本次搭建采用Controller 和 Compute双节点节点做swift组件

1.Controller安装并配置控制节点

2.Compute安装和配置存储节点

3.Compute节点安装并配置组件

4.Controller节点创建,分发并初始化rings

5.启动服务

6.Controller执行验证操作

1.Controller安装并配置控制节点

1.获得凭证并创建身份认证服务的凭证

# . /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

九、Swift对象存储服务(双节点搭建) Cloud 第3张

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达阿里云优惠促销大全。

创建对象存储服务 API 端点

# 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

九、Swift对象存储服务(双节点搭建) Cloud 第4张
九、Swift对象存储服务(双节点搭建) Cloud 第5张

3.安装并配置组件

[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

编辑文件 /etc/swift/proxy-server.conf,删除原有内容,直接添加如下内容

# vi /etc/swift/proxy-server.conf[DEFAULT]bind_port = 8080swift_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#proxyaccount_autocreate = True[filter:tempauth]use = egg:swift#tempauthuser_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:5000auth_url = http://controller:35357memcached_servers = controller:11211auth_type = password project_domain_name = defaultuser_domain_name = defaultproject_name = service username = swift password = 000000delay_auth_decision = True[filter:keystoneauth]use = egg:swift#keystoneauthoperator_roles = admin,user[filter:healthcheck]use = egg:swift#healthcheck[filter:cache]memcache_servers = controller:11211use = 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

编辑文件/etc/swift/swift.conf 删除原有内容,添加如下内容

# vi /etc/swift/swift.conf[swift-hash]swift_hash_path_suffix = changeme
swift_hash_path_prefix = changeme[storage-policy:0]name = Policy-0default = yes
aliases = yellow, orange[swift-constraints]
查看空盘
lsblk

九、Swift对象存储服务(双节点搭建) Cloud 第6张

每个盘划分一个空白分区

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

九、Swift对象存储服务(双节点搭建) Cloud 第7张
九、Swift对象存储服务(双节点搭建) Cloud 第8张

创建挂载目录

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

九、Swift对象存储服务(双节点搭建) Cloud 第9张

指定分区格式

九、Swift对象存储服务(双节点搭建) Cloud 第10张

挂载分区到目录

九、Swift对象存储服务(双节点搭建) Cloud 第11张

添加到/etc/fstab配置文件中

[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

九、Swift对象存储服务(双节点搭建) Cloud 第12张

编辑配置文件 /etc/rsyncd.conf

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

九、Swift对象存储服务(双节点搭建) Cloud 第13张

启动服务

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

九、Swift对象存储服务(双节点搭建) Cloud 第14张

6.赋权:

# 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

编辑三个配置文件account container object

1.编辑 /etc/swift/account-server.conf 文件,删除原有内容,直接添加以下内容#vi /etc/swift/account-server.conf[DEFAULT]bind_ip = 192.168.100.10bind_port = 6002user = 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#reconrecon_cache_path = /var/cache/swift[account-replicator][account-auditor][account-reaper][filter:xprofile]use = egg:swift#xprofile2.编辑``/etc/swift/container-server.conf``文件,删除原有内容,直接添加以下内容:# vi /etc/swift/container-server.conf[DEFAULT]bind_ip = 192.168.100.10bind_port = 6001user = 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#reconrecon_cache_path = /var/cache/swift[container-replicator][container-updater][container-auditor][container-sync][filter:xprofile]use = egg:swift#xprofile3.编辑``/etc/swift/object-server.conf``文件,删除原有内容,直接添加以下内容:# vi /etc/swift/object-server.conf[DEFAULT]bind_ip = 192.168.100.10bind_port = 6000user = 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#reconrecon_cache_path = /var/cache/swift
recon_lock_path = /var/lock[object-replicator][object-reconstructor][object-updater][object-auditor][filter:xprofile]use = egg:swift#xprofile

2.Compute安装和配置存储节点

1.安装软件包

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

搭建Swift Compute节点需要两块空盘,此处我们查看添加的空盘

# lsblk

九、Swift对象存储服务(双节点搭建) Cloud 第15张

创建分区

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

九、Swift对象存储服务(双节点搭建) Cloud 第16张
九、Swift对象存储服务(双节点搭建) Cloud 第17张

指定文件格式

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

九、Swift对象存储服务(双节点搭建) Cloud 第18张

3.创建挂载点目录结构:

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

九、Swift对象存储服务(双节点搭建) Cloud 第19张

挂载分区到目录

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

九、Swift对象存储服务(双节点搭建) Cloud 第20张

4.编辑/etc/fstab文件并添加以下内容:

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

九、Swift对象存储服务(双节点搭建) Cloud 第21张

5.编辑/etc/rsyncd.conf文件并添加以下内容:

[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       = falsewrite only      = nolist            = yes
incoming chmod  = 0644outgoing chmod  = 0644max connections = 25lock file =     /var/lock/account.lock[container]path            = /swift
read only       = falsewrite only      = nolist            = yes
incoming chmod  = 0644outgoing chmod  = 0644max connections = 25lock file =     /var/lock/container.lock[object]path            = /swift
read only       = falsewrite only      = nolist            = yes
incoming chmod  = 0644outgoing chmod  = 0644max connections = 25lock file =     /var/lock/object.lock

九、Swift对象存储服务(双节点搭建) Cloud 第22张

6.启动 “rsyncd” 服务和配置它随系统启动:

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

6.赋权:

# 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

编辑配置文件 account container object

1.编辑 /etc/swift/account-server.conf 文件,删除原有内容,直接添加以下内容#vi /etc/swift/account-server.conf[DEFAULT]bind_ip = 192.168.100.20bind_port = 6002user = 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#reconrecon_cache_path = /var/cache/swift[account-replicator][account-auditor][account-reaper][filter:xprofile]use = egg:swift#xprofile2.编辑``/etc/swift/container-server.conf``文件,删除原有内容,直接添加以下内容:# vi /etc/swift/container-server.conf[DEFAULT]bind_ip = 192.168.100.20bind_port = 6001user = 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#reconrecon_cache_path = /var/cache/swift[container-replicator][container-updater][container-auditor][container-sync][filter:xprofile]use = egg:swift#xprofile3.编辑``/etc/swift/object-server.conf``文件,删除原有内容,直接添加以下内容:# vi /etc/swift/object-server.conf[DEFAULT]bind_ip = 192.168.100.20bind_port = 6000user = 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#reconrecon_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.编辑文件/etc/swift/swift.conf 删除原有内容,添加如下内容

# vi /etc/swift/swift.conf[swift-hash]swift_hash_path_suffix = changeme
swift_hash_path_prefix = changeme[storage-policy:0]name = Policy-0default = yes
aliases = yellow, orange[swift-constraints]

九、Swift对象存储服务(双节点搭建) Cloud 第23张

3.Controller 和 Compute节点安装并配置组件

4.Controller节点创建,分发并初始化rings

1.创建账户ring

1.切换到 ``/etc/swift``目录。创建基本 account.builder 文件:# cd /etc/swift# swift-ring-builder account.builder create 18 1 12.添加每个节点到 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 1002.验证ring内容# swift-ring-builder account.builder3.平衡ring# swift-ring-builder account.builder rebalance

九、Swift对象存储服务(双节点搭建) Cloud 第24张

2.创建ring容器

1.切换到 ``/etc/swift``目录。创建基本``container.builder``文件:# cd /etc/swift# swift-ring-builder container.builder create 10 1 12.添加每个节点到 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 1003.验证 ring 的内容:# swift-ring-builder container.builder4.平衡 ring:# swift-ring-builder container.builder rebalance

九、Swift对象存储服务(双节点搭建) Cloud 第25张

3.创建Ring对象

1.切换到 ``/etc/swift``目录。创建基本``object.builder``文件:# swift-ring-builder object.builder create 10 1 12.添加每个节点到 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 1003.验证 ring 的内容:# swift-ring-builder object.builder4.平衡 ring:# swift-ring-builder object.builder rebalance

九、Swift对象存储服务(双节点搭建) Cloud 第26张

4.Compute节点复制Controller的配置文件

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

九、Swift对象存储服务(双节点搭建) Cloud 第27张

5.启动服务

1.在控制节点Controller上,启动对象存储代理服务及其依赖服务,并将它们配置为随系统启动:

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

九、Swift对象存储服务(双节点搭建) Cloud 第28张

2.在存储节点Controller 和 Compute 两个节点上,启动对象存储服务,并将其设置为随系统启动

两个节点均需操作

# 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执行验证操作

1.导入demo凭证

# . /root/admin-openrc

2. 显示服务状态:

# swift stat

九、Swift对象存储服务(双节点搭建) Cloud 第29张

3.创建容器 container1

# openstack container create container1

九、Swift对象存储服务(双节点搭建) Cloud 第30张

4.上传一个测试文件到container1容器

# openstack object create container1 /root/demo-openrc

九、Swift对象存储服务(双节点搭建) Cloud 第31张

5.列出container1容器里的所有文件

# openstack object list container1

九、Swift对象存储服务(双节点搭建) Cloud 第32张

6.从container1容器里下载一个测试文件

# openstack object save container1 /root/demo-openrc

九、Swift对象存储服务(双节点搭建) Cloud 第33张

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多