OpenStack之swift安装笔记

在顺利的安装部署了KeyStone之后,原以为swift的安装调试也会如KeyStone一般,但过程却充满了坎坷,在结合源代码中的一些函数之后,终于成功的完成了swift的安装,并实验了上传下载文件等功能,下面整理了swift的安装过程,并对遇到的问题进行了总结,希望对遇到同样问题的人有些启示或帮助。安装过程依然参考的是OpenStack的官方安装手册,但补充了一些细节。在安装之前,先简单的介绍一下Swift是什么、主要功能是什么。OpenStack的对象存储(Swift)是一个多租户的、高可扩展的对象存储系统,通过RESTful HTTP API管理着大量的非结构化数据,在部署对象存储之前必须至少安装了身份服务(KeyStone)。Swift包含的组件包括:

代理服务依赖于认证和授权机制,如果使用身份服务完成认证和授权的话,则在配置管理swift之前,首先要在keystone中创建swift的认证信息和endpoint。对象存储在控制节点上不适用SQL数据库。由于之前已经成功部署了KeyStone,所以这里就不在赘述KeyStone的安装过程,直接进入Swift的安装。本次安装是在单节点的虚拟机进行的,也就是控制节点和存储节点部署在相同的主机中,操作系统为CentOS7.1。首先在KeyStone中创建Swift的用户、服务及endpoint,具体命令及结果如下:

[openstack@localhost ~]$ keystone user-create –name swift –pass 123456+———-+———————————-+| Property |Value|+———-+———————————-+| email ||| enabled |True|| id | ed4f45ac3e8a4ac683d54b642e61ac04 || name |swift|| username |swift|+———-+———————————-+keystone user-role-add –user swift –role admin –tenant service[openstack@localhost ~]$ keystone service-create –name swift –type object-store+————-+———————————-+| Property |Value|+————-+———————————-+| description ||| enabled |True||id| 094cc0da43e348f8b792f77ef99f8e7e ||name |swift||type |object-store|+————-+———————————-+[openstack@localhost ~]$ keystone endpoint-create –region regionOne –service swift –publicurl ‘http://localhost:8080/v1/AUTH_%(tenant_id)s’ –internalurl ‘http://localhost:8080/v1/AUTH_%(tenant_id)s’ –adminurl ‘http://localhost:8080/v1/AUTH_%(tenant_id)s’+————-+—————————————————————–+| Property |Value|+————-+—————————————————————–+| adminurl |:8080/v1/||id|c0da7d196e204e038766740e405dbbce|| internalurl | :8080/v1/AUTH_2835009c452b4d408f95ff5a920fc877 || publicurl | :8080/v1/AUTH_2835009c452b4d408f95ff5a920fc877 || region |regionOne|| service_id |094cc0da43e348f8b792f77ef99f8e7e|+————-+—————————————————————–+ 然后安装proxy-server,swift客户端、memcached等:yum install openstack-swift-proxy python-swiftclient python-keystone-auth-token python-keystonemiddleware memcached。上面命令中的python-keystone-auth-token是无法安装的,当使用yum安装时将会报如下的异常信息:没有可用软件包 python-keystone-auth-token。经过在OpenStack的官网确认,该问题属于文档中的错误,直接忽略该问题或者执行yum install openstack-swift-proxy python-swiftclient python-keystonemiddleware memcached。安装执行完毕后,执行下面的命令下载proxy-server.conf文件:curl -o /etc/swift/proxy-server.conf https://raw.githubusercontent.com/openstack/swift/stable/juno/etc/proxyserver.conf-sample 下载完成后需要对文件中的配置参数进行修改,修改的具体内容如下:在[DEFAULT]中指定端口号、用户名和配置文件目录:

[DEFAULT]…bind_port = 8080user = swiftswift_dir = /etc/swift在[pipeline:main]中,启用合适的模块:

[pipeline:main]pipeline = authtoken cache healthcheck keystoneauth proxy-logging proxy-server在[app:proxy-server]中,启用用户管理功能:

[app:proxy-server]…allow_account_management = trueaccount_autocreate = true在[filter:keystoneauth]中配置合适的操作角色;

[filter:keystoneauth]use = egg:swift#keystoneauth…operator_roles = admin,_member_在[filter:authtoken]中配置认证服务的相关信息:

[filter:authtoken]paste.filter_factory = keystonemiddleware.auth_token:filter_factory…auth_uri = :5000/v2.0identity_uri = :35357admin_tenant_name = serviceadmin_user = swiftadmin_password = SWIFT_PASS #指定为使用keystone创建swift用户时设置的密码,比如123456delay_auth_decision = true在[filter:cache]中,配置memcached的位置:

[filter:cache]…memcache_servers = 127.0.0.1:11211 这样就完成了proxy-server的安装和部署,可以使用systemctl启动该服务了,但目前先不启动该服务,直到部署配置存储服务后。在安装存储服务之前,先为存储服务指定存储目录,这需要将磁盘分区挂载到存储目录。根据官方的安装手册,挂载的磁盘必须具备分区表,也就是该磁盘已经分区完毕。经过测试,该磁盘具备几个分区不重要,但必须执行了分区,可以使用fdisk命令进行磁盘分区操作。虽然Swift支持各种文件系统,但根据测试XFS文件系统具有最好的性能和稳定性,所以对磁盘分区后,比如/dev/sdb1,需要使用命令mkfs.xfs对/dev/sdb1进行格式化:mkfs.xfs /dev/sdb1。格式化完成后,创建挂载目录:mkdir -p /srv/node/,然后编辑/etc/fstab,添加下面语句:

/dev/sdb1 /srv/node/ xfs noatime,nodiratime,nobarrier,logbufs=8 0 2 最后挂载设备的存储目录:mount /srv/node,并修改该目录的所有者为运行swift的用户:chown -R swift:swift /srv/。挂载目录是swift一个潜在的容易出问题的地方,有可能是权限问题,也有可能和后面介绍的配置文件有关,具体的问题后面再详细介绍。挂载设备后,还需要修改/etc/rsyncd.conf文件,具体内容如下:

天上永远不会掉馅饼,不要因为贪图一时的快乐而付出惨痛的代价,

OpenStack之swift安装笔记

相关文章:

你感兴趣的文章:

标签云: