Authors/ChangeLog for 2.26.0
Change-Id: Ia8e31ed0d5aefe67f2f926dc92d9acd6c0c98007
This commit is contained in:
parent
4b2d8c2258
commit
d6c6ab764e
4
AUTHORS
4
AUTHORS
@ -193,6 +193,7 @@ Hanxi Liu (hanxi.liu@easystack.cn)
|
|||||||
Harshada Mangesh Kakad (harshadak@metsi.co.uk)
|
Harshada Mangesh Kakad (harshadak@metsi.co.uk)
|
||||||
Harshit Chitalia (harshit@acelio.com)
|
Harshit Chitalia (harshit@acelio.com)
|
||||||
HCLTech-SSW (hcl_ss_oss@hcl.com)
|
HCLTech-SSW (hcl_ss_oss@hcl.com)
|
||||||
|
Hervé Beraud (hberaud@redhat.com)
|
||||||
hgangwx (hgangwx@cn.ibm.com)
|
hgangwx (hgangwx@cn.ibm.com)
|
||||||
Hisashi Osanai (osanai.hisashi@gmail.com)
|
Hisashi Osanai (osanai.hisashi@gmail.com)
|
||||||
Hodong Hwang (hodong.hwang@kt.com)
|
Hodong Hwang (hodong.hwang@kt.com)
|
||||||
@ -268,6 +269,7 @@ Madhuri Kumari (madhuri.rai07@gmail.com)
|
|||||||
Mahati Chamarthy (mahati.chamarthy@gmail.com)
|
Mahati Chamarthy (mahati.chamarthy@gmail.com)
|
||||||
malei (malei@maleideMacBook-Pro.local)
|
malei (malei@maleideMacBook-Pro.local)
|
||||||
Mandell Degerness (mdegerness@swiftstack.com)
|
Mandell Degerness (mdegerness@swiftstack.com)
|
||||||
|
manuvakery1 (manu.km@idrive.com)
|
||||||
maoshuai (fwsakura@163.com)
|
maoshuai (fwsakura@163.com)
|
||||||
Marcelo Martins (btorch@gmail.com)
|
Marcelo Martins (btorch@gmail.com)
|
||||||
Maria Malyarova (savoreux69@gmail.com)
|
Maria Malyarova (savoreux69@gmail.com)
|
||||||
@ -438,9 +440,11 @@ zengjia (zengjia@awcloud.com)
|
|||||||
Zhang Guoqing (zhang.guoqing@99cloud.net)
|
Zhang Guoqing (zhang.guoqing@99cloud.net)
|
||||||
Zhang Jinnan (ben.os@99cloud.net)
|
Zhang Jinnan (ben.os@99cloud.net)
|
||||||
zhang.lei (zhang.lei@99cloud.net)
|
zhang.lei (zhang.lei@99cloud.net)
|
||||||
|
zhangboye (zhangboye@inspur.com)
|
||||||
zhangdebo1987 (zhangdebo@inspur.com)
|
zhangdebo1987 (zhangdebo@inspur.com)
|
||||||
zhangyanxian (zhangyanxianmail@163.com)
|
zhangyanxian (zhangyanxianmail@163.com)
|
||||||
Zhao Lei (zhaolei@cn.fujitsu.com)
|
Zhao Lei (zhaolei@cn.fujitsu.com)
|
||||||
|
zhaoleilc (15247232416@163.com)
|
||||||
Zheng Yao (zheng.yao1@zte.com.cn)
|
Zheng Yao (zheng.yao1@zte.com.cn)
|
||||||
zheng yin (yin.zheng@easystack.cn)
|
zheng yin (yin.zheng@easystack.cn)
|
||||||
Zhenguo Niu (zhenguo@unitedstack.com)
|
Zhenguo Niu (zhenguo@unitedstack.com)
|
||||||
|
124
CHANGELOG
124
CHANGELOG
@ -1,3 +1,127 @@
|
|||||||
|
swift (2.26.0, OpenStack Victoria)
|
||||||
|
|
||||||
|
* Extend concurrent reads to erasure coded policies. Previously, the
|
||||||
|
options `concurrent_gets` and `concurrency_timeout` only applied to
|
||||||
|
replicated policies.
|
||||||
|
|
||||||
|
* Add a new `concurrent_ec_extra_requests` option to allow the proxy to
|
||||||
|
make some extra backend requests immediately. The proxy will respond as
|
||||||
|
soon as there are enough responses available to reconstruct.
|
||||||
|
|
||||||
|
* The concurrent read options (`concurrent_gets`, `concurrency_timeout`,
|
||||||
|
and `concurrent_ec_extra_requests`) may now be configured per
|
||||||
|
storage-policy.
|
||||||
|
|
||||||
|
* Replication servers can now handle all request methods. This allows
|
||||||
|
ssync to work with a separate replication network.
|
||||||
|
|
||||||
|
* All background daemons now use the replication network. This allows
|
||||||
|
better isolation between external, client-facing traffic and internal,
|
||||||
|
background traffic. Note that during a rolling upgrade, replication
|
||||||
|
servers may respond with `405 Method Not Allowed`. To avoid this,
|
||||||
|
operators should remove the config option `replication_server = true`
|
||||||
|
from their replication servers; this will allow them to handle all
|
||||||
|
request methods before upgrading.
|
||||||
|
|
||||||
|
* S3 API improvements:
|
||||||
|
|
||||||
|
* Fixed some SignatureDoesNotMatch errors when using the AWS .NET SDK.
|
||||||
|
|
||||||
|
* Add basic read support for object tagging. This improves
|
||||||
|
compatibility with AWS CLI version 2. Write support is not
|
||||||
|
yet implemented, so the tag set will always be empty.
|
||||||
|
|
||||||
|
* CompleteMultipartUpload requests may now be safely retried.
|
||||||
|
|
||||||
|
* Improved quota-exceeded error messages.
|
||||||
|
|
||||||
|
* Improved logging and statsd metrics. Be aware that this will cause
|
||||||
|
an increase in the proxy-logging statsd metrics emited for S3
|
||||||
|
responses. However, this should more accurately reflect the state
|
||||||
|
of the system.
|
||||||
|
|
||||||
|
* S3 requests are now less demanding on the container layer.
|
||||||
|
|
||||||
|
* Python 3 bug fixes:
|
||||||
|
|
||||||
|
* Fixed an error when reading encrypted data that was written while
|
||||||
|
running Python 2 for a path that includes non-ASCII characters. This
|
||||||
|
was caused by a difference in string types that resulted in
|
||||||
|
ambiguity when decrypting. To prevent the ambiguity for new data, set
|
||||||
|
`meta_version_to_write = 3` in your keymaster configuration after
|
||||||
|
upgrading all proxy servers.
|
||||||
|
|
||||||
|
If upgrading from Swift 2.20.0 or Swift 2.19.1 or earlier, set
|
||||||
|
`meta_version_to_write = 1` in your keymaster configuration prior
|
||||||
|
to upgrading.
|
||||||
|
|
||||||
|
* Object expiration respects the `expiring_objects_container_divisor`
|
||||||
|
config option.
|
||||||
|
|
||||||
|
* `fallocate_reserve` may be specified as a percentage in more places.
|
||||||
|
|
||||||
|
* The ETag-quoting middleware no longer raises TypeErrors.
|
||||||
|
|
||||||
|
* Sharding improvements:
|
||||||
|
|
||||||
|
* Prevent object updates from auto-creating shard containers. This
|
||||||
|
ensures more consistent listings for sharded containers during
|
||||||
|
rebalances.
|
||||||
|
|
||||||
|
* Deleted shard containers are no longer considered root containers.
|
||||||
|
This prevents unnecessary sharding audit failures and allows the
|
||||||
|
deleted shard database to actually be unlinked.
|
||||||
|
|
||||||
|
* `swift-container-info` now summarizes shard range information.
|
||||||
|
Pass `-v`/`--verbose` if you want to see all of them.
|
||||||
|
|
||||||
|
* Improved container-sharder stat reporting to reduce load on root
|
||||||
|
container databases.
|
||||||
|
|
||||||
|
* Don't inject shard ranges when user quits.
|
||||||
|
|
||||||
|
* Servers now open one listen socket per worker, ensuring each worker
|
||||||
|
serves roughly the same number of concurrent connections.
|
||||||
|
|
||||||
|
* Server workers may now be gracefully terminated via `SIGHUP` or
|
||||||
|
`SIGUSR1`. The parent process will then spawn a fresh worker.
|
||||||
|
|
||||||
|
* During rebalances, clients should no longer get 404s for data that
|
||||||
|
exists but whose replicas are overloaded.
|
||||||
|
|
||||||
|
* Improved cache management for account and container responses.
|
||||||
|
|
||||||
|
* Allow proxy-logging middlewares to be configured more independently.
|
||||||
|
|
||||||
|
* Allow operators to pass either raw or URL-quoted paths to
|
||||||
|
swift-get-nodes. Notably, this allows swift-get-nodes to work with
|
||||||
|
the reserved namespace used for object versioning.
|
||||||
|
|
||||||
|
* Container read ACLs now work with object versioning. This only
|
||||||
|
allows access to the most-recent version via an unversioned URL.
|
||||||
|
|
||||||
|
* Improved how containers reclaim deleted rows to reduce locking and object
|
||||||
|
update throughput.
|
||||||
|
|
||||||
|
* Large object reads log fewer client disconnects.
|
||||||
|
|
||||||
|
* Allow ratelimit to be placed multiple times in a proxy pipeline,
|
||||||
|
such as both before s3api and auth (to handle swift requests without
|
||||||
|
needing to make an auth decision) and after (to limit S3 requests).
|
||||||
|
|
||||||
|
* Shuffle object-updater work. This somewhat reduces the impact a
|
||||||
|
single overloaded database has on other containers' listings.
|
||||||
|
|
||||||
|
* Fix a proxy-server error when retrieving erasure coded data when
|
||||||
|
there are durable fragments but not enough to reconstruct.
|
||||||
|
|
||||||
|
* Fix an error in the proxy server when finalizing data.
|
||||||
|
|
||||||
|
* Improve performance when increasing partition power.
|
||||||
|
|
||||||
|
* Various other minor bug fixes and improvements.
|
||||||
|
|
||||||
|
|
||||||
swift (2.25.0, OpenStack Ussuri)
|
swift (2.25.0, OpenStack Ussuri)
|
||||||
|
|
||||||
* WSGI server processes can now notify systemd when they are ready.
|
* WSGI server processes can now notify systemd when they are ready.
|
||||||
|
216
releasenotes/notes/2_26_0_release-6548eadcba544f72.yaml
Normal file
216
releasenotes/notes/2_26_0_release-6548eadcba544f72.yaml
Normal file
@ -0,0 +1,216 @@
|
|||||||
|
---
|
||||||
|
features:
|
||||||
|
- |
|
||||||
|
Extend concurrent reads to erasure coded policies. Previously, the
|
||||||
|
options ``concurrent_gets`` and ``concurrency_timeout`` only applied to
|
||||||
|
replicated policies.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Add a new ``concurrent_ec_extra_requests`` option to allow the proxy to
|
||||||
|
make some extra backend requests immediately. The proxy will respond as
|
||||||
|
soon as there are enough responses available to reconstruct.
|
||||||
|
|
||||||
|
- |
|
||||||
|
The concurrent read options (``concurrent_gets``, ``concurrency_timeout``,
|
||||||
|
and ``concurrent_ec_extra_requests``) may now be configured per
|
||||||
|
storage-policy.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Replication servers can now handle all request methods. This allows
|
||||||
|
ssync to work with a separate replication network.
|
||||||
|
|
||||||
|
- |
|
||||||
|
All background daemons now use the replication network. This allows
|
||||||
|
better isolation between external, client-facing traffic and internal,
|
||||||
|
background traffic. Note that during a rolling upgrade, replication
|
||||||
|
servers may respond with ``405 Method Not Allowed``. To avoid this,
|
||||||
|
operators should remove the config option ``replication_server = true``
|
||||||
|
from their replication servers; this will allow them to handle all
|
||||||
|
request methods before upgrading.
|
||||||
|
|
||||||
|
- |
|
||||||
|
S3 API improvements:
|
||||||
|
|
||||||
|
* Fixed some SignatureDoesNotMatch errors when using the AWS .NET SDK.
|
||||||
|
|
||||||
|
* Add basic read support for object tagging. This improves
|
||||||
|
compatibility with AWS CLI version 2. Write support is not
|
||||||
|
yet implemented, so the tag set will always be empty.
|
||||||
|
|
||||||
|
* CompleteMultipartUpload requests may now be safely retried.
|
||||||
|
|
||||||
|
* Improved quota-exceeded error messages.
|
||||||
|
|
||||||
|
* Improved logging and statsd metrics. Be aware that this will cause
|
||||||
|
an increase in the proxy-logging statsd metrics emited for S3
|
||||||
|
responses. However, this should more accurately reflect the state
|
||||||
|
of the system.
|
||||||
|
|
||||||
|
* S3 requests are now less demanding on the container layer.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Servers now open one listen socket per worker, ensuring each worker
|
||||||
|
serves roughly the same number of concurrent connections.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Server workers may now be gracefully terminated via ``SIGHUP`` or
|
||||||
|
``SIGUSR1``. The parent process will then spawn a fresh worker.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Allow proxy-logging middlewares to be configured more independently.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Improve performance when increasing partition power.
|
||||||
|
|
||||||
|
issues:
|
||||||
|
- |
|
||||||
|
In a rolling upgrade from liberasurecode 1.5.0 or earlier to 1.6.0 or
|
||||||
|
later, object-servers may quarantine newly-written data, leading to
|
||||||
|
availability issues or even data loss. See `bug 1886088
|
||||||
|
<https://bugs.launchpad.net/liberasurecode/+bug/1886088>`__ for more
|
||||||
|
information, including how to determine whether you are affected.
|
||||||
|
Several mitigations are available to operators:
|
||||||
|
|
||||||
|
* If proxy and object layers can be upgraded independently and proxies
|
||||||
|
can be upgraded quickly:
|
||||||
|
|
||||||
|
1. Stop and disable the object-reconstructor before upgrading. This
|
||||||
|
ensures no upgraded object server starts writing new fragments
|
||||||
|
that old object servers would quarantine.
|
||||||
|
|
||||||
|
2. Upgrade liberasurecode on all object servers. Object servers can
|
||||||
|
now read both old and new fragments.
|
||||||
|
|
||||||
|
3. Upgrade liberasurecode on all proxy servers. Newly-written data
|
||||||
|
will now use new fragments. Note that not-yet-upgraded proxies
|
||||||
|
will not be able to read these newly-written fragments but will
|
||||||
|
instead respond ``500 Internal Server Error``.
|
||||||
|
|
||||||
|
4. After upgrading, re-enable and restart the object-reconstructor.
|
||||||
|
|
||||||
|
* If your users can tolerate it, consider a read-only rolling upgrade.
|
||||||
|
Before upgrading, enable the `read-only middleware
|
||||||
|
<https://docs.openstack.org/swift/latest/middleware.html#read-only>`__
|
||||||
|
cluster-wide to prevent new writes during the upgrade. Additionally,
|
||||||
|
stop and disable the object-reconstructor as above. Upgrade normally,
|
||||||
|
then disable the read-only middleware and re-enable and restart the
|
||||||
|
object-reconstructor.
|
||||||
|
|
||||||
|
* Avoid upgrading liberasurecode until swift and liberasurecode
|
||||||
|
better-support a rolling upgrade. Swift remains compatible with
|
||||||
|
liberasurecode 1.5.0 and earlier.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
Ubuntu 18.04 and RDO's CentOS 7 repos package liberasurecode 1.5.0,
|
||||||
|
while Ubuntu 20.04 and RDO's CentOS 8 repos currently package
|
||||||
|
liberasurecode 1.6.0 or 1.6.1. Take care when upgrading major distro
|
||||||
|
versions!
|
||||||
|
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
**If your cluster has encryption enabled and is still running Swift
|
||||||
|
under Python 2**, we recommend upgrading Swift *before* transitioning to
|
||||||
|
Python 3. Otherwise, new writes to objects with non-ASCII characters
|
||||||
|
in their paths may result in corrupted downloads when read from a
|
||||||
|
proxy-server still running old swift on Python 2. See `bug 1888037
|
||||||
|
<https://bugs.launchpad.net/swift/+bug/1888037>`__ for more information.
|
||||||
|
Note that new tags including a fix for the bug are planned for all
|
||||||
|
maintained stable branches; upgrading to any one of those should be
|
||||||
|
sufficient to ensure a smooth upgrade to the latest Swift.
|
||||||
|
|
||||||
|
- |
|
||||||
|
The above bug was caused by a difference in string types that resulted
|
||||||
|
in ambiguity when decrypting. To prevent the ambiguity for new data, set
|
||||||
|
``meta_version_to_write = 3`` in your keymaster configuration *after*
|
||||||
|
upgrading all proxy servers.
|
||||||
|
|
||||||
|
If upgrading from Swift 2.20.0 or Swift 2.19.1 or earlier, set
|
||||||
|
``meta_version_to_write = 1`` in your keymaster configuration *prior*
|
||||||
|
to upgrading.
|
||||||
|
|
||||||
|
See the provided ``keymaster.conf-sample`` for more information about
|
||||||
|
this setting.
|
||||||
|
|
||||||
|
- |
|
||||||
|
**If your cluster is configured with a separate replication network**,
|
||||||
|
note that background daemons will switch to using this network for all
|
||||||
|
traffic. If your account, container, or object replication servers are
|
||||||
|
configured with ``replication_server = true``, these daemons may log a
|
||||||
|
flood of ``405 Method Not Allowed`` messages during a rolling upgrade.
|
||||||
|
To avoid this, comment out the option and restart replication servers
|
||||||
|
before upgrading.
|
||||||
|
|
||||||
|
fixes:
|
||||||
|
- |
|
||||||
|
Python 3 bug fixes:
|
||||||
|
|
||||||
|
* Fixed an error when reading encrypted data that was written while
|
||||||
|
running Python 2 for a path that includes non-ASCII characters.
|
||||||
|
|
||||||
|
* Object expiration respects the ``expiring_objects_container_divisor``
|
||||||
|
config option.
|
||||||
|
|
||||||
|
* ``fallocate_reserve`` may be specified as a percentage in more places.
|
||||||
|
|
||||||
|
* The ETag-quoting middleware no longer raises TypeErrors.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Sharding improvements:
|
||||||
|
|
||||||
|
* Prevent object updates from auto-creating shard containers. This
|
||||||
|
ensures more consistent listings for sharded containers during
|
||||||
|
rebalances.
|
||||||
|
|
||||||
|
* Deleted shard containers are no longer considered root containers.
|
||||||
|
This prevents unnecessary sharding audit failures and allows the
|
||||||
|
deleted shard database to actually be unlinked.
|
||||||
|
|
||||||
|
* ``swift-container-info`` now summarizes shard range information.
|
||||||
|
Pass ``-v``/``--verbose`` if you want to see all of them.
|
||||||
|
|
||||||
|
* Improved container-sharder stat reporting to reduce load on root
|
||||||
|
container databases.
|
||||||
|
|
||||||
|
* Don't inject shard ranges when user quits.
|
||||||
|
|
||||||
|
- |
|
||||||
|
During rebalances, clients should no longer get 404s for data that
|
||||||
|
exists but whose replicas are overloaded.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Improved cache management for account and container responses.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Allow operators to pass either raw or URL-quoted paths to
|
||||||
|
``swift-get-nodes``. Notably, this allows ``swift-get-nodes`` to
|
||||||
|
work with the reserved namespace used for object versioning.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Container read ACLs now work with object versioning. This only
|
||||||
|
allows access to the most-recent version via an unversioned URL.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Improved how containers reclaim deleted rows to reduce locking and object
|
||||||
|
update throughput.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Large object reads log fewer client disconnects.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Allow ratelimit to be placed multiple times in a proxy pipeline,
|
||||||
|
such as both before s3api and auth (to handle swift requests without
|
||||||
|
needing to make an auth decision) and after (to limit S3 requests).
|
||||||
|
|
||||||
|
- |
|
||||||
|
Shuffle object-updater work. This somewhat reduces the impact a
|
||||||
|
single overloaded database has on other containers' listings.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Fix a proxy-server error when retrieving erasure coded data when
|
||||||
|
there are durable fragments but not enough to reconstruct.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Fix an error in the proxy server when finalizing data.
|
||||||
|
|
||||||
|
- |
|
||||||
|
Various other minor bug fixes and improvements.
|
Loading…
x
Reference in New Issue
Block a user