Hi , All swift stat and list commnad works buti can not create a container. swift post command Error occurs. (Container POST failed: http://EXFS1/swift/v1/test 400 Bad Request [first 60 chars of response] <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">) . # swift --debug -A http://EXFS1/auth -U testuser:swift -K "bVwgc167mmLDVwpw4ufTkurK3vHp0G3MxAXpevQl" post test INFO:urllib3.connectionpool:Starting new HTTP connection (1): EXFS1 DEBUG:urllib3.connectionpool:"GET /auth HTTP/1.1" 204 0 DEBUG:swiftclient:REQ: curl -i http://EXFS1/auth -X GET DEBUG:swiftclient:RESP STATUS: 204 No Content DEBUG:swiftclient:RESP HEADERS: [('connection', 'close'), ('x-storage-token', 'AUTH_rgwtk0e00000074657374757365723a73776966746adff3e2426a97129223db53587e5623d9919a23dd00ae053a415d768ad3ce4e7319bfbd'), ('date', 'Thu, 31 Jul 2014 05:20:18 GMT'), ('x-storage-url', 'http://EXFS1/swift/v1'), ('x-auth-token', 'AUTH_rgwtk0e00000074657374757365723a73776966746adff3e2426a97129223db53587e5623d9919a23dd00ae053a415d768ad3ce4e7319bfbd'), ('content-type', 'application/json'), ('server', 'Apache/2.2.22 (Fedora)')] INFO:urllib3.connectionpool:Starting new HTTP connection (1): EXFS1 DEBUG:urllib3.connectionpool:"POST /swift/v1/test HTTP/1.1" 400 226 INFO:swiftclient:REQ: curl -i http://EXFS1/swift/v1/test -X POST -H "Content-Length: 0" -H "X-Auth-Token: AUTH_rgwtk0e00000074657374757365723a73776966746adff3e2426a97129223db53587e5623d9919a23dd00ae053a415d768ad3ce4e7319bfbd" INFO:swiftclient:RESP STATUS: 400 Bad Request INFO:swiftclient:RESP HEADERS: [('date', 'Thu, 31 Jul 2014 05:20:18 GMT'), ('content-length', '226'), ('content-type', 'text/html; charset=iso-8859-1'), ('connection', 'close'), ('server', 'Apache/2.2.22 (Fedora)')] INFO:swiftclient:RESP BODY: <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>400 Bad Request</title> </head><body> <h1>Bad Request</h1> <p>Your browser sent a request that this server could not understand.<br /> </p> </body></html> ERROR:swiftclient:Container POST failed: http://EXFS1/swift/v1/test 400 Bad Request [first 60 chars of response] <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><he Traceback (most recent call last): File "/opt/stack/python-swiftclient/swiftclient/client.py", line 1208, in _retry rv = func(self.url, self.token, *args, **kwargs) File "/opt/stack/python-swiftclient/swiftclient/client.py", line 736, in post_container http_response_content=body) ClientException: Container POST failed: http://EXFS1/swift/v1/test 400 Bad Request [first 60 chars of response] <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><he Container POST failed: http://EXFS1/swift/v1/test 400 Bad Request [first 60 chars of response] <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><he "swift stat" and "swift list" command in information can see. # swift -A http://EXFS1/auth -U testuser:swift -K "bVwgc167mmLDVwpw4ufTkurK3vHp0G3MxAXpevQl" stat Account: v1 Containers: 0 Objects: 0 Bytes: 0 Server: Apache/2.2.22 (Fedora) Connection: close X-Account-Bytes-Used-Actual: 0 Content-Type: text/plain; charset=utf-8 # swift -A http://EXFS1/auth -U testuser:swift -K "bVwgc167mmLDVwpw4ufTkurK3vHp0G3MxAXpevQl" list (Nothing) What should I do? Please help my problem. *Rados GW Server information CentOS release 6.5 # ceph -v ceph version 0.80.4 (7c241cfaa6c8c068bc9da8578ca00b9f4fc7567f) # hostname -f EXFS1 *Steps i did install 1)Install Apache and FastCGI. # yum update && yum install httpd mod_fastcgi 2)Change the httpd.conf file # vi /etc/httpd/conf/httpd.conf ServerName EXFS1 #add hostname -f 3)Install mod_ssl and openssl # yum install mod_ssl openssl 4)Generate a certificate and copy it the appropriate locations. # openssl genrsa -out ca.key 2048 # openssl req -new -key ca.key -out ca.csr # openssl x509 -req -days 365 -in ca.csr -signkey ca.key -out ca.crt # cp ca.crt /etc/pki/tls/certs # cp ca.key /etc/pki/tls/private/ca.key # cp ca.csr /etc/pki/tls/private/ca.csr 5)Http service start # /etc/init.d/httpd start 6)radosGW install # yum install ceph-radosgw ceph *Steps i did setting 1)Create a client.radosgw.gateway keyring # ceph-authtool --create-keyring /etc/ceph/ceph.client.radosgw.keyring # chmod +r /etc/ceph/ceph.client.radosgw.keyring # ceph-authtool /etc/ceph/ceph.client.radosgw.keyring -n client.radosgw.gateway --gen-key # ceph-authtool -n client.radosgw.gateway --cap osd 'allow rwx' --cap mon 'allow rw' /etc/ceph/ceph.client.radosgw.keyring # ceph -k /etc/ceph/ceph.client.admin.keyring auth add client.radosgw.gateway -i /etc/ceph/ceph.client.radosgw.keyring client.radosgw.gateway key: AQA5ltRT6DEEBRAA5oGPolWuwuqFrUEzXabcKw== caps: [mon] allow rw caps: [osd] allow rwx 2)Add a GW configuration to ceph.conf [client.radosgw.gateway] host = EXFS1 keyring = /etc/ceph/ceph.client.radosgw.keyring rgw socket path = /var/run/ceph/ceph.radosgw.gateway.fastcgi.sock log file = /var/log/ceph/client.radosgw.gateway.log rgw print continue = false #rgw enable ops log = true rgw enable ops log = false debug rgw = 2 3)Distribute the keyring adn ceph.conf to the node with the gateway instance. scp ceph.client.radosgw.keyring ceph.conf EXFS2:/etc/ceph scp ceph.client.radosgw.keyring ceph.conf EXFS3:/etc/ceph 4)Create a /var/www/html/s3gw.fcgi # vi /var/www/html/s3gw.fcgi #!/bin/sh exec /usr/bin/radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway # chmod +x /var/www/html/s3gw.fcgi # chown apache:apache s3gw.fcgi 5)Create a data directory so radosgw can work # mkdir -p /var/lib/ceph/radosgw/ceph-radosgw.gateway 6)Create a GW configuration # vi /etc/httpd/conf.d/rgw.conf FastCgiExternalServer /var/www/html/s3gw.fcgi -socket /var/run/ceph/ceph.radosgw.gateway.fastcgi.sock <VirtualHost *:80> ServerName EXFS1 ServerAdmin EXFS1 DocumentRoot /var/www/html RewriteEngine On RewriteRule ^/(.*) /s3gw.fcgi?%{QUERY_STRING} [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] <IfModule mod_fastcgi.c> <Directory /var/www/html> Options +ExecCGI AllowOverride All SetHandler fastcgi-script Order allow,deny Allow from all AuthBasicAuthoritative Off </Directory> </IfModule> AllowEncodedSlashes On ErrorLog /var/log/httpd/error.log CustomLog /var/log/httpd/access.log combined ServerSignature Off </VirtualHost> 7)Adjust path ownership/permissons # chown apache:apache /var/run/ceph/ # chown apache:apache /var/log/httpd/ # chown apache:apache /var/log/ceph/client.radosgw.gateway.log 8)Service restart # /etc/init.d/ceph -a restart # /etc/init.d/httpd restart # /etc/init.d/ceph-radosgw start 9)Create a user and subuser # radosgw-admin user create --uid=testuser --display-name="First User" # radosgw-admin subuser create --uid=testuser --subuser=testuser:swift --access=full # radosgw-admin user info --uid=testuser { "user_id": "testuser", "display_name": "First User", "email": "", "suspended": 0, "max_buckets": 1000, "auid": 0, "subusers": [ { "id": "testuser:swift", "permissions": "full-control"}], "keys": [ { "user": "testuser:swift", "access_key": "80AYVS9BHDGYDP9YYG94", "secret_key": ""}, { "user": "testuser", "access_key": "HJ4JPYCDJB0DUYRE5IG0", "secret_key": "8ZwlnL1KbP+tkBNf7PQc6n9DJ\/BiJj5rtd5E31sa"}], "swift_keys": [ { "user": "testuser:swift", "secret_key": ""}, { "user": "testuser:swift", "secret_key": "bVwgc167mmLDVwpw4ufTkurK3vHp0G3MxAXpevQl"}], "caps": [ { "type": "buckets", "perm": "*"}],h "op_mask": "read, write, delete", "default_placement": "", "placement_tags": [], "bucket_quota": { "enabled": true, "max_size_kb": -1, "max_objects": -1}, "user_quota": { "enabled": false, "max_size_kb": 1, "max_objects": 1024}, "temp_url_keys": []} Best Regards. Yamashita ============================= OSS Laboratories Inc. Yoshitami Yamashita Mail:yamashita at ossl.co.jp