2722e49a8c844e2d20369e8aed230a972eb07e58
Commit Graph

1191 Commits

Author SHA1 Message Date
Alistair Coles
2722e49a8c Add support for multiple root encryption secrets
For some use cases operators would like to periodically introduce a
new encryption root secret that would be used when new object data is
written. However, existing encrypted data does not need to be
re-encrypted with keys derived from the new root secret. Older root
secret(s) would still be used as necessary to decrypt older object
data.
This patch modifies the KeyMaster class to support multiple root
secrets indexed via unique secret_id's, and to store the id of the
root secret used for an encryption operation in the crypto meta. The
decrypter is modified to fetch appropriate keys based on the secret id
in retrieved crypto meta.
The changes are backwards compatible with previous crypto middleware
configurations and existing encrypted object data.
Change-Id: I40307acf39b6c1cc9921f711a8da55d03924d232
2018年08月17日 17:54:30 +00:00
Zuul
d1675d0f54 Merge "Update saio sample config files" 2018年08月13日 21:26:29 +00:00
Thiago da Silva
0887f0985b Update saio sample config files
Added healthcheck middleware to account, container, object servers
Added the s3api, keymaster, encryption config to the proxy config
file to make it easy to enable it.
Change-Id: I96f120c5bc416e9aba388cbfa6c30b648d6ade2f
2018年08月13日 15:33:09 -04:00
John Dickinson
86d78f6667 imported some docs from the old user-guide
These files are imported (and very lightly edited) from the old
ocata user-guide. It has a few other swift-related docs that seemed
more duplacative of what we already have, but these seem to fill
existing gaps in our docs.
Change-Id: Ib00bf6992327f15f271120dc5dbc86a4a235baec
2018年08月01日 15:17:42 -07:00
Zuul
00373dad61 Merge "Add keymaster to fetch root secret from KMIP service" 2018年07月25日 03:49:50 +00:00
Zuul
89854250c3 Merge "Add fallocate_reserve to account and container servers." 2018年07月20日 08:42:51 +00:00
Samuel Merritt
8e651a2d3d Add fallocate_reserve to account and container servers.
The object server can be configured to leave a certain amount of disk
space free; default is 1%. This is useful in avoiding 100%-full
filesystems, as those can get Swift in a state where the filesystem is
too full to write tombstones, so you can't delete objects to free up
space.
When a cluster has accounts/containers and objects on the same disks,
then you can wind up with a 100%-full disk since account and container
servers don't respect fallocate_reserve. This commit makes account and
container servers respect fallocate_reserve so that disks shared
between account/container and object rings won't get 100% full.
When a disk's free space falls below the configured reserve, account
and container PUT, POST, and REPLICATE requests will fail with a 507
status code. These are the operations that can significantly increase
the disk space used by a given database.
I called the parameter "fallocate_reserve" for consistency with the
object server. No actual fallocate() call happens under Swift's
control in the account or container servers (sqlite3 might make such a
call, but it's out of our hands).
Change-Id: I083442eef14bf83c0ea717b1decb3e6b56dbf1d0
2018年07月18日 17:27:11 +10:00
Nguyen Hai
4409da697f Update doc building instructions in Development Guidelines
Change-Id: Ifd2f468ad745d19ef474ae7503a8bd79d429fc1b
2018年07月06日 07:40:52 +00:00
Alistair Coles
1951dc7e9a Add keymaster to fetch root secret from KMIP service
Add a new middleware that can be used to fetch an encryption root
secret from a KMIP service. The middleware uses a PyKMIP client
to interact with a KMIP endpoint. The middleware is configured with
a unique identifier for the key to be fetched and options required
for the PyKMIP client.
Co-Authored-By: Tim Burke <tim.burke@gmail.com>
Change-Id: Ib0943fb934b347060fc66c091673a33bcfac0a6d
2018年07月03日 09:00:21 +01:00
Alistair Coles
600521cf57 Describe separate keymaster config file in docs
The use of a separate keymaster config file was previously only
described in the context of the kms_keymaster middleware. This patch
adds a section to the simple keymaster middleware docs.
Change-Id: Ifa3ad9d6e892b81c52df1f6666a9881042ac60bd
2018年06月28日 12:57:57 +01:00
lvxianguo
f0e46857b7 fix misspelling of 'server'
Change-Id: I61f916d5734708a821c8d51961fc2d222967f6e8
2018年06月22日 18:32:28 +08:00
Alistair Coles
554c07aa5f Fix the example webhook middleware
Change-Id: I242dc8bc655a1d1243c2d4bd51fc62e4dcadc67b
2018年06月20日 10:49:30 +01:00
Zuul
a3cc7ccc69 Merge "Experimental swift-ring-composer CLI to build composite rings" 2018年06月15日 04:27:43 +00:00
Zuul
ea33638d0c Merge "object-updater: add concurrent updates" 2018年06月14日 20:37:06 +00:00
Alistair Coles
6b626f2f98 Experimental swift-ring-composer CLI to build composite rings
Provides a simple, experimental, CLI tool to generate a
composite ring from a list of component builder files.
For example:
 swift-ring-composer <composite-file> compose \
 <builder-file> <builder-file> --output <ring-file>
Commands available:
- compose: compose a list of builder file to a composite ring
- show: show the metadata for a composite ring
Co-Authored-By: Kota Tsuyuzaki <tsuyuzaki.kota@lab.ntt.co.jp>
Co-Authored-By: Matthew Oliver <matt@oliver.net.au>
Change-Id: I25a79e71c13af352e19e4358f60545265b51584f
2018年06月14日 09:50:55 +01:00
wangdequn
026f706563 rectify 'a integer number' to 'an integer number'
Change-Id: I307baf793cd39786b3a8a921f5b02c945e1dbf46
2018年06月14日 10:22:30 +08:00
Samuel Merritt
d5c532a94e object-updater: add concurrent updates
The object updater now supports two configuration settings:
"concurrency" and "updater_workers". The latter controls how many
worker processes are spawned, while the former controls how many
concurrent container updates are performed by each worker
process. This should speed the processing of async_pendings.
There is a change to the semantics of the configuration
options. Previously, "concurrency" controlled the number of worker
processes spawned, and "updater_workers" did not exist. I switched the
meanings for consistency with other configuration options. In the
object reconstructor, object replicator, object server, object
expirer, container replicator, container server, account replicator,
account server, and account reaper, "concurrency" refers to the number
of concurrent tasks performed within one process (for reference, the
container updater and object auditor use "concurrency" to mean number
of processes).
On upgrade, a node configured with concurrency=N will still handle
async updates N-at-a-time, but will do so using only one process
instead of N.
UpgradeImpact:
If you have a config file like this:
 [object-updater]
 concurrency = <N>
and you want to take advantage of faster updates, then do this:
 [object-updater]
 concurrency = 8 # the default; you can omit this line
 updater_workers = <N>
If you want updates to be processed exactly as before, do this:
 [object-updater]
 concurrency = 1
 updater_workers = <N>
Change-Id: I17e18088e61f664e1b9942d66423666d0cae1689
2018年06月13日 17:39:34 -07:00
Zuul
a42215b14f Merge "Fix typo in sharding docs" 2018年06月13日 09:33:29 +00:00
gaofei
f2295a688c Fix typo in sharding docs
This patch removes an additional 'and' added to a sentence.
Change-Id: I6ab47637ef2d2f97f35188a84e741274c2b504e8
2018年06月13日 04:44:44 +00:00
Zuul
5a4e193970 Merge "Added S3 compatibility information to docs" 2018年06月13日 04:00:10 +00:00
baiwenteng
e726473e26 Fix typos
replace a OpenStack bucket with an OpenStack bucket
Change-Id: I4ada68720dcf23fb9b94c922ddb3eefd42aa80a7
2018年06月11日 18:39:48 +08:00
Zuul
c01c43d982 Merge "Adds read_only middleware" 2018年06月07日 06:49:26 +00:00
John Dickinson
5078bb1254 Added S3 compatibility information to docs
Change-Id: I8a179e2e9dea1dac57a14696bc0abcd48753adfc
2018年05月31日 13:19:25 -07:00
Greg Lange
5d601b78f3 Adds read_only middleware
This patch adds a read_only middleware to swift. It gives the ability
to make an entire cluster or individual accounts read only.
When a cluster or an account is in read only mode, requests that would
result in writes to the cluser are not allowed.
DocImpact
Change-Id: I7e0743aecd60b171bbcefcc8b6e1f3fd4cef2478
2018年05月30日 03:26:36 +00:00
Thiago da Silva
36dbd38e48 Add s3api headers to allowed_headers by default
Previously, these headers had to be added by operators to their
object-server.conf when enabling swift3 middleware. Since s3api
is now imported into swift we should go ahead and add these headers
by default too.
Change-Id: Ib82e175096716e42aecdab48f01f079e09da6a1d
Signed-off-by: Thiago da Silva <thiago@redhat.com>
2018年05月29日 16:02:50 -04:00
zhangdebo
3d3393c17a Fix typo
Change-Id: I25bdb2020c10f4b3aede6994e9ffc3f05a054c29
2018年05月23日 10:34:16 +08:00
Alistair Coles
99023ef855 Maintain manage-shard-ranges docs in its module
Move the doc for manage-shard-ranges to the manage_shard_ranges.py module
and include it in overview_container_sharding.rst. This makes the doc for
manage-shard-ranges more obvious when viewing the code.
Change-Id: I27ca9b59897c5256dd5e2c3d4e26ff9e762b4a81
2018年05月22日 05:20:14 +09:00
Alistair Coles
4c559fccb7 Container sharding doc fixes and clarifications
Change-Id: I1e736c8da142adecc2b0b629cfd48afa072d40a0
2018年05月21日 11:58:18 +01:00
Alistair Coles
ea92e49980 Merge container sharding into master
Co-Authored-By: Clay Gerrard <clay.gerrard@gmail.com>
Co-Authored-By: John Dickinson <me@not.mn>
Co-Authored-By: Kazuhiro MIYAHARA <miyahara.kazuhiro@lab.ntt.co.jp>
Co-Authored-By: Matthew Oliver <matt@oliver.net.au>
Co-Authored-By: Samuel Merritt <sam@swiftstack.com>
Co-Authored-By: Tim Burke <tim.burke@gmail.com>
Change-Id: I964666d2c1ce893326c6aa2bbe9e1dd0312e7a9e
2018年05月18日 18:30:19 -07:00
Alistair Coles
5c5b08d047 Add container sharding documentation
Co-Authored-By: Matthew Oliver <matt@oliver.net.au>
Co-Authored-By: Tim Burke <tim.burke@gmail.com>
Co-Authored-By: Clay Gerrard <clay.gerrard@gmail.com>
Co-Authored-By: John Dickinson <me@not.mn>
Change-Id: I0693e54c1d7f3b77f53c3df5c616a16f74723b97
2018年05月18日 18:48:22 +01:00
Matthew Oliver
2641814010 Add sharder daemon, manage_shard_ranges tool and probe tests
The sharder daemon visits container dbs and when necessary executes
the sharding workflow on the db.
The workflow is, in overview:
- perform an audit of the container for sharding purposes.
- move any misplaced objects that do not belong in the container
 to their correct shard.
- move shard ranges from FOUND state to CREATED state by creating
 shard containers.
- move shard ranges from CREATED to CLEAVED state by cleaving objects
 to shard dbs and replicating those dbs. By default this is done in
 batches of 2 shard ranges per visit.
Additionally, when the auto_shard option is True (NOT yet recommeneded
in production), the sharder will identify shard ranges for containers
that have exceeded the threshold for sharding, and will also manage
the sharding and shrinking of shard containers.
The manage_shard_ranges tool provides a means to manually identify
shard ranges and merge them to a container in order to trigger
sharding. This is currently the recommended way to shard a container.
Co-Authored-By: Alistair Coles <alistairncoles@gmail.com>
Co-Authored-By: Tim Burke <tim.burke@gmail.com>
Co-Authored-By: Clay Gerrard <clay.gerrard@gmail.com>
Change-Id: I7f192209d4d5580f5a0aa6838f9f04e436cf6b1f
2018年05月18日 18:48:13 +01:00
Zuul
b2ea032d1c Merge "Small cleanup on s3api" 2018年05月03日 00:17:54 +00:00
David Rabel
5257ed033c Fix indentation in overview_backin_store.rst
Fix indentation of nested list.
Old indentation was wrongly interpreted as quotation
Change-Id: Ia9625bc3b7984501f4931b3428fa930a156bfe66
2018年05月02日 16:24:27 +02:00
Kota Tsuyuzaki
2c7768a3cb Small cleanup on s3api
This patch is one of follow up to remove unnecessary
files, and a comment in the code.
The conf files are used to setup functests environment
in the past swift3 repository but that should port to
setuppers of functests (see related change). Anyway,
we don't need shell based older conf.in script on that way.
Change-Id: If431979ea6fa373ac1cde4b7e13d57d91fb15be8
Related-Change: I6f30f74678ad35479da237361bee48c46c0ecc49
2018年05月01日 16:35:27 +09:00
Zuul
3313392462 Merge "Import swift3 into swift repo as s3api middleware" 2018年04月30日 16:00:56 +00:00
Kota Tsuyuzaki
636b922f3b Import swift3 into swift repo as s3api middleware
This attempts to import openstack/swift3 package into swift upstream
repository, namespace. This is almost simple porting except following items.
1. Rename swift3 namespace to swift.common.middleware.s3api
1.1 Rename also some conflicted class names (e.g. Request/Response)
2. Port unittests to test/unit/s3api dir to be able to run on the gate.
3. Port functests to test/functional/s3api and setup in-process testing
4. Port docs to doc dir, then address the namespace change.
5. Use get_logger() instead of global logger instance
6. Avoid global conf instance
Ex. fix various minor issue on those steps (e.g. packages, dependencies,
 deprecated things)
The details and patch references in the work on feature/s3api are listed
at https://trello.com/b/ZloaZ23t/s3api (completed board)
Note that, because this is just a porting, no new feature is developed since
the last swift3 release, and in the future work, Swift upstream may continue
to work on remaining items for further improvements and the best compatibility
of Amazon S3. Please read the new docs for your deployment and keep track to
know what would be changed in the future releases.
Change-Id: Ib803ea89cfee9a53c429606149159dd136c036fd
Co-Authored-By: Thiago da Silva <thiago@redhat.com>
Co-Authored-By: Tim Burke <tim.burke@gmail.com>
2018年04月27日 15:53:57 +09:00
Zuul
47efb5b969 Merge "Multiprocess object replicator" 2018年04月25日 00:41:21 +00:00
Samuel Merritt
c28004deb0 Multiprocess object replicator
Add a multiprocess mode to the object replicator. Setting the
"replicator_workers" setting to a positive value N will result in the
replicator using up to N worker processes to perform replication
tasks.
At most one worker per disk will be spawned, so one can set
replicator_workers=99999999 to always get one worker per disk
regardless of the number of disks in each node. This is the same
behavior that the object reconstructor has.
Worker process logs will have a bit of information prepended so
operators can tell which messages came from which worker. It looks
like this:
 [worker 1/2 pid=16529] 154/154 (100.00%) partitions replicated in 1.02s (150.87/sec, 0s remaining)
The prefix is "[worker M/N pid=P] ", where M is the worker's index, N
is the total number of workers, and P is the process ID. Every message
from the replicator's logger will have the prefix; this includes
messages from down in diskfile, but does not include things printed to
stdout or stderr.
Drive-by fix: don't dump recon stats when replicating only certain
policies. When running the object replicator with replicator_workers >
0 and "--policies=X,Y,Z", the replicator would update recon stats
after running. Since it only ran on a subset of objects, it should not
update recon, much like it doesn't update recon when run with
--devices or --partitions.
Change-Id: I6802a9ad9f1f9b9dafb99d8b095af0fdbf174dc5
2018年04月24日 04:05:08 +00:00
Tovin Seven
9b90498b07 Trivial: Update pypi url to new url
Pypi url changed from [1] to [2]
[1] https://pypi.python.org/pypi/<package>
[2] https://pypi.org/project/<package>
Change-Id: Ic639298e83189410395f31cc9ef60076af479efd
2018年04月20日 17:30:47 +07:00
John Dickinson
87dad294cc added another golang client to associated projects
Change-Id: I04f5c14586ad4ecac03d18992b8cf351d6eab1e3
2018年04月19日 17:40:33 -07:00
Zuul
260bd2601b Merge "Deprecate auth_uri option" 2018年04月19日 01:56:03 +00:00
wangqi
708b24aef1 Deprecate auth_uri option
Option auth_uri from group keystone_authtoken is deprecated[1].
Use option www_authenticate_uri from group keystone_authtoken.
[1]https://review.openstack.org/#/c/508522/
Change-Id: I43bbc8b8c986e54a9a0829a0631d78d4077306f8
2018年04月18日 02:07:11 +00:00
John Dickinson
6a428c4266 updated associated projects page
* Cleaned up the SDK/library links
* Added a few projects
* Fixed some existing links
* Removed some very old, unmaintained projects
Change-Id: I3effd920e978eb7af39ab27b4877a7bfc8c64b8b
2018年04月17日 15:19:35 -07:00
Zuul
e4660a3e31 Merge "Add manpage for swift-object-relinker" 2018年04月11日 01:35:07 +00:00
Zuul
f8175ea345 Merge "Add full working example of sharing a container with another user" 2018年04月11日 00:15:30 +00:00
wangqi
a027f2c105 Follow the new PTI for document build
For compliance with the Project Testing Interface as described in:
https://governance.openstack.org/tc/reference/project-testing-interface.html
For more details information, please refer to:
http://lists.openstack.org/pipermail/openstack-dev/2017-December/125710.html
http://lists.openstack.org/pipermail/openstack-dev/2018-March/128594.html
Co-Authored-By: Nguyen Hai <nguyentrihai93@gmail.com>
Change-Id: I26dc41c7df57bf79db531c6e67e148e01c17e992
2018年03月26日 12:53:37 +00:00
Tim Burke
9eeacbf150 Fix new doc warnings resulting from Sphinx 1.7.1
Change-Id: Id6678dd7e59a85bc2a7b3ba3d41d28e08956ae3e
2018年03月02日 14:56:57 +00:00
melissaml
5017864133 Fix the incorrect reference links
TrivialFix
[1] is the installation guide for OpenStack components, obviously,
we need [1] in the docs.
[1] https://docs.openstack.org/latest/install/
Change-Id: I3c6fe7327f5552cc2b8f0f0e42b41f8e989a0a7e
2018年02月26日 15:49:10 +08:00
Tim Burke
0a993437d1 Update install-guide URLs to point to stable/queens
Change-Id: I7b2dd19f18cbfac3bc3ea763cd3333e3fb68f1cd
2018年02月08日 10:57:49 -08:00
Zuul
d800c177cc Merge "Replace Chinese punctuation with English punctuation" 2018年01月31日 01:48:12 +00:00