Regarding D2: If you're going to go with bcache, make sure you're using a kernel >= 4.5, since that's when a bunch of stability patches landed (https://lkml.org/lkml/2015/12/5/38). Alternatively, if you're building your own kernel, you should be able to apply those patches yourself.