2011-09-09 23:21:52 +00:00
|
|
|
===============================
|
|
|
|
radosgw -- rados REST gateway
|
|
|
|
===============================
|
|
|
|
|
|
|
|
.. program:: radosgw
|
|
|
|
|
|
|
|
Synopsis
|
|
|
|
========
|
|
|
|
|
|
|
|
| **radosgw**
|
|
|
|
|
|
|
|
|
|
|
|
Description
|
|
|
|
===========
|
|
|
|
|
|
|
|
**radosgw** is an HTTP REST gateway for the RADOS object store, a part
|
|
|
|
of the Ceph distributed storage system. It is implemented as a FastCGI
|
|
|
|
module using libfcgi, and can be used in conjunction with any FastCGI
|
|
|
|
capable web server.
|
|
|
|
|
|
|
|
|
|
|
|
Options
|
|
|
|
=======
|
|
|
|
|
|
|
|
.. option:: -c ceph.conf, --conf=ceph.conf
|
|
|
|
|
|
|
|
Use *ceph.conf* configuration file instead of the default
|
|
|
|
``/etc/ceph/ceph.conf`` to determine monitor addresses during startup.
|
|
|
|
|
|
|
|
.. option:: -m monaddress[:port]
|
|
|
|
|
|
|
|
Connect to specified monitor (instead of looking through
|
|
|
|
``ceph.conf``).
|
|
|
|
|
|
|
|
.. option:: --rgw-socket-path=path
|
|
|
|
|
|
|
|
Specify a unix domain socket path.
|
|
|
|
|
|
|
|
|
2012-02-17 22:09:55 +00:00
|
|
|
Configuration
|
|
|
|
=============
|
|
|
|
|
|
|
|
Currently it's the easiest to use the RADOS Gateway with Apache and mod_fastcgi::
|
2011-09-09 23:21:52 +00:00
|
|
|
|
2012-02-17 22:09:55 +00:00
|
|
|
FastCgiExternalServer /var/www/s3gw.fcgi -socket /tmp/radosgw.sock
|
2011-09-09 23:21:52 +00:00
|
|
|
|
|
|
|
<VirtualHost *:80>
|
|
|
|
ServerName rgw.example1.com
|
|
|
|
ServerAlias rgw
|
|
|
|
ServerAdmin webmaster@example1.com
|
2012-02-17 22:09:55 +00:00
|
|
|
DocumentRoot /var/www
|
2011-09-09 23:21:52 +00:00
|
|
|
|
|
|
|
RewriteEngine On
|
|
|
|
RewriteRule ^/([a-zA-Z0-9-_.]*)([/]?.*) /s3gw.fcgi?page=$1¶ms=$2&%{QUERY_STRING} [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]
|
|
|
|
|
2012-02-17 22:09:55 +00:00
|
|
|
<IfModule mod_fastcgi.c>
|
|
|
|
<Directory /var/www>
|
2011-09-09 23:21:52 +00:00
|
|
|
Options +ExecCGI
|
|
|
|
AllowOverride All
|
2012-02-17 22:09:55 +00:00
|
|
|
SetHandler fastcgi-script
|
2011-09-09 23:21:52 +00:00
|
|
|
Order allow,deny
|
|
|
|
Allow from all
|
|
|
|
AuthBasicAuthoritative Off
|
|
|
|
</Directory>
|
|
|
|
</IfModule>
|
|
|
|
|
|
|
|
AllowEncodedSlashes On
|
|
|
|
ServerSignature Off
|
|
|
|
</VirtualHost>
|
|
|
|
|
2012-02-17 22:09:55 +00:00
|
|
|
And the corresponding radosgw script (/var/www/s3gw.fcgi)::
|
2011-09-09 23:21:52 +00:00
|
|
|
|
|
|
|
#!/bin/sh
|
2012-02-17 22:09:55 +00:00
|
|
|
exec /usr/bin/radosgw -c /etc/ceph/ceph.conf -n client.radosgw.gateway
|
|
|
|
|
|
|
|
The radosgw daemon is a standalone process which needs a configuration
|
|
|
|
section in the ceph.conf The section name should start with
|
|
|
|
'client.radosgw.' as specified in /etc/init.d/radosgw::
|
|
|
|
|
|
|
|
[client.radosgw.gateway]
|
|
|
|
host = gateway
|
|
|
|
keyring = /etc/ceph/keyring.radosgw.gateway
|
|
|
|
rgw socket path = /tmp/radosgw.sock
|
|
|
|
|
|
|
|
You will also have to generate a key for the radosgw to use for
|
|
|
|
authentication with the cluster::
|
|
|
|
|
|
|
|
ceph-authtool -C -n client.radosgw.gateway --gen-key /etc/ceph/keyring.radosgw.gateway
|
2013-07-19 17:04:40 +00:00
|
|
|
ceph-authtool -n client.radosgw.gateway --cap mon 'allow rw' --cap osd 'allow rwx' /etc/ceph/keyring.radosgw.gateway
|
2011-09-09 23:21:52 +00:00
|
|
|
|
2012-02-17 22:09:55 +00:00
|
|
|
And add the key to the auth entries::
|
2011-09-09 23:21:52 +00:00
|
|
|
|
2012-02-17 22:09:55 +00:00
|
|
|
ceph auth add client.radosgw.gateway --in-file=keyring.radosgw.gateway
|
2011-09-09 23:21:52 +00:00
|
|
|
|
2012-02-17 22:09:55 +00:00
|
|
|
Now you can start Apache and the radosgw daemon::
|
2011-09-09 23:21:52 +00:00
|
|
|
|
2012-02-17 22:09:55 +00:00
|
|
|
/etc/init.d/apache2 start
|
|
|
|
/etc/init.d/radosgw start
|
2011-09-09 23:21:52 +00:00
|
|
|
|
2012-06-19 22:17:53 +00:00
|
|
|
Usage Logging
|
|
|
|
=============
|
|
|
|
|
|
|
|
The **radosgw** maintains an asynchronous usage log. It accumulates
|
|
|
|
statistics about user operations and flushes it periodically. The
|
|
|
|
logs can be accessed and managed through **radosgw-admin**.
|
|
|
|
|
2012-06-21 17:46:55 +00:00
|
|
|
The information that is being logged contains total data transfer,
|
2012-06-19 22:17:53 +00:00
|
|
|
total operations, and total successful operations. The data is being
|
2012-06-21 17:46:55 +00:00
|
|
|
accounted in an hourly resolution under the bucket owner, unless the
|
|
|
|
operation was done on the service (e.g., when listing a bucket) in
|
|
|
|
which case it is accounted under the operating user.
|
2012-06-19 22:17:53 +00:00
|
|
|
|
|
|
|
Following is an example configuration::
|
|
|
|
|
|
|
|
[client.radosgw.gateway]
|
|
|
|
rgw enable usage log = true
|
|
|
|
rgw usage log tick interval = 30
|
|
|
|
rgw usage log flush threshold = 1024
|
|
|
|
rgw usage max shards = 32
|
|
|
|
rgw usage max user shards = 1
|
|
|
|
|
|
|
|
|
|
|
|
The total number of shards determines how many total objects hold the
|
|
|
|
usage log information. The per-user number of shards specify how many
|
|
|
|
objects hold usage information for a single user. The tick interval
|
|
|
|
configures the number of seconds between log flushes, and the flush
|
|
|
|
threshold specify how many entries can be kept before resorting to
|
|
|
|
synchronous flush.
|
|
|
|
|
|
|
|
|
2011-09-09 23:21:52 +00:00
|
|
|
Availability
|
|
|
|
============
|
|
|
|
|
|
|
|
**radosgw** is part of the Ceph distributed file system. Please refer
|
2012-06-16 21:50:29 +00:00
|
|
|
to the Ceph documentation at http://ceph.com/docs for more
|
2011-09-09 23:21:52 +00:00
|
|
|
information.
|
|
|
|
|
|
|
|
|
|
|
|
See also
|
|
|
|
========
|
|
|
|
|
|
|
|
:doc:`ceph <ceph>`\(8)
|
2012-06-19 22:17:53 +00:00
|
|
|
:doc:`radosgw-admin <radosgw-admin>`\(8)
|