From 72786533ea97448f7c548c3b998bbcbb8661e1da Mon Sep 17 00:00:00 2001 From: Alistair Coles Date: Thu, 5 Nov 2020 11:47:48 +0000 Subject: [PATCH] Move config option documentation to separate docs This patch moves the tables describing configuration options for each server type from the deployment_guide.rst doc to separate per-server documents. The new per-server documents are grouped under a config directory with a config index doc. The config index doc is listed in the top level index and provides a single starting point to navigate to the individual server docs. Change-Id: I6cedd98586febb5dc949c088ee44e160385ed324 --- doc/source/config/account_server_config.rst | 358 ++++ doc/source/config/container_server_config.rst | 362 ++++ doc/source/config/index.rst | 17 + doc/source/config/object_server_config.rst | 663 +++++++ doc/source/config/proxy_server_config.rst | 358 ++++ doc/source/config/swift_common_config.rst | 37 + doc/source/deployment_guide.rst | 1755 +---------------- doc/source/index.rst | 2 + 8 files changed, 1803 insertions(+), 1749 deletions(-) create mode 100644 doc/source/config/account_server_config.rst create mode 100644 doc/source/config/container_server_config.rst create mode 100644 doc/source/config/index.rst create mode 100644 doc/source/config/object_server_config.rst create mode 100644 doc/source/config/proxy_server_config.rst create mode 100644 doc/source/config/swift_common_config.rst diff --git a/doc/source/config/account_server_config.rst b/doc/source/config/account_server_config.rst new file mode 100644 index 0000000000..241c3e9d60 --- /dev/null +++ b/doc/source/config/account_server_config.rst @@ -0,0 +1,358 @@ +.. _account-server-config: + +---------------------------- +Account Server Configuration +---------------------------- + +This document describes the configuration options available for the account +server. Documentation for other swift configuration options can be found at +:doc:`index`. + +An example Account Server configuration can be found at +etc/account-server.conf-sample in the source code repository. + +The following configuration sections are available: + +* :ref:`[DEFAULT] ` +* `[account-server]`_ +* `[account-replicator]`_ +* `[account-auditor]`_ +* `[account-reaper]`_ + +.. _account_server_default_options: + +********* +[DEFAULT] +********* + +=============================== ========== ============================================= +Option Default Description +------------------------------- ---------- --------------------------------------------- +swift_dir /etc/swift Swift configuration directory +devices /srv/node Parent directory or where devices are mounted +mount_check true Whether or not check if the devices are + mounted to prevent accidentally writing + to the root device +bind_ip 0.0.0.0 IP Address for server to bind to +bind_port 6202 Port for server to bind to +keep_idle 600 Value to set for socket TCP_KEEPIDLE +bind_timeout 30 Seconds to attempt bind before giving up +backlog 4096 Maximum number of allowed pending + connections +workers auto Override the number of pre-forked workers + that will accept connections. If set it + should be an integer, zero means no fork. If + unset, it will try to default to the number + of effective cpu cores and fallback to one. + Increasing the number of workers may reduce + the possibility of slow file system + operations in one request from negatively + impacting other requests. See + :ref:`general-service-tuning`. +max_clients 1024 Maximum number of clients one 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. +user swift User to run as +db_preallocation off 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. +disable_fallocate false Disable "fast fail" fallocate checks if the + underlying filesystem does not support it. +log_name swift Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_address /dev/log Logging directory +log_max_line_length 0 Caps the length of log lines to the + value given; no limit if set to 0, the + default. +log_custom_handlers None Comma-separated list of functions to call + to setup custom log handlers. +log_udp_host Override log_address +log_udp_port 514 UDP log port +log_statsd_host None Enables StatsD logging; IPv4/IPv6 + address or a hostname. If a + hostname resolves to an IPv4 and IPv6 + address, the IPv4 address will be + used. +log_statsd_port 8125 +log_statsd_default_sample_rate 1.0 +log_statsd_sample_rate_factor 1.0 +log_statsd_metric_prefix +eventlet_debug false If true, turn on debug logging for eventlet +fallocate_reserve 1% You can set fallocate_reserve to the + number of bytes or percentage of disk + space you'd like fallocate to reserve, + whether there is space for the given + file size or not. Percentage will be used + if the value ends with a '%'. 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. +nice_priority None Scheduling priority of server processes. + Niceness values range from -20 (most + favorable to the process) to 19 (least + favorable to the process). The default + does not modify priority. +ionice_class None I/O scheduling class of server processes. + I/O niceness class values are IOPRIO_CLASS_RT + (realtime), IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify class and + priority. Linux supports io scheduling + priorities and classes since 2.6.13 with + the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server processes. + I/O niceness priority is a number which + goes from 0 to 7. The higher the value, + the lower the I/O priority of the process. + Work only with ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +=============================== ========== ============================================= + +**************** +[account-server] +**************** + +============================= ============== ========================================== +Option Default Description +----------------------------- -------------- ------------------------------------------ +use Entry point for paste.deploy for the account + server. For most cases, this should be + ``egg:swift#account``. +set log_name account-server Label used when logging +set log_facility LOG_LOCAL0 Syslog log facility +set log_level INFO Logging level +set log_requests True Whether or not to log each + request +set log_address /dev/log Logging directory +replication_server Configure parameter for creating + specific server. To handle all verbs, + including replication verbs, do not + specify "replication_server" + (this is the default). To only + handle replication, set to a True + value (e.g. "True" or "1"). + To handle only non-replication + verbs, set to "False". Unless you + have a separate replication network, you + should not specify any value for + "replication_server". +nice_priority None Scheduling priority of server processes. + Niceness values range from -20 (most + favorable to the process) to 19 (least + favorable to the process). The default + does not modify priority. +ionice_class None I/O scheduling class of server processes. + I/O niceness class values are IOPRIO_CLASS_RT + (realtime), IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify class and + priority. Linux supports io scheduling + priorities and classes since 2.6.13 with + the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority is + a number which goes from 0 to 7. + The higher the value, the lower the I/O + priority of the process. Work only with + ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +============================= ============== ========================================== + +******************** +[account-replicator] +******************** + +==================== ========================= =============================== +Option Default Description +-------------------- ------------------------- ------------------------------- +log_name account-replicator Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_address /dev/log Logging directory +per_diff 1000 Maximum number of database rows + that will be sync'd in a single + HTTP replication request. + Databases with less than or + equal to this number of + differing rows will always be + sync'd using an HTTP replication + request rather than using rsync. +max_diffs 100 Maximum number of HTTP + replication requests attempted + on each replication pass for any + one container. This caps how + long the replicator will spend + trying to sync a given database + per pass so the other databases + don't get starved. +concurrency 8 Number of replication workers + to spawn +interval 30 Time in seconds to wait between + replication passes +databases_per_second 50 Maximum databases to process + per second. Should be tuned + according to individual + system specs. 0 is unlimited. +node_timeout 10 Request timeout to external + services +conn_timeout 0.5 Connection timeout to external + services +reclaim_age 604800 Time elapsed in seconds before + an account can be reclaimed +rsync_module {replication_ip}::account Format of the rsync module where + the replicator will send data. + The configuration value can + include some variables that will + be extracted from the ring. + Variables must follow the format + {NAME} where NAME is one of: ip, + port, replication_ip, + replication_port, region, zone, + device, meta. See + etc/rsyncd.conf-sample for some + examples. +rsync_compress no Allow rsync to compress data + which is transmitted to + destination node during sync. + However, this is applicable only + when destination node is in a + different region than the local + one. NOTE: Objects that are + already compressed (for example: + .tar.gz, mp3) might slow down + the syncing process. +recon_cache_path /var/cache/swift Path to recon cache +nice_priority None Scheduling priority of server + processes. Niceness values + range from -20 (most favorable + to the process) to 19 (least + favorable to the process). + The default does not modify + priority. +ionice_class None I/O scheduling class of server + processes. I/O niceness class + values are IOPRIO_CLASS_RT + (realtime), IOPRIO_CLASS_BE + (best-effort), and IOPRIO_CLASS_IDLE + (idle). + The default does not modify + class and priority. Linux supports + io scheduling priorities and classes + since 2.6.13 with the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority + is a number which goes from 0 to 7. + The higher the value, the lower + the I/O priority of the process. + Work only with ionice_class. + Ignored if IOPRIO_CLASS_IDLE + is set. +==================== ========================= =============================== + +***************** +[account-auditor] +***************** + +==================== ================ ======================================= +Option Default Description +-------------------- ---------------- --------------------------------------- +log_name account-auditor Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_address /dev/log Logging directory +interval 1800 Minimum time for a pass to take +accounts_per_second 200 Maximum accounts audited per second. + Should be tuned according to individual + system specs. 0 is unlimited. +recon_cache_path /var/cache/swift Path to recon cache +nice_priority None Scheduling priority of server processes. + Niceness values range from -20 (most + favorable to the process) to 19 (least + favorable to the process). The default + does not modify priority. +ionice_class None I/O scheduling class of server processes. + I/O niceness class values are + IOPRIO_CLASS_RT (realtime), + IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify class and + priority. Linux supports io scheduling + priorities and classes since 2.6.13 with + the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority is + a number which goes from 0 to 7. + The higher the value, the lower the I/O + priority of the process. Work only with + ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +==================== ================ ======================================= + +**************** +[account-reaper] +**************** + +================== =============== ========================================= +Option Default Description +------------------ --------------- ----------------------------------------- +log_name account-reaper Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_address /dev/log Logging directory +concurrency 25 Number of replication workers to spawn +interval 3600 Minimum time for a pass to take +node_timeout 10 Request timeout to external services +conn_timeout 0.5 Connection timeout to external services +delay_reaping 0 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. The sum of + this value and the container-updater + ``interval`` should be less than the + account-replicator ``reclaim_age``. This + ensures that once the account-reaper has + deleted a container there is sufficient + time for the container-updater to report + to the account before the account DB is + removed. +reap_warn_after 2892000 If the account fails to be reaped due + to a persistent error, the account reaper + will log a message such as: + Account has not been reaped since + You can search logs for this message if + space is not being reclaimed after you + delete account(s). This is in addition to + any time requested by delay_reaping. +nice_priority None Scheduling priority of server processes. + Niceness values range from -20 (most + favorable to the process) to 19 (least + favorable to the process). The default + does not modify priority. +ionice_class None I/O scheduling class of server processes. + I/O niceness class values are IOPRIO_CLASS_RT + (realtime), IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify class and + priority. Linux supports io scheduling + priorities and classes since 2.6.13 with + the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority is + a number which goes from 0 to 7. + The higher the value, the lower the I/O + priority of the process. Work only with + ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +================== =============== ========================================= diff --git a/doc/source/config/container_server_config.rst b/doc/source/config/container_server_config.rst new file mode 100644 index 0000000000..d5ab30d9e9 --- /dev/null +++ b/doc/source/config/container_server_config.rst @@ -0,0 +1,362 @@ +.. _container-server-config: + +------------------------------ +Container Server Configuration +------------------------------ + +This document describes the configuration options available for the container +server. Documentation for other swift configuration options can be found at +:doc:`index`. + +An example Container Server configuration can be found at +etc/container-server.conf-sample in the source code repository. + +The following configuration sections are available: + +* :ref:`[DEFAULT] ` +* `[container-server]`_ +* `[container-replicator]`_ +* `[container-updater]`_ +* `[container-auditor]`_ + +.. _container_server_default_options: + +********* +[DEFAULT] +********* + +=============================== ========== ============================================ +Option Default Description +------------------------------- ---------- -------------------------------------------- +swift_dir /etc/swift Swift configuration directory +devices /srv/node Parent directory of where devices are mounted +mount_check true Whether or not check if the devices are + mounted to prevent accidentally writing + to the root device +bind_ip 0.0.0.0 IP Address for server to bind to +bind_port 6201 Port for server to bind to +keep_idle 600 Value to set for socket TCP_KEEPIDLE +bind_timeout 30 Seconds to attempt bind before giving up +backlog 4096 Maximum number of allowed pending + connections +workers auto Override the number of pre-forked workers + that will accept connections. If set it + should be an integer, zero means no fork. If + unset, it will try to default to the number + of effective cpu cores and fallback to one. + Increasing the number of workers may reduce + the possibility of slow file system + operations in one request from negatively + impacting other requests. See + :ref:`general-service-tuning`. +max_clients 1024 Maximum number of clients one 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. +user swift User to run as +disable_fallocate false Disable "fast fail" fallocate checks if the + underlying filesystem does not support it. +log_name swift Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_address /dev/log Logging directory +log_max_line_length 0 Caps the length of log lines to the + value given; no limit if set to 0, the + default. +log_custom_handlers None Comma-separated list of functions to call + to setup custom log handlers. +log_udp_host Override log_address +log_udp_port 514 UDP log port +log_statsd_host None Enables StatsD logging; IPv4/IPv6 + address or a hostname. If a + hostname resolves to an IPv4 and IPv6 + address, the IPv4 address will be + used. +log_statsd_port 8125 +log_statsd_default_sample_rate 1.0 +log_statsd_sample_rate_factor 1.0 +log_statsd_metric_prefix +eventlet_debug false If true, turn on debug logging for eventlet +fallocate_reserve 1% You can set fallocate_reserve to the + number of bytes or percentage of disk + space you'd like fallocate to reserve, + whether there is space for the given + file size or not. Percentage will be used + if the value ends with a '%'. 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. +db_preallocation off 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. +nice_priority None Scheduling priority of server processes. + Niceness values range from -20 (most + favorable to the process) to 19 (least + favorable to the process). The default + does not modify priority. +ionice_class None I/O scheduling class of server processes. + I/O niceness class values are IOPRIO_CLASS_RT + (realtime), IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify class and + priority. Linux supports io scheduling + priorities and classes since 2.6.13 + with the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server processes. + I/O niceness priority is a number which + goes from 0 to 7. The higher the value, + the lower the I/O priority of the process. + Work only with ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +=============================== ========== ============================================ + +****************** +[container-server] +****************** + +============================== ================ ======================================== +Option Default Description +------------------------------ ---------------- ---------------------------------------- +use paste.deploy entry point for the + container server. For most cases, this + should be ``egg:swift#container``. +set log_name container-server Label used when logging +set log_facility LOG_LOCAL0 Syslog log facility +set log_level INFO Logging level +set log_requests True Whether or not to log each + request +set log_address /dev/log Logging directory +node_timeout 3 Request timeout to external services +conn_timeout 0.5 Connection timeout to external services +allow_versions false Enable/Disable object versioning feature +replication_server Configure parameter for creating + specific server. To handle all verbs, + including replication verbs, do not + specify "replication_server" + (this is the default). To only + handle replication, set to a True + value (e.g. "True" or "1"). + To handle only non-replication + verbs, set to "False". Unless you + have a separate replication network, you + should not specify any value for + "replication_server". +nice_priority None Scheduling priority of server processes. + Niceness values range from -20 (most + favorable to the process) to 19 (least + favorable to the process). The default + does not modify priority. +ionice_class None I/O scheduling class of server processes. + I/O niceness class values are + IOPRIO_CLASS_RT (realtime), + IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify class and + priority. Linux supports io scheduling + priorities and classes since 2.6.13 with + the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority is + a number which goes from 0 to 7. + The higher the value, the lower the I/O + priority of the process. Work only with + ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +============================== ================ ======================================== + +********************** +[container-replicator] +********************** + +==================== =========================== ============================= +Option Default Description +-------------------- --------------------------- ----------------------------- +log_name container-replicator Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_address /dev/log Logging directory +per_diff 1000 Maximum number of database + rows that will be sync'd in a + single HTTP replication + request. Databases with less + than or equal to this number + of differing rows will always + be sync'd using an HTTP + replication request rather + than using rsync. +max_diffs 100 Maximum number of HTTP + replication requests attempted + on each replication pass for + any one container. This caps + how long the replicator will + spend trying to sync a given + database per pass so the other + databases don't get starved. +concurrency 8 Number of replication workers + to spawn +interval 30 Time in seconds to wait + between replication passes +databases_per_second 50 Maximum databases to process + per second. Should be tuned + according to individual + system specs. 0 is unlimited. +node_timeout 10 Request timeout to external + services +conn_timeout 0.5 Connection timeout to external + services +reclaim_age 604800 Time elapsed in seconds before + a container can be reclaimed +rsync_module {replication_ip}::container Format of the rsync module + where the replicator will send + data. The configuration value + can include some variables + that will be extracted from + the ring. Variables must + follow the format {NAME} where + NAME is one of: ip, port, + replication_ip, + replication_port, region, + zone, device, meta. See + etc/rsyncd.conf-sample for + some examples. +rsync_compress no Allow rsync to compress data + which is transmitted to + destination node during sync. + However, this is applicable + only when destination node is + in a different region than the + local one. NOTE: Objects that + are already compressed (for + example: .tar.gz, mp3) might + slow down the syncing process. +recon_cache_path /var/cache/swift Path to recon cache +nice_priority None Scheduling priority of server + processes. Niceness values + range from -20 (most favorable + to the process) to 19 (least + favorable to the process). + The default does not modify + priority. +ionice_class None I/O scheduling class of server + processes. I/O niceness class + values are + IOPRIO_CLASS_RT (realtime), + IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify + class and priority. Linux + supports io scheduling + priorities and classes since + 2.6.13 with the CFQ io + scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of + server processes. I/O niceness + priority is a number which goes + from 0 to 7. + The higher the value, the lower + the I/O priority of the process. + Work only with ionice_class. + Ignored if IOPRIO_CLASS_IDLE + is set. +==================== =========================== ============================= + +******************* +[container-updater] +******************* + +======================== ================= ================================== +Option Default Description +------------------------ ----------------- ---------------------------------- +log_name container-updater Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_address /dev/log Logging directory +interval 300 Minimum time for a pass to take +concurrency 4 Number of updater workers to spawn +node_timeout 3 Request timeout to external + services +conn_timeout 0.5 Connection timeout to external + services +containers_per_second 50 Maximum containers updated per second. + Should be tuned according to individual + system specs. 0 is unlimited. + +slowdown 0.01 Time in seconds to wait between + containers. Deprecated in favor of + containers_per_second. +account_suppression_time 60 Seconds to suppress updating an + account that has generated an + error (timeout, not yet found, + etc.) +recon_cache_path /var/cache/swift Path to recon cache +nice_priority None Scheduling priority of server + processes. Niceness values range + from -20 (most favorable to the + process) to 19 (least favorable + to the process). The default does + not modify priority. +ionice_class None I/O scheduling class of server + processes. I/O niceness class + values are IOPRIO_CLASS_RT (realtime), + IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify class and + priority. Linux supports io scheduling + priorities and classes since 2.6.13 with + the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority is + a number which goes from 0 to 7. + The higher the value, the lower + the I/O priority of the process. + Work only with ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +======================== ================= ================================== + +******************* +[container-auditor] +******************* + +===================== ================= ======================================= +Option Default Description +--------------------- ----------------- --------------------------------------- +log_name container-auditor Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_address /dev/log Logging directory +interval 1800 Minimum time for a pass to take +containers_per_second 200 Maximum containers audited per second. + Should be tuned according to individual + system specs. 0 is unlimited. +recon_cache_path /var/cache/swift Path to recon cache +nice_priority None Scheduling priority of server processes. + Niceness values range from -20 (most + favorable to the process) to 19 (least + favorable to the process). The default + does not modify priority. +ionice_class None I/O scheduling class of server processes. + I/O niceness class values are + IOPRIO_CLASS_RT (realtime), + IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify class and + priority. Linux supports io scheduling + priorities and classes since 2.6.13 with + the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority is + a number which goes from 0 to 7. + The higher the value, the lower the I/O + priority of the process. Work only with + ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +===================== ================= ======================================= diff --git a/doc/source/config/index.rst b/doc/source/config/index.rst new file mode 100644 index 0000000000..bb2752b537 --- /dev/null +++ b/doc/source/config/index.rst @@ -0,0 +1,17 @@ +=========================== +Configuration Documentation +=========================== + +.. toctree:: + :maxdepth: 2 + + swift_common_config.rst + proxy_server_config.rst + account_server_config.rst + container_server_config.rst + object_server_config.rst + +Configuration options for middleware can be found at: + +* :doc:`../middleware` +* :doc:`../overview_auth` diff --git a/doc/source/config/object_server_config.rst b/doc/source/config/object_server_config.rst new file mode 100644 index 0000000000..6a2b8edcad --- /dev/null +++ b/doc/source/config/object_server_config.rst @@ -0,0 +1,663 @@ +.. _object-server-config: + +--------------------------- +Object Server Configuration +--------------------------- + +This document describes the configuration options available for the object +server. Documentation for other swift configuration options can be found at +:doc:`index`. + +An Example Object Server configuration can be found at +etc/object-server.conf-sample in the source code repository. + +The following configuration sections are available: + +* :ref:`[DEFAULT] ` +* `[object-server]`_ +* `[object-replicator]`_ +* `[object-reconstructor]`_ +* `[object-updater]`_ +* `[object-auditor]`_ +* `[object-expirer]`_ + +.. _object-server-default-options: + +********* +[DEFAULT] +********* + +================================ ========== ============================================ +Option Default Description +-------------------------------- ---------- -------------------------------------------- +swift_dir /etc/swift Swift configuration directory +devices /srv/node Parent directory of where devices are + mounted +mount_check true Whether or not check if the devices are + mounted to prevent accidentally writing + to the root device +bind_ip 0.0.0.0 IP Address for server to bind to +bind_port 6200 Port for server to bind to +keep_idle 600 Value to set for socket TCP_KEEPIDLE +bind_timeout 30 Seconds to attempt bind before giving up +backlog 4096 Maximum number of allowed pending + connections +workers auto Override the number of pre-forked workers + that will accept connections. If set it + should be an integer, zero means no fork. + If unset, it will try to default to the + number of effective cpu cores and fallback + to one. Increasing the number of workers + helps slow filesystem operations in one + request from negatively impacting other + requests, but only the + :ref:`servers_per_port + ` option + provides complete I/O isolation with no + measurable overhead. +servers_per_port 0 If each disk in each storage policy ring + has unique port numbers for its "ip" + value, you can use this setting to have + each object-server worker only service + requests for the single disk matching the + port in the ring. The value of this + setting determines how many worker + processes run for each port (disk) in the + ring. If you have 24 disks per server, and + this setting is 4, then each storage node + will have 1 + (24 * 4) = 97 total + object-server processes running. This + gives complete I/O isolation, drastically + reducing the impact of slow disks on + storage node performance. The + object-replicator and object-reconstructor + need to see this setting too, so it must + be in the [DEFAULT] section. + See :ref:`server-per-port-configuration`. +max_clients 1024 Maximum number of clients one 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. +disable_fallocate false Disable "fast fail" fallocate checks if + the underlying filesystem does not support + it. +log_name swift Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_address /dev/log Logging directory +log_max_line_length 0 Caps the length of log lines to the + value given; no limit if set to 0, the + default. +log_custom_handlers None Comma-separated list of functions to call + to setup custom log handlers. +log_udp_host Override log_address +log_udp_port 514 UDP log port +log_statsd_host None Enables StatsD logging; IPv4/IPv6 + address or a hostname. If a + hostname resolves to an IPv4 and IPv6 + address, the IPv4 address will be + used. +log_statsd_port 8125 +log_statsd_default_sample_rate 1.0 +log_statsd_sample_rate_factor 1.0 +log_statsd_metric_prefix +eventlet_debug false If true, turn on debug logging for + eventlet +fallocate_reserve 1% You can set fallocate_reserve to the + number of bytes or percentage of disk + space you'd like fallocate to reserve, + whether there is space for the given + file size or not. Percentage will be used + if the value ends with a '%'. 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. +conn_timeout 0.5 Time to wait while attempting to connect + to another backend node. +node_timeout 3 Time to wait while sending each chunk of + data to another backend node. +client_timeout 60 Time to wait while receiving each chunk of + data from a client or another backend node +network_chunk_size 65536 Size of chunks to read/write over the + network +disk_chunk_size 65536 Size of chunks to read/write to disk +container_update_timeout 1 Time to wait while sending a container + update on object update. +reclaim_age 604800 Time elapsed in seconds before the tombstone + file representing a deleted object can be + reclaimed. This is the maximum window for + your consistency engine. If a node that was + disconnected from the cluster because of a + fault is reintroduced into the cluster after + this window without having its data purged + it will result in dark data. This setting + should be consistent across all object + services. +nice_priority None Scheduling priority of server processes. + Niceness values range from -20 (most + favorable to the process) to 19 (least + favorable to the process). The default + does not modify priority. +ionice_class None I/O scheduling class of server processes. + I/O niceness class values are IOPRIO_CLASS_RT + (realtime), IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify class and + priority. Linux supports io scheduling + priorities and classes since 2.6.13 with + the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority is + a number which goes from 0 to 7. + The higher the value, the lower the I/O + priority of the process. Work only with + ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +================================ ========== ============================================ + +.. _object-server-options: + +*************** +[object-server] +*************** + +================================== ====================== =============================================== +Option Default Description +---------------------------------- ---------------------- ----------------------------------------------- +use paste.deploy entry point for the + object server. For most cases, + this should be + ``egg:swift#object``. +set log_name object-server Label used when logging +set log_facility LOG_LOCAL0 Syslog log facility +set log_level INFO Logging level +set log_requests True Whether or not to log each + request +set log_address /dev/log Logging directory +user swift User to run as +max_upload_time 86400 Maximum time allowed to upload an + object +slow 0 If > 0, Minimum time in seconds for a PUT or + DELETE request to complete. This is only + useful to simulate slow devices during testing + and development. +mb_per_sync 512 On PUT requests, sync file every + n MB +keep_cache_size 5242880 Largest object size to keep in + buffer cache +keep_cache_private false Allow non-public objects to stay + in kernel's buffer cache +allowed_headers Content-Disposition, Comma separated list of headers + Content-Encoding, that can be set in metadata on an object. + X-Delete-At, This list is in addition to + X-Object-Manifest, X-Object-Meta-* headers and cannot include + X-Static-Large-Object Content-Type, etag, Content-Length, or deleted + Cache-Control, + Content-Language, + Expires, + X-Robots-Tag +replication_server Configure parameter for creating + specific server. To handle all verbs, + including replication verbs, do not + specify "replication_server" + (this is the default). To only + handle replication, set to a True + value (e.g. "True" or "1"). + To handle only non-replication + verbs, set to "False". Unless you + have a separate replication network, you + should not specify any value for + "replication_server". +replication_concurrency 4 Set to restrict the number of + concurrent incoming SSYNC + requests; set to 0 for unlimited +replication_concurrency_per_device 1 Set to restrict the number of + concurrent incoming SSYNC + requests per device; set to 0 for + unlimited requests per devices. + This can help control I/O to each + device. This does not override + replication_concurrency described + above, so you may need to adjust + both parameters depending on your + hardware or network capacity. +replication_lock_timeout 15 Number of seconds to wait for an + existing replication device lock + before giving up. +replication_failure_threshold 100 The number of subrequest failures + before the + replication_failure_ratio is + checked +replication_failure_ratio 1.0 If the value of failures / + successes of SSYNC + subrequests exceeds this ratio, + the overall SSYNC request + will be aborted +splice no Use splice() for zero-copy object + GETs. This requires Linux kernel + version 3.0 or greater. If you set + "splice = yes" but the kernel + does not support it, error messages + will appear in the object server + logs at startup, but your object + servers should continue to function. +nice_priority None Scheduling priority of server processes. + Niceness values range from -20 (most + favorable to the process) to 19 (least + favorable to the process). The default + does not modify priority. +ionice_class None I/O scheduling class of server processes. + I/O niceness class values are IOPRIO_CLASS_RT + (realtime), IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify class and + priority. Linux supports io scheduling + priorities and classes since 2.6.13 with + the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority is + a number which goes from 0 to 7. + The higher the value, the lower the I/O + priority of the process. Work only with + ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +eventlet_tpool_num_threads auto The number of threads in eventlet's thread pool. + Most IO will occur in the object server's main + thread, but certain "heavy" IO operations will + occur in separate IO threads, managed by + eventlet. + The default value is auto, whose actual value + is dependent on the servers_per_port value. + If servers_per_port is zero then it uses + eventlet's default (currently 20 threads). + If the servers_per_port is nonzero then it'll + only use 1 thread per process. + This value can be overridden with an integer + value. +================================== ====================== =============================================== + +******************* +[object-replicator] +******************* + +=========================== ======================== ================================ +Option Default Description +--------------------------- ------------------------ -------------------------------- +log_name object-replicator Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_address /dev/log Logging directory +daemonize yes Whether or not to run replication + as a daemon +interval 30 Time in seconds to wait between + replication passes +concurrency 1 Number of replication jobs to + run per worker process +replicator_workers 0 Number of worker processes to use. + No matter how big this number is, + at most one worker per disk will + be used. The default value of 0 + means no forking; all work is done + in the main process. +sync_method rsync The sync method to use; default + is rsync but you can use ssync to + try the EXPERIMENTAL + all-swift-code-no-rsync-callouts + method. Once ssync is verified as + or better than, rsync, we plan to + deprecate rsync so we can move on + with more features for + replication. +rsync_timeout 900 Max duration of a partition rsync +rsync_bwlimit 0 Bandwidth limit for rsync in kB/s. + 0 means unlimited. +rsync_io_timeout 30 Timeout value sent to rsync + --timeout and --contimeout + options +rsync_compress no Allow rsync to compress data + which is transmitted to destination + node during sync. However, this + is applicable only when destination + node is in a different region + than the local one. + NOTE: Objects that are already + compressed (for example: .tar.gz, + .mp3) might slow down the syncing + process. +stats_interval 300 Interval in seconds between + logging replication statistics +handoffs_first false If set to True, partitions that + are not supposed to be on the + node will be replicated first. + The default setting should not be + changed, except for extreme + situations. +handoff_delete auto By default handoff partitions + will be removed when it has + successfully replicated to all + the canonical nodes. If set to an + integer n, it will remove the + partition if it is successfully + replicated to n nodes. The + default setting should not be + changed, except for extreme + situations. +node_timeout DEFAULT or 10 Request timeout to external + services. This uses what's set + here, or what's set in the + DEFAULT section, or 10 (though + other sections use 3 as the final + default). +http_timeout 60 Max duration of an http request. + This is for REPLICATE finalization + calls and so should be longer + than node_timeout. +lockup_timeout 1800 Attempts to kill all workers if + nothing replicates for + lockup_timeout seconds +rsync_module {replication_ip}::object Format of the rsync module where + the replicator will send data. + The configuration value can + include some variables that will + be extracted from the ring. + Variables must follow the format + {NAME} where NAME is one of: ip, + port, replication_ip, + replication_port, region, zone, + device, meta. See + etc/rsyncd.conf-sample for some + examples. +rsync_error_log_line_length 0 Limits how long rsync error log + lines are +ring_check_interval 15 Interval for checking new ring + file +recon_cache_path /var/cache/swift Path to recon cache +nice_priority None Scheduling priority of server + processes. Niceness values + range from -20 (most favorable + to the process) to 19 (least + favorable to the process). + The default does not modify + priority. +ionice_class None I/O scheduling class of server + processes. I/O niceness class + values are IOPRIO_CLASS_RT (realtime), + IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify + class and priority. + Linux supports io scheduling + priorities and classes since + 2.6.13 with the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority + is a number which goes from + 0 to 7. The higher the value, + the lower the I/O priority of + the process. + Work only with ionice_class. + Ignored if IOPRIO_CLASS_IDLE + is set. +=========================== ======================== ================================ + +********************** +[object-reconstructor] +********************** + +=========================== ======================== ================================ +Option Default Description +--------------------------- ------------------------ -------------------------------- +log_name object-reconstructor Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_address /dev/log Logging directory +daemonize yes Whether or not to run + reconstruction as a daemon +interval 30 Time in seconds to wait between + reconstruction passes +reconstructor_workers 0 Maximum number of worker processes + to spawn. Each worker will handle + a subset of devices. Devices will + be assigned evenly among the workers + so that workers cycle at similar + intervals (which can lead to fewer + workers than requested). You can not + have more workers than devices. If + you have no devices only a single + worker is spawned. +concurrency 1 Number of reconstruction threads to + spawn per reconstructor process. +stats_interval 300 Interval in seconds between + logging reconstruction statistics +handoffs_only false The handoffs_only mode option is for + special case emergency situations + during rebalance such as disk full in + the cluster. This option SHOULD NOT + BE CHANGED, except for extreme + situations. When handoffs_only mode + is enabled the reconstructor will + *only* revert fragments from handoff + nodes to primary nodes and will not + sync primary nodes with neighboring + primary nodes. This will force the + reconstructor to sync and delete + handoffs' fragments more quickly and + minimize the time of the rebalance by + limiting the number of rebuilds. The + handoffs_only option is only for + temporary use and should be disabled + as soon as the emergency situation + has been resolved. +node_timeout DEFAULT or 10 Request timeout to external + services. The value used is the value + set in this section, or the value set + in the DEFAULT section, or 10. +http_timeout 60 Max duration of an http request. + This is for REPLICATE finalization + calls and so should be longer + than node_timeout. +lockup_timeout 1800 Attempts to kill all threads if + no fragment has been reconstructed + for lockup_timeout seconds. +ring_check_interval 15 Interval for checking new ring + file +recon_cache_path /var/cache/swift Path to recon cache +nice_priority None Scheduling priority of server + processes. Niceness values + range from -20 (most favorable + to the process) to 19 (least + favorable to the process). + The default does not modify + priority. +ionice_class None I/O scheduling class of server + processes. I/O niceness class + values are IOPRIO_CLASS_RT (realtime), + IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify + class and priority. + Linux supports io scheduling + priorities and classes since + 2.6.13 with the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority + is a number which goes from + 0 to 7. The higher the value, + the lower the I/O priority of + the process. + Work only with ionice_class. + Ignored if IOPRIO_CLASS_IDLE + is set. +=========================== ======================== ================================ + +**************** +[object-updater] +**************** + +=================== =================== ========================================== +Option Default Description +------------------- ------------------- ------------------------------------------ +log_name object-updater Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_address /dev/log Logging directory +interval 300 Minimum time for a pass to take +updater_workers 1 Number of worker processes +concurrency 8 Number of updates to run concurrently in + each worker process +node_timeout DEFAULT or 10 Request timeout to external services. This + uses what's set here, or what's set in the + DEFAULT section, or 10 (though other + sections use 3 as the final default). +objects_per_second 50 Maximum objects updated per second. + Should be tuned according to individual + system specs. 0 is unlimited. +slowdown 0.01 Time in seconds to wait between objects. + Deprecated in favor of objects_per_second. +report_interval 300 Interval in seconds between logging + statistics about the current update pass. +recon_cache_path /var/cache/swift Path to recon cache +nice_priority None Scheduling priority of server processes. + Niceness values range from -20 (most + favorable to the process) to 19 (least + favorable to the process). The default + does not modify priority. +ionice_class None I/O scheduling class of server processes. + I/O niceness class values are IOPRIO_CLASS_RT + (realtime), IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify class and + priority. Linux supports io scheduling + priorities and classes since 2.6.13 with + the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority is + a number which goes from 0 to 7. + The higher the value, the lower the I/O + priority of the process. Work only with + ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +=================== =================== ========================================== + +**************** +[object-auditor] +**************** + +=========================== =================== ========================================== +Option Default Description +--------------------------- ------------------- ------------------------------------------ +log_name object-auditor Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_address /dev/log Logging directory +log_time 3600 Frequency of status logs in seconds. +interval 30 Time in seconds to wait between + auditor passes +disk_chunk_size 65536 Size of chunks read during auditing +files_per_second 20 Maximum files audited per second per + auditor process. Should be tuned according + to individual system specs. 0 is unlimited. +bytes_per_second 10000000 Maximum bytes audited per second per + auditor process. Should be tuned according + to individual system specs. 0 is unlimited. +concurrency 1 The number of parallel processes to use + for checksum auditing. +zero_byte_files_per_second 50 +object_size_stats +recon_cache_path /var/cache/swift Path to recon cache +rsync_tempfile_timeout auto Time elapsed in seconds before rsync + tempfiles will be unlinked. Config value + of "auto" try to use object-replicator's + rsync_timeout + 900 or fallback to 86400 + (1 day). +nice_priority None Scheduling priority of server processes. + Niceness values range from -20 (most + favorable to the process) to 19 (least + favorable to the process). The default + does not modify priority. +ionice_class None I/O scheduling class of server processes. + I/O niceness class values are IOPRIO_CLASS_RT + (realtime), IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify class and + priority. Linux supports io scheduling + priorities and classes since 2.6.13 with + the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority is + a number which goes from 0 to 7. + The higher the value, the lower the I/O + priority of the process. Work only with + ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +=========================== =================== ========================================== + +**************** +[object-expirer] +**************** + +============================= =============================== ========================================== +Option Default Description +----------------------------- ------------------------------- ------------------------------------------ +log_name object-expirer Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_address /dev/log Logging directory +interval 300 Time in seconds to wait between + expirer passes +report_interval 300 Frequency of status logs in seconds. +concurrency 1 Level of concurrency to use to do the work, + this value must be set to at least 1 +expiring_objects_account_name expiring_objects name for legacy expirer task queue +dequeue_from_legacy False This service will look for jobs on the legacy expirer task queue. +processes 0 How many parts to divide the legacy work into, + one part per process that will be doing the work. + When set 0 means that a single legacy + process will be doing all the work. + This can only be used in conjunction with + ``dequeue_from_legacy``. +process 0 Which of the parts a particular legacy process will + work on. It is "zero based", if you want to use 3 + processes, you should run processes with process + set to 0, 1, and 2. + This can only be used in conjunction with + ``dequeue_from_legacy``. +reclaim_age 604800 How long an un-processable expired object + marker will be retried before it is abandoned. + It is not coupled with the tombstone reclaim age + in the consistency engine. +request_tries 3 The number of times the expirer's internal client + will attempt any given request in the event + of failure +recon_cache_path /var/cache/swift Path to recon cache +nice_priority None Scheduling priority of server processes. + Niceness values range from -20 (most + favorable to the process) to 19 (least + favorable to the process). The default + does not modify priority. +ionice_class None I/O scheduling class of server processes. + I/O niceness class values are IOPRIO_CLASS_RT + (realtime), IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify class and + priority. Linux supports io scheduling + priorities and classes since 2.6.13 with + the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority is + a number which goes from 0 to 7. + The higher the value, the lower the I/O + priority of the process. Work only with + ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +============================= =============================== ========================================== diff --git a/doc/source/config/proxy_server_config.rst b/doc/source/config/proxy_server_config.rst new file mode 100644 index 0000000000..53e96d3ada --- /dev/null +++ b/doc/source/config/proxy_server_config.rst @@ -0,0 +1,358 @@ +.. _proxy-server-config: + +-------------------------- +Proxy Server Configuration +-------------------------- + +This document describes the configuration options available for the proxy +server. Some proxy server options may be configured on a :ref:`per-policy +` basis. Additional documentation for +proxy-server middleware can be found at :doc:`../middleware` and +:doc:`../overview_auth`. + +Documentation for other swift configuration options can be found at +:doc:`index`. + +An example Proxy Server configuration can be found at +etc/proxy-server.conf-sample in the source code repository. + +The following configuration sections are available: + +* :ref:`[DEFAULT] ` +* `[proxy-server]`_ + + +.. _proxy_server_default_options: + +********* +[DEFAULT] +********* + +==================================== ======================== ======================================== +Option Default Description +------------------------------------ ------------------------ ---------------------------------------- +bind_ip 0.0.0.0 IP Address for server to + bind to +bind_port 80 Port for server to bind to +keep_idle 600 Value to set for socket TCP_KEEPIDLE +bind_timeout 30 Seconds to attempt bind before + giving up +backlog 4096 Maximum number of allowed pending + connections +swift_dir /etc/swift Swift configuration directory +workers auto Override the number of + pre-forked workers that will + accept connections. If set it + should be an integer, zero + means no fork. If unset, it + will try to default to the + number of effective cpu cores + and fallback to one. See + :ref:`general-service-tuning`. +max_clients 1024 Maximum number of clients one + 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. +user swift User to run as +cert_file Path to the ssl .crt. This + should be enabled for testing + purposes only. +key_file Path to the ssl .key. This + should be enabled for testing + purposes only. +cors_allow_origin List of origin hosts that are allowed + for CORS requests in addition to what + the container has set. +strict_cors_mode True If True (default) then CORS + requests are only allowed if their + Origin header matches an allowed + origin. Otherwise, any Origin is + allowed. +cors_expose_headers This is a list of headers that + are included in the header + Access-Control-Expose-Headers + in addition to what the container + has set. +client_timeout 60 +trans_id_suffix This optional suffix (default is empty) + that would be appended to the swift + transaction id allows one to easily + figure out from which cluster that + X-Trans-Id belongs to. This is very + useful when one is managing more than + one swift cluster. +log_name swift Label used when logging +log_facility LOG_LOCAL0 Syslog log facility +log_level INFO Logging level +log_headers False +log_address /dev/log Logging directory +log_max_line_length 0 Caps the length of log + lines to the value given; + no limit if set to 0, the + default. +log_custom_handlers None Comma separated list of functions + to call to setup custom log + handlers. +log_udp_host Override log_address +log_udp_port 514 UDP log port +log_statsd_host None Enables StatsD logging; IPv4/IPv6 + address or a hostname. If a + hostname resolves to an IPv4 and IPv6 + address, the IPv4 address will be + used. +log_statsd_port 8125 +log_statsd_default_sample_rate 1.0 +log_statsd_sample_rate_factor 1.0 +log_statsd_metric_prefix +eventlet_debug false If true, turn on debug logging + for eventlet + +expose_info true Enables exposing configuration + settings via HTTP GET /info. +admin_key Key to use for admin calls that + are HMAC signed. Default + is empty, which will + disable admin calls to + /info. +disallowed_sections swift.valid_api_versions Allows the ability to withhold + sections from showing up in the + public calls to /info. You can + withhold subsections by separating + the dict level with a ".". +expiring_objects_container_divisor 86400 +expiring_objects_account_name expiring_objects +nice_priority None Scheduling priority of server + processes. + Niceness values range from -20 (most + favorable to the process) to 19 (least + favorable to the process). The default + does not modify priority. +ionice_class None I/O scheduling class of server + processes. I/O niceness class values + are IOPRIO_CLASS_RT (realtime), + IOPRIO_CLASS_BE (best-effort) and + IOPRIO_CLASS_IDLE (idle). + The default does not + modify class and priority. Linux + supports io scheduling priorities + and classes since 2.6.13 with + the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority is + a number which goes from 0 to 7. + The higher the value, the lower + the I/O priority of the process. + Work only with ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +==================================== ======================== ======================================== + +************** +[proxy-server] +************** + +====================================== =============== ===================================== +Option Default Description +-------------------------------------- --------------- ------------------------------------- +use Entry point for paste.deploy for + the proxy server. For most + cases, this should be + ``egg:swift#proxy``. +set log_name proxy-server Label used when logging +set log_facility LOG_LOCAL0 Syslog log facility +set log_level INFO Log level +set log_headers True If True, log headers in each + request +set log_handoffs True If True, the proxy will log + whenever it has to failover to a + handoff node +recheck_account_existence 60 Cache timeout in seconds to + send memcached for account + existence +recheck_container_existence 60 Cache timeout in seconds to + send memcached for container + existence +object_chunk_size 65536 Chunk size to read from + object servers +client_chunk_size 65536 Chunk size to read from + clients +memcache_servers 127.0.0.1:11211 Comma separated list of + memcached servers + ip:port or [ipv6addr]:port +memcache_max_connections 2 Max number of connections to + each memcached server per + worker +node_timeout 10 Request timeout to external + services +recoverable_node_timeout node_timeout Request timeout to external + services for requests that, on + failure, can be recovered + from. For example, object GET. +client_timeout 60 Timeout to read one chunk + from a client +conn_timeout 0.5 Connection timeout to + external services +error_suppression_interval 60 Time in seconds that must + elapse since the last error + for a node to be considered + no longer error limited +error_suppression_limit 10 Error count to consider a + node error limited +allow_account_management false Whether account PUTs and DELETEs + are even callable +account_autocreate false If set to 'true' authorized + accounts that do not yet exist + within the Swift cluster will + be automatically created. +max_containers_per_account 0 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. +max_containers_whitelist This is a comma separated list + of account names that ignore + the max_containers_per_account + cap. +rate_limit_after_segment 10 Rate limit the download of + large object segments after + this segment is downloaded. +rate_limit_segments_per_sec 1 Rate limit large object + downloads at this rate. +request_node_count 2 * replicas Set to the number of nodes to + 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. +swift_owner_headers up to the auth system in use, + but usually indicates + administrative responsibilities. +sorting_method shuffle Storage nodes can be chosen at + random (shuffle), by using timing + measurements (timing), or by using + an explicit match (affinity). + Using timing measurements may allow + for lower overall latency, while + using affinity allows for finer + control. In both the timing and + affinity cases, equally-sorting nodes + are still randomly chosen to spread + load. This option may be overridden + in a per-policy configuration + section. +timing_expiry 300 If the "timing" sorting_method is + used, the timings will only be valid + for the number of seconds configured + by timing_expiry. +concurrent_gets off Use replica count number of + threads concurrently during a + GET/HEAD and return with the + first successful response. In + the EC case, this parameter only + affects an EC HEAD as an EC GET + behaves differently. +concurrency_timeout conn_timeout This parameter controls how long + to wait before firing off the + next concurrent_get thread. A + value of 0 would we fully concurrent, + any other number will stagger the + firing of the threads. This number + should be between 0 and node_timeout. + The default is conn_timeout (0.5). +nice_priority None Scheduling priority of server + processes. + Niceness values range from -20 (most + favorable to the process) to 19 (least + favorable to the process). The default + does not modify priority. +ionice_class None I/O scheduling class of server + processes. I/O niceness class values + are IOPRIO_CLASS_RT (realtime), + IOPRIO_CLASS_BE (best-effort), + and IOPRIO_CLASS_IDLE (idle). + The default does not modify class and + priority. Linux supports io scheduling + priorities and classes since 2.6.13 + with the CFQ io scheduler. + Work only with ionice_priority. +ionice_priority None I/O scheduling priority of server + processes. I/O niceness priority is + a number which goes from 0 to 7. + The higher the value, the lower the + I/O priority of the process. Work + only with ionice_class. + Ignored if IOPRIO_CLASS_IDLE is set. +read_affinity None Specifies which backend servers to + prefer on reads; used in conjunction + with the sorting_method option being + set to 'affinity'. Format is a comma + separated list of affinity descriptors + of the form =. + The may be r for + selecting nodes in region N or + rz for selecting nodes in + region N, zone M. The + value should be a whole number + that represents the priority to + be given to the selection; lower + numbers are higher priority. + Default is empty, meaning no + preference. This option may be + overridden in a per-policy + configuration section. +write_affinity None Specifies which backend servers to + prefer on writes. Format is a comma + separated list of affinity + descriptors of the form r for + region N or rz for region N, + zone M. Default is empty, meaning no + preference. This option may be + overridden in a per-policy + configuration section. +write_affinity_node_count 2 * replicas The number of local (as governed by + the write_affinity setting) nodes to + attempt to contact first on writes, + before any non-local ones. The value + should be an integer number, or 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. This option may be + overridden in a per-policy + configuration section. +write_affinity_handoff_delete_count auto The number of local (as governed by + the write_affinity setting) handoff + nodes to attempt to contact on + deletion, in addition to primary + nodes. Example: in geographically + distributed deployment, If replicas=3, + sometimes there may be 1 primary node + and 2 local handoff nodes in one region + holding the object after uploading but + before object replicated to the + appropriate locations in other regions. + In this case, include these handoff + nodes to send request when deleting + object could help make correct decision + for the response. The default value 'auto' + means Swift will calculate the number + automatically, the default value is + (replicas - len(local_primary_nodes)). + This option may be overridden in a + per-policy configuration section. +====================================== =============== ===================================== diff --git a/doc/source/config/swift_common_config.rst b/doc/source/config/swift_common_config.rst new file mode 100644 index 0000000000..0d842f76e1 --- /dev/null +++ b/doc/source/config/swift_common_config.rst @@ -0,0 +1,37 @@ +.. _swift-common-config: + +-------------------- +Common configuration +-------------------- + +This document describes the configuration options common to all swift servers. +Documentation for other swift configuration options can be found at +:doc:`index`. + +An example of common configuration file can be found at etc/swift.conf-sample + +The following configuration options are available: + +========================== ========== ============================================= +Option Default Description +-------------------------- ---------- --------------------------------------------- +max_header_size 8192 max_header_size is the max number of bytes in + the utf8 encoding of each header. Using 8192 + as default because eventlet use 8192 as max + size of header line. This value may need to + be increased when using identity v3 API + tokens including more than 7 catalog entries. + See also include_service_catalog in + proxy-server.conf-sample (documented in + overview_auth.rst). +extra_header_count 0 By default the maximum number of allowed + headers depends on the number of max + allowed metadata settings plus a default + value of 32 for regular http headers. + If for some reason this is not enough (custom + middleware for example) it can be increased + with the extra_header_count constraint. +auto_create_account_prefix . Prefix used when automatically creating + accounts. +========================== ========== ============================================= + diff --git a/doc/source/deployment_guide.rst b/doc/source/deployment_guide.rst index a58301f46c..22199ff13a 100644 --- a/doc/source/deployment_guide.rst +++ b/doc/source/deployment_guide.rst @@ -2,6 +2,10 @@ Deployment Guide ================ +This document provides general guidance for deploying and configuring Swift. +Detailed descriptions of configuration options can be found in the +:doc:`configuration documentation `. + ----------------------- Hardware Considerations ----------------------- @@ -300,7 +304,8 @@ General Server Configuration ---------------------------- Swift uses paste.deploy (http://pythonpaste.org/deploy/) to manage server -configurations. +configurations. Detailed descriptions of configuration options can be found in +the :doc:`configuration documentation `. Default configuration options are set in the ``[DEFAULT]`` section, and any options specified there can be overridden in any of the other sections BUT @@ -375,1754 +380,6 @@ The main rule to remember when working with Swift configuration files is: using the ``set`` syntax or you'll probably mess up your non-paste.deploy configuration files. --------------------- -Common configuration --------------------- - -An example of common configuration file can be found at etc/swift.conf-sample - -The following configuration options are available: - -========================== ========== ============================================= -Option Default Description --------------------------- ---------- --------------------------------------------- -max_header_size 8192 max_header_size is the max number of bytes in - the utf8 encoding of each header. Using 8192 - as default because eventlet use 8192 as max - size of header line. This value may need to - be increased when using identity v3 API - tokens including more than 7 catalog entries. - See also include_service_catalog in - proxy-server.conf-sample (documented in - overview_auth.rst). -extra_header_count 0 By default the maximum number of allowed - headers depends on the number of max - allowed metadata settings plus a default - value of 32 for regular http headers. - If for some reason this is not enough (custom - middleware for example) it can be increased - with the extra_header_count constraint. -auto_create_account_prefix . Prefix used when automatically creating - accounts. -========================== ========== ============================================= - ---------------------------- -Object Server Configuration ---------------------------- - -An Example Object Server configuration can be found at -etc/object-server.conf-sample in the source code repository. - -The following configuration sections are available: - -* :ref:`[DEFAULT] ` -* `[object-server]`_ -* `[object-replicator]`_ -* `[object-reconstructor]`_ -* `[object-updater]`_ -* `[object-auditor]`_ -* `[object-expirer]`_ - -.. _object-server-default-options: - -********* -[DEFAULT] -********* - -================================ ========== ============================================ -Option Default Description --------------------------------- ---------- -------------------------------------------- -swift_dir /etc/swift Swift configuration directory -devices /srv/node Parent directory of where devices are - mounted -mount_check true Whether or not check if the devices are - mounted to prevent accidentally writing - to the root device -bind_ip 0.0.0.0 IP Address for server to bind to -bind_port 6200 Port for server to bind to -keep_idle 600 Value to set for socket TCP_KEEPIDLE -bind_timeout 30 Seconds to attempt bind before giving up -backlog 4096 Maximum number of allowed pending - connections -workers auto Override the number of pre-forked workers - that will accept connections. If set it - should be an integer, zero means no fork. - If unset, it will try to default to the - number of effective cpu cores and fallback - to one. Increasing the number of workers - helps slow filesystem operations in one - request from negatively impacting other - requests, but only the - :ref:`servers_per_port - ` option - provides complete I/O isolation with no - measurable overhead. -servers_per_port 0 If each disk in each storage policy ring - has unique port numbers for its "ip" - value, you can use this setting to have - each object-server worker only service - requests for the single disk matching the - port in the ring. The value of this - setting determines how many worker - processes run for each port (disk) in the - ring. If you have 24 disks per server, and - this setting is 4, then each storage node - will have 1 + (24 * 4) = 97 total - object-server processes running. This - gives complete I/O isolation, drastically - reducing the impact of slow disks on - storage node performance. The - object-replicator and object-reconstructor - need to see this setting too, so it must - be in the [DEFAULT] section. - See :ref:`server-per-port-configuration`. -max_clients 1024 Maximum number of clients one 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. -disable_fallocate false Disable "fast fail" fallocate checks if - the underlying filesystem does not support - it. -log_name swift Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_address /dev/log Logging directory -log_max_line_length 0 Caps the length of log lines to the - value given; no limit if set to 0, the - default. -log_custom_handlers None Comma-separated list of functions to call - to setup custom log handlers. -log_udp_host Override log_address -log_udp_port 514 UDP log port -log_statsd_host None Enables StatsD logging; IPv4/IPv6 - address or a hostname. If a - hostname resolves to an IPv4 and IPv6 - address, the IPv4 address will be - used. -log_statsd_port 8125 -log_statsd_default_sample_rate 1.0 -log_statsd_sample_rate_factor 1.0 -log_statsd_metric_prefix -eventlet_debug false If true, turn on debug logging for - eventlet -fallocate_reserve 1% You can set fallocate_reserve to the - number of bytes or percentage of disk - space you'd like fallocate to reserve, - whether there is space for the given - file size or not. Percentage will be used - if the value ends with a '%'. 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. -conn_timeout 0.5 Time to wait while attempting to connect - to another backend node. -node_timeout 3 Time to wait while sending each chunk of - data to another backend node. -client_timeout 60 Time to wait while receiving each chunk of - data from a client or another backend node -network_chunk_size 65536 Size of chunks to read/write over the - network -disk_chunk_size 65536 Size of chunks to read/write to disk -container_update_timeout 1 Time to wait while sending a container - update on object update. -reclaim_age 604800 Time elapsed in seconds before the tombstone - file representing a deleted object can be - reclaimed. This is the maximum window for - your consistency engine. If a node that was - disconnected from the cluster because of a - fault is reintroduced into the cluster after - this window without having its data purged - it will result in dark data. This setting - should be consistent across all object - services. -nice_priority None Scheduling priority of server processes. - Niceness values range from -20 (most - favorable to the process) to 19 (least - favorable to the process). The default - does not modify priority. -ionice_class None I/O scheduling class of server processes. - I/O niceness class values are IOPRIO_CLASS_RT - (realtime), IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify class and - priority. Linux supports io scheduling - priorities and classes since 2.6.13 with - the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority is - a number which goes from 0 to 7. - The higher the value, the lower the I/O - priority of the process. Work only with - ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -================================ ========== ============================================ - -.. _object-server-options: - -*************** -[object-server] -*************** - -================================== ====================== =============================================== -Option Default Description ----------------------------------- ---------------------- ----------------------------------------------- -use paste.deploy entry point for the - object server. For most cases, - this should be - ``egg:swift#object``. -set log_name object-server Label used when logging -set log_facility LOG_LOCAL0 Syslog log facility -set log_level INFO Logging level -set log_requests True Whether or not to log each - request -set log_address /dev/log Logging directory -user swift User to run as -max_upload_time 86400 Maximum time allowed to upload an - object -slow 0 If > 0, Minimum time in seconds for a PUT or - DELETE request to complete. This is only - useful to simulate slow devices during testing - and development. -mb_per_sync 512 On PUT requests, sync file every - n MB -keep_cache_size 5242880 Largest object size to keep in - buffer cache -keep_cache_private false Allow non-public objects to stay - in kernel's buffer cache -allowed_headers Content-Disposition, Comma separated list of headers - Content-Encoding, that can be set in metadata on an object. - X-Delete-At, This list is in addition to - X-Object-Manifest, X-Object-Meta-* headers and cannot include - X-Static-Large-Object Content-Type, etag, Content-Length, or deleted - Cache-Control, - Content-Language, - Expires, - X-Robots-Tag -replication_server Configure parameter for creating - specific server. To handle all verbs, - including replication verbs, do not - specify "replication_server" - (this is the default). To only - handle replication, set to a True - value (e.g. "True" or "1"). - To handle only non-replication - verbs, set to "False". Unless you - have a separate replication network, you - should not specify any value for - "replication_server". -replication_concurrency 4 Set to restrict the number of - concurrent incoming SSYNC - requests; set to 0 for unlimited -replication_concurrency_per_device 1 Set to restrict the number of - concurrent incoming SSYNC - requests per device; set to 0 for - unlimited requests per devices. - This can help control I/O to each - device. This does not override - replication_concurrency described - above, so you may need to adjust - both parameters depending on your - hardware or network capacity. -replication_lock_timeout 15 Number of seconds to wait for an - existing replication device lock - before giving up. -replication_failure_threshold 100 The number of subrequest failures - before the - replication_failure_ratio is - checked -replication_failure_ratio 1.0 If the value of failures / - successes of SSYNC - subrequests exceeds this ratio, - the overall SSYNC request - will be aborted -splice no Use splice() for zero-copy object - GETs. This requires Linux kernel - version 3.0 or greater. If you set - "splice = yes" but the kernel - does not support it, error messages - will appear in the object server - logs at startup, but your object - servers should continue to function. -nice_priority None Scheduling priority of server processes. - Niceness values range from -20 (most - favorable to the process) to 19 (least - favorable to the process). The default - does not modify priority. -ionice_class None I/O scheduling class of server processes. - I/O niceness class values are IOPRIO_CLASS_RT - (realtime), IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify class and - priority. Linux supports io scheduling - priorities and classes since 2.6.13 with - the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority is - a number which goes from 0 to 7. - The higher the value, the lower the I/O - priority of the process. Work only with - ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -eventlet_tpool_num_threads auto The number of threads in eventlet's thread pool. - Most IO will occur in the object server's main - thread, but certain "heavy" IO operations will - occur in separate IO threads, managed by - eventlet. - The default value is auto, whose actual value - is dependent on the servers_per_port value. - If servers_per_port is zero then it uses - eventlet's default (currently 20 threads). - If the servers_per_port is nonzero then it'll - only use 1 thread per process. - This value can be overridden with an integer - value. -================================== ====================== =============================================== - -******************* -[object-replicator] -******************* - -=========================== ======================== ================================ -Option Default Description ---------------------------- ------------------------ -------------------------------- -log_name object-replicator Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_address /dev/log Logging directory -daemonize yes Whether or not to run replication - as a daemon -interval 30 Time in seconds to wait between - replication passes -concurrency 1 Number of replication jobs to - run per worker process -replicator_workers 0 Number of worker processes to use. - No matter how big this number is, - at most one worker per disk will - be used. The default value of 0 - means no forking; all work is done - in the main process. -sync_method rsync The sync method to use; default - is rsync but you can use ssync to - try the EXPERIMENTAL - all-swift-code-no-rsync-callouts - method. Once ssync is verified as - or better than, rsync, we plan to - deprecate rsync so we can move on - with more features for - replication. -rsync_timeout 900 Max duration of a partition rsync -rsync_bwlimit 0 Bandwidth limit for rsync in kB/s. - 0 means unlimited. -rsync_io_timeout 30 Timeout value sent to rsync - --timeout and --contimeout - options -rsync_compress no Allow rsync to compress data - which is transmitted to destination - node during sync. However, this - is applicable only when destination - node is in a different region - than the local one. - NOTE: Objects that are already - compressed (for example: .tar.gz, - .mp3) might slow down the syncing - process. -stats_interval 300 Interval in seconds between - logging replication statistics -handoffs_first false If set to True, partitions that - are not supposed to be on the - node will be replicated first. - The default setting should not be - changed, except for extreme - situations. -handoff_delete auto By default handoff partitions - will be removed when it has - successfully replicated to all - the canonical nodes. If set to an - integer n, it will remove the - partition if it is successfully - replicated to n nodes. The - default setting should not be - changed, except for extreme - situations. -node_timeout DEFAULT or 10 Request timeout to external - services. This uses what's set - here, or what's set in the - DEFAULT section, or 10 (though - other sections use 3 as the final - default). -http_timeout 60 Max duration of an http request. - This is for REPLICATE finalization - calls and so should be longer - than node_timeout. -lockup_timeout 1800 Attempts to kill all workers if - nothing replicates for - lockup_timeout seconds -rsync_module {replication_ip}::object Format of the rsync module where - the replicator will send data. - The configuration value can - include some variables that will - be extracted from the ring. - Variables must follow the format - {NAME} where NAME is one of: ip, - port, replication_ip, - replication_port, region, zone, - device, meta. See - etc/rsyncd.conf-sample for some - examples. -rsync_error_log_line_length 0 Limits how long rsync error log - lines are -ring_check_interval 15 Interval for checking new ring - file -recon_cache_path /var/cache/swift Path to recon cache -nice_priority None Scheduling priority of server - processes. Niceness values - range from -20 (most favorable - to the process) to 19 (least - favorable to the process). - The default does not modify - priority. -ionice_class None I/O scheduling class of server - processes. I/O niceness class - values are IOPRIO_CLASS_RT (realtime), - IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify - class and priority. - Linux supports io scheduling - priorities and classes since - 2.6.13 with the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority - is a number which goes from - 0 to 7. The higher the value, - the lower the I/O priority of - the process. - Work only with ionice_class. - Ignored if IOPRIO_CLASS_IDLE - is set. -=========================== ======================== ================================ - -********************** -[object-reconstructor] -********************** - -=========================== ======================== ================================ -Option Default Description ---------------------------- ------------------------ -------------------------------- -log_name object-reconstructor Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_address /dev/log Logging directory -daemonize yes Whether or not to run - reconstruction as a daemon -interval 30 Time in seconds to wait between - reconstruction passes -reconstructor_workers 0 Maximum number of worker processes - to spawn. Each worker will handle - a subset of devices. Devices will - be assigned evenly among the workers - so that workers cycle at similar - intervals (which can lead to fewer - workers than requested). You can not - have more workers than devices. If - you have no devices only a single - worker is spawned. -concurrency 1 Number of reconstruction threads to - spawn per reconstructor process. -stats_interval 300 Interval in seconds between - logging reconstruction statistics -handoffs_only false The handoffs_only mode option is for - special case emergency situations - during rebalance such as disk full in - the cluster. This option SHOULD NOT - BE CHANGED, except for extreme - situations. When handoffs_only mode - is enabled the reconstructor will - *only* revert fragments from handoff - nodes to primary nodes and will not - sync primary nodes with neighboring - primary nodes. This will force the - reconstructor to sync and delete - handoffs' fragments more quickly and - minimize the time of the rebalance by - limiting the number of rebuilds. The - handoffs_only option is only for - temporary use and should be disabled - as soon as the emergency situation - has been resolved. -node_timeout DEFAULT or 10 Request timeout to external - services. The value used is the value - set in this section, or the value set - in the DEFAULT section, or 10. -http_timeout 60 Max duration of an http request. - This is for REPLICATE finalization - calls and so should be longer - than node_timeout. -lockup_timeout 1800 Attempts to kill all threads if - no fragment has been reconstructed - for lockup_timeout seconds. -ring_check_interval 15 Interval for checking new ring - file -recon_cache_path /var/cache/swift Path to recon cache -nice_priority None Scheduling priority of server - processes. Niceness values - range from -20 (most favorable - to the process) to 19 (least - favorable to the process). - The default does not modify - priority. -ionice_class None I/O scheduling class of server - processes. I/O niceness class - values are IOPRIO_CLASS_RT (realtime), - IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify - class and priority. - Linux supports io scheduling - priorities and classes since - 2.6.13 with the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority - is a number which goes from - 0 to 7. The higher the value, - the lower the I/O priority of - the process. - Work only with ionice_class. - Ignored if IOPRIO_CLASS_IDLE - is set. -=========================== ======================== ================================ - -**************** -[object-updater] -**************** - -=================== =================== ========================================== -Option Default Description -------------------- ------------------- ------------------------------------------ -log_name object-updater Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_address /dev/log Logging directory -interval 300 Minimum time for a pass to take -updater_workers 1 Number of worker processes -concurrency 8 Number of updates to run concurrently in - each worker process -node_timeout DEFAULT or 10 Request timeout to external services. This - uses what's set here, or what's set in the - DEFAULT section, or 10 (though other - sections use 3 as the final default). -objects_per_second 50 Maximum objects updated per second. - Should be tuned according to individual - system specs. 0 is unlimited. -slowdown 0.01 Time in seconds to wait between objects. - Deprecated in favor of objects_per_second. -report_interval 300 Interval in seconds between logging - statistics about the current update pass. -recon_cache_path /var/cache/swift Path to recon cache -nice_priority None Scheduling priority of server processes. - Niceness values range from -20 (most - favorable to the process) to 19 (least - favorable to the process). The default - does not modify priority. -ionice_class None I/O scheduling class of server processes. - I/O niceness class values are IOPRIO_CLASS_RT - (realtime), IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify class and - priority. Linux supports io scheduling - priorities and classes since 2.6.13 with - the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority is - a number which goes from 0 to 7. - The higher the value, the lower the I/O - priority of the process. Work only with - ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -=================== =================== ========================================== - -**************** -[object-auditor] -**************** - -=========================== =================== ========================================== -Option Default Description ---------------------------- ------------------- ------------------------------------------ -log_name object-auditor Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_address /dev/log Logging directory -log_time 3600 Frequency of status logs in seconds. -interval 30 Time in seconds to wait between - auditor passes -disk_chunk_size 65536 Size of chunks read during auditing -files_per_second 20 Maximum files audited per second per - auditor process. Should be tuned according - to individual system specs. 0 is unlimited. -bytes_per_second 10000000 Maximum bytes audited per second per - auditor process. Should be tuned according - to individual system specs. 0 is unlimited. -concurrency 1 The number of parallel processes to use - for checksum auditing. -zero_byte_files_per_second 50 -object_size_stats -recon_cache_path /var/cache/swift Path to recon cache -rsync_tempfile_timeout auto Time elapsed in seconds before rsync - tempfiles will be unlinked. Config value - of "auto" try to use object-replicator's - rsync_timeout + 900 or fallback to 86400 - (1 day). -nice_priority None Scheduling priority of server processes. - Niceness values range from -20 (most - favorable to the process) to 19 (least - favorable to the process). The default - does not modify priority. -ionice_class None I/O scheduling class of server processes. - I/O niceness class values are IOPRIO_CLASS_RT - (realtime), IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify class and - priority. Linux supports io scheduling - priorities and classes since 2.6.13 with - the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority is - a number which goes from 0 to 7. - The higher the value, the lower the I/O - priority of the process. Work only with - ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -=========================== =================== ========================================== - -**************** -[object-expirer] -**************** - -============================= =============================== ========================================== -Option Default Description ------------------------------ ------------------------------- ------------------------------------------ -log_name object-expirer Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_address /dev/log Logging directory -interval 300 Time in seconds to wait between - expirer passes -report_interval 300 Frequency of status logs in seconds. -concurrency 1 Level of concurrency to use to do the work, - this value must be set to at least 1 -expiring_objects_account_name expiring_objects name for legacy expirer task queue -dequeue_from_legacy False This service will look for jobs on the legacy expirer task queue. -processes 0 How many parts to divide the legacy work into, - one part per process that will be doing the work. - When set 0 means that a single legacy - process will be doing all the work. - This can only be used in conjunction with - ``dequeue_from_legacy``. -process 0 Which of the parts a particular legacy process will - work on. It is "zero based", if you want to use 3 - processes, you should run processes with process - set to 0, 1, and 2. - This can only be used in conjunction with - ``dequeue_from_legacy``. -reclaim_age 604800 How long an un-processable expired object - marker will be retried before it is abandoned. - It is not coupled with the tombstone reclaim age - in the consistency engine. -request_tries 3 The number of times the expirer's internal client - will attempt any given request in the event - of failure -recon_cache_path /var/cache/swift Path to recon cache -nice_priority None Scheduling priority of server processes. - Niceness values range from -20 (most - favorable to the process) to 19 (least - favorable to the process). The default - does not modify priority. -ionice_class None I/O scheduling class of server processes. - I/O niceness class values are IOPRIO_CLASS_RT - (realtime), IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify class and - priority. Linux supports io scheduling - priorities and classes since 2.6.13 with - the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority is - a number which goes from 0 to 7. - The higher the value, the lower the I/O - priority of the process. Work only with - ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -============================= =============================== ========================================== - ------------------------------- -Container Server Configuration ------------------------------- - -An example Container Server configuration can be found at -etc/container-server.conf-sample in the source code repository. - -The following configuration sections are available: - -* :ref:`[DEFAULT] ` -* `[container-server]`_ -* `[container-replicator]`_ -* `[container-updater]`_ -* `[container-auditor]`_ - -.. _container_server_default_options: - -********* -[DEFAULT] -********* - -=============================== ========== ============================================ -Option Default Description -------------------------------- ---------- -------------------------------------------- -swift_dir /etc/swift Swift configuration directory -devices /srv/node Parent directory of where devices are mounted -mount_check true Whether or not check if the devices are - mounted to prevent accidentally writing - to the root device -bind_ip 0.0.0.0 IP Address for server to bind to -bind_port 6201 Port for server to bind to -keep_idle 600 Value to set for socket TCP_KEEPIDLE -bind_timeout 30 Seconds to attempt bind before giving up -backlog 4096 Maximum number of allowed pending - connections -workers auto Override the number of pre-forked workers - that will accept connections. If set it - should be an integer, zero means no fork. If - unset, it will try to default to the number - of effective cpu cores and fallback to one. - Increasing the number of workers may reduce - the possibility of slow file system - operations in one request from negatively - impacting other requests. See - :ref:`general-service-tuning`. -max_clients 1024 Maximum number of clients one 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. -user swift User to run as -disable_fallocate false Disable "fast fail" fallocate checks if the - underlying filesystem does not support it. -log_name swift Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_address /dev/log Logging directory -log_max_line_length 0 Caps the length of log lines to the - value given; no limit if set to 0, the - default. -log_custom_handlers None Comma-separated list of functions to call - to setup custom log handlers. -log_udp_host Override log_address -log_udp_port 514 UDP log port -log_statsd_host None Enables StatsD logging; IPv4/IPv6 - address or a hostname. If a - hostname resolves to an IPv4 and IPv6 - address, the IPv4 address will be - used. -log_statsd_port 8125 -log_statsd_default_sample_rate 1.0 -log_statsd_sample_rate_factor 1.0 -log_statsd_metric_prefix -eventlet_debug false If true, turn on debug logging for eventlet -fallocate_reserve 1% You can set fallocate_reserve to the - number of bytes or percentage of disk - space you'd like fallocate to reserve, - whether there is space for the given - file size or not. Percentage will be used - if the value ends with a '%'. 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. -db_preallocation off 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. -nice_priority None Scheduling priority of server processes. - Niceness values range from -20 (most - favorable to the process) to 19 (least - favorable to the process). The default - does not modify priority. -ionice_class None I/O scheduling class of server processes. - I/O niceness class values are IOPRIO_CLASS_RT - (realtime), IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify class and - priority. Linux supports io scheduling - priorities and classes since 2.6.13 - with the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server processes. - I/O niceness priority is a number which - goes from 0 to 7. The higher the value, - the lower the I/O priority of the process. - Work only with ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -=============================== ========== ============================================ - -****************** -[container-server] -****************** - -============================== ================ ======================================== -Option Default Description ------------------------------- ---------------- ---------------------------------------- -use paste.deploy entry point for the - container server. For most cases, this - should be ``egg:swift#container``. -set log_name container-server Label used when logging -set log_facility LOG_LOCAL0 Syslog log facility -set log_level INFO Logging level -set log_requests True Whether or not to log each - request -set log_address /dev/log Logging directory -node_timeout 3 Request timeout to external services -conn_timeout 0.5 Connection timeout to external services -allow_versions false Enable/Disable object versioning feature -replication_server Configure parameter for creating - specific server. To handle all verbs, - including replication verbs, do not - specify "replication_server" - (this is the default). To only - handle replication, set to a True - value (e.g. "True" or "1"). - To handle only non-replication - verbs, set to "False". Unless you - have a separate replication network, you - should not specify any value for - "replication_server". -nice_priority None Scheduling priority of server processes. - Niceness values range from -20 (most - favorable to the process) to 19 (least - favorable to the process). The default - does not modify priority. -ionice_class None I/O scheduling class of server processes. - I/O niceness class values are - IOPRIO_CLASS_RT (realtime), - IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify class and - priority. Linux supports io scheduling - priorities and classes since 2.6.13 with - the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority is - a number which goes from 0 to 7. - The higher the value, the lower the I/O - priority of the process. Work only with - ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -============================== ================ ======================================== - -********************** -[container-replicator] -********************** - -==================== =========================== ============================= -Option Default Description --------------------- --------------------------- ----------------------------- -log_name container-replicator Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_address /dev/log Logging directory -per_diff 1000 Maximum number of database - rows that will be sync'd in a - single HTTP replication - request. Databases with less - than or equal to this number - of differing rows will always - be sync'd using an HTTP - replication request rather - than using rsync. -max_diffs 100 Maximum number of HTTP - replication requests attempted - on each replication pass for - any one container. This caps - how long the replicator will - spend trying to sync a given - database per pass so the other - databases don't get starved. -concurrency 8 Number of replication workers - to spawn -interval 30 Time in seconds to wait - between replication passes -databases_per_second 50 Maximum databases to process - per second. Should be tuned - according to individual - system specs. 0 is unlimited. -node_timeout 10 Request timeout to external - services -conn_timeout 0.5 Connection timeout to external - services -reclaim_age 604800 Time elapsed in seconds before - a container can be reclaimed -rsync_module {replication_ip}::container Format of the rsync module - where the replicator will send - data. The configuration value - can include some variables - that will be extracted from - the ring. Variables must - follow the format {NAME} where - NAME is one of: ip, port, - replication_ip, - replication_port, region, - zone, device, meta. See - etc/rsyncd.conf-sample for - some examples. -rsync_compress no Allow rsync to compress data - which is transmitted to - destination node during sync. - However, this is applicable - only when destination node is - in a different region than the - local one. NOTE: Objects that - are already compressed (for - example: .tar.gz, mp3) might - slow down the syncing process. -recon_cache_path /var/cache/swift Path to recon cache -nice_priority None Scheduling priority of server - processes. Niceness values - range from -20 (most favorable - to the process) to 19 (least - favorable to the process). - The default does not modify - priority. -ionice_class None I/O scheduling class of server - processes. I/O niceness class - values are - IOPRIO_CLASS_RT (realtime), - IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify - class and priority. Linux - supports io scheduling - priorities and classes since - 2.6.13 with the CFQ io - scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of - server processes. I/O niceness - priority is a number which goes - from 0 to 7. - The higher the value, the lower - the I/O priority of the process. - Work only with ionice_class. - Ignored if IOPRIO_CLASS_IDLE - is set. -==================== =========================== ============================= - -******************* -[container-updater] -******************* - -======================== ================= ================================== -Option Default Description ------------------------- ----------------- ---------------------------------- -log_name container-updater Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_address /dev/log Logging directory -interval 300 Minimum time for a pass to take -concurrency 4 Number of updater workers to spawn -node_timeout 3 Request timeout to external - services -conn_timeout 0.5 Connection timeout to external - services -containers_per_second 50 Maximum containers updated per second. - Should be tuned according to individual - system specs. 0 is unlimited. - -slowdown 0.01 Time in seconds to wait between - containers. Deprecated in favor of - containers_per_second. -account_suppression_time 60 Seconds to suppress updating an - account that has generated an - error (timeout, not yet found, - etc.) -recon_cache_path /var/cache/swift Path to recon cache -nice_priority None Scheduling priority of server - processes. Niceness values range - from -20 (most favorable to the - process) to 19 (least favorable - to the process). The default does - not modify priority. -ionice_class None I/O scheduling class of server - processes. I/O niceness class - values are IOPRIO_CLASS_RT (realtime), - IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify class and - priority. Linux supports io scheduling - priorities and classes since 2.6.13 with - the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority is - a number which goes from 0 to 7. - The higher the value, the lower - the I/O priority of the process. - Work only with ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -======================== ================= ================================== - -******************* -[container-auditor] -******************* - -===================== ================= ======================================= -Option Default Description ---------------------- ----------------- --------------------------------------- -log_name container-auditor Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_address /dev/log Logging directory -interval 1800 Minimum time for a pass to take -containers_per_second 200 Maximum containers audited per second. - Should be tuned according to individual - system specs. 0 is unlimited. -recon_cache_path /var/cache/swift Path to recon cache -nice_priority None Scheduling priority of server processes. - Niceness values range from -20 (most - favorable to the process) to 19 (least - favorable to the process). The default - does not modify priority. -ionice_class None I/O scheduling class of server processes. - I/O niceness class values are - IOPRIO_CLASS_RT (realtime), - IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify class and - priority. Linux supports io scheduling - priorities and classes since 2.6.13 with - the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority is - a number which goes from 0 to 7. - The higher the value, the lower the I/O - priority of the process. Work only with - ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -===================== ================= ======================================= - ----------------------------- -Account Server Configuration ----------------------------- - -An example Account Server configuration can be found at -etc/account-server.conf-sample in the source code repository. - -The following configuration sections are available: - -* :ref:`[DEFAULT] ` -* `[account-server]`_ -* `[account-replicator]`_ -* `[account-auditor]`_ -* `[account-reaper]`_ - -.. _account_server_default_options: - -********* -[DEFAULT] -********* - -=============================== ========== ============================================= -Option Default Description -------------------------------- ---------- --------------------------------------------- -swift_dir /etc/swift Swift configuration directory -devices /srv/node Parent directory or where devices are mounted -mount_check true Whether or not check if the devices are - mounted to prevent accidentally writing - to the root device -bind_ip 0.0.0.0 IP Address for server to bind to -bind_port 6202 Port for server to bind to -keep_idle 600 Value to set for socket TCP_KEEPIDLE -bind_timeout 30 Seconds to attempt bind before giving up -backlog 4096 Maximum number of allowed pending - connections -workers auto Override the number of pre-forked workers - that will accept connections. If set it - should be an integer, zero means no fork. If - unset, it will try to default to the number - of effective cpu cores and fallback to one. - Increasing the number of workers may reduce - the possibility of slow file system - operations in one request from negatively - impacting other requests. See - :ref:`general-service-tuning`. -max_clients 1024 Maximum number of clients one 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. -user swift User to run as -db_preallocation off 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. -disable_fallocate false Disable "fast fail" fallocate checks if the - underlying filesystem does not support it. -log_name swift Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_address /dev/log Logging directory -log_max_line_length 0 Caps the length of log lines to the - value given; no limit if set to 0, the - default. -log_custom_handlers None Comma-separated list of functions to call - to setup custom log handlers. -log_udp_host Override log_address -log_udp_port 514 UDP log port -log_statsd_host None Enables StatsD logging; IPv4/IPv6 - address or a hostname. If a - hostname resolves to an IPv4 and IPv6 - address, the IPv4 address will be - used. -log_statsd_port 8125 -log_statsd_default_sample_rate 1.0 -log_statsd_sample_rate_factor 1.0 -log_statsd_metric_prefix -eventlet_debug false If true, turn on debug logging for eventlet -fallocate_reserve 1% You can set fallocate_reserve to the - number of bytes or percentage of disk - space you'd like fallocate to reserve, - whether there is space for the given - file size or not. Percentage will be used - if the value ends with a '%'. 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. -nice_priority None Scheduling priority of server processes. - Niceness values range from -20 (most - favorable to the process) to 19 (least - favorable to the process). The default - does not modify priority. -ionice_class None I/O scheduling class of server processes. - I/O niceness class values are IOPRIO_CLASS_RT - (realtime), IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify class and - priority. Linux supports io scheduling - priorities and classes since 2.6.13 with - the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server processes. - I/O niceness priority is a number which - goes from 0 to 7. The higher the value, - the lower the I/O priority of the process. - Work only with ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -=============================== ========== ============================================= - -**************** -[account-server] -**************** - -============================= ============== ========================================== -Option Default Description ------------------------------ -------------- ------------------------------------------ -use Entry point for paste.deploy for the account - server. For most cases, this should be - ``egg:swift#account``. -set log_name account-server Label used when logging -set log_facility LOG_LOCAL0 Syslog log facility -set log_level INFO Logging level -set log_requests True Whether or not to log each - request -set log_address /dev/log Logging directory -replication_server Configure parameter for creating - specific server. To handle all verbs, - including replication verbs, do not - specify "replication_server" - (this is the default). To only - handle replication, set to a True - value (e.g. "True" or "1"). - To handle only non-replication - verbs, set to "False". Unless you - have a separate replication network, you - should not specify any value for - "replication_server". -nice_priority None Scheduling priority of server processes. - Niceness values range from -20 (most - favorable to the process) to 19 (least - favorable to the process). The default - does not modify priority. -ionice_class None I/O scheduling class of server processes. - I/O niceness class values are IOPRIO_CLASS_RT - (realtime), IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify class and - priority. Linux supports io scheduling - priorities and classes since 2.6.13 with - the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority is - a number which goes from 0 to 7. - The higher the value, the lower the I/O - priority of the process. Work only with - ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -============================= ============== ========================================== - -******************** -[account-replicator] -******************** - -==================== ========================= =============================== -Option Default Description --------------------- ------------------------- ------------------------------- -log_name account-replicator Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_address /dev/log Logging directory -per_diff 1000 Maximum number of database rows - that will be sync'd in a single - HTTP replication request. - Databases with less than or - equal to this number of - differing rows will always be - sync'd using an HTTP replication - request rather than using rsync. -max_diffs 100 Maximum number of HTTP - replication requests attempted - on each replication pass for any - one container. This caps how - long the replicator will spend - trying to sync a given database - per pass so the other databases - don't get starved. -concurrency 8 Number of replication workers - to spawn -interval 30 Time in seconds to wait between - replication passes -databases_per_second 50 Maximum databases to process - per second. Should be tuned - according to individual - system specs. 0 is unlimited. -node_timeout 10 Request timeout to external - services -conn_timeout 0.5 Connection timeout to external - services -reclaim_age 604800 Time elapsed in seconds before - an account can be reclaimed -rsync_module {replication_ip}::account Format of the rsync module where - the replicator will send data. - The configuration value can - include some variables that will - be extracted from the ring. - Variables must follow the format - {NAME} where NAME is one of: ip, - port, replication_ip, - replication_port, region, zone, - device, meta. See - etc/rsyncd.conf-sample for some - examples. -rsync_compress no Allow rsync to compress data - which is transmitted to - destination node during sync. - However, this is applicable only - when destination node is in a - different region than the local - one. NOTE: Objects that are - already compressed (for example: - .tar.gz, mp3) might slow down - the syncing process. -recon_cache_path /var/cache/swift Path to recon cache -nice_priority None Scheduling priority of server - processes. Niceness values - range from -20 (most favorable - to the process) to 19 (least - favorable to the process). - The default does not modify - priority. -ionice_class None I/O scheduling class of server - processes. I/O niceness class - values are IOPRIO_CLASS_RT - (realtime), IOPRIO_CLASS_BE - (best-effort), and IOPRIO_CLASS_IDLE - (idle). - The default does not modify - class and priority. Linux supports - io scheduling priorities and classes - since 2.6.13 with the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority - is a number which goes from 0 to 7. - The higher the value, the lower - the I/O priority of the process. - Work only with ionice_class. - Ignored if IOPRIO_CLASS_IDLE - is set. -==================== ========================= =============================== - -***************** -[account-auditor] -***************** - -==================== ================ ======================================= -Option Default Description --------------------- ---------------- --------------------------------------- -log_name account-auditor Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_address /dev/log Logging directory -interval 1800 Minimum time for a pass to take -accounts_per_second 200 Maximum accounts audited per second. - Should be tuned according to individual - system specs. 0 is unlimited. -recon_cache_path /var/cache/swift Path to recon cache -nice_priority None Scheduling priority of server processes. - Niceness values range from -20 (most - favorable to the process) to 19 (least - favorable to the process). The default - does not modify priority. -ionice_class None I/O scheduling class of server processes. - I/O niceness class values are - IOPRIO_CLASS_RT (realtime), - IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify class and - priority. Linux supports io scheduling - priorities and classes since 2.6.13 with - the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority is - a number which goes from 0 to 7. - The higher the value, the lower the I/O - priority of the process. Work only with - ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -==================== ================ ======================================= - -**************** -[account-reaper] -**************** - -================== =============== ========================================= -Option Default Description ------------------- --------------- ----------------------------------------- -log_name account-reaper Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_address /dev/log Logging directory -concurrency 25 Number of replication workers to spawn -interval 3600 Minimum time for a pass to take -node_timeout 10 Request timeout to external services -conn_timeout 0.5 Connection timeout to external services -delay_reaping 0 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. The sum of - this value and the container-updater - ``interval`` should be less than the - account-replicator ``reclaim_age``. This - ensures that once the account-reaper has - deleted a container there is sufficient - time for the container-updater to report - to the account before the account DB is - removed. -reap_warn_after 2892000 If the account fails to be reaped due - to a persistent error, the account reaper - will log a message such as: - Account has not been reaped since - You can search logs for this message if - space is not being reclaimed after you - delete account(s). This is in addition to - any time requested by delay_reaping. -nice_priority None Scheduling priority of server processes. - Niceness values range from -20 (most - favorable to the process) to 19 (least - favorable to the process). The default - does not modify priority. -ionice_class None I/O scheduling class of server processes. - I/O niceness class values are IOPRIO_CLASS_RT - (realtime), IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify class and - priority. Linux supports io scheduling - priorities and classes since 2.6.13 with - the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority is - a number which goes from 0 to 7. - The higher the value, the lower the I/O - priority of the process. Work only with - ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -================== =============== ========================================= - -.. _proxy-server-config: - --------------------------- -Proxy Server Configuration --------------------------- - -An example Proxy Server configuration can be found at -etc/proxy-server.conf-sample in the source code repository. - -The following configuration sections are available: - -* :ref:`[DEFAULT] ` -* `[proxy-server]`_ -* Individual sections for `Proxy middlewares`_ - -.. _proxy_server_default_options: - -********* -[DEFAULT] -********* - -==================================== ======================== ======================================== -Option Default Description ------------------------------------- ------------------------ ---------------------------------------- -bind_ip 0.0.0.0 IP Address for server to - bind to -bind_port 80 Port for server to bind to -keep_idle 600 Value to set for socket TCP_KEEPIDLE -bind_timeout 30 Seconds to attempt bind before - giving up -backlog 4096 Maximum number of allowed pending - connections -swift_dir /etc/swift Swift configuration directory -workers auto Override the number of - pre-forked workers that will - accept connections. If set it - should be an integer, zero - means no fork. If unset, it - will try to default to the - number of effective cpu cores - and fallback to one. See - :ref:`general-service-tuning`. -max_clients 1024 Maximum number of clients one - 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. -user swift User to run as -cert_file Path to the ssl .crt. This - should be enabled for testing - purposes only. -key_file Path to the ssl .key. This - should be enabled for testing - purposes only. -cors_allow_origin List of origin hosts that are allowed - for CORS requests in addition to what - the container has set. -strict_cors_mode True If True (default) then CORS - requests are only allowed if their - Origin header matches an allowed - origin. Otherwise, any Origin is - allowed. -cors_expose_headers This is a list of headers that - are included in the header - Access-Control-Expose-Headers - in addition to what the container - has set. -client_timeout 60 -trans_id_suffix This optional suffix (default is empty) - that would be appended to the swift - transaction id allows one to easily - figure out from which cluster that - X-Trans-Id belongs to. This is very - useful when one is managing more than - one swift cluster. -log_name swift Label used when logging -log_facility LOG_LOCAL0 Syslog log facility -log_level INFO Logging level -log_headers False -log_address /dev/log Logging directory -log_max_line_length 0 Caps the length of log - lines to the value given; - no limit if set to 0, the - default. -log_custom_handlers None Comma separated list of functions - to call to setup custom log - handlers. -log_udp_host Override log_address -log_udp_port 514 UDP log port -log_statsd_host None Enables StatsD logging; IPv4/IPv6 - address or a hostname. If a - hostname resolves to an IPv4 and IPv6 - address, the IPv4 address will be - used. -log_statsd_port 8125 -log_statsd_default_sample_rate 1.0 -log_statsd_sample_rate_factor 1.0 -log_statsd_metric_prefix -eventlet_debug false If true, turn on debug logging - for eventlet - -expose_info true Enables exposing configuration - settings via HTTP GET /info. -admin_key Key to use for admin calls that - are HMAC signed. Default - is empty, which will - disable admin calls to - /info. -disallowed_sections swift.valid_api_versions Allows the ability to withhold - sections from showing up in the - public calls to /info. You can - withhold subsections by separating - the dict level with a ".". -expiring_objects_container_divisor 86400 -expiring_objects_account_name expiring_objects -nice_priority None Scheduling priority of server - processes. - Niceness values range from -20 (most - favorable to the process) to 19 (least - favorable to the process). The default - does not modify priority. -ionice_class None I/O scheduling class of server - processes. I/O niceness class values - are IOPRIO_CLASS_RT (realtime), - IOPRIO_CLASS_BE (best-effort) and - IOPRIO_CLASS_IDLE (idle). - The default does not - modify class and priority. Linux - supports io scheduling priorities - and classes since 2.6.13 with - the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority is - a number which goes from 0 to 7. - The higher the value, the lower - the I/O priority of the process. - Work only with ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -==================================== ======================== ======================================== - -************** -[proxy-server] -************** - -====================================== =============== ===================================== -Option Default Description --------------------------------------- --------------- ------------------------------------- -use Entry point for paste.deploy for - the proxy server. For most - cases, this should be - ``egg:swift#proxy``. -set log_name proxy-server Label used when logging -set log_facility LOG_LOCAL0 Syslog log facility -set log_level INFO Log level -set log_headers True If True, log headers in each - request -set log_handoffs True If True, the proxy will log - whenever it has to failover to a - handoff node -recheck_account_existence 60 Cache timeout in seconds to - send memcached for account - existence -recheck_container_existence 60 Cache timeout in seconds to - send memcached for container - existence -object_chunk_size 65536 Chunk size to read from - object servers -client_chunk_size 65536 Chunk size to read from - clients -memcache_servers 127.0.0.1:11211 Comma separated list of - memcached servers - ip:port or [ipv6addr]:port -memcache_max_connections 2 Max number of connections to - each memcached server per - worker -node_timeout 10 Request timeout to external - services -recoverable_node_timeout node_timeout Request timeout to external - services for requests that, on - failure, can be recovered - from. For example, object GET. -client_timeout 60 Timeout to read one chunk - from a client -conn_timeout 0.5 Connection timeout to - external services -error_suppression_interval 60 Time in seconds that must - elapse since the last error - for a node to be considered - no longer error limited -error_suppression_limit 10 Error count to consider a - node error limited -allow_account_management false Whether account PUTs and DELETEs - are even callable -account_autocreate false If set to 'true' authorized - accounts that do not yet exist - within the Swift cluster will - be automatically created. -max_containers_per_account 0 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. -max_containers_whitelist This is a comma separated list - of account names that ignore - the max_containers_per_account - cap. -rate_limit_after_segment 10 Rate limit the download of - large object segments after - this segment is downloaded. -rate_limit_segments_per_sec 1 Rate limit large object - downloads at this rate. -request_node_count 2 * replicas Set to the number of nodes to - 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. -swift_owner_headers up to the auth system in use, - but usually indicates - administrative responsibilities. -sorting_method shuffle Storage nodes can be chosen at - random (shuffle), by using timing - measurements (timing), or by using - an explicit match (affinity). - Using timing measurements may allow - for lower overall latency, while - using affinity allows for finer - control. In both the timing and - affinity cases, equally-sorting nodes - are still randomly chosen to spread - load. This option may be overridden - in a per-policy configuration - section. -timing_expiry 300 If the "timing" sorting_method is - used, the timings will only be valid - for the number of seconds configured - by timing_expiry. -concurrent_gets off Use replica count number of - threads concurrently during a - GET/HEAD and return with the - first successful response. In - the EC case, this parameter only - affects an EC HEAD as an EC GET - behaves differently. -concurrency_timeout conn_timeout This parameter controls how long - to wait before firing off the - next concurrent_get thread. A - value of 0 would we fully concurrent, - any other number will stagger the - firing of the threads. This number - should be between 0 and node_timeout. - The default is conn_timeout (0.5). -nice_priority None Scheduling priority of server - processes. - Niceness values range from -20 (most - favorable to the process) to 19 (least - favorable to the process). The default - does not modify priority. -ionice_class None I/O scheduling class of server - processes. I/O niceness class values - are IOPRIO_CLASS_RT (realtime), - IOPRIO_CLASS_BE (best-effort), - and IOPRIO_CLASS_IDLE (idle). - The default does not modify class and - priority. Linux supports io scheduling - priorities and classes since 2.6.13 - with the CFQ io scheduler. - Work only with ionice_priority. -ionice_priority None I/O scheduling priority of server - processes. I/O niceness priority is - a number which goes from 0 to 7. - The higher the value, the lower the - I/O priority of the process. Work - only with ionice_class. - Ignored if IOPRIO_CLASS_IDLE is set. -read_affinity None Specifies which backend servers to - prefer on reads; used in conjunction - with the sorting_method option being - set to 'affinity'. Format is a comma - separated list of affinity descriptors - of the form =. - The may be r for - selecting nodes in region N or - rz for selecting nodes in - region N, zone M. The - value should be a whole number - that represents the priority to - be given to the selection; lower - numbers are higher priority. - Default is empty, meaning no - preference. This option may be - overridden in a per-policy - configuration section. -write_affinity None Specifies which backend servers to - prefer on writes. Format is a comma - separated list of affinity - descriptors of the form r for - region N or rz for region N, - zone M. Default is empty, meaning no - preference. This option may be - overridden in a per-policy - configuration section. -write_affinity_node_count 2 * replicas The number of local (as governed by - the write_affinity setting) nodes to - attempt to contact first on writes, - before any non-local ones. The value - should be an integer number, or 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. This option may be - overridden in a per-policy - configuration section. -write_affinity_handoff_delete_count auto The number of local (as governed by - the write_affinity setting) handoff - nodes to attempt to contact on - deletion, in addition to primary - nodes. Example: in geographically - distributed deployment, If replicas=3, - sometimes there may be 1 primary node - and 2 local handoff nodes in one region - holding the object after uploading but - before object replicated to the - appropriate locations in other regions. - In this case, include these handoff - nodes to send request when deleting - object could help make correct decision - for the response. The default value 'auto' - means Swift will calculate the number - automatically, the default value is - (replicas - len(local_primary_nodes)). - This option may be overridden in a - per-policy configuration section. -====================================== =============== ===================================== .. _proxy_server_per_policy_config: diff --git a/doc/source/index.rst b/doc/source/index.rst index 7aeb82e70a..425b447f7e 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -104,6 +104,8 @@ Administrator Documentation ops_runbook/index admin/index install/index + config/index + Object Storage v1 REST API Documentation ========================================