Swift work for config reference

This patch re-works swift content for the new configuration reference
structure.

The Object Storage configuration section is pared down, with
additional/optional features moved to a new file and section of the
document - adding to what was previously there in the Object Storage
Admin Guide.

New stub sections added for drive-audit, static web and form post.

One of the big changes is the move of all option tables to
common/tables.

These have been generated with a new script which converts swift
 conf files into docbook tables, and attempts to find descriptions
of those configuration options in swift's devref documentation.

Future work for this script: merged in with the autodoc tool
structure, add an 'update' mode.

Change-Id: I75a3c442e4734594bec202fecbe4a4272d297ac7
lp:restructure-documentation
This commit is contained in:
Tom Fifield 2013-08-21 12:30:47 +10:00 committed by annegentle
parent 5715bdb47c
commit 298ac05625
68 changed files with 3714 additions and 31 deletions

View File

@ -27,13 +27,7 @@
<para>It has been our experience that when a drive is about to fail, error messages will spew into /var/log/kern.log. There is a script called swift-drive-audit that can be run via cron to watch for bad drives. If errors are detected, it will unmount the bad drive, so that OpenStack Object Storage can work around it. The script takes a configuration file with the following settings:
</para>
<programlisting language="bash"> [drive-audit]
Option Default Description
log_facility LOG_LOCAL0 Syslog log facility
log_level INFO Log level
device_dir /srv/node Directory devices are mounted under
minutes 60 Number of minutes to look back in /var/log/kern.log
error_limit 1 Number of errors to find before a device is unmounted</programlisting>
<xi:include href="tables/swift-drive-audit-drive-audit.xml"/>
<para>This script has only been tested on Ubuntu 10.04, so if you are using a different distro or OS, some care should be taken before using in production.
</para></section>

View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[DEFAULT]</literal> in <literal>account-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>bind_ip=0.0.0.0</td><td>IP Address for server to bind to</td>
</tr>
<tr>
<td>bind_port=6002</td><td>Port for server to bind to</td>
</tr>
<tr>
<td>bind_timeout=30</td><td>Seconds to attempt bind before giving up</td>
</tr>
<tr>
<td>backlog=4096</td><td>Maximum number of allowed pending TCP connections</td>
</tr>
<tr>
<td>workers=1</td><td>a much higher value, one can reduce the impact of slow file system operations in one request from negatively impacting other requests.</td>
</tr>
<tr>
<td>user=swift</td><td>User to run as</td>
</tr>
<tr>
<td>swift_dir=/etc/swift</td><td>Swift configuration directory</td>
</tr>
<tr>
<td>devices=/srv/node</td><td>Parent directory of where devices are mounted</td>
</tr>
<tr>
<td>mount_check=true</td><td>Whether or not check if the devices are mounted to prevent accidentally writing to the root device</td>
</tr>
<tr>
<td>disable_fallocate=false</td><td>Disable "fast fail" fallocate checks if the underlying filesystem does not support it.</td>
</tr>
<tr>
<td>log_name=swift</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_custom_handlers=</td><td>Comma-separated list of functions to call to setup custom log handlers.</td>
</tr>
<tr>
<td>log_udp_host=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_udp_port=514</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_host=localhost</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_port=8125</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_default_sample_rate=1.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_sample_rate_factor=1.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_metric_prefix=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>db_preallocation=off</td><td>If you don't mind the extra disk space usage in overhead, you can turn this on to preallocate disk space with SQLite databases to decrease fragmentation. underlying filesystem does not support it. to setup custom log handlers. bytes you'd like fallocate to reserve, whether there is space for the given file size or not. This is useful for systems that behave badly when they completely run out of space; you can make the services pretend they're out of space early. server. For most cases, this should be `egg:swift#account`. replication passes account can be reclaimed</td>
</tr>
<tr>
<td>eventlet_debug=false</td><td>If true, turn on debug logging for eventlet</td>
</tr>
<tr>
<td>fallocate_reserve=0</td><td>You can set fallocate_reserve to the number of bytes you'd like fallocate to reserve, whether there is space for the given file size or not. This is useful for systems that behave badly when they completely run out of space; you can make the services pretend they're out of space early. server. For most cases, this should be `egg:swift#object`.</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[account-auditor]</literal> in <literal>account-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>log_name=account-auditor</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>interval=1800</td><td>Minimum time for a pass to take</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>accounts_per_second=200</td><td>Maximum accounts audited per second. Should be tuned according to individual system specs. 0 is unlimited.</td>
</tr>
<tr>
<td>recon_cache_path=/var/cache/swift</td><td>Directory where stats for a
few items will be stored</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[account-reaper]</literal> in <literal>account-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>log_name=account-reaper</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>concurrency=25</td><td>Number of replication workers to spawn</td>
</tr>
<tr>
<td>interval=3600</td><td>Minimum time for a pass to take</td>
</tr>
<tr>
<td>node_timeout=10</td><td>Request timeout to external services</td>
</tr>
<tr>
<td>conn_timeout=0.5</td><td>Connection timeout to external services</td>
</tr>
<tr>
<td>delay_reaping=0</td><td>Normally, the reaper begins deleting account information for deleted accounts immediately; you can set this to delay its work however. The value is in seconds, 2592000 = 30 days, for example. bind to giving up worker can process simultaneously (it will actually accept(2) N + 1). Setting this to one (1) will only handle one request at a time, without accepting another request concurrently. By increasing the number of workers to a much higher value, one can reduce the impact of slow file system operations in one request from negatively impacting other requests.</td>
</tr>
<tr>
<td>reap_warn_after=2592000</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,68 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[account-replicator]</literal> in <literal>account-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>log_name=account-replicator</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>vm_test_mode=no</td><td>Indicates that you are using a VM environment</td>
</tr>
<tr>
<td>per_diff=1000</td><td>Limit number of items to get per diff</td>
</tr>
<tr>
<td>max_diffs=100</td><td>Caps how long the replicator tries to spend syncing a database per pass</td>
</tr>
<tr>
<td>concurrency=8</td><td>Number of replication workers to spawn</td>
</tr>
<tr>
<td>interval=30</td><td>Minimum time for a pass to take</td>
</tr>
<tr>
<td>error_suppression_interval=60</td><td>Time in seconds that must elapse since the last error for a node to be considered no longer error limited</td>
</tr>
<tr>
<td>error_suppression_limit=10</td><td>Error count to consider a node error limited</td>
</tr>
<tr>
<td>node_timeout=10</td><td>Request timeout to external services</td>
</tr>
<tr>
<td>conn_timeout=0.5</td><td>Connection timeout to external services</td>
</tr>
<tr>
<td>reclaim_age=604800</td><td>Time elapsed in seconds before an object can be reclaimed</td>
</tr>
<tr>
<td>run_pause=30</td><td>Time in seconds to wait between replication passes</td>
</tr>
<tr>
<td>recon_cache_path=/var/cache/swift</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[app:account-server]</literal> in <literal>account-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#account</td><td>Entry point for paste.deploy for the server</td>
</tr>
<tr>
<td>set log_name=account-server</td><td>Label used when logging</td>
</tr>
<tr>
<td>set log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>set log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>set log_requests=true</td><td>Whether or not to log each requests</td>
</tr>
<tr>
<td>set log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>auto_create_account_prefix=.</td><td>Prefix used when automatically creating accounts</td>
</tr>
<tr>
<td>max_clients=1024</td><td>Maximum number of clients one worker can process simultaneously (it will actually</td>
</tr>
<tr>
<td>replication_server=false</td><td>If defined, tells server how to handle
replication verbs in requests. When set to True (or 1), only replication verbs will be accepted.
When set to False, replication verbs will be rejected. When undefined, server will accept any verb
in request.</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:healthcheck]</literal> in <literal>account-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#healthcheck</td><td>No help text available for this option</td>
</tr>
<tr>
<td>disable_path=</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:recon]</literal> in <literal>account-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#recon</td><td>No help text available for this option</td>
</tr>
<tr>
<td>recon_cache_path=/var/cache/swift</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[pipeline:main]</literal> in <literal>account-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>pipeline=healthcheck recon account-server</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[DEFAULT]</literal> in <literal>container-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>bind_ip=0.0.0.0</td><td>IP Address for server to bind to</td>
</tr>
<tr>
<td>bind_port=6001</td><td>Port for server to bind to</td>
</tr>
<tr>
<td>bind_timeout=30</td><td>Seconds to attempt bind before giving up</td>
</tr>
<tr>
<td>backlog=4096</td><td>Maximum number of allowed pending TCP connections</td>
</tr>
<tr>
<td>workers=1</td><td>a much higher value, one can reduce the impact of slow file system operations in one request from negatively impacting other requests.</td>
</tr>
<tr>
<td>user=swift</td><td>User to run as</td>
</tr>
<tr>
<td>swift_dir=/etc/swift</td><td>Swift configuration directory</td>
</tr>
<tr>
<td>devices=/srv/node</td><td>Parent directory of where devices are mounted</td>
</tr>
<tr>
<td>mount_check=true</td><td>Whether or not check if the devices are mounted to prevent accidentally writing to the root device</td>
</tr>
<tr>
<td>disable_fallocate=false</td><td>Disable "fast fail" fallocate checks if the underlying filesystem does not support it.</td>
</tr>
<tr>
<td>allowed_sync_hosts=127.0.0.1</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_name=swift</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_custom_handlers=</td><td>Comma-separated list of functions to call to setup custom log handlers.</td>
</tr>
<tr>
<td>log_udp_host=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_udp_port=514</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_host=localhost</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_port=8125</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_default_sample_rate=1.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_sample_rate_factor=1.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_metric_prefix=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>db_preallocation=off</td><td>If you don't mind the extra disk space usage in overhead, you can turn this on to preallocate disk space with SQLite databases to decrease fragmentation. underlying filesystem does not support it. to setup custom log handlers. bytes you'd like fallocate to reserve, whether there is space for the given file size or not. This is useful for systems that behave badly when they completely run out of space; you can make the services pretend they're out of space early. server. For most cases, this should be `egg:swift#account`. replication passes account can be reclaimed</td>
</tr>
<tr>
<td>eventlet_debug=false</td><td>If true, turn on debug logging for eventlet</td>
</tr>
<tr>
<td>fallocate_reserve=0</td><td>You can set fallocate_reserve to the number of bytes you'd like fallocate to reserve, whether there is space for the given file size or not. This is useful for systems that behave badly when they completely run out of space; you can make the services pretend they're out of space early. server. For most cases, this should be `egg:swift#object`.</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[app:container-server]</literal> in <literal>container-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#container</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_name=container-server</td><td>Label used when logging</td>
</tr>
<tr>
<td>set log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>set log_level=INFO</td><td>Log level</td>
</tr>
<tr>
<td>set log_requests=true</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>node_timeout=3</td><td>Request timeout to external services</td>
</tr>
<tr>
<td>conn_timeout=0.5</td><td>Connection timeout to external services</td>
</tr>
<tr>
<td>allow_versions=false</td><td>No help text available for this option</td>
</tr>
<tr>
<td>auto_create_account_prefix=.</td><td>Prefix used when automatically creating accounts</td>
</tr>
<tr>
<td>replication_server=false</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[container-auditor]</literal> in <literal>container-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>log_name=container-auditor</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>interval=1800</td><td>Minimum time for a pass to take</td>
</tr>
<tr>
<td>containers_per_second=200</td><td>Maximum containers audited per second. Should be tuned according to individual system specs. 0 is unlimited. mounted to prevent accidentally writing to the root device process simultaneously (it will actually accept(2) N + 1). Setting this to one (1) will only handle one request at a time, without accepting another request concurrently. By increasing the number of workers to a much higher value, one can reduce the impact of slow file system operations in one request from negatively impacting other requests.</td>
</tr>
<tr>
<td>recon_cache_path=/var/cache/swift</td><td>Directory where stats for a few items will be stored</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[container-replicator]</literal> in <literal>container-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>log_name=container-replicator</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>vm_test_mode=no</td><td>Indicates that you are using a VM environment</td>
</tr>
<tr>
<td>per_diff=1000</td><td>Limit number of items to get per diff</td>
</tr>
<tr>
<td>max_diffs=100</td><td>Caps how long the replicator spends trying to sync a database per pass</td>
</tr>
<tr>
<td>concurrency=8</td><td>Number of replication workers to spawn</td>
</tr>
<tr>
<td>interval=30</td><td>Minimum time for a pass to take</td>
</tr>
<tr>
<td>node_timeout=10</td><td>Request timeout to external services</td>
</tr>
<tr>
<td>conn_timeout=0.5</td><td>Connection timeout to external services</td>
</tr>
<tr>
<td>reclaim_age=604800</td><td>Time elapsed in seconds before an object can be reclaimed</td>
</tr>
<tr>
<td>run_pause=30</td><td>Time in seconds to wait between replication passes</td>
</tr>
<tr>
<td>recon_cache_path=/var/cache/swift</td><td>Directory where stats for a few items will be stored</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[container-sync]</literal> in <literal>container-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>log_name=container-sync</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>sync_proxy=http://127.0.0.1:8888</td><td>If you need to use an HTTP proxy, set it here. Defaults to no proxy.</td>
</tr>
<tr>
<td>interval=300</td><td>Minimum time for a pass to take</td>
</tr>
<tr>
<td>container_time=60</td><td>Maximum amount of time to spend syncing each container</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[container-updater]</literal> in <literal>container-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>log_name=container-updater</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>interval=300</td><td>Minimum time for a pass to take</td>
</tr>
<tr>
<td>concurrency=4</td><td>Number of replication workers to spawn</td>
</tr>
<tr>
<td>node_timeout=3</td><td>Request timeout to external services</td>
</tr>
<tr>
<td>conn_timeout=0.5</td><td>Connection timeout to external services</td>
</tr>
<tr>
<td>slowdown=0.01</td><td>Time in seconds to wait between objects</td>
</tr>
<tr>
<td>account_suppression_time=60</td><td>Seconds to suppress updating an account that has generated an</td>
</tr>
<tr>
<td>recon_cache_path=/var/cache/swift</td><td>Directory where stats for a few items will be stored</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:healthcheck]</literal> in <literal>container-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#healthcheck</td><td>No help text available for this option</td>
</tr>
<tr>
<td>disable_path=</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:recon]</literal> in <literal>container-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#recon</td><td>No help text available for this option</td>
</tr>
<tr>
<td>recon_cache_path=/var/cache/swift</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[pipeline:main]</literal> in <literal>container-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>pipeline=healthcheck recon container-server</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[dispersion]</literal> in <literal>dispersion.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>auth_url=http://localhost:8080/auth/v1.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>auth_user=test:tester</td><td>No help text available for this option</td>
</tr>
<tr>
<td>auth_key=testing</td><td>No help text available for this option</td>
</tr>
<tr>
<td>auth_url=http://saio:5000/v2.0/</td><td>No help text available for this option</td>
</tr>
<tr>
<td>auth_user=test:tester</td><td>No help text available for this option</td>
</tr>
<tr>
<td>auth_key=testing</td><td>No help text available for this option</td>
</tr>
<tr>
<td>auth_version=2.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>endpoint_type=publicURL</td><td>No help text available for this option</td>
</tr>
<tr>
<td>swift_dir=/etc/swift</td><td>Swift configuration directory</td>
</tr>
<tr>
<td>dispersion_coverage=1</td><td>No help text available for this option</td>
</tr>
<tr>
<td>retries=5</td><td>No help text available for this option</td>
</tr>
<tr>
<td>concurrency=25</td><td>Number of replication workers to spawn</td>
</tr>
<tr>
<td>container_report=yes</td><td>No help text available for this option</td>
</tr>
<tr>
<td>object_report=yes</td><td>No help text available for this option</td>
</tr>
<tr>
<td>dump_json=no</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[drive-audit]</literal> in <literal>drive-audit.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>device_dir=/srv/node</td><td>Directory devices are mounted under</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>minutes=60</td><td>Number of minutes to look back in `/var/log/kern.log`</td>
</tr>
<tr>
<td>error_limit=1</td><td>Number of errors to find before a device is unmounted</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[memcache]</literal> in <literal>memcache.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>memcache_servers=127.0.0.1:11211</td><td>Comma separated list of memcached servers ip:port services</td>
</tr>
<tr>
<td>memcache_serialization_support=2</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[DEFAULT]</literal> in <literal>object-expirer.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>swift_dir=/etc/swift</td><td>Swift configuration directory</td>
</tr>
<tr>
<td>user=swift</td><td>User to run as</td>
</tr>
<tr>
<td>log_name=swift</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_custom_handlers=</td><td>Comma-separated list of functions to call to setup custom log handlers.</td>
</tr>
<tr>
<td>log_udp_host=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_udp_port=514</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_host=localhost</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_port=8125</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_default_sample_rate=1.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_sample_rate_factor=1.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_metric_prefix=</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[app:proxy-server]</literal> in <literal>object-expirer.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#proxy</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:cache]</literal> in <literal>object-expirer.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#memcache</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:catch_errors]</literal> in <literal>object-expirer.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#catch_errors</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[object-expirer]</literal> in <literal>object-expirer.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>interval=300</td><td>Minimum time for a pass to take</td>
</tr>
<tr>
<td>auto_create_account_prefix=.</td><td>No help text available for this option</td>
</tr>
<tr>
<td>report_interval=300</td><td>No help text available for this option</td>
</tr>
<tr>
<td>concurrency=1</td><td>Number of replication workers to spawn</td>
</tr>
<tr>
<td>processes=0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>process=0</td><td>(it will actually accept(2) N + 1). Setting this to one (1) will only handle one request at a time, without accepting another request concurrently. By increasing the number of workers to a much higher value, one can</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[pipeline:main]</literal> in <literal>object-expirer.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>pipeline=catch_errors cache proxy-server</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[DEFAULT]</literal> in <literal>object-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>bind_ip=0.0.0.0</td><td>IP Address for server to bind to</td>
</tr>
<tr>
<td>bind_port=6000</td><td>Port for server to bind to</td>
</tr>
<tr>
<td>bind_timeout=30</td><td>Seconds to attempt bind before giving up</td>
</tr>
<tr>
<td>backlog=4096</td><td>Maximum number of allowed pending TCP connections</td>
</tr>
<tr>
<td>workers=1</td><td>a much higher value, one can reduce the impact of slow file system operations in one request from negatively impacting other requests.</td>
</tr>
<tr>
<td>user=swift</td><td>User to run as</td>
</tr>
<tr>
<td>swift_dir=/etc/swift</td><td>Swift configuration directory</td>
</tr>
<tr>
<td>devices=/srv/node</td><td>Parent directory of where devices are mounted</td>
</tr>
<tr>
<td>mount_check=true</td><td>Whether or not check if the devices are mounted to prevent accidentally writing to the root device</td>
</tr>
<tr>
<td>disable_fallocate=false</td><td>Disable "fast fail" fallocate checks if the underlying filesystem does not support it.</td>
</tr>
<tr>
<td>expiring_objects_container_divisor=86400</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_name=swift</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_custom_handlers=</td><td>Comma-separated list of functions to call to setup custom log handlers.</td>
</tr>
<tr>
<td>log_udp_host=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_udp_port=514</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_host=localhost</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_port=8125</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_default_sample_rate=1.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_sample_rate_factor=1.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_metric_prefix=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>eventlet_debug=false</td><td>If true, turn on debug logging for eventlet</td>
</tr>
<tr>
<td>fallocate_reserve=0</td><td>You can set fallocate_reserve to the number of bytes you'd like fallocate to reserve, whether there is space for the given file size or not. This is useful for systems that behave badly when they completely run out of space; you can make the services pretend they're out of space early. server. For most cases, this should be `egg:swift#object`.</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[app:object-server]</literal> in <literal>object-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#object</td><td>Entry point of paste.deploy in the server</td>
</tr>
<tr>
<td>set log_name=object-server</td><td>Label used when logging</td>
</tr>
<tr>
<td>set log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>set log_level=INFO</td><td>Log level</td>
</tr>
<tr>
<td>set log_requests=true</td><td>Whether or not to log requests</td>
</tr>
<tr>
<td>set log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>node_timeout=3</td><td>Request timeout to external services</td>
</tr>
<tr>
<td>conn_timeout=0.5</td><td>Connection timeout to external services</td>
</tr>
<tr>
<td>network_chunk_size=65536</td><td>Size of chunks to read/write over the network</td>
</tr>
<tr>
<td>disk_chunk_size=65536</td><td>Size of chunks to read/write to disk</td>
</tr>
<tr>
<td>max_upload_time=86400</td><td>Maximum time allowed to upload an object</td>
</tr>
<tr>
<td>slow=0</td><td>If > 0, Minimum time in seconds for a PUT or DELETE request to complete</td>
</tr>
<tr>
<td>keep_cache_size=5424880</td><td>Largest object size to keep in buffer cache</td>
</tr>
<tr>
<td>keep_cache_private=false</td><td>Allow non-public objects to stay in kernel's buffer cache</td>
</tr>
<tr>
<td>mb_per_sync=512</td><td>On PUT requests, sync file every n MB</td>
</tr>
<tr>
<td>allowed_headers=Content-Disposition, Content-Encoding, X-Delete-At, X-Object-Manifest, X-Static-Large-Object</td><td>Comma-separated list of headers that can be set in metadata of an object</td>
</tr>
<tr>
<td>auto_create_account_prefix=.</td><td>Prefix used when automatically creating accounts</td>
</tr>
<tr>
<td>max_clients=1024</td><td>Maximum number of clients one worker can process simultaneously (it will actually</td>
</tr>
<tr>
<td>replication_server=false</td><td>If defined, tells server how to handle replication verbs in requests. When set to True (or 1), only replication verbs will be accepted. When set to False, replication verbs will be rejected. When undefined, server will accept any verb in the request.</td>
</tr>
<tr>
<td>threads_per_disk=0</td><td>Size of the per-disk thread pool used for performing disk I/O. The default of 0 means to not use a per-disk thread pool. It is recommended to keep this value small, as large values can result in high read latencies due to large queue depths. A good starting point is 4 threads per disk.</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:healthcheck]</literal> in <literal>object-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#healthcheck</td><td>No help text available for this option</td>
</tr>
<tr>
<td>disable_path=</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:recon]</literal> in <literal>object-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#recon</td><td>No help text available for this option</td>
</tr>
<tr>
<td>recon_cache_path=/var/cache/swift</td><td>No help text available for this option</td>
</tr>
<tr>
<td>recon_lock_path=/var/lock</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[object-auditor]</literal> in <literal>object-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>log_name=object-auditor</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>files_per_second=20</td><td>Maximum files audited per second. Should be tuned according to individual system specs. 0 is unlimited.</td>
</tr>
<tr>
<td>bytes_per_second=10000000</td><td>Maximum bytes audited per second. Should be tuned according to individual system specs. 0 is unlimited. mounted to prevent accidentally writing to the root device process simultaneously (it will actually accept(2) N + 1). Setting this to one (1) will only handle one request at a time, without accepting another request concurrently. By increasing the number of workers to a much higher value, one can reduce the impact of slow file system operations in one request from negatively impacting other requests. underlying filesystem does not support it. to setup custom log handlers. bytes you'd like fallocate to reserve, whether there is space for the given file size or not. This is useful for systems that behave badly when they completely run out of space; you can make the services pretend they're out of space early. container server. For most cases, this should be `egg:swift#container`.</td>
</tr>
<tr>
<td>log_time=3600</td><td>Frequency of status logs in seconds.</td>
</tr>
<tr>
<td>zero_byte_files_per_second=50</td><td>Maximum zero byte files audited per second.</td>
</tr>
<tr>
<td>recon_cache_path=/var/cache/swift</td><td>No help text available for this option</td>
</tr>
<tr>
<td>object_size_stats=</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,71 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[object-replicator]</literal> in <literal>object-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>log_name=object-replicator</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>vm_test_mode=no</td><td>Indicates that you are using a VM environment</td>
</tr>
<tr>
<td>daemonize=on</td><td>Whether or not to run replication as a daemon</td>
</tr>
<tr>
<td>run_pause=30</td><td>Time in seconds to wait between replication passes</td>
</tr>
<tr>
<td>concurrency=1</td><td>Number of replication workers to spawn</td>
</tr>
<tr>
<td>stats_interval=300</td><td>Interval in seconds between logging replication statistics</td>
</tr>
<tr>
<td>rsync_timeout=900</td><td>Max duration (seconds) of a partition rsync</td>
</tr>
<tr>
<td>rsync_bwlimit=0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>rsync_io_timeout=30</td><td>Passed to rsync for a max duration (seconds) of an I/O op</td>
</tr>
<tr>
<td>http_timeout=60</td><td>Maximum duration for an HTTP request</td>
</tr>
<tr>
<td>lockup_timeout=1800</td><td>Attempts to kill all workers if nothing replications for lockup_timeout seconds</td>
</tr>
<tr>
<td>reclaim_age=604800</td><td>Time elapsed in seconds before an object can be reclaimed</td>
</tr>
<tr>
<td>ring_check_interval=15</td><td>How often (in seconds) to check the ring</td>
</tr>
<tr>
<td>recon_cache_path=/var/cache/swift</td><td>Directory where stats for a few items will be stored</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[object-updater]</literal> in <literal>object-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>log_name=object-updater</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>interval=300</td><td>Minimum time for a pass to take</td>
</tr>
<tr>
<td>concurrency=1</td><td>Number of replication workers to spawn</td>
</tr>
<tr>
<td>node_timeout=10</td><td>Request timeout to external services</td>
</tr>
<tr>
<td>conn_timeout=0.5</td><td>Connection timeout to external services</td>
</tr>
<tr>
<td>slowdown=0.01</td><td>Time in seconds to wait between objects</td>
</tr>
<tr>
<td>recon_cache_path=/var/cache/swift</td><td>Directory where stats for a few items will be stored</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[pipeline:main]</literal> in <literal>object-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>pipeline=healthcheck recon object-server</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,104 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[DEFAULT]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>bind_ip=0.0.0.0</td><td>IP Address for server to bind to</td>
</tr>
<tr>
<td>bind_port=80</td><td>Port for server to bind to</td>
</tr>
<tr>
<td>bind_timeout=30</td><td>Seconds to attempt bind before giving up</td>
</tr>
<tr>
<td>backlog=4096</td><td>Maximum number of allowed pending TCP connections</td>
</tr>
<tr>
<td>swift_dir=/etc/swift</td><td>Swift configuration directory</td>
</tr>
<tr>
<td>workers=1</td><td>a much higher value, one can reduce the impact of slow file system operations in one request from negatively impacting other requests.</td>
</tr>
<tr>
<td>user=swift</td><td>User to run as</td>
</tr>
<tr>
<td>cert_file=/etc/swift/proxy.crt</td><td>to the ssl .crt. This should be enabled for testing purposes only.</td>
</tr>
<tr>
<td>key_file=/etc/swift/proxy.key</td><td>to the ssl .key. This should be enabled for testing purposes only.</td>
</tr>
<tr>
<td>expiring_objects_container_divisor=86400</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_name=swift</td><td>Label used when logging</td>
</tr>
<tr>
<td>log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>log_level=INFO</td><td>Logging level</td>
</tr>
<tr>
<td>log_headers=false</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>trans_id_suffix=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_custom_handlers=</td><td>Comma-separated list of functions to call to setup custom log handlers.</td>
</tr>
<tr>
<td>log_udp_host=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_udp_port=514</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_host=localhost</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_port=8125</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_default_sample_rate=1.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_sample_rate_factor=1.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_metric_prefix=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>cors_allow_origin=</td><td>is a list of hosts that are included with any CORS request by default and returned with the Access-Control-Allow-Origin header in addition to what the container has set. to call to setup custom log handlers. for eventlet the proxy server. For most cases, this should be `egg:swift#proxy`. request whenever it has to failover to a handoff node</td>
</tr>
<tr>
<td>client_timeout=60</td><td>Timeout to read one chunk from a client external services</td>
</tr>
<tr>
<td>eventlet_debug=false</td><td>If true, turn on debug logging for eventlet</td>
</tr>
<tr>
<td>max_clients=1024</td><td>Maximum number of clients one worker can process simultaneously (it will actually</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,122 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[app:proxy-server]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#proxy</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_name=proxy-server</td><td>Label to use when logging</td>
</tr>
<tr>
<td>set log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>set log_level=INFO</td><td>Log level</td>
</tr>
<tr>
<td>set log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_handoffs=true</td><td>No help text available for this option</td>
</tr>
<tr>
<td>recheck_account_existence=60</td><td>Cache timeout in seconds to send memcached for account existence</td>
</tr>
<tr>
<td>recheck_container_existence=60</td><td>Cache timeout in seconds to send memcached for container existence</td>
</tr>
<tr>
<td>object_chunk_size=8192</td><td>Chunk size to read from object servers</td>
</tr>
<tr>
<td>client_chunk_size=8192</td><td>Chunk size to read from clients</td>
</tr>
<tr>
<td>node_timeout=10</td><td>Request timeout to external services</td>
</tr>
<tr>
<td>conn_timeout=0.5</td><td>Connection timeout to external services</td>
</tr>
<tr>
<td>error_suppression_interval=60</td><td>Time in seconds that must elapse since the last error for a node to be considered no longer error limited</td>
</tr>
<tr>
<td>error_suppression_limit=10</td><td>Error count to consider a node error limited</td>
</tr>
<tr>
<td>allow_account_management=false</td><td>Whether account PUTs and DELETEs are even callable</td>
</tr>
<tr>
<td>object_post_as_copy=true</td><td>Set object_post_as_copy = false to turn on fast posts where only the metadata changes are stored anew and the original data file is kept in place. This makes for quicker posts; but since the container metadata isn't updated in this mode, features like container sync won't be able to sync posts.</td>
</tr>
<tr>
<td>account_autocreate=false</td><td>If set to 'true' authorized accounts that do not yet exist within the Swift cluster will be automatically created.</td>
</tr>
<tr>
<td>max_containers_per_account=0</td><td>If set to a positive value, trying to create a container when the account already has at least this maximum containers will result in a 403 Forbidden. Note: This is a soft limit, meaning a user might exceed the cap for recheck_account_existence before the 403s kick in.</td>
</tr>
<tr>
<td>max_containers_whitelist=</td><td>is a comma separated list of account names that ignore the max_containers_per_account cap.</td>
</tr>
<tr>
<td>deny_host_headers=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>auto_create_account_prefix=.</td><td>Prefix to use when automatically creating accounts</td>
</tr>
<tr>
<td>put_queue_depth=10</td><td>No help text available for this option</td>
</tr>
<tr>
<td>rate_limit_after_segment=10</td><td>Rate limit the download of large object segments after this segment is downloaded.</td>
</tr>
<tr>
<td>rate_limit_segments_per_sec=1</td><td>Rate limit large object downloads at this rate. contact for a normal request. You can use '* replicas' at the end to have it use the number given times the number of replicas for the ring being used for the request. paste.deploy to use for auth. To use tempauth set to: `egg:swift#tempauth` each request</td>
</tr>
<tr>
<td>sorting_method=shuffle</td><td>No help text available for this option</td>
</tr>
<tr>
<td>timing_expiry=300</td><td>No help text available for this option</td>
</tr>
<tr>
<td>allow_static_large_object=true</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_large_object_get_time=86400</td><td>No help text available for this option</td>
</tr>
<tr>
<td>request_node_count=2 * replicas</td><td>No help text available for this option</td>
</tr>
<tr>
<td>read_affinity=r1z1=100, r1z2=200, r2=300</td><td>No help text available for this option</td>
</tr>
<tr>
<td>read_affinity=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>write_affinity=r1, r2</td><td>No help text available for this option</td>
</tr>
<tr>
<td>write_affinity=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>write_affinity_node_count=2 * replicas</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:account-quotas]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#account_quotas</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:authtoken]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>auth_host=keystonehost</td><td>No help text available for this option</td>
</tr>
<tr>
<td>auth_port=35357</td><td>No help text available for this option</td>
</tr>
<tr>
<td>auth_protocol=http</td><td>No help text available for this option</td>
</tr>
<tr>
<td>auth_uri=http://keystonehost:5000/</td><td>No help text available for this option</td>
</tr>
<tr>
<td>admin_tenant_name=service</td><td>No help text available for this option</td>
</tr>
<tr>
<td>admin_user=swift</td><td>No help text available for this option</td>
</tr>
<tr>
<td>admin_password=password</td><td>No help text available for this option</td>
</tr>
<tr>
<td>delay_auth_decision=1</td><td>No help text available for this option</td>
</tr>
<tr>
<td>cache=swift.cache</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:bulk]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#bulk</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_containers_per_extraction=10000</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_failed_extractions=1000</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_deletes_per_request=10000</td><td>No help text available for this option</td>
</tr>
<tr>
<td>yield_frequency=60</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:cache]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#memcache</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_name=cache</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_facility=LOG_LOCAL0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_level=INFO</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_headers=false</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>memcache_servers=127.0.0.1:11211</td><td>Comma separated list of memcached servers ip:port services</td>
</tr>
<tr>
<td>memcache_serialization_support=2</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:catch_errors]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#catch_errors</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_name=catch_errors</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_facility=LOG_LOCAL0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_level=INFO</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_headers=false</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:cname_lookup]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#cname_lookup</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_name=cname_lookup</td><td>Label used when logging</td>
</tr>
<tr>
<td>set log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>set log_level=INFO</td><td>Log level</td>
</tr>
<tr>
<td>set log_headers=false</td><td>If True, log headers in each request</td>
</tr>
<tr>
<td>set log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>storage_domain=example.com</td><td>No help text available for this option</td>
</tr>
<tr>
<td>lookup_depth=1</td><td>As CNAMES can be recursive, how many levels to search through</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:container-quotas]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#container_quotas</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:domain_remap]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#domain_remap</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_name=domain_remap</td><td>Label used when logging</td>
</tr>
<tr>
<td>set log_facility=LOG_LOCAL0</td><td>Syslog log facility</td>
</tr>
<tr>
<td>set log_level=INFO</td><td>Log level</td>
</tr>
<tr>
<td>set log_headers=false</td><td>If True, log headers with each request</td>
</tr>
<tr>
<td>set log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>storage_domain=example.com</td><td>Domain to use for remap</td>
</tr>
<tr>
<td>path_root=v1</td><td>Root path</td>
</tr>
<tr>
<td>reseller_prefixes=AUTH</td><td>Reseller prefix</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:formpost]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#formpost</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:healthcheck]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#healthcheck</td><td>No help text available for this option</td>
</tr>
<tr>
<td>disable_path=</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:keystoneauth]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#keystoneauth</td><td>No help text available for this option</td>
</tr>
<tr>
<td>operator_roles=admin, swiftoperator</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:list-endpoints]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#list_endpoints</td><td>No help text available for this option</td>
</tr>
<tr>
<td>list_endpoints_path=/endpoints/</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:name_check]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#name_check</td><td>No help text available for this option</td>
</tr>
<tr>
<td>forbidden_chars='"`&lt;&gt;</td><td>Characters that are not allowed in a name</td>
</tr>
<tr>
<td>maximum_length=255</td><td>Maximum length of a name</td>
</tr>
<tr>
<td>forbidden_regexp=/\./|/\.\./|/\.$|/\.\.$</td><td>Substrings to forbid, using regular expression syntax</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,62 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:proxy-logging]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#proxy_logging</td><td>No help text available for this option</td>
</tr>
<tr>
<td>access_log_name=swift</td><td>No help text available for this option</td>
</tr>
<tr>
<td>access_log_facility=LOG_LOCAL0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>access_log_level=INFO</td><td>No help text available for this option</td>
</tr>
<tr>
<td>access_log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>access_log_udp_host=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>access_log_udp_port=514</td><td>No help text available for this option</td>
</tr>
<tr>
<td>access_log_statsd_host=localhost</td><td>No help text available for this option</td>
</tr>
<tr>
<td>access_log_statsd_port=8125</td><td>No help text available for this option</td>
</tr>
<tr>
<td>access_log_statsd_default_sample_rate=1.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>access_log_statsd_sample_rate_factor=1.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>access_log_statsd_metric_prefix=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>access_log_headers=false</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_statsd_valid_http_methods=GET,HEAD,POST,PUT,DELETE,COPY,OPTIONS</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:ratelimit]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#ratelimit</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_name=ratelimit</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_facility=LOG_LOCAL0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_level=INFO</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_headers=false</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>clock_accuracy=1000</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_sleep_time_seconds=60</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log_sleep_time_seconds=0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>rate_buffer_seconds=5</td><td>No help text available for this option</td>
</tr>
<tr>
<td>account_ratelimit=0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>account_whitelist=a,b</td><td>No help text available for this option</td>
</tr>
<tr>
<td>account_blacklist=c,d</td><td>No help text available for this option</td>
</tr>
<tr>
<td>with container_limit_x=r</td><td>No help text available for this option</td>
</tr>
<tr>
<td>container_ratelimit_0=100</td><td>No help text available for this option</td>
</tr>
<tr>
<td>container_ratelimit_10=50</td><td>No help text available for this option</td>
</tr>
<tr>
<td>container_ratelimit_50=20</td><td>No help text available for this option</td>
</tr>
<tr>
<td>container_listing_ratelimit_0=100</td><td>No help text available for this option</td>
</tr>
<tr>
<td>container_listing_ratelimit_10=50</td><td>No help text available for this option</td>
</tr>
<tr>
<td>container_listing_ratelimit_50=20</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:slo]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#slo</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_manifest_segments=1000</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_manifest_size=2097152</td><td>No help text available for this option</td>
</tr>
<tr>
<td>min_segment_size=1048576</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:staticweb]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#staticweb</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,65 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:tempauth]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#tempauth</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_name=tempauth</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_facility=LOG_LOCAL0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_level=INFO</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_headers=false</td><td>No help text available for this option</td>
</tr>
<tr>
<td>set log_address=/dev/log</td><td>No help text available for this option</td>
</tr>
<tr>
<td>reseller_prefix=AUTH</td><td>The naming scope for the auth service. Swift</td>
</tr>
<tr>
<td>auth_prefix=/auth/</td><td>The HTTP request path prefix for the auth service. Swift itself reserves anything beginning with the letter `v`.</td>
</tr>
<tr>
<td>token_life=86400</td><td>The number of seconds a token is valid.</td>
</tr>
<tr>
<td>allow_overrides=true</td><td>No help text available for this option</td>
</tr>
<tr>
<td>storage_url_scheme=default</td><td>Scheme to return with storage urls: http, https, or default (chooses based on what the server is running as) This can be useful with an SSL load balancer in front of a non-SSL server.</td>
</tr>
<tr>
<td>user_admin_admin=admin .admin .reseller_admin</td><td>No help text available for this option</td>
</tr>
<tr>
<td>user_test_tester=testing .admin</td><td>No help text available for this option</td>
</tr>
<tr>
<td>user_test2_tester2=testing2 .admin</td><td>No help text available for this option</td>
</tr>
<tr>
<td>user_test_tester3=testing3</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[filter:tempurl]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>use=egg:swift#tempurl</td><td>No help text available for this option</td>
</tr>
<tr>
<td>methods=GET HEAD PUT</td><td>No help text available for this option</td>
</tr>
<tr>
<td>incoming_remove_headers=x-timestamp</td><td>No help text available for this option</td>
</tr>
<tr>
<td>incoming_allow_headers=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>outgoing_remove_headers=x-object-meta-*</td><td>No help text available for this option</td>
</tr>
<tr>
<td>outgoing_allow_headers=x-object-meta-public-*</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,23 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[pipeline:main]</literal> in <literal>proxy-server.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>pipeline=catch_errors healthcheck proxy-logging cache bulk slo ratelimit tempauth container-quotas account-quotas proxy-logging proxy-server</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[account]</literal> in <literal>rsyncd.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>max connections=2</td><td>No help text available for this option</td>
</tr>
<tr>
<td>path=/srv/node</td><td>No help text available for this option</td>
</tr>
<tr>
<td>read only=false</td><td>No help text available for this option</td>
</tr>
<tr>
<td>lock file=/var/lock/account.lock</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[container]</literal> in <literal>rsyncd.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>max connections=4</td><td>No help text available for this option</td>
</tr>
<tr>
<td>path=/srv/node</td><td>No help text available for this option</td>
</tr>
<tr>
<td>read only=false</td><td>No help text available for this option</td>
</tr>
<tr>
<td>lock file=/var/lock/container.lock</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[object]</literal> in <literal>rsyncd.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>max connections=8</td><td>No help text available for this option</td>
</tr>
<tr>
<td>path=/srv/node</td><td>No help text available for this option</td>
</tr>
<tr>
<td>read only=false</td><td>No help text available for this option</td>
</tr>
<tr>
<td>lock file=/var/lock/object.lock</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,95 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[bench]</literal> in <literal>swift-bench.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>auth=http://localhost:8080/auth/v1.0</td><td>Swift storage accounts and auth tokens will begin with this prefix.</td>
</tr>
<tr>
<td>user=test:tester</td><td>User to run as</td>
</tr>
<tr>
<td>key=testing</td><td>No help text available for this option</td>
</tr>
<tr>
<td>auth_version=1.0</td><td>No help text available for this option</td>
</tr>
<tr>
<td>log-level=INFO</td><td>No help text available for this option</td>
</tr>
<tr>
<td>timeout=10</td><td>Timeout value sent to rsync --timeout and --contimeout options</td>
</tr>
<tr>
<td>put_concurrency=10</td><td>No help text available for this option</td>
</tr>
<tr>
<td>get_concurrency=10</td><td>No help text available for this option</td>
</tr>
<tr>
<td>del_concurrency=10</td><td>No help text available for this option</td>
</tr>
<tr>
<td>concurrency=</td><td>Number of replication workers to spawn</td>
</tr>
<tr>
<td>object_sources=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>lower_object_size=10</td><td>No help text available for this option</td>
</tr>
<tr>
<td>upper_object_size=10</td><td>No help text available for this option</td>
</tr>
<tr>
<td>object_size=1</td><td>No help text available for this option</td>
</tr>
<tr>
<td>num_objects=1000</td><td>No help text available for this option</td>
</tr>
<tr>
<td>num_gets=10000</td><td>No help text available for this option</td>
</tr>
<tr>
<td>num_containers=20</td><td>No help text available for this option</td>
</tr>
<tr>
<td>container_name=(randomly-chosen uuid4)</td><td>No help text available for this option</td>
</tr>
<tr>
<td>delete=yes</td><td>No help text available for this option</td>
</tr>
<tr>
<td>use_proxy=yes</td><td>No help text available for this option</td>
</tr>
<tr>
<td>use_proxy=no, this setting is required and used as the X-Storage-Url when</td><td>No help text available for this option</td>
</tr>
<tr>
<td>url=</td><td>No help text available for this option</td>
</tr>
<tr>
<td>account=</td><td>has generated an error (timeout, not yet found, etc.)</td>
</tr>
<tr>
<td>use_proxy=no.</td><td>No help text available for this option</td>
</tr>
<tr>
<td>devices=sdb1</td><td>Parent directory of where devices are mounted</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[swift-constraints]</literal> in <literal>swift.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>max_file_size=5368709122</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_meta_name_length=128</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_meta_value_length=256</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_meta_count=90</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_meta_overall_size=4096</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_header_size=8192</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_object_name_length=1024</td><td>No help text available for this option</td>
</tr>
<tr>
<td>container_listing_limit=10000</td><td>No help text available for this option</td>
</tr>
<tr>
<td>account_listing_limit=10000</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_account_name_length=256</td><td>No help text available for this option</td>
</tr>
<tr>
<td>max_container_name_length=256</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Warning: Do not edit this file. It is automatically
generated and your changes will be overwritten.
The tool to do so lives in the tools directory of this
repository -->
<para xmlns="http://docbook.org/ns/docbook" version="5.0">
<table rules="all">
<caption>Description of configuration options for <literal>[swift-hash]</literal> in <literal>swift.conf-sample</literal></caption>
<col width="50%"/>
<col width="50%"/>
<thead>
<tr>
<td>Configuration option=Default value</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td>swift_hash_path_suffix=changeme</td><td>No help text available for this option</td>
</tr>
<tr>
<td>swift_hash_path_prefix=changeme</td><td>No help text available for this option</td>
</tr>
</tbody>
</table>
</para>

View File

@ -4,19 +4,10 @@
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="ch_configuring-object-storage">
<title>Configuring OpenStack Object Storage</title>
<para>This chapter provides sample configuration files for all the related Object Storage services provided through the swift project.</para>
<section xml:id="account-server-conf">
<title>Sample Account Server configuration file</title>
<programlisting language="ini"><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/account-server.conf-sample"/></programlisting></section>
<section xml:id="container-server-conf">
<title>Sample Container Server configuration file</title>
<programlisting language="ini"><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/container-server.conf-sample"/></programlisting></section>
<section xml:id="dispersion-conf">
<title>Sample Dispersion Server configuration file</title>
<programlisting language="ini"><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/dispersion.conf-sample"/></programlisting></section>
<section xml:id="drive-audit-conf">
<title>Sample Drive Audit configuration file</title>
<programlisting language="ini"><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/drive-audit.conf-sample"/></programlisting></section>
<para>OpenStack Object Storage uses paste.deploy to manage server configurations. Default configuration
options are set in the <code>[DEFAULT]</code> section, and any options specified there
can be overridden in any of the other sections.</para>
<!--these need to be placed under appropriate sections
<section xml:id="memcache-conf">
<title>Sample Memcache configuration file</title>
<programlisting language="ini"><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/memcache.conf-sample"/></programlisting></section>
@ -25,14 +16,8 @@
<programlisting language="ini"><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/mime.types-sample"/></programlisting></section>
<section xml:id="object-expirer-conf">
<title>Sample Object Expirer configuration file</title>
<programlisting language="ini"><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/object-expirer.conf-sample"/></programlisting></section>
<section xml:id="object-server-conf">
<title>Sample Object Server configuration file</title>
<programlisting language="ini"><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/object-server.conf-sample"/></programlisting></section>
<section xml:id="proxy-server-conf">
<title>Sample Proxy Server configuration file</title>
<programlisting language="ini"><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/proxy-server.conf-sample"/></programlisting></section>
<section xml:id="rsyncd-conf">
<programlisting><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/object-expirer.conf-sample"/></programlisting></section>
<section xml:id="rsyncd-conf">
<title>Sample Rsyncd configuration file</title>
<programlisting language="ini"><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/rsyncd.conf-sample"/></programlisting></section>
<section xml:id="swift-bench-conf">
@ -40,5 +25,86 @@
<programlisting language="ini"><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/swift-bench.conf-sample"/></programlisting></section>
<section xml:id="swift-conf">
<title>Sample Swift configuration file</title>
<programlisting language="ini"><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/swift.conf-sample"/></programlisting></section>
<programlisting><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/swift.conf-sample"/></programlisting></section>-->
<section xml:id="object-server-configuration">
<title>Object Server Configuration</title>
<para>An example Object Server configuration can be found at
etc/object-server.conf-sample in the source code
repository.</para>
<para>The following configuration options are
available:</para>
<xi:include href="../common/tables/swift-object-server-DEFAULT.xml"/>
<xi:include href="../common/tables/swift-object-server-app-object-server.xml"/>
<xi:include href="../common/tables/swift-object-server-pipeline-main.xml"/>
<xi:include href="../common/tables/swift-object-server-object-replicator.xml"/>
<xi:include href="../common/tables/swift-object-server-object-updater.xml"/>
<xi:include href="../common/tables/swift-object-server-object-auditor.xml"/>
<xi:include href="../common/tables/swift-object-server-filter-healthcheck.xml"/>
<xi:include href="../common/tables/swift-object-server-filter-recon.xml"/>
<section xml:id="object-server-conf">
<title>Sample Object Server configuration file</title>
<programlisting><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/object-server.conf-sample"/></programlisting></section>
</section>
<section xml:id="container-server-configuration">
<title>Container Server Configuration</title>
<para>An example Container Server configuration can be found at
etc/container-server.conf-sample in the source code repository.</para>
<para>The following configuration options are available:</para>
<xi:include href="../common/tables/swift-container-server-DEFAULT.xml"/>
<xi:include href="../common/tables/swift-container-server-app-container-server.xml"/>
<xi:include href="../common/tables/swift-container-server-pipeline-main.xml"/>
<xi:include href="../common/tables/swift-container-server-container-replicator.xml"/>
<xi:include href="../common/tables/swift-container-server-container-updater.xml"/>
<xi:include href="../common/tables/swift-container-server-container-auditor.xml"/>
<xi:include href="../common/tables/swift-container-server-container-sync.xml"/>
<xi:include href="../common/tables/swift-container-server-filter-healthcheck.xml"/>
<xi:include href="../common/tables/swift-container-server-filter-recon.xml"/>
<section xml:id="container-server-conf">
<title>Sample Container Server configuration file</title>
<programlisting><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/container-server.conf-sample"/></programlisting></section>
</section>
<section xml:id="account-server-configuration">
<title>Account Server Configuration</title>
<para>An example Account Server configuration can be found at
etc/account-server.conf-sample in the source code repository.</para>
<para>The following configuration options are available:</para>
<xi:include href="../common/tables/swift-account-server-DEFAULT.xml"/>
<xi:include href="../common/tables/swift-account-server-app-account-server.xml"/>
<xi:include href="../common/tables/swift-account-server-pipeline-main.xml"/>
<xi:include href="../common/tables/swift-account-server-account-replicator.xml"/>
<xi:include href="../common/tables/swift-account-server-account-auditor.xml"/>
<xi:include href="../common/tables/swift-account-server-account-reaper.xml"/>
<xi:include href="../common/tables/swift-account-server-filter-healthcheck.xml"/>
<xi:include href="../common/tables/swift-account-server-filter-recon.xml"/>
<section xml:id="account-server-conf">
<title>Sample Account Server configuration file</title>
<programlisting><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/account-server.conf-sample"/></programlisting></section>
</section>
<section xml:id="proxy-server-configuration">
<title>Proxy Server Configuration</title>
<para>An example Proxy Server configuration can be found at etc/proxy-server.conf-sample
in the source code repository.</para>
<para>The following configuration options are available:</para>
<xi:include href="../common/tables/swift-proxy-server-DEFAULT.xml"/>
<xi:include href="../common/tables/swift-proxy-server-app-proxy-server.xml"/>
<xi:include href="../common/tables/swift-proxy-server-pipeline-main.xml"/>
<xi:include href="../common/tables/swift-proxy-server-filter-account-quotas.xml"/>
<xi:include href="../common/tables/swift-proxy-server-filter-authtoken.xml"/>
<xi:include href="../common/tables/swift-proxy-server-filter-cache.xml"/>
<xi:include href="../common/tables/swift-proxy-server-filter-catch_errors.xml"/>
<xi:include href="../common/tables/swift-proxy-server-filter-healthcheck.xml"/>
<xi:include href="../common/tables/swift-proxy-server-filter-keystoneauth.xml"/>
<xi:include href="../common/tables/swift-proxy-server-filter-list-endpoints.xml"/>
<xi:include href="../common/tables/swift-proxy-server-filter-proxy-logging.xml"/>
<xi:include href="../common/tables/swift-proxy-server-filter-tempauth.xml"/>
<section xml:id="proxy-server-conf">
<title>Sample Proxy Server configuration file</title>
<programlisting><xi:include parse="text" href="https://raw.github.com/openstack/swift/master/etc/proxy-server.conf-sample"/></programlisting></section>
</section>
<!-- section on Object Storage Features -->
<xi:include href="object-storage/section_object-storage-features.xml"/>
</chapter>

View File

@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0"
xml:id="configuring-openstack-object-storage-with-s3_api">
<title>Configuring Object Storage with the S3 API</title>
<para>The Swift3 middleware emulates the S3 REST API on top of
Object Storage.</para>
<para>The following operations are currently supported:</para>
<itemizedlist>
<listitem>
<para>GET Service</para>
</listitem>
<listitem>
<para>DELETE Bucket</para>
</listitem>
<listitem>
<para>GET Bucket (List Objects)</para>
</listitem>
<listitem>
<para>PUT Bucket</para>
</listitem>
<listitem>
<para>DELETE Object</para>
</listitem>
<listitem>
<para>GET Object</para>
</listitem>
<listitem>
<para>HEAD Object</para>
</listitem>
<listitem>
<para>PUT Object</para>
</listitem>
<listitem>
<para>PUT Object (Copy)</para>
</listitem>
</itemizedlist>
<para>To use this middleware, first download the latest
version from its repository to your proxy
server(s).</para>
<screen><prompt>$</prompt> <userinput>git clone https://github.com/fujita/swift3.git</userinput></screen>
<para>Optional: To use this middleware with Swift 1.7.0 and
previous versions, you'll need to use the v1.7 tag of the
fujita/swift3 repository. Clone the repo as above and
then:</para>
<screen><prompt>$</prompt> <userinput>cd swift3; git checkout v1.7</userinput></screen>
<para>Then, install it using standard python mechanisms, such
as:</para>
<screen><prompt>$</prompt> <userinput>sudo python setup.py install</userinput></screen>
<para>Alternatively, if you have configured the Ubuntu Cloud
Archive, you may use:
<screen><prompt>$</prompt> <userinput>sudo apt-get install swift-python-s3</userinput></screen></para>
<para>To add this middleware to your configuration, add the
swift3 middleware in front of the auth middleware, and
before any other middleware that look at swift requests
(like rate limiting).</para>
<para>Ensure that your proxy-server.conf file contains swift3
in the pipeline and the [filter:swift3] section, as shown
below:</para>
<programlisting>
[pipeline:main]
pipeline = healthcheck cache swift3 swauth proxy-server
[filter:swift3]
use = egg:swift3#swift3
</programlisting>
<para>Next, configure the tool that you use to connect to the
S3 API. For S3curl, for example, you'll need to add your
host IP information by adding y our host IP to the
@endpoints array (line 33 in s3curl.pl):</para>
<literallayout class="monospaced">my @endpoints = ( '1.2.3.4');</literallayout>
<para>Now you can send commands to the endpoint, such
as:</para>
<screen>
<prompt>$</prompt> <userinput>./s3curl.pl - 'myacc:myuser' -key mypw -get - -s -v http://1.2.3.4:8080</userinput>
</screen>
<para>To set up your client, the access key will be the
concatenation of the account and user strings that should
look like test:tester, and the secret access key is the
account password. The host should also point to the Swift
storage node's hostname. It also will have to use the
old-style calling format, and not the hostname-based
container format. Here is an example client setup using
the Python boto library on a locally installed all-in-one
Swift installation.</para>
<programlisting>
connection = boto.s3.Connection(
aws_access_key_id='test:tester',
aws_secret_access_key='testing',
port=8080,
host='127.0.0.1',
is_secure=False,
calling_format=boto.s3.connection.OrdinaryCallingFormat())
</programlisting>
</section>

View File

@ -0,0 +1,548 @@
<?xml version="1.0" encoding="UTF-8"?>
<section xml:id="configuring-object-storage-features"
xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0">
<title>Configuring OpenStack Object Storage Features</title>
<section xml:id="object-storage-rate-limits">
<?dbhtml stop-chunking?>
<title>Throttling Resources by Setting Rate Limits</title>
<para>Rate limiting in OpenStack Object Storage is implemented
as a pluggable middleware that you configure on the proxy
server. Rate limiting is performed on requests that result
in database writes to the account and container sqlite
dbs. It uses memcached and is dependent on the proxy
servers having highly synchronized time. The rate limits
are limited by the accuracy of the proxy server
clocks.</para>
<section xml:id="configuration-for-rate-limiting">
<title>Configuration for Rate Limiting</title>
<para>All configuration is optional. If no account or
container limits are provided there will be no rate
limiting. Available configuration options include:</para>
<xi:include href="../../common/tables/swift-proxy-server-filter-ratelimit.xml"/>
<para>The container rate limits are linearly interpolated
from the values given. A sample container rate
limiting could be:</para>
<para>container_ratelimit_100 = 100</para>
<para>container_ratelimit_200 = 50</para>
<para>container_ratelimit_500 = 20</para>
<para>This would result in:</para>
<table rules="all">
<caption>Values for Rate Limiting with Sample
Configuration Settings</caption>
<tbody>
<tr>
<td>Container Size</td>
<td>Rate Limit</td>
</tr>
<tr>
<td>0-99</td>
<td>No limiting</td>
</tr>
<tr>
<td>100</td>
<td>100</td>
</tr>
<tr>
<td>150</td>
<td>75</td>
</tr>
<tr>
<td>500</td>
<td>20</td>
</tr>
<tr>
<td>1000</td>
<td>20</td>
</tr>
</tbody>
</table>
</section>
</section>
<section xml:id="object-storage-healthcheck">
<title>Health Check</title>
<para>Health Check provides a simple way to monitor if the
swift proxy server is alive. If the proxy is access
with the path /healthcheck, it will respond with “OK”
in the body, which can be used by monitoring
tools.</para>
<xi:include href="../../common/tables/swift-account-server-filter-healthcheck.xml"/>
</section>
<section xml:id="object-storage-domain-remap">
<title>Domain Remap</title>
<para>Domain Remap is middleware that translates container
and account parts of a domain to path parameters that
the proxy server understands.</para>
<xi:include href="../../common/tables/swift-proxy-server-filter-domain_remap.xml"/>
</section>
<section xml:id="object-storage-cname-lookup">
<title>CNAME Lookup</title>
<para>CNAME Lookup is middleware that translates an
unknown domain in the host header to something that
ends with the configured storage_domain by looking up
the given domain's CNAME record in DNS.</para>
<xi:include href="../../common/tables/swift-proxy-server-filter-cname_lookup.xml"/>
</section>
<section xml:id="object-storage-tempurl">
<title>Temporary URL</title>
<para>Allows the creation of URLs to provide temporary
access to objects. For example, a website may wish to
provide a link to download a large object in Swift,
but the Swift account has no public access. The
website can generate a URL that will provide GET
access for a limited time to the resource. When the
web browser user clicks on the link, the browser will
download the object directly from Swift, obviating the
need for the website to act as a proxy for the
request. If the user were to share the link with all
his friends, or accidentally post it on a forum, etc.
the direct access would be limited to the expiration
time set when the website created the link. To create
such temporary URLs, first an
X-Account-Meta-Temp-URL-Key header must be set on the
Swift account. Then, an HMAC-SHA1 (RFC 2104) signature
is generated using the HTTP method to allow (GET or
PUT), the Unix timestamp the access should be allowed
until, the full path to the object, and the key set on
the account. For example, here is code generating the
signature for a GET for 60 seconds on
/v1/AUTH_account/container/object:
<programlisting>
import hmac
from hashlib import sha1
from time import time
method = 'GET'
expires = int(time() + 60)
path = '/v1/AUTH_account/container/object'
key = 'mykey'
hmac_body = '%s\n%s\n%s' % (method, expires, path)
sig = hmac.new(key, hmac_body, sha1).hexdigest()
</programlisting></para>
<para>Be certain to use the full path, from the /v1/
onward. Let's say the sig ends up equaling
da39a3ee5e6b4b0d3255bfef95601890afd80709 and expires
ends up 1323479485. Then, for example, the website
could provide a link to:
<programlisting>
https://swift-cluster.example.com/v1/AUTH_account/container/object?
temp_url_sig=da39a3ee5e6b4b0d3255bfef95601890afd80709&amp;
temp_url_expires=1323479485
</programlisting></para>
<para>Any alteration of the resource path or query
arguments would result in 401 Unauthorized. Similarly,
a PUT where GET was the allowed method would 401. HEAD
is allowed if GET or PUT is allowed. Using this in
combination with browser form post translation
middleware could also allow direct-from-browser
uploads to specific locations in Swift. Note that
changing the X-Account-Meta-Temp-URL-Key will
invalidate any previously generated temporary URLs
within 60 seconds (the memcache time for the key).</para>
<para>A script called swift-temp-url distributed with swift source
code eases the temporary URL creation:
<programlisting>
$ bin/swift-temp-url GET 3600 /v1/AUTH_account/container/object mykey
/v1/AUTH_account/container/object?
temp_url_sig=5c4cc8886f36a9d0919d708ade98bf0cc71c9e91&amp;
temp_url_expires=1374497657
</programlisting>
The path returned by the above command is prefixed with swift
storage hostname.</para>
<xi:include href="../../common/tables/swift-proxy-server-filter-tempurl.xml"/>
</section>
<section xml:id="object-storage-name-check">
<title>Name Check Filter</title>
<para>Name Check is a filter that disallows any paths that
contain defined forbidden characters or that exceed a
defined length.</para>
<xi:include href="../../common/tables/swift-proxy-server-filter-name_check.xml"/>
</section>
<section xml:id="object-storage-constraints">
<title>Constraints</title>
<para>The <literal>swift-constraints</literal> section in
<literal>swift.conf</literal> allows modification
of internal limits within swift. These are advanced
features for tuning the performance of the cluster and
should be altered with caution.</para>
<table rules="all">
<caption>Configuration options for swift-constraints
in swift.conf</caption>
<tbody>
<tr>
<td>Option</td>
<td>Default</td>
<td>Description</td>
</tr>
<tr>
<td>max_file_size</td>
<td>5368709122</td>
<td>the largest "normal" object that can be
saved in the cluster. This is also the
limit on the size of each segment of a
"large" object when using the large object
manifest support. This value is set in
bytes. Setting it to lower than 1MiB will
cause some tests to fail. It is STRONGLY
recommended to leave this value at the
default (5 * 2**30 + 2).</td>
</tr>
<tr>
<td>max_meta_name_length</td>
<td>128</td>
<td>the max number of bytes in the utf8
encoding of the name portion of a metadata
header.</td>
</tr>
<tr>
<td>max_meta_value_lenth</td>
<td>256</td>
<td>the max number of bytes in the utf8
encoding of a metadata value</td>
</tr>
<tr>
<td>max_meta_count</td>
<td>90</td>
<td>the max number of metadata keys that can
be stored on a single account, container,
or object</td>
</tr>
<tr>
<td>max_meta_overall_size</td>
<td>4096</td>
<td>the max number of bytes in the utf8
encoding of the metadata (keys +
values)</td>
</tr>
<tr>
<td>max_object_name_length</td>
<td>1024</td>
<td>the max number of bytes in the utf8
encoding of an object name</td>
</tr>
<tr>
<td>container_listing_limit</td>
<td>10000</td>
<td>the default (and max) number of items
returned for a container listing
request</td>
</tr>
<tr>
<td>max_account_name_length</td>
<td>256</td>
<td>the max number of bytes in the utf8
encoding of an account name</td>
</tr>
<tr>
<td>max_container_name_length</td>
<td>256</td>
<td>the max number of bytes in the utf8
encoding of a container name</td>
</tr>
</tbody>
</table>
</section>
<section xml:id="object-storage-dispersion">
<title>Cluster Health</title>
<para>There is a
<literal>swift-dispersion-report</literal> tool
for measuring overall cluster health. This is
accomplished by checking if a set of deliberately
distributed containers and objects are currently in
their proper places within the cluster. For instance,
a common deployment has three replicas of each object.
The health of that object can be measured by checking
if each replica is in its proper place. If only 2 of
the 3 is in place the objects heath can be said to be
at 66.66%, where 100% would be perfect. A single
objects health, especially an older object, usually
reflects the health of that entire partition the
object is in. If we make enough objects on a distinct
percentage of the partitions in the cluster, we can
get a pretty valid estimate of the overall cluster
health. In practice, about 1% partition coverage seems
to balance well between accuracy and the amount of
time it takes to gather results. The first thing that
needs to be done to provide this health value is
create a new account solely for this usage. Next, we
need to place the containers and objects throughout
the system so that they are on distinct partitions.
The swift-dispersion-populate tool does this by making
up random container and object names until they fall
on distinct partitions. Last, and repeatedly for the
life of the cluster, we need to run the
swift-dispersion-report tool to check the health of
each of these containers and objects. These tools need
direct access to the entire cluster and to the ring
files (installing them on a proxy server will probably
do). Both swift-dispersion-populate and
swift-dispersion-report use the same configuration
file, <literal>/etc/swift/dispersion.conf</literal>.
Example dispersion.conf file:
<programlisting>
[dispersion]
auth_url = http://localhost:8080/auth/v1.0
auth_user = test:tester
auth_key = testing
</programlisting>
There are also options for the conf file for
specifying the dispersion coverage (defaults to 1%),
retries, concurrency, etc. though usually the defaults
are fine. Once the configuration is in place, run
swift-dispersion-populate to populate the containers
and objects throughout the cluster. Now that those
containers and objects are in place, you can run
swift-dispersion-report to get a dispersion report, or
the overall health of the cluster. Here is an example
of a cluster in perfect health:
<programlisting>
$ swift-dispersion-report
Queried 2621 containers for dispersion reporting, 19s, 0 retries
100.00% of container copies found (7863 of 7863)
Sample represents 1.00% of the container partition space
Queried 2619 objects for dispersion reporting, 7s, 0 retries
100.00% of object copies found (7857 of 7857)
Sample represents 1.00% of the object partition space
</programlisting>
Now, deliberately double the weight of a device in the
object ring (with replication turned off) and rerun
the dispersion report to show what impact that has:
<programlisting>
$ swift-ring-builder object.builder set_weight d0 200
$ swift-ring-builder object.builder rebalance
...
$ swift-dispersion-report
Queried 2621 containers for dispersion reporting, 8s, 0 retries
100.00% of container copies found (7863 of 7863)
Sample represents 1.00% of the container partition space
Queried 2619 objects for dispersion reporting, 7s, 0 retries
There were 1763 partitions missing one copy.
77.56% of object copies found (6094 of 7857)
Sample represents 1.00% of the object partition space
</programlisting>
You can see the health of the objects in the cluster
has gone down significantly. Of course, this test
environment has just four devices, in a production
environment with many devices the impact of one device
change is much less. Next, run the replicators to get
everything put back into place and then rerun the
dispersion report:
<programlisting>
... start object replicators and monitor logs until they're caught up ...
$ swift-dispersion-report
Queried 2621 containers for dispersion reporting, 17s, 0 retries
100.00% of container copies found (7863 of 7863)
Sample represents 1.00% of the container partition space
Queried 2619 objects for dispersion reporting, 7s, 0 retries
100.00% of object copies found (7857 of 7857)
Sample represents 1.00% of the object partition space
</programlisting>
Alternatively, the dispersion report can also be
output in json format. This allows it to be more
easily consumed by third party utilities:
<programlisting>
$ swift-dispersion-report -j
{"object": {"retries:": 0, "missing_two": 0, "copies_found": 7863, "missing_one": 0,
"copies_expected": 7863, "pct_found": 100.0, "overlapping": 0, "missing_all": 0}, "container":
{"retries:": 0, "missing_two": 0, "copies_found": 12534, "missing_one": 0, "copies_expected":
12534, "pct_found": 100.0, "overlapping": 15, "missing_all": 0}}
</programlisting>
</para>
<xi:include href="../../common/tables/swift-dispersion-dispersion.xml"/>
</section>
<section xml:id="object-storage-slo">
<!-- Usage documented in http://docs.openstack.org/developer/swift/overview_large_objects.html -->
<title>Static Large Object (SLO) support</title>
<para>This feature is very similar to Dynamic Large Object
(DLO) support in that it allows the user to upload
many objects concurrently and afterwards download them
as a single object. It is different in that it does
not rely on eventually consistent container listings
to do so. Instead, a user defined manifest of the
object segments is used.</para>
<xi:include href="../../common/tables/swift-proxy-server-filter-slo.xml"/>
</section>
<section xml:id="object-storage-container-quotas">
<title>Container Quotas</title>
<para>The container_quotas middleware implements simple
quotas that can be imposed on swift containers by a
user with the ability to set container metadata, most
likely the account administrator. This can be useful
for limiting the scope of containers that are
delegated to non-admin users, exposed to formpost
uploads, or just as a self-imposed sanity
check.</para>
<para>Any object PUT operations that exceed these quotas
return a 413 response (request entity too large) with
a descriptive body.</para>
<para>Quotas are subject to several limitations: eventual
consistency, the timeliness of the cached
container_info (60 second ttl by default), and it's
unable to reject chunked transfer uploads that exceed
the quota (though once the quota is exceeded, new
chunked transfers will be refused).</para>
<para>Quotas are set by adding meta values to the
container, and are validated when set: <itemizedlist>
<listitem>
<para>X-Container-Meta-Quota-Bytes: Maximum
size of the container, in bytes.</para>
</listitem>
<listitem>
<para>X-Container-Meta-Quota-Count: Maximum
object count of the container.</para>
</listitem>
</itemizedlist>
</para>
<xi:include href="../../common/tables/swift-proxy-server-filter-container-quotas.xml"/>
</section>
<section xml:id="object-storage-account-quotas">
<title>Account Quotas</title>
<para>The account_quotas middleware aims to block write
requests (PUT, POST) if a given account quota (in bytes)
is exceeded while DELETE requests are still
allowed.</para>
<para>The x-account-meta-quota-bytes metadata entry must
be set to store and enable the quota. Write requests
to this metadata entry are only permitted for resellers.
There isn't any account quota limitation on a reseller
account even if x-account-meta-quota-bytes is set.</para>
<para>Any object PUT operations that exceed the quota
return a 413 response (request entity too large) with
a descriptive body.</para>
<para>The following command uses an admin account that own
the Reseller role to set a quota on the test account:
<programlisting>swift -A http://127.0.0.1:8080/auth/v1.0 -U admin:admin -K admin --os-storage-url=http://127.0.0.1:8080/v1/AUTH_test post -m quota-bytes:10000</programlisting>
Here is the stat listing of an account where quota has been set:
<programlisting>swift -A http://127.0.0.1:8080/auth/v1.0 -U test:tester -K testing stat
Account: AUTH_test
Containers: 0
Objects: 0
Bytes: 0
Meta Quota-Bytes: 10000
X-Timestamp: 1374075958.37454
X-Trans-Id: tx602634cf478546a39b1be-0051e6bc7a
</programlisting>
The command below removes the account quota:
<programlisting>swift -A http://127.0.0.1:8080/auth/v1.0 -U admin:admin -K admin --os-storage-url=http://127.0.0.1:8080/v1/AUTH_test post -m quota-bytes:
</programlisting></para>
</section>
<section xml:id="object-storage-bulk-delete">
<title>Bulk Delete</title>
<para>Will delete multiple files from their account with a
single request. Responds to DELETE requests with a header
'X-Bulk-Delete: true_value'. The body of the DELETE
request will be a newline separated list of files to
delete. The files listed must be URL encoded and in the
form:
<programlisting>
/container_name/obj_name
</programlisting>
</para>
<para>If all files were successfully deleted (or did not
exist) will return an HTTPOk. If any files failed to
delete will return an HTTPBadGateway. In both cases the
response body is a json dictionary specifying in the
number of files successfully deleted, not found, and a
list of the files that failed.</para>
<xi:include href="../../common/tables/swift-proxy-server-filter-bulk.xml"/>
</section>
<xi:include href="section_configure_s3.xml"/>
<section xml:id="object-storage-drive-audit">
<title>Drive Audit</title>
<para>The swift-drive-audit configuration items reference a script that can be run via cron to watch for bad drives. If
errors are detected, it will unmount the bad drive, so that OpenStack Object Storage can work
around it. It takes the following options:</para>
<xi:include href="../../common/tables/swift-drive-audit-drive-audit.xml"/>
</section>
<section xml:id="object-storage-form-post">
<title>Form Post</title>
<para>The Form Post middleware provides the ability to upload objects to
a cluster using an HTML form POST. The format of the form is:</para>
<programlisting>&lt;![CDATA[
&lt;form action="&lt;swift-url&gt;" method="POST"
enctype="multipart/form-data"&gt;
&lt;input type="hidden" name="redirect" value="&lt;redirect-url&gt;" /&gt;
&lt;input type="hidden" name="max_file_size" value="&lt;bytes&gt;" /&gt;
&lt;input type="hidden" name="max_file_count" value="&lt;count&gt;" /&gt;
&lt;input type="hidden" name="expires" value="&lt;unix-timestamp&gt;" /&gt;
&lt;input type="hidden" name="signature" value="&lt;hmac&gt;" /&gt;
&lt;input type="file" name="file1" /&gt;&lt;br /&gt;
&lt;input type="submit" /&gt;
&lt;/form&gt;]]&gt;
</programlisting>
<para>The <literal>swift-url</literal> is the URL to the Swift destination, such as:
<literal>https://swift-cluster.example.com/v1/AUTH_account/container/object_prefix</literal>
The name of each file uploaded will be appended to the <literal>swift-url</literal> given. So, you can upload
directly to the root of container with a url like:
<literal>https://swift-cluster.example.com/v1/AUTH_account/container/</literal>
Optionally, you can include an object prefix to better separate different users uploads, such as:
<literal>https://swift-cluster.example.com/v1/AUTH_account/container/object_prefix</literal>
</para>
<para>Note the form method must be POST and the enctype must be set as “multipart/form-data”.
The redirect attribute is the URL to redirect the browser to after the upload completes. The URL
will have status and message query parameters added to it, indicating the HTTP status code for the
upload (2xx is success) and a possible message for further information if there was an error (such
as “max_file_size exceeded”).
The max_file_size attribute must be included and indicates the largest single file upload that can
be done, in bytes.
The max_file_count attribute must be included and indicates the maximum number of files that can be
uploaded with the form. Include additional <literal>&lt;![CDATA[&lt;input type="file" name="filexx"/&gt;]]&gt;</literal> attributes if
desired.
The expires attribute is the Unix timestamp before which the form must be submitted before it is
invalidated.
The signature attribute is the HMAC-SHA1 signature of the form. Here is sample code for computing
the signature:
<programlisting>
import hmac
from hashlib import sha1
from time import time
path = '/v1/account/container/object_prefix'
redirect = 'https://myserver.com/some-page'
max_file_size = 104857600
max_file_count = 10
expires = int(time() + 600)
key = 'mykey'
hmac_body = '%s\n%s\n%s\n%s\n%s' % (path, redirect,
max_file_size, max_file_count, expires)
signature = hmac.new(key, hmac_body, sha1).hexdigest()
</programlisting>
The key is the value of the X-Account-Meta-Temp-URL-Key header on the account.
Be certain to use the full path, from the /v1/ onward.
The command line tool swift-form-signature may be used (mostly just when testing) to compute
expires and signature.
</para>
<para>
Also note that the file attributes must be after the other attributes in order to be processed
correctly. If attributes come after the file, they wont be sent with the subrequest (there is no
way to parse all the attributes on the server-side without reading the whole thing into memory to
service many requests, some with large files, there just isnt enough memory on the server, so
attributes following the file are simply ignored).</para>
<xi:include href="../../common/tables/swift-proxy-server-filter-formpost.xml"/>
</section>
<section xml:id="object-storage-static-web">
<title>Static Websites</title>
<para>When configured, the StaticWeb WSGI middleware serves container
data as a static web site with index file and error file resolution and
optional file listings. This mode is normally only active for anonymous
requests.</para>
<xi:include href="../../common/tables/swift-proxy-server-filter-staticweb.xml"/>
</section>
</section>

View File

@ -210,7 +210,7 @@ def write_flags(filepath, flags, name_only=True, verbose=0):
f.write("|")
f.write("||".join([string.strip(name),
string.strip(str(opt.default)),
string.strip(opt.help.replace("\n", " ")])))
string.strip(opt.help.replace("\n", " "))]))
f.write("\n|-\n")
else:
f.write(name + "\n")
@ -240,7 +240,7 @@ def write_docbook(directory, flags, groups, package_name, verbose=0):
<thead>\n\
<tr>\n\
<td>Configuration option=Default value</td>\n\
<td>(Type) Description</td>\n\
<td>Description</td>\n\
</tr>\n\
</thead>\n\
<tbody>')

View File

@ -0,0 +1,172 @@
#!/usr/bin/env python
import sys
from os import path
import glob
from xml.dom import minidom
from xml.sax.saxutils import escape
#Swift configuration example files live in
# swift/etc/*.conf-sample
# and contain sections enclosed in [], with
# options one per line containing =
# and generally only having a single entry
# after the equals (the default value)
def parse_line(line):
"""
takes a line from a swift sample configuration file and attempts
to separate the lines with actual configuration option and default
value from the rest. Returns None if the line doesn't appear to
contain a valid configuration option = default value pair, and
a pair of the config and its default if it does.
"""
if '=' not in line:
return None
temp_line = line.strip('#').strip()
config, default = temp_line.split('=', 1)
config = config.strip()
if ' ' in config and config[0:3] != 'set':
if len(default.split()) > 1 or config[0].isupper():
return None
if len(config) < 2 or '.' in config or '<' in config or '>' in config:
return None
return config, default.strip()
def get_existing_options(optfile):
"""
parses an existing XML table to compile a list of existing options
"""
options = []
xmldoc = minidom.parse(optfile)
tdlist = xmldoc.getElementsByTagName('td')
for td in tdlist:
try:
tdvalue = td.childNodes[0].nodeValue
except IndexError:
continue
if '=' in tdvalue and ' ' not in tdvalue:
options.append(tdvalue.split('=',1)[0])
return options
def extract_descriptions_from_devref(repo, options):
"""
loop through the devref RST files, looking for lines formatted
such that they might contain a description of a particular
option
"""
option_descs = {}
rsts = glob.glob(repo + '/doc/source/*.rst')
for rst in rsts:
rst_file = open(rst, 'r')
in_option_block = False
prev_option = None
for line in rst_file:
if 'Option ' in line:
in_option_block = True
if in_option_block:
if '========' in line:
in_option_block = False
continue
if line[0] == ' ' and prev_option is not None:
option_descs[prev_option] = option_descs[prev_option] + ' ' + line.strip()
for option in options:
line_parts = line.strip().split(None, 2)
if (' ' in line and len(line_parts) == 3
and option == line_parts[0]
and line_parts[1] != '=' and option != 'use'
and (option not in option_descs or
len(option_descs[option]) < len(line_parts[2]))):
option_descs[option] = line_parts[2]
prev_option = option
return option_descs
def new_section_file(sample, current_section):
section_filename = ('swift-' +
path.basename(sample).split('.conf')[0]
+ '-' + current_section.replace('[','').replace(']','').replace(':','-')
+ '.xml')
section_file = open(section_filename, 'w')
section_file.write('<?xml version="1.0" encoding="UTF-8"?>\n\
<!-- Warning: Do not edit this file. It is automatically\n\
generated and your changes will be overwritten.\n\
The tool to do so lives in the tools directory of this\n\
repository -->\n\
<para xmlns="http://docbook.org/ns/docbook" version="5.0">\n\
<table rules="all">\n\
<caption>Description of configuration options for <literal>'
+ current_section + '</literal> in <literal>' + path.basename(sample) +
'</literal></caption>\n\
<col width="50%"/>\n\
<col width="50%"/>\n\
<thead>\n\
<tr>\n\
<td>Configuration option=Default value</td>\n\
<td>Description</td>\n\
</tr>\n\
</thead>\n\
<tbody>')
return section_file
def create_new_tables(repo, vebose, existing_options=None):
existing_tables = glob.glob('../../doc/src/docbkx/common/tables/swift*xml')
options = []
for table in existing_tables:
options.extend(get_existing_options(table))
option_descs = extract_descriptions_from_devref(repo, options)
conf_samples = glob.glob(repo + '/etc/*conf-sample')
for sample in conf_samples:
current_section = None
section_file = None
sample_file = open(sample,'r')
for line in sample_file:
if '[' in line and ']\n' in line and '=' not in line:
#header line
if current_section != line.strip('#').strip():
if section_file is not None:
section_file.write('\n </tbody>\n\
</table>\n\
</para>')
section_file.close()
current_section = line.strip('#').strip()
section_file = new_section_file(sample, current_section)
elif section_file is not None:
#config option line
parsed_line = parse_line(line)
if parsed_line is not None:
if parsed_line[0] in option_descs:
option_desc = option_descs[parsed_line[0]]
else:
option_desc = 'No help text available for this option'
#if (existing_options is not None
# and parsed_line[0] not in existing_options):
# print "New Option: " + parsed_line[0]
#elif existing_options is not None:
# existing_options.remove(parsed_line[0])
section_file.write('\n <tr>\n\
<td>' + parsed_line[0] + '=' + escape(str(parsed_line[1])) +
'</td><td>'+ option_desc + '</td>\n' + ' </tr>')
if section_file is not None:
section_file.write('\n </tbody>\n\
</table>\n\
</para>')
section_file.close()
#print "Removed: " + str(existing_options)
def main(repo, verbose=0):
"""
writes a set of docbook-formatted files, based on configuration sections
in swift sample configuration files
actions: new - creates blank configuration files
update - creates updated configuration files based on existing ones
"""
action = 'create'
#action = 'update'
if action == "create":
create_new_tables(repo, verbose)
elif action == "update":
options = get_existing_options('/home/fifieldt/temp/os-doc-on-a-plane-2/doc/src/docbkx/common/tables/swift-object-server-[DEFAULT].xml')
create_new_tables(repo, verbose, options)
if __name__ == "__main__":
main(sys.argv[1])