89eced960c5bf5c2e14b6245c70b615dc23d45a6
Commit Graph

1223 Commits

Author SHA1 Message Date
Jenkins
f7c55c169a Merge "Turn on warning-is-error in doc build" 2017年08月08日 03:33:14 +00:00
yanghuichan
e9d0a7acab Replacing six.iter/dict.iter usages
Replacing six.iter usages substituting .items(), and
.values() in place of six.iteritems/dict.iteritems,
and six.itervalues/itervalues respectively.
1.As mentioned in [1], we should avoid using six.iteritems
to achieve iterators. We can use dict.items instead, as it
will return iterators in PY3 as well. And dict.items/keys
will more readable.
2.In py2, the performance about listshould be negligible,
see the link [2].
[1] https://wiki.openstack.org/wiki/Python3#Common patterns
[2] http://lists.openstack.org/pipermail/openstack-dev/2015-June/066391.html
Change-Id: I53e3ed77c8279ac48f738e396672794300de440d
2017年08月07日 16:41:49 +08:00
shangxiaobj
c93c0c0c6e [Trivialfix]Fix typos in swift
Fix typos that found in swift.
Change-Id: I52fad1a4882cec4456f22174b46d54e42ec66d97
2017年08月04日 07:50:10 +00:00
Mathias Bjoerkqvist
77bd74da09 Retrieve encryption root secret from Barbican
This patch adds support for retrieving the encryption root secret from
an external key management system. In practice, this is currently
limited to Barbican.
Change-Id: I1700e997f4ae6fa1a7e68be6b97539a24046e80b
2017年08月02日 15:53:09 +03:00
Jenkins
019515e153 Merge "Update and optimize documentation links" 2017年08月01日 21:27:18 +00:00
junboli
0d07e3fdb1 Update and optimize documentation links
* Update URLs according to document migration
 * Update the dead and outdated links
Change-Id: Id92552f4a2d0fb79ddefc55a08636f2e7aeb07cb
2017年08月01日 15:12:00 +01:00
Akihiro Motoki
d18e847c94 Turn on warning-is-error in doc build
* Fixes warnings in RST file
* Suppress warning log from pyeclib during the doc build.
 pyeclib emits a warning message on an older liberasurecode [1]
 and sphinx treats this as error (when warning-is-error is set).
 There is no need to check warnings during the doc build,
 so we can safely suppress the warning.
This is a part of the doc migration community-wide effort.
http://specs.openstack.org/openstack/docs-specs/specs/pike/os-manuals-migration.html
[1] https://github.com/openstack/pyeclib/commit/d163972b
Change-Id: I9adaee29185a2990cc3985bbe0dd366e22f4f1a2
2017年07月30日 14:56:12 +00:00
Jenkins
0e3926f471 Merge "added .htaccess redirect file for docs" 2017年07月28日 00:53:40 +00:00
John Dickinson
9155e6f0d7 added .htaccess redirect file for docs
also added a test redirect so we know if things are working
Change-Id: I8fd848c23053e52e45fa55637f280124eba74927
2017年07月27日 14:06:51 -07:00
Clay Gerrard
701a172afa Add multiple worker processes strategy to reconstructor
This change adds a new Strategy concept to the daemon module similar to
how we manage WSGI workers. We need to leverage multiple python
processes to get the concurrency properties we need. More workers will
rebalance much faster on dense chassis with many devices.
Currently the default is still only one process, and no workers. Set
reconstructor_workers in the [object-reconstructor] section to some
whole number <= the number of devices on a node to get that many
reconstructor workers.
Each worker will operate on a different subset of disks.
Once mode works as before, but tends to want to update recon drops a
little bit more.
If you change the rings, the strategy will shutdown workers and spawn
new ones.
You can kill the worker pids and the daemon strategy will respawn them.
New per-disk reconstructor stats are dumped to recon under the
object_reconstruction_per_disk key. To maintain legacy compatibility
and replication monitoring based on cycle times they are aggregated
every stats_interval (default 5 mins).
Change-Id: I28925a37f3985c9082b5a06e76af4dc3ec813abe
2017年07月26日 16:55:10 -07:00
Alistair Coles
b599b48f69 Clarify usage of replicator and reconstructor override options
Clarify in usage statement and man pages that CLI override options for
swift-object-reconstructor and swift-object-replicator only have
effect when --once is used.
Also add a link to object reconstructor source code docs to the doc
index page for consistency with the other object services.
Change-Id: If348b340d59a672d3a19d4df231ebdb74f4aed51
2017年07月26日 12:53:46 +01:00
Jenkins
4e4028e59f Merge "moved install guide and removed tox env definition" 2017年07月21日 23:21:52 +00:00
Alistair Coles
5b10cf530b Add more structure to the deployment guide
Previously it was hard to navigate to a particular config section in
the deployment guide, and not possible to provide a link directly to
one section.
This patch makes each config section a heading so that it appears in
navigation tables and can be easily linked to. A list of config
sections is also added at the start of each server section.
Change-Id: Iecb0637fde521600a9163fa66b3dbdc176a71dff
Related-Bug: #1626290 
2017年07月20日 17:01:36 +01:00
Alistair Coles
9c5628b4f1 Add reconstructor section to deployment guide
Change-Id: I062998e813718828b7adf4e7c3f877b6a31633c0
Closes-Bug: #1626290 
2017年07月20日 11:40:17 +01:00
Tim Burke
13a07aa77a Misc doc cleanup
* Change some absolute URLs to internal links
* Fix some bulletted list indentation
* Choose a better lexer for some syntax highlighting
* Use ``inline code`` instead of `italics` for some example command
 lines
* Change some quoted paragraphs that only included inlined code to be
 proper code blocks
Change-Id: Iaaa7eefb690122f5af9dcb1c871358c22335c743
2017年07月12日 12:14:45 -07:00
Tim Burke
63c4215994 Fix rst for link
Change-Id: I2f63ce16ae67277504a47e68c7dca3c3412fe92c
2017年07月11日 18:38:43 -07:00
John Dickinson
239dfb559c moved install guide and removed tox env definition
Change-Id: I966f849804cd5eeeae566bc7e732c7bf56bc9eaf
2017年07月10日 13:49:28 -07:00
Tim Burke
d112b7d29d First pass at admin-guide cleanup
Change-Id: I005232d95a3e1d181271eef488a828ad330e6006
2017年07月07日 17:33:54 +00:00
John Dickinson
4cb76a41ce docs migration from openstack-manuals
Context for this is at
https://specs.openstack.org/openstack/docs-specs/specs/pike/os-manuals-migration.html
Change-Id: I9a4da27ce1d56b6406e2db979698038488f3cf6f
2017年07月06日 16:44:25 -07:00
Jenkins
37a1935198 Merge "Switch from oslosphinx to openstackdocstheme" 2017年07月06日 18:16:43 +00:00
Jenkins
c3f6e82ae1 Merge "Write-affinity aware object deletion" 2017年07月06日 14:00:05 +00:00
Jenkins
e94b383655 Merge "Add support to increase object ring partition power" 2017年07月05日 14:40:42 +00:00
Jenkins
f1e1dbb80a Merge "Make eventlet.tpool's thread count configurable in object server" 2017年07月04日 11:49:24 +00:00
Van Hung Pham
bfb5759a53 Switch from oslosphinx to openstackdocstheme
As part of the docs migration work[0] for Pike we need to switch to use
the openstackdocstheme.
Fix one display problem with wrong section markup in the index file.
[0]https://review.openstack.org/#/c/472275/
Change-Id: Ide31218a7f37ba5d959de99cab48fc6513bf426f
2017年07月02日 09:27:05 +02:00
Jenkins
638fcc152b Merge "Bind SAIO services on different loopback addresses" 2017年07月01日 05:17:34 +00:00
Matthew Oliver
e11a38c63a Bind SAIO services on different loopback addresses
Currently all devices in the ring and all services in a SAIO
all bind to the same loopback address 127.0.0.1. But this
breaks servers_per_port if you want to do any testing on that.
This change binds each service to a different loopback address
and updates the rings (remakerings) accordingly.
To make sure rysncd binds correctly the bind address needed
to be changed to listen on all addresses (0.0.0.0).
Change-Id: I7e77434f275df1e2699de495d8b622b90157a9d7
2017年06月27日 16:08:08 -04:00
Lingxian Kong
831eb6e3ce Write-affinity aware object deletion
When deleting objects in multi-region swift delpoyment with write
affinity configured, users always get 404 when deleting object before
it's replcated to approriate nodes.
This patch adds a config item 'write_affinity_handoff_delete_count' so
that operator could define how many local handoff nodes should swift
send request to get more candidates for the final response, or by
default just leave it to swift to calculate the appropriate number.
Change-Id: Ic4ef82e4fc1a91c85bdbc6bf41705a76f16d1341
Closes-Bug: #1503161 
2017年06月27日 22:42:02 +12:00
Samuel Merritt
d9c4913e3b Make eventlet.tpool's thread count configurable in object server
If you're running servers_per_port > 0 and threads_per_disk = 0 (as it
should be with servers_per_port on), each object-server process will
have 20 IO threads waiting around to service eventlet.tpool
calls. This is far too many; with servers_per_port, there's no real
benefit to having so many IO threads.
This commit makes it so that, when servers_per_port > 0, each object
server defaults to having one main thread and one IO thread.
Also, eventlet's tpool size is now configurable via the object-server
config file. If a tpool size is set, that's what we'll use regardless
of servers_per_port. This allows operators with an excess of threads
to remove some regardless of servers_per_port.
Change-Id: I8f8914b7e70f2510393eb7c5e6be9708631ac027
Closes-Bug: 1554233
2017年06月23日 16:16:03 +10:00
Jenkins
2d18ecdf4b Merge "Replace slowdown option with *_per_second option" 2017年06月22日 01:18:26 +00:00
Jenkins
169d1d8ab8 Merge "Require that known-bad EC schemes be deprecated" 2017年06月22日 01:11:03 +00:00
Ondřej Nový
a8bc94c7e3 Replace slowdown option with *_per_second option
container and object updaters sleeps "slowdown" (default 0.01) seconds
after every processed container/object. Because time.sleep call adds overhead,
use ratelimit_sleep from common.utils instead. Same as in auditor.
Change-Id: I362aa0f13c78ad03ce1f76ee0257b0646f981212
2017年06月16日 19:22:00 +00:00
Tim Burke
2c3ac543f4 Require that known-bad EC schemes be deprecated
We said we were going to do it, we've had two releases saying we'd do
it, we've even backported our saying it to Newton -- let's actually do
it.
Upgrade Consideration
=====================
Erasure-coded storage policies using isa_l_rs_vand and nparity >= 5 must
be configured as deprecated, preventing any new containers from being
created with such a policy. This configuration is known to harm data
durability. Any data in such policies should be migrated to a new
policy. See https://bugs.launchpad.net/swift/+bug/1639691 for more
information.
UpgradeImpact
Related-Change: I50159c9d19f2385d5f60112e9aaefa1a68098313
Change-Id: I8f9de0bec01032d9d9b58848e2a76ac92e65ab09
Closes-Bug: 1639691
2017年06月16日 17:58:43 +00:00
Christian Schwede
e1140666d6 Add support to increase object ring partition power
This patch adds methods to increase the partition power of an existing
object ring without downtime for the users using a 3-step process. Data
won't be moved to other nodes; objects using the new increased partition
power will be located on the same device and are hardlinked to avoid
data movement.
1. A new setting "next_part_power" will be added to the rings, and once
the proxy server reloaded the rings it will send this value to the
object servers on any write operation. Object servers will now create a
hard-link in the new location to the original DiskFile object. Already
existing data will be relinked using a new tool in the new locations
using hardlinks.
2. The actual partition power itself will be increased. Servers will now
use the new partition power to read from and write to. No longer
required hard links in the old object location have to be removed now by
the relinker tool; the relinker tool reads the next_part_power setting
to find object locations that need to be cleaned up.
3. The "next_part_power" flag will be removed.
This mostly implements the spec in [1]; however it's not using an
"epoch" as described there. The idea of the epoch was to store data
using different partition powers in their own namespace to avoid
conflicts with auditors and replicators as well as being able to abort
such an operation and just remove the new tree. This would require some
heavy change of the on-disk data layout, and other object-server
implementations would be required to adopt this scheme too.
Instead the object-replicator is now aware that there is a partition
power increase in progress and will skip replication of data in that
storage policy; the relinker tool should be simply run and afterwards
the partition power will be increased. This shouldn't take that much
time (it's only walking the filesystem and hardlinking); impact should
be low therefore. The relinker should be run on all storage nodes at the
same time in parallel to decrease the required time (though this is not
mandatory). Failures during relinking should not affect cluster
operations - relinking can be even aborted manually and restarted later.
Auditors are not quarantining objects written to a path with a different
partition power and therefore working as before (though they are reading
each object twice in the worst case before the no longer needed hard
links are removed).
Co-Authored-By: Alistair Coles <alistair.coles@hpe.com>
Co-Authored-By: Matthew Oliver <matt@oliver.net.au>
Co-Authored-By: Tim Burke <tim.burke@gmail.com>
[1] https://specs.openstack.org/openstack/swift-specs/specs/in_progress/
increasing_partition_power.html
Change-Id: I7d6371a04f5c1c4adbb8733a71f3c177ee5448bb
2017年06月15日 15:08:48 -07:00
Jenkins
73da215bdf Merge "Ring doc cleanups" 2017年06月14日 02:54:03 +00:00
Jenkins
4315093a28 Merge "More Global EC doc updates" 2017年06月13日 21:13:07 +00:00
Tim Burke
b5ee8c88d0 Ring doc cleanups
Change-Id: Ie51ea5c729341da793887e1e25c1e45301a96751
2017年06月13日 09:23:23 -07:00
Clay Gerrard
4c7839d256 More Global EC doc updates
Soften the language about inefficiency on read and strengthen the
language encouraging the use of read affinity and composite rings.
Change-Id: Idc81a8c71e74ae28d384759700c5268d77ae3c85
2017年06月13日 10:08:20 +01:00
Jenkins
41c8f1330f Merge "Update Global EC docs with reference to composite rings" 2017年06月13日 06:26:54 +00:00
Alistair Coles
9665252352 Update Global EC docs with reference to composite rings
* In light of the composite rings feature being added [1],
 downgrade the warnings about EC Duplication [2] being
 experimental.
* Add links from Global EC docs to composite rings and
 per-policy proxy config features.
* Add discussion of using EC duplication with composite
 rings.
* Update Known Issues.
[1] Related-Change: I0d8928b55020592f8e75321d1f7678688301d797
[2] Related-Change: Idd155401982a2c48110c30b480966a863f6bd305
Change-Id: Id97a4899255945a6eaeacfef12fd29a2580588df
2017年06月12日 16:58:02 -07:00
Jenkins
7bbe02b290 Merge "Allow to configure the nameservers in cname_lookup" 2017年06月12日 19:48:45 +00:00
Tim Burke
d51ecb4ecc Remove threads_per_disk from object-server.conf manpages
That option was removed entirely in 2.8.0.
Change-Id: Ib40f816936429a78e622d3737bb0b064225d2d44
Related-Change: Ie76be5c8a74d60a1330627caace19e06d1b9383c
2017年06月01日 14:07:54 -07:00
Romain LE DISEZ
420e73fabd Allow to configure the nameservers in cname_lookup
For various reasons, an operator might want to use specifics nameservers
instead of the systems ones to resolve CNAME in cname_lookup. This patch
creates a new configuration variable nameservers which accepts a list of
nameservers separated by commas. If not specified or empty, systems
namservers are used as previously.
Co-Authored-By: Tim Burke <tim.burke@gmail.com>
Change-Id: I34219e6ab7e45678c1a80ff76a1ac0730c64ddde
2017年06月01日 14:02:08 -07:00
Jenkins
db45e1dd69 Merge "Add structure to storage policy configuration guide" 2017年05月31日 21:36:13 +00:00
Alistair Coles
37ba21face Add structure to storage policy configuration guide
The description of storage policy config options was
unstructured and repetitive. This patch attempts to
improve the doc by gathering the notes for each option
into a structured list.
Change-Id: I57090b35a70f365e82fb0e29ab42e533d6359a7b
2017年05月31日 11:11:32 +01:00
Jenkins
b9322a2f08 Merge "Add link from policies overview to per-policy proxy-server conf" 2017年05月30日 19:13:56 +00:00
Alistair Coles
227cef9933 Add link from policies overview to per-policy proxy-server conf
- add proxy server per policy config as an optional
 step in the configuration of a policy, with link to
 the deployment guide
- add reverse link from deployment guide per-policy
 config doc section to storage policies docs
Drive-by fix an incorrect test comment
Change-Id: Ib95310193270a63c9d1e321c6e7de240e00b387f
Related-Change: I3f718f425f525baa80045ba067950c752bcaaefc
2017年05月26日 10:41:35 +01:00
Tim Burke
d487bf7fb1 Remove tempauth docs from deployment guide
Instead, link to the middleware list and auth overview, as well as
referring readers to proxy-server.conf-sample
TempAuth-related content that was previously in the deployment guide has
been moved to TempAuth's own docs, which have been cleaned up a bit.
Change-Id: I00070bb09294362c069f7ee9426ac570bc1b3ddb
2017年05月25日 12:35:46 -07:00
Jenkins
263dc8a3f3 Merge "Enable per policy proxy config options" 2017年05月25日 06:34:48 +00:00
Alistair Coles
45884c1102 Enable per policy proxy config options
This is an alternative approach to that proposed in [1]
Adds support for optional per-policy config sections
to be added in proxy-server.conf. This is highly desirable
to allow per-policy affinity options to be set for use with
duplicated EC policies [2] and composite rings [3].
Certain options found in per-policy conf sections will
override their equivalents that may be set in the
[app:proxy-server] section. Currently the options
handled that way are:
 sorting_method
 read_affinity
 write_affinity
 write_affinity_node_count
For example:
 [proxy-server:policy:0]
 sorting_method = affinity
 read_affinity = r1=100
 write_affinity = r1
 write_affinity_node_count = 1 * replicas
The corresponding attributes of the proxy-server Application
are now available from instances of an OverrideConf object
that is obtained from Application.get_policy_options(policy).
[1] Related-Change: I9104fc789ba85ab3ab5ccd34096125b482821389
[2] Related-Change: Idd155401982a2c48110c30b480966a863f6bd305
[3] Related-Change: I0d8928b55020592f8e75321d1f7678688301d797
Co-Authored-By: Kota Tsuyuzaki <tsuyuzaki.kota@lab.ntt.co.jp>
Change-Id: I3f718f425f525baa80045ba067950c752bcaaefc
2017年05月23日 20:22:30 +01:00
Jenkins
a2e020c52b Merge "Add read and write affinity options to deployment guide" 2017年05月19日 19:05:33 +00:00