Assuming the 500GB is the problem...
Plan A:
- Take a node out of rotation.
- Upgrade the disk drive(s) to bigger ones.
- Put the node back in rotation. SST will occur, and that one node will now have more space.
- Repeat for each other node.
Plan B:
- Get a new machine with a bigger drive(s).
- Add it to the Cluster. The new machine will do an SST.
- Repeat with more new machines.
- Permanently remove the old machines.
Plan B will probably also add more cores, etc. (But you did not mention the need for such.)
Both of these methods have no more downtime than loss of a single server (3 times), which you already know about and can easily handle.
If you want to Shard the data, that would involve multiple clusters. Sharding is not warranted unless the write capacity of the Cluster is about to be exceeded. And Sharding is not a trivial task.
Another way to 'expand' disks... With a RAID controller (better than RAID software), you can improve the performance of the disk subsystem via "striping". Usually people go with RAID-5 or RAID-10 to get parity to allow for seamless recovery from a dead drive. However, Galera effectively handles dead drives by letting you repair any part of a server without losing the system. So RAID-0 is arguably more cost-effective.
Some operating systems also let you logically treat multiple drives as a single big filesystem. This does not give you the performance boost of striping, but it does let you (I think) add a drive without having to reinstall the OS, software, and data.
A RAID controller with Battery Backed Write Cache has the extra advantage of making writes "instantaneous" even without risking loss due to power failure.