71f6fd025e
Currently, the rsync module where the replicators send data is static. It forbids administrators to set rsync configuration based on their current deployment or needs. As an example, the rsyncd configuration example encourages to set a connections limit for the modules account, container and object. It permits to protect devices from excessives parallels connections, because it would impact performances. On a server with many devices, it is tempting to increase this number proportionally, but nothing guarantees that the distribution of the connections will be balanced. In the worst scenario, a single device can receive all the connections, which is a severe impact on performances. This commit adds a new option named 'rsync_module' to the *-replicator sections of the *-server configuration file. This configuration variable can be extrapolated with device attributes like ip, port, device, zone, ... by using the format {NAME}. eg: rsync_module = {replication_ip}::object_{device} With this configuration, an administrators can solve the problem of connections distribution by creating one module per device in rsyncd configuration. The default values are backward compatible: {replication_ip}::account {replication_ip}::container {replication_ip}::object Option vm_test_mode is deprecated by this commit, but backward compatibility is maintained. The option is only effective when rsync_module is not set. In that case, {replication_port} is appended to the default value of rsync_module. Change-Id: Iad91df50dadbe96c921181797799b4444323ce2e
286 lines
9.2 KiB
Groff
286 lines
9.2 KiB
Groff
.\"
|
|
.\" Author: Joao Marcelo Martins <marcelo.martins@rackspace.com> or <btorch@gmail.com>
|
|
.\" Copyright (c) 2010-2012 OpenStack Foundation.
|
|
.\"
|
|
.\" Licensed under the Apache License, Version 2.0 (the "License");
|
|
.\" you may not use this file except in compliance with the License.
|
|
.\" You may obtain a copy of the License at
|
|
.\"
|
|
.\" http://www.apache.org/licenses/LICENSE-2.0
|
|
.\"
|
|
.\" Unless required by applicable law or agreed to in writing, software
|
|
.\" distributed under the License is distributed on an "AS IS" BASIS,
|
|
.\" WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
|
.\" implied.
|
|
.\" See the License for the specific language governing permissions and
|
|
.\" limitations under the License.
|
|
.\"
|
|
.TH object-server.conf 5 "8/26/2011" "Linux" "OpenStack Swift"
|
|
|
|
.SH NAME
|
|
.LP
|
|
.B object-server.conf
|
|
\- configuration file for the openstack-swift object server
|
|
|
|
|
|
|
|
.SH SYNOPSIS
|
|
.LP
|
|
.B object-server.conf
|
|
|
|
|
|
|
|
.SH DESCRIPTION
|
|
.PP
|
|
This is the configuration file used by the object server and other object
|
|
background services, such as; replicator, updater and auditor.
|
|
|
|
The configuration file follows the python-pastedeploy syntax. The file is divided
|
|
into sections, which are enclosed by square brackets. Each section will contain a
|
|
certain number of key/value parameters which are described later.
|
|
|
|
Any line that begins with a '#' symbol is ignored.
|
|
|
|
You can find more information about python-pastedeploy configuration format at
|
|
\fIhttp://pythonpaste.org/deploy/#config-format\fR
|
|
|
|
|
|
|
|
.SH GLOBAL SECTION
|
|
.PD 1
|
|
.RS 0
|
|
This is indicated by section named [DEFAULT]. Below are the parameters that
|
|
are acceptable within this section.
|
|
|
|
.IP "\fBbind_ip\fR"
|
|
IP address the object server should bind to. The default is 0.0.0.0 which will make
|
|
it bind to all available addresses.
|
|
.IP "\fBbind_port\fR"
|
|
TCP port the object server should bind to. The default is 6000.
|
|
.IP \fBbacklog\fR
|
|
TCP backlog. Maximum number of allowed pending connections. The default value is 4096.
|
|
.IP \fBworkers\fR
|
|
The number of pre-forked processes that will accept connections. Zero means
|
|
no fork. The default is auto which will make the server try to match the
|
|
number of effective cpu cores if python multiprocessing is available (included
|
|
with most python distributions >= 2.6) or fallback to one. It's worth noting
|
|
that individual workers will use many eventlet co-routines to service multiple
|
|
concurrent requests.
|
|
.IP \fBmax_clients\fR
|
|
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. The default is 1024.
|
|
.IP \fBuser\fR
|
|
The system user that the object server will run as. The default is swift.
|
|
.IP \fBswift_dir\fR
|
|
Swift configuration directory. The default is /etc/swift.
|
|
.IP \fBdevices\fR
|
|
Parent directory or where devices are mounted. Default is /srv/node.
|
|
.IP \fBmount_check\fR
|
|
Whether or not check if the devices are mounted to prevent accidentally writing to
|
|
the root device. The default is set to true.
|
|
.IP \fBlog_name\fR
|
|
Label used when logging. The default is swift.
|
|
.IP \fBlog_facility\fR
|
|
Syslog log facility. The default is LOG_LOCAL0.
|
|
.IP \fBlog_level\fR
|
|
Logging level. The default is INFO.
|
|
.IP \fBlog_address\fR
|
|
Logging address. The default is /dev/log.
|
|
.RE
|
|
.PD
|
|
|
|
|
|
|
|
.SH PIPELINE SECTION
|
|
.PD 1
|
|
.RS 0
|
|
This is indicated by section name [pipeline:main]. Below are the parameters that
|
|
are acceptable within this section.
|
|
|
|
.IP "\fBpipeline\fR"
|
|
It is used when you need to apply a number of filters. It is a list of filters
|
|
ended by an application. The normal pipeline is "healthcheck recon
|
|
object-server".
|
|
.RE
|
|
.PD
|
|
|
|
|
|
|
|
.SH APP SECTION
|
|
.PD 1
|
|
.RS 0
|
|
This is indicated by section name [app:object-server]. Below are the parameters
|
|
that are acceptable within this section.
|
|
.IP "\fBuse\fR"
|
|
Entry point for paste.deploy for the object server. This is the reference to the installed python egg.
|
|
This is normally \fBegg:swift#object\fR.
|
|
.IP "\fBset log_name\fR
|
|
Label used when logging. The default is object-server.
|
|
.IP "\fBset log_facility\fR
|
|
Syslog log facility. The default is LOG_LOCAL0.
|
|
.IP "\fB set log_level\fR
|
|
Logging level. The default is INFO.
|
|
.IP "\fB set log_requests\fR
|
|
Enables request logging. The default is True.
|
|
.IP "\fB set log_address\fR
|
|
Logging address. The default is /dev/log.
|
|
.IP \fBnode_timeout\fR
|
|
Request timeout to external services. The default is 3 seconds.
|
|
.IP \fBconn_timeout\fR
|
|
Connection timeout to external services. The default is 0.5 seconds.
|
|
.IP \fBcontainer_update_timeout\fR
|
|
Time to wait while sending a container update on object update. The default is 1 second.
|
|
.RE
|
|
.PD
|
|
|
|
|
|
|
|
.SH FILTER SECTION
|
|
.PD 1
|
|
.RS 0
|
|
Any section that has its name prefixed by "filter:" indicates a filter section.
|
|
Filters are used to specify configuration parameters for specific swift middlewares.
|
|
Below are the filters available and respective acceptable parameters.
|
|
.IP "\fB[filter:healthcheck]\fR"
|
|
.RE
|
|
.RS 3
|
|
.IP "\fBuse\fR"
|
|
Entry point for paste.deploy for the healthcheck middleware. This is the reference to the installed python egg.
|
|
This is normally \fBegg:swift#healthcheck\fR.
|
|
.IP "\fBdisable_path\fR"
|
|
An optional filesystem path which, if present, will cause the healthcheck
|
|
URL to return "503 Service Unavailable" with a body of "DISABLED BY FILE".
|
|
.RE
|
|
|
|
.RS 0
|
|
.IP "\fB[filter:recon]\fR"
|
|
.RE
|
|
.RS 3
|
|
.IP "\fBuse\fR"
|
|
Entry point for paste.deploy for the recon middleware. This is the reference to the installed python egg.
|
|
This is normally \fBegg:swift#recon\fR.
|
|
.IP "\fBrecon_cache_path\fR"
|
|
The recon_cache_path simply sets the directory where stats for a few items will be stored.
|
|
Depending on the method of deployment you may need to create this directory manually
|
|
and ensure that swift has read/write. The default is /var/cache/swift.
|
|
.RE
|
|
.PD
|
|
|
|
|
|
|
|
.SH ADDITIONAL SECTIONS
|
|
.PD 1
|
|
.RS 0
|
|
The following sections are used by other swift-object services, such as replicator,
|
|
updater, auditor.
|
|
.IP "\fB[object-replicator]\fR"
|
|
.RE
|
|
.RS 3
|
|
.IP \fBlog_name\fR
|
|
Label used when logging. The default is object-replicator.
|
|
.IP \fBlog_facility\fR
|
|
Syslog log facility. The default is LOG_LOCAL0.
|
|
.IP \fBlog_level\fR
|
|
Logging level. The default is INFO.
|
|
.IP \fBlog_address\fR
|
|
Logging address. The default is /dev/log.
|
|
.IP \fBdaemonize\fR
|
|
Whether or not to run replication as a daemon. The default is yes.
|
|
.IP "\fBrun_pause [deprecated]\fR"
|
|
Time in seconds to wait between replication passes. The default is 30.
|
|
.IP \fBinterval\fR
|
|
Time in seconds to wait between replication passes. The default is 30.
|
|
.IP \fBconcurrency\fR
|
|
Number of replication workers to spawn. The default is 1.
|
|
.IP \fBstats_interval\fR
|
|
Interval in seconds between logging replication statistics. The default is 300.
|
|
.IP \fBrsync_timeout\fR
|
|
Max duration of a partition rsync. The default is 900 seconds.
|
|
.IP \fBrsync_io_timeout\fR
|
|
Passed to rsync for I/O OP timeout. The default is 30 seconds.
|
|
.IP \fBrsync_bwlimit\fR
|
|
Passed to rsync for bandwidth limit in kB/s. The default is 0 (unlimited).
|
|
.IP \fBhttp_timeout\fR
|
|
Max duration of an HTTP request. The default is 60 seconds.
|
|
.IP \fBlockup_timeout\fR
|
|
Attempts to kill all workers if nothing replicates for lockup_timeout seconds. The
|
|
default is 1800 seconds.
|
|
.IP \fBreclaim_age\fR
|
|
Time elapsed in seconds before an object can be reclaimed. The default is
|
|
604800 seconds.
|
|
.IP \fBrecon_enable\fR
|
|
Enable logging of replication stats for recon. The default is on.
|
|
.IP "\fBrecon_cache_path\fR"
|
|
The recon_cache_path simply sets the directory where stats for a few items will be stored.
|
|
Depending on the method of deployment you may need to create this directory manually
|
|
and ensure that swift has read/write.The default is /var/cache/swift.
|
|
.RE
|
|
|
|
|
|
.RS 0
|
|
.IP "\fB[object-updater]\fR"
|
|
.RE
|
|
.RS 3
|
|
.IP \fBlog_name\fR
|
|
Label used when logging. The default is object-updater.
|
|
.IP \fBlog_facility\fR
|
|
Syslog log facility. The default is LOG_LOCAL0.
|
|
.IP \fBlog_level\fR
|
|
Logging level. The default is INFO.
|
|
.IP \fBlog_address\fR
|
|
Logging address. The default is /dev/log.
|
|
.IP \fBinterval\fR
|
|
Minimum time for a pass to take. The default is 300 seconds.
|
|
.IP \fBconcurrency\fR
|
|
Number of reaper workers to spawn. The default is 1.
|
|
.IP \fBnode_timeout\fR
|
|
Request timeout to external services. The default is 10 seconds.
|
|
.IP \fBconn_timeout\fR
|
|
Connection timeout to external services. The default is 0.5 seconds.
|
|
.IP \fBslowdown\fR
|
|
Slowdown will sleep that amount between objects. The default is 0.01 seconds.
|
|
.RE
|
|
.PD
|
|
|
|
|
|
.RS 0
|
|
.IP "\fB[object-auditor]\fR"
|
|
.RE
|
|
.RS 3
|
|
.IP \fBlog_name\fR
|
|
Label used when logging. The default is object-auditor.
|
|
.IP \fBlog_facility\fR
|
|
Syslog log facility. The default is LOG_LOCAL0.
|
|
.IP \fBlog_level\fR
|
|
Logging level. The default is INFO.
|
|
.IP \fBlog_address\fR
|
|
Logging address. The default is /dev/log.
|
|
|
|
.IP \fBfiles_per_second\fR
|
|
Maximum files audited per second. Should be tuned according to individual
|
|
system specs. 0 is unlimited. The default is 20.
|
|
.IP \fBbytes_per_second\fR
|
|
Maximum bytes audited per second. Should be tuned according to individual
|
|
system specs. 0 is unlimited. The default is 10000000.
|
|
.IP \fBlog_time\fR
|
|
The default is 3600 seconds.
|
|
.IP \fBzero_byte_files_per_second\fR
|
|
The default is 50.
|
|
.RE
|
|
|
|
|
|
|
|
|
|
.SH DOCUMENTATION
|
|
.LP
|
|
More in depth documentation about the swift-object-server and
|
|
also Openstack-Swift as a whole can be found at
|
|
.BI http://swift.openstack.org/admin_guide.html
|
|
and
|
|
.BI http://swift.openstack.org
|
|
|
|
|
|
.SH "SEE ALSO"
|
|
.BR swift-object-server(1),
|