Ask Your Question
0

Swift: Error: Unable to create container

asked 2014-08-12 05:22:42 -0500

anonymous user

Anonymous

updated 2014-08-19 12:42:01 -0500

briancline gravatar image

I build OpenStack Swift on 3 nodes:

172.22.22.180: proxy-server
172.22.22.188, 189,190: storage server with replication ip: 10.0.1.188,189,190

I can't create a new container on dasboard. I got a message "Error: Unable to create container"

Here is my /var/log/syslog

Aug 12 17:02:06 controller proxy-server: Adding required filter gatekeeper to pipeline at position 0 
Aug 12 17:02:06 controller proxy-server: Adding required filter catch_errors to pipeline at position 0 
Aug 12 17:02:06 controller proxy-server: Pipeline was modified. New pipeline is "catch_errors gatekeeper dlo healthcheck memcache keystoneclient.middleware.auth_token:filter_factory keystoneauth proxy". 
Aug 12 17:02:06 controller proxy-server: Starting keystone auth_token middleware 
Aug 12 17:02:06 controller proxy-server: Configuring auth_uri to point to the public identity endpoint is required; clients may not be able to authenticate against an admin endpoint 
Aug 12 17:02:06 controller proxy-server: Using /home/swift/keystone-signing as cache directory for signing certificate 
Aug 12 17:02:06 controller proxy-server: signing_dir mode is 0755 instead of 0700 
Aug 12 17:02:11 controller proxy-server: Auth Token confirmed use of v2.0 apis 
Aug 12 17:02:16 controller proxy-server: Container GET returning 503 for (503, 503, 503) (txn: tx7aa3fc3f3d7643869ae29-0053e9e628) (client_ip: 172.22.22.180) 
Aug 12 17:02:16 controller proxy-server: Could not autocreate account '/AUTH_e81ec1a272b443a4b0290fac622adede' (txn: tx7aa3fc3f3d7643869ae29-0053e9e628) (client_ip: 172.22.22.180)

Thanks for help! Here is my ouput:
swift-ring-builder account.builder:

account.builder, build version 3
262144 partitions, 3.000000 replicas, 1 regions, 3 zones, 3 devices, 0.00 balance
The minimum number of hours before a partition can be reassigned is 1
Devices:    id  region  zone      ip address  port  replication ip  replication port      name weight partitions balance meta
             0       1     1   172.22.22.188  6002      10.0.1.188              6005      sdb1 100.00     262144    0.00
             1       1     2   172.22.22.189  6002      10.0.1.189              6005      sdb1 100.00     262144    0.00
             2       1     3   172.22.22.190  6002      10.0.1.190              6005      sdb1 100.00     262144    0.00

swift-ring-builder containerbuilder:

container.builder, build version 3
262144 partitions, 3.000000 replicas, 1 regions, 3 zones, 3 devices, 0.00 balance
The minimum number of hours before a partition can be reassigned is 1
Devices:    id  region  zone      ip address  port  replication ip  replication port      name weight partitions balance meta
             0       1     1   172.22.22.188  6001      10.0.1.188              6004      sdb1 100.00     262144    0.00
             1       1     2   172.22.22.189  6001      10.0.1.189              6004      sdb1 100.00     262144    0.00
             2       1     3   172.22.22.190  6001      10.0.1.190              6004      sdb1 100.00     262144    0.00

swift-ring-builder object.builder:

  object.builder, build version 3
262144 partitions, 3.000000 replicas, 1 regions, 3 zones, 3 devices, 0.00 balance
The minimum number of hours before a partition can be reassigned is 1
Devices:    id  region  zone      ip address  port ...
(more)
edit retag flag offensive close merge delete

Comments

I'm sure you can figure out easily what happens with proxy running a PUT on account servers just by running strace. That aside, why are you running SAIO-style replication ports on a multinode? I would leave them all at 873 and not 6003-6005... You sure you set the test_vm and adjusted rsyncd.conf?

zaitcev gravatar imagezaitcev ( 2014-09-03 21:30:27 -0500 )edit

1 answer

Sort by ยป oldest newest most voted
0

answered 2014-08-12 15:52:29 -0500

SamYaple gravatar image

updated 2014-08-13 09:10:54 -0500

EDIT: My apologies, I read this question to quickly, this is 503 not 403 error. In this case please check that swift has the proper permissions on the acount/container/object directories.

Please also provide the output of the following commands in your original post, to be run in /etc/swift

swift-ring-builder account.builder
swift-ring-builder container.builder
swift-ring-builder object.builder

The issue is here Could not autocreate account

You should set account_autocreate=true in the [app:proxy-server] section in /etc/swift/proxy-server.conf

edit flag offensive delete link more

Comments

Thanks, but nothing change because I have already config like that

[DEFAULT]
bind_port = 8080
user = swift

[pipeline:main]
pipeline = healthcheck cache authtoken keystoneauth proxy-server

[app:proxy-server]
use = egg:swift#proxy
allow_account_management = true
account_autocreate = true

[filter:keystoneauth]
use = egg:swift#keystoneauth
operator_roles = _member_,Member,admin,swiftoperator

[filter:authtoken]
paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
# Delaying the auth decision is required to support token-less
# usage for anonymous referrers ('.r:*').
delay_auth_decision = true
# cache directory for signing certificate
signing_dir = /home/swift/keystone-signing
# auth_* settings refer to the Keystone server
auth_protocol = http
auth_host = controller
auth_port = 35357
# the same admin_token as provided in keystone.conf
admin_token = 5826951ab1d9d4130679 
# the service tenant and swift username and password created in Keystone
admin_tenant_name = service
admin_user = swift
admin_password = openstack12345

[filter:cache]
use = egg:swift#memcache
memcache_servers = controller:11211

[filter:catch_errors]
use = egg:swift#catch_errors

[filter:healthcheck]
use = egg:swift#healthcheck
tanpham gravatar imagetanpham ( 2014-08-13 00:22:39 -0500 )edit

As which user you r trying to create container .. shld be admin

Anil gravatar imageAnil ( 2014-08-14 05:42:44 -0500 )edit

I trying to create container by both admin and swift. They have the same error.

tanpham gravatar imagetanpham ( 2014-08-16 04:06:59 -0500 )edit
1

It wouldn't matter which user since you have _member_ in the operator_roles.

Check the folder permissions again, they should be owned by swift. This is a cause of that 503 error.

This would seem like an account issue. Make sure the swift account services are running and restart all the swift services to be safe.

Make sure all the nodes have the proper ring files from your proxy node.

SamYaple gravatar imageSamYaple ( 2014-08-16 10:53:55 -0500 )edit

Either run strace or tcpdump and find what goes on when proxy does its PUT for autocreate. The error message must be in the reply.

zaitcev gravatar imagezaitcev ( 2014-09-03 21:31:58 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Get to know Ask OpenStack

Resources for moderators

Question Tools

1 follower

Stats

Asked: 2014-08-12 05:22:42 -0500

Seen: 3,372 times

Last updated: Aug 13 '14