• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

swift对象存储安装

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
对象存储服务概览
OpenStack对象存储是一个多租户的对象存储系统,它支持大规模扩展,可以以低成本来管理大型的非结构化数据,通过RESTful HTTP 应用程序接口。
它包含下列组件:
代理服务器(swift-proxy-server)
接收OpenStack对象存储API和纯粹的HTTP请求以上传文件,更改元数据,以及创建容器。它可服务于在web浏览器下显示文件和容器列表。为了改进性能,代理服务可以使用可选的缓存,通常部署的是memcache。
账户服务器 (swift-account-server)
管理由对象存储定义的账户。
容器服务器 (swift-container-server)
管理容器或文件夹的映射,对象存储内部。
对象服务器 (swift-object-server)
在存储节点上管理实际的对象,比如:文件。
各种定期进程
为了驾驭大型数据存储的任务,复制服务需要在集群内确保一致性和可用性,其他定期进程有审计,更新和reaper。
WSGI中间件
掌控认证,使用OpenStack认证服务。
swift 客户端
用户可以通过此命令行客户端来向REST API提交命令,授权的用户角色可以是管理员用户,经销商用户,或者是swift用户。
swift-init
初始化环链文件生成的脚本,将守护进程名称当作参数并提供命令。归档于http://docs.openstack.org/developer/swift/admin_guide.html#managing-services。
swift-recon
一个被用于检索多种关于一个集群的度量和计量信息的命令行接口工具已被swift-recon中间件采集。
swift-ring-builder
存储环链建立并重平衡实用程序。归档于http://docs.openstack.org/developer/swift/admin_guide.html#managing-the-rings。
 
本章节描述如何安装和配置在存储节点上处理account,container和object服务请求的代理服务。为了简单起见,本指南在控制节点安装和配置代理服务。不过,你可以在任何与存储节点网络联通的节点上运行代理服务。另外,你可以在多个节点安装和配置代理服务提高性能和冗余。更多信息,参考Deployment Guide <http://docs.openstack.org/developer/swift/deployment_guide.html>
先决条件
代理服务依赖于诸如身份认证服务所提供的认证和授权机制。但是,与其他服务不同,它也提供了一个内部机制可以在没有任何其他OpenStack服务的情况下运行。不过为了简单起见,本指南引用:doc:`keystone`中的身份认证服务。在你配置对象存储服务前,你必须创建服务凭证和API端点。
 
本节适用于Red Hat Enterprise Linux 7和CentOS 7。
1.1 对象存储服务不使用控制节点上的SQL数据库。而是使用在每个存储节点的分布式SQLite数据库。
1 获得 admin 凭证来获取只有管理员能执行的命令的访问权限:
$ . admin-openrc
2 要创建身份认证服务的凭证,完成这些步骤:
创建 swift 用户:
[root@controller2 ~]# openstack user create --domain default --password-prompt swift
User Password:
Repeat User Password:
+---------------------+----------------------------------+
| Field | Value |
+---------------------+----------------------------------+
| domain_id | default |
| enabled | True |
| id | e9121a829e7348b2ae74b0be3956344c |
| name | swift |
| options | {} |
| password_expires_at | None |
+---------------------+----------------------------------+
swift 用户添加 admin 角色:
$ openstack role add --project service --user swift admin
创建 swift 服务条目:
$ openstack service create --name swift \
--description "OpenStack Object Storage" object-store
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Object Storage |
| enabled | True |
| id | 75ef509da2c340499d454ae96a2c5c34 |
| name | swift |
| type | object-store |
+-------------+----------------------------------+
3 创建对象存储服务 API 端点:
[root@controller2 ~]# openstack endpoint create --region RegionOne \
> object-store public http://controller2:8080/v1/AUTH_%\(project_id\)s
+--------------+------------------------------------------------+
| Field | Value |
+--------------+------------------------------------------------+
| enabled | True |
| id | 1c18900ffb5043c4b212ecea17184846 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 8706e144a14048c185ced55739459257 |
| service_name | swift |
| service_type | object-store |
| url | http://controller2:8080/v1/AUTH_%(project_id)s |
+--------------+------------------------------------------------+
[root@controller2 ~]# openstack endpoint create --region RegionOne \
> object-store internal http://controller2:8080/v1/AUTH_%\(project_id\)s
+--------------+------------------------------------------------+
| Field | Value |
+--------------+------------------------------------------------+
| enabled | True |
| id | d2c28e09ef8d432c8af9b58f2bf89a94 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 8706e144a14048c185ced55739459257 |
| service_name | swift |
| service_type | object-store |
| url | http://controller2:8080/v1/AUTH_%(project_id)s |
+--------------+------------------------------------------------+
[root@controller2 ~]# openstack endpoint create --region RegionOne \
> object-store admin http://controller2:8080/v1
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 725a4aa3078d4db09581ba5be5c76891 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 8706e144a14048c185ced55739459257 |
| service_name | swift |
| service_type | object-store |
| url | http://controller2:8080/v1 |
+--------------+----------------------------------+
1.2 安全并配置组件
注解
默认配置文件在各发行版本中可能不同。你可能需要添加这些部分,选项而不是修改已经存在的部分和选项。另外,在配置片段中的省略号(...)表示默认的配置选项你应该保留。
1 安装软件包
# yum install openstack-swift-proxy python-swiftclient \
python-keystoneclient python-keystonemiddleware \
memcached
注解
完整的 OpenStack 环境已经包含了这些包的其中一部分。
2 从对象存储的仓库源中获取代理服务的配置文件:
# curl -o /etc/swift/proxy-server.conf https://opendev.org/openstack/swift/raw/branch/master/etc/proxy-server.conf-sample
3 编辑文件 /etc/swift/proxy-server.conf 并完成如下动作:
[DEFAULT] 部分,配置绑定端口,用户和配置目录。
[DEFAULT]
...
bind_port = 8080
user = swift
swift_dir = /etc/swift
在``[pipeline:main]``部分,删除``tempurl``和``tempauth``模块并增加``authtoken``和``keystoneauth``模块
[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] 部分,启动自动账户创建。
[app:proxy-server]
use = egg:swift#proxy
...
account_autocreate = True
[filter:keystoneauth] 部分,配置操作员角色。
[filter:keystoneauth]
use = egg:swift#keystoneauth
...
operator_roles = admin,user
[filter:authtoken] 部分,配置认证服务访问。
[filter:authtoken]
paste.filter_factory = keystonemiddleware.auth_token:filter_factory
...
www_authenticate_uri = http://controller:5000
auth_url = http://controller:5000
memcached_servers = controller:11211
auth_type = password
project_domain_id = default
user_domain_id = default
project_name = service
username = swift
password = SWIFT_PASS
delay_auth_decision = True
使用你在身份认证服务中选择的 swift 用户密码来替换 SWIFT_PASS 。
注解:注释或者删除掉在 [filter:authtoken] 部分的所有其他的内容。
[filter:cache] 部分,配置 memcached 的位置:
[filter:cache]
use = egg:swift#memcache
...
memcache_servers = controller:11211
二、安装和配置存储节点
本章节描述怎样为操作帐号,容器和对象服务安装和配置存储节点。为简单起见,这里配置两个存储节点,每个包含两个空本地块存储设备。这个向导用的是 /dev/sdb``和 ``/dev/sdc,但是你可以用不同的值代替您的特定节点。
1.1 先决条件
在你在存储节点上安装和配置对象存储服务之前,你必须准备好存储设备。
 注解:在每个存储节点上执行这些步骤。
1 安装支持的工具包:
# yum install xfsprogs rsync
2 使用XFS格式化``/dev/sdb``和``/dev/sdc``设备:
# mkfs.xfs /dev/sdb
# mkfs.xfs /dev/sdc
3 创建挂载点目录结构:
# mkdir -p /srv/node/sdb
# mkdir -p /srv/node/sdc
4 编辑``/etc/fstab``文件并添加以下内容:
/dev/sdb /srv/node/sdb xfs noatime,nodiratime,logbufs=8 0 2
/dev/sdc /srv/node/sdc xfs noatime,nodiratime,logbufs=8 0 2
5 挂载设备:
# mount /srv/node/sdb
# mount /srv/node/sdc
6 创建并编辑``/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地址。
注解``rsync``服务不需要认证,所以考虑将它安装在私有网络的环境中
7 启动 “rsyncd” 服务和配置它随系统启动:
# systemctl enable rsyncd.service
# systemctl start rsyncd.service
1.2 安全并配置组件
注解:默认配置文件在各发行版本中可能不同。你可能需要添加这些部分,选项而不是修改已经存在的部分和选项。另外,在配置片段中的省略号(...)表示默认的配置选项你应该保留。
 注解:在每个存储节点上执行这些步骤。
1 安装软件包:
# yum install openstack-swift-account openstack-swift-container \
openstack-swift-object
2 从对象存储源仓库中获取accounting, container以及object服务配置文件
# curl -o /etc/swift/account-server.conf https://opendev.org/openstack/swift/raw/branch/master/etc/account-server.conf-sample
# curl -o /etc/swift/container-server.conf https://opendev.org/openstack/swift/raw/branch/master/etc/container-server.conf-sample
# curl -o /etc/swift/object-server.conf https://opendev.org/openstack/swift/raw/branch/master/etc/object-server.conf-sample
3 编辑 /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]``部分,启用合适的模块:
[pipeline:main]
pipeline = healthcheck recon account-server
注解: 更多关于启用其他模块的额外功能的信息,请参考`Deployment Guide <http://docs.openstack.org/developer/swift/deployment_guide.html>`__。
在``[filter:recon]``部分,配置recon (meters)缓存目录:
[filter:recon]
use = egg:swift#recon
...
recon_cache_path = /var/cache/swift
4 编辑``/etc/swift/container-server.conf``

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift-通知的基本使用发布时间:2022-07-13
下一篇:
7函数——《Swift3.0从入门到出家发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap