There are a number of possible solutions here, including:
I can't specifically recommend one solution over the other, having not used them. It's not particularly hard to set up dm-cache or bcache. This article shows how to set up dm-cache and bcache. The author ends up sticking with dm-cache.
Note that you may first want to ensure the bottleneck is with your storage system rather than with your network or other configuration.