[DEFAULT] # bind_ip = 0.0.0.0 bind_port = 6001 # bind_timeout = 30 # backlog = 4096 # user = swift # swift_dir = /etc/swift # devices = /srv/node # mount_check = true # disable_fallocate = false # # Use an integer to override the number of pre-forked processes that will # accept connections. # workers = auto # # Maximum concurrent requests per worker # max_clients = 1024 # # This is a comma separated list of hosts allowed in the X-Container-Sync-To # field for containers. This is the old-style of using container sync. It is # strongly recommended to use the new style of a separate # container-sync-realms.conf -- see container-sync-realms.conf-sample # allowed_sync_hosts = 127.0.0.1 # # You can specify default log routing here if you want: # log_name = swift # log_facility = LOG_LOCAL0 # log_level = INFO # log_address = /dev/log # The following caps the length of log lines to the value given; no limit if # set to 0, the default. # log_max_line_length = 0 # # comma separated list of functions to call to setup custom log handlers. # functions get passed: conf, name, log_to_console, log_route, fmt, logger, # adapted_logger # log_custom_handlers = # # If set, log_udp_host will override log_address # log_udp_host = # log_udp_port = 514 # # You can enable StatsD logging here: # log_statsd_host = # log_statsd_port = 8125 # log_statsd_default_sample_rate = 1.0 # log_statsd_sample_rate_factor = 1.0 # log_statsd_metric_prefix = # # 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. # db_preallocation = off # # eventlet_debug = false # # You can set fallocate_reserve to the number of bytes you'd like fallocate to # reserve, whether there is space for the given file size or not. # fallocate_reserve = 0 [pipeline:main] pipeline = healthcheck recon container-server [app:container-server] use = egg:swift#container # You can override the default log routing for this app here: # set log_name = container-server # set log_facility = LOG_LOCAL0 # set log_level = INFO # set log_requests = true # set log_address = /dev/log # # node_timeout = 3 # conn_timeout = 0.5 # allow_versions = false # auto_create_account_prefix = . # # 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_server = false [filter:healthcheck] use = egg:swift#healthcheck # An optional filesystem path, which if present, will cause the healthcheck # URL to return "503 Service Unavailable" with a body of "DISABLED BY FILE" # disable_path = [filter:recon] use = egg:swift#recon #recon_cache_path = /var/cache/swift [container-replicator] # You can override the default log routing for this app here (don't use set!): # log_name = container-replicator # log_facility = LOG_LOCAL0 # log_level = INFO # log_address = /dev/log # # 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. # per_diff = 1000 # # 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. # max_diffs = 100 # # Number of replication workers to spawn. # concurrency = 8 # # Time in seconds to wait between replication passes # interval = 30 # run_pause is deprecated, use interval instead # run_pause = 30 # # node_timeout = 10 # conn_timeout = 0.5 # # The replicator also performs reclamation # reclaim_age = 604800 # # 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. # rsync_compress = no # # Format of the rysnc module where the replicator will send data. See # etc/rsyncd.conf-sample for some usage examples. # rsync_module = {replication_ip}::container # # recon_cache_path = /var/cache/swift [container-updater] # You can override the default log routing for this app here (don't use set!): # log_name = container-updater # log_facility = LOG_LOCAL0 # log_level = INFO # log_address = /dev/log # # interval = 300 # concurrency = 4 # node_timeout = 3 # conn_timeout = 0.5 # # slowdown will sleep that amount between containers # slowdown = 0.01 # # Seconds to suppress updating an account that has generated an error # account_suppression_time = 60 # # recon_cache_path = /var/cache/swift [container-auditor] # You can override the default log routing for this app here (don't use set!): # log_name = container-auditor # log_facility = LOG_LOCAL0 # log_level = INFO # log_address = /dev/log # # Will audit each container at most once per interval # interval = 1800 # # containers_per_second = 200 # recon_cache_path = /var/cache/swift [container-sync] # You can override the default log routing for this app here (don't use set!): # log_name = container-sync # log_facility = LOG_LOCAL0 # log_level = INFO # log_address = /dev/log # # If you need to use an HTTP Proxy, set it here; defaults to no proxy. # You can also set this to a comma separated list of HTTP Proxies and they will # be randomly used (simple load balancing). # sync_proxy = http://10.1.1.1:8888,http://10.1.1.2:8888 # # Will sync each container at most once per interval # interval = 300 # # Maximum amount of time to spend syncing each container per pass # container_time = 60 # # Maximum amount of time in seconds for the connection attempt # conn_timeout = 5 # Server errors from requests will be retried by default # request_tries = 3 # # Internal client config file path # internal_client_conf_path = /etc/swift/internal-client.conf # Note: Put it at the beginning of the pipeline to profile all middleware. But # it is safer to put this after healthcheck. [filter:xprofile] use = egg:swift#xprofile # This option enable you to switch profilers which should inherit from python # standard profiler. Currently the supported value can be 'cProfile', # 'eventlet.green.profile' etc. # profile_module = eventlet.green.profile # # This prefix will be used to combine process ID and timestamp to name the # profile data file. Make sure the executing user has permission to write # into this path (missing path segments will be created, if necessary). # If you enable profiling in more than one type of daemon, you must override # it with an unique value like: /var/log/swift/profile/container.profile # log_filename_prefix = /tmp/log/swift/profile/default.profile # # the profile data will be dumped to local disk based on above naming rule # in this interval. # dump_interval = 5.0 # # Be careful, this option will enable profiler to dump data into the file with # time stamp which means there will be lots of files piled up in the directory. # dump_timestamp = false # # This is the path of the URL to access the mini web UI. # path = /__profile__ # # Clear the data when the wsgi server shutdown. # flush_at_shutdown = false # # unwind the iterator of applications # unwind = false