>Has anyone been through this type of problem?
>
You could set up a new, empty db (with checksums enabled, etc.) on the new hardware and then use logical replication to sync across all the data from the existing cluster.
(This logical replica could be doing binary replication to hot standbys too, if you like).
When the sync has finished you could perhaps gradually shift read-only load over to the new db, and finally switch write load too - your downtime would then be limited to how long this final cut-over takes.
Steve.