Files
swift/etc/object-server.conf-sample
Tim Burke 599f63e762 ec: Add an option to write fragments with legacy crc
When upgrading from liberasurecode<=1.5.0, you may want to continue
writing legacy CRCs until all nodes are upgraded and capabale of reading
fragments with zlib CRCs.

Starting in liberasurecode>=1.6.2, we can use the environment variable
LIBERASURECODE_WRITE_LEGACY_CRC to control whether we write zlib or
legacy CRCs, but for many operators it's easier to manage swift configs
than environment variables. Add a new option, write_legacy_ec_crc, to the
proxy-server app and object-reconstructor; if set to true, ensure legacy
frags are written.

Note that more daemons instantiate proxy-server apps than just the
proxy-server. The complete set of impacted daemons should be:

  * proxy-server
  * object-reconstructor
  * container-reconciler
  * any users of internal-client.conf

UpgradeImpact
=============
To ensure a smooth liberasurecode upgrade:

 1. Determine whether your cluster writes legacy or zlib CRCs. Depending
    on the order in which shared libraries are loaded, your servers may
    already be reading and writing zlib CRCs, even with old
    liberasurecode. In that case, no special action is required and
    WRITING LEGACY CRCS DURING THE UPGRADE WILL CAUSE AN OUTAGE.
    Just upgrade liberasurecode normally. See the closed bug for more
    information and a script to determine which CRC is used.
 2. On all nodes, ensure Swift is upgraded to a version that includes
    write_legacy_ec_crc support and write_legacy_ec_crc is enabled on
    all daemons.
 3. On each node, upgrade liberasurecode and restart Swift services.
    Because of (2), they will continue writing legacy CRCs which will
    still be readable by nodes that have not yet upgraded.
 4. Once all nodes are upgraded, remove the write_legacy_ec_crc option
    from all configs across all nodes. After restarting daemons, they
    will write zlib CRCs which will also be readable by all nodes.

Change-Id: Iff71069f808623453c0ff36b798559015e604c7d
Related-Bug: #1666320
Closes-Bug: #1886088
Depends-On: https://review.opendev.org/#/c/738959/
2020-09-30 16:49:59 -07:00

23 KiB