一 问题现象
现象一:
[root@localhost dev(keystone_demo)]# swift list
HTTPConnectionPool(host='192.168.0.120', port=8080): Max retries exceeded with url: /v1/AUTH_b38c09cb0b5a4d46820c66052bb0ee94?format=json (Caused by NewConnectionError('<requests.packages.urllib3.connection.HTTPConnection object at 0x7ff811251410>: Failed to establish a new connection: [Errno 111] Connection refused',))
现象二:
dashboard容器项报错
错误: 无法获取Swift服务信息
二 问题分析
根据问题现象8080无法访问。于是执行如下命令:
[root@localhost swift(keystone_demo)]# netstat -na|grep 8080
显示无结果,说明8080端口没启用,怀疑服务启动失败。
查看服务启动情况,执行如下命令:
[root@localhost dev(keystone_demo)]# ps -ef | grep swift
swift 1100 1 0 13:35 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-account-auditor /etc/swift/account-server.conf
swift 1111 1 0 13:35 ? 00:00:01 /usr/bin/python2 /usr/bin/swift-object-expirer /etc/swift/object-expirer.conf
swift 1113 1 0 13:35 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-object-updater /etc/swift/object-server.conf
swift 1120 1 0 13:35 ? 00:00:01 /usr/bin/python2 /usr/bin/swift-container-replicator /etc/swift/container-server.conf
swift 1127 1 0 13:35 ? 00:00:02 /usr/bin/python2 /usr/bin/swift-object-replicator /etc/swift/object-server.conf
swift 1128 1 0 13:35 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-account-reaper /etc/swift/account-server.conf
swift 1132 1 0 13:35 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-container-auditor /etc/swift/container-server.conf
swift 1135 1 0 13:35 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-container-updater /etc/swift/container-server.conf
swift 1139 1 1 13:35 ? 00:01:11 /usr/bin/python2 /usr/bin/swift-container-server /etc/swift/container-server.conf
swift 1140 1 1 13:35 ? 00:01:09 /usr/bin/python2 /usr/bin/swift-account-server /etc/swift/account-server.conf
swift 1142 1 1 13:35 ? 00:01:09 /usr/bin/python2 /usr/bin/swift-object-server /etc/swift/object-server.conf
swift 1155 1 0 13:35 ? 00:00:01 /usr/bin/python2 /usr/bin/swift-account-replicator /etc/swift/account-server.conf
swift 1156 1 0 13:35 ? 00:00:01 /usr/bin/python2 /usr/bin/swift-object-auditor /etc/swift/object-server.conf
swift 2164 1140 0 13:36 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-account-server /etc/swift/account-server.conf
swift 2165 1140 0 13:36 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-account-server /etc/swift/account-server.conf
swift 2176 1139 0 13:36 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-container-server /etc/swift/container-server.conf
swift 2178 1139 0 13:36 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-container-server /etc/swift/container-server.conf
swift 2191 1142 0 13:36 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-object-server /etc/swift/object-server.conf
swift 2192 1142 0 13:36 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-object-server /etc/swift/object-server.conf
root 8705 3325 0 15:05 pts/0 00:00:00 grep --color=auto swift
分析得出:swift-proxy-server服务并没有启动。
查看/etc/swift/proxy-server.conf配置,配置如下
[pipeline:main]
# Our traditional pipeline produces a cluster without any authentication,
# open to access by any client. This is almost always a very bad idea, and
# it's overridden by OSP Director, so it is likely to go away some time
# after Newton.
pipeline = catch_errors bulk healthcheck cache crossdomain ratelimit authtoken keystone formpost staticweb tempurl slo account_quotas container_quotas ceilometer proxy-server
[pipeline:main]表示启用了哪些模块,推测是因为某些模块无法启动,造成整体启动失败。
三 解决方法
1 修改/etc/swift/proxy-server.conf配置文件,只启动核心模块
pipeline = healthcheck cache authtoken keystone proxy-server
2 重启服务
systemctl restart openstack-swift-proxy.service
四 验证
1、服务启动验证
[root@localhost swift(keystone_demo)]# ps -ef | grep swift
swift 1100 1 0 13:35 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-account-auditor /etc/swift/account-server.conf
swift 1111 1 0 13:35 ? 00:00:01 /usr/bin/python2 /usr/bin/swift-object-expirer /etc/swift/object-expirer.conf
swift 1113 1 0 13:35 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-object-updater /etc/swift/object-server.conf
swift 1120 1 0 13:35 ? 00:00:01 /usr/bin/python2 /usr/bin/swift-container-replicator /etc/swift/container-server.conf
swift 1127 1 0 13:35 ? 00:00:02 /usr/bin/python2 /usr/bin/swift-object-replicator /etc/swift/object-server.conf
swift 1128 1 0 13:35 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-account-reaper /etc/swift/account-server.conf
swift 1132 1 0 13:35 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-container-auditor /etc/swift/container-server.conf
swift 1135 1 0 13:35 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-container-updater /etc/swift/container-server.conf
swift 1139 1 1 13:35 ? 00:01:43 /usr/bin/python2 /usr/bin/swift-container-server /etc/swift/container-server.conf
swift 1140 1 1 13:35 ? 00:01:41 /usr/bin/python2 /usr/bin/swift-account-server /etc/swift/account-server.conf
swift 1142 1 1 13:35 ? 00:01:41 /usr/bin/python2 /usr/bin/swift-object-server /etc/swift/object-server.conf
swift 1155 1 0 13:35 ? 00:00:01 /usr/bin/python2 /usr/bin/swift-account-replicator /etc/swift/account-server.conf
swift 1156 1 0 13:35 ? 00:00:02 /usr/bin/python2 /usr/bin/swift-object-auditor /etc/swift/object-server.conf
swift 2164 1140 0 13:36 ? 00:00:01 /usr/bin/python2 /usr/bin/swift-account-server /etc/swift/account-server.conf
swift 2165 1140 0 13:36 ? 00:00:01 /usr/bin/python2 /usr/bin/swift-account-server /etc/swift/account-server.conf
swift 2176 1139 0 13:36 ? 00:00:01 /usr/bin/python2 /usr/bin/swift-container-server /etc/swift/container-server.conf
swift 2178 1139 0 13:36 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-container-server /etc/swift/container-server.conf
swift 2191 1142 0 13:36 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-object-server /etc/swift/object-server.conf
swift 2192 1142 0 13:36 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-object-server /etc/swift/object-server.conf
swift 10057 1 2 15:29 ? 00:00:11 /usr/bin/python2 /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf
swift 10082 10057 0 15:29 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf
swift 10083 10057 0 15:29 ? 00:00:00 /usr/bin/python2 /usr/bin/swift-proxy-server /etc/swift/proxy-server.conf
swift 10513 1156 0 15:37 ? 00:00:00 [swift-object-au] <defunct>
root 10519 3325 0 15:37 pts/0 00:00:00 grep --color=auto swift
红色说明swift-proxy-server启动成功了。
2、命令验证
[root@localhost swift(keystone_demo)]# swift stat
Account: AUTH_b38c09cb0b5a4d46820c66052bb0ee94
Containers: 1
Objects: 0
Bytes: 0
Containers in policy "policy-0": 1
Objects in policy "policy-0": 0
Bytes in policy "policy-0": 0
X-Account-Project-Domain-Id: default
X-Openstack-Request-Id: txd44445839e2e4ff592524-005aae1a3b
X-Timestamp: 1521358311.12659
X-Trans-Id: txd44445839e2e4ff592524-005aae1a3b
Content-Type: text/plain; charset=utf-8
Accept-Ranges: bytes
3、Dashboad验证
下面是成功创建容器后的截图