Upgrade Guide 8.3.0 to 8.4.0
If you are upgrading from version 8.2.x you must upgrade to version 8.3.0 first!
Important Note
Backup Your Data Before Proceeding!
Acceptance Testing
Before upgrading your production instance we encourage you to exercise the upgrade scenario on your acceptance testing instance.
Update Deployment YAML Files
Just enter the following to update the deployment configuration:
helm template prod oci://registry.21analytics.ch/21analytics/twenty-one-travel-rule --version 0.4.x -f values.yaml -f secrets.yaml > quadlet/travel.yaml
podman quadlet install --replace ./quadlet
Restart 21 Travel Rule
A restart is required to apply the new deployment.
systemctl restart travel.service
Consolidate SeaweedFS Volumes (Optional)
NOTE: this applies to SeaweedFS users only!
Use this procedure to consolidate partially used volumes in the default (unnamed) collection and free volume slots for other collections.
Important: Only merge volumes from the same collection. Verify that the destination has enough free capacity for all data on the source volume.
1. Start a SeaweedFS shell
podman exec -it <seaweedfs-container> weed shell
2. Identify the source and destination volumes
List the current volumes:
volume.list
Volumes in the default collection have an empty Collection: field:
DataNode <data-node> ...
...
volume Id:1, Size:..., Collection:, ...
volume Id:2, Size:..., Collection:, ...
volume Id:3, Size:..., Collection:, ...
volume Id:4, Size:..., Collection:, ...
Choose:
- a source volume to remove
- a destination volume with enough free capacity
- the
DataNodehosting the source volume
The example below merges volume 4 into volume 1. The source volume is hosted
on <data-node>.
3. Lock administration and mark the source read-only
lock
volume.mark -node=<data-node> -volumeId=4 -readonlyCanDelete
Mark only the source volume read-only.
The administrative lock does not block application or filer writes.
-readonlyCanDelete prevents new data from being assigned to the source while
still allowing cleanup.
4. Run the first merge
fs.mergeVolumes -fromVolumeId=4 -toVolumeId=1 -apply
Writes already in progress when the source became read-only may not yet have committed their filer metadata and can therefore be missed by this pass.
5. Wait for the safety window and merge again
Wait until the source volume has been read-only for at least 10 minutes. If the first merge took 10 minutes or longer, no additional wait is needed.
Then run the merge again:
fs.mergeVolumes -fromVolumeId=4 -toVolumeId=1 -apply
6. Check the remaining files
volume.fsck -volumeId=4 -cutoffTimeAgo=10m
Continue only if all remaining files are reported as orphaned:
dataNode:... volume:4 entries:4 orphan:4 100.00%
Total entries:4 orphan:4 100.00%
The 10m cutoff is the safety window for in-flight writes to finish committing
filer metadata. If you use a different cutoff, wait at least that long after
marking the source read-only before performing the final merge and fsck.
If any referenced files remain:
- Do not delete anything.
- Run
fs.mergeVolumesagain. - Repeat
volume.fsck. - Investigate if referenced files continue to remain.
7. Delete orphaned files
Once all remaining files are confirmed orphaned:
volume.fsck -volumeId=4 -cutoffTimeAgo=10m -reallyDeleteFromVolume
8. Compact the source volume
volume.vacuum -volumeId=4 -garbageThreshold=0
9. Verify that the source is empty
volume.list -volumeId=4
An empty volume should contain only the volume header:
Size:8
FileCount:0
DeleteCount:0
If the volume is not empty, do not delete it. Repeat the merge and fsck
steps and investigate the remaining files.
10. Delete the empty volume and unlock
Delete the source volume from the same DataNode identified earlier:
volume.delete -node=<data-node> -volumeId=4
unlock
11. Verify the freed slot
volume.list
The topology should show an additional free volume slot, for example:
hdd(volume:3/5 active:3 free:2 remote:0)
Repeat the procedure for other partially used volumes where consolidation is appropriate.