I'm not sure about #1, but I can offer some suggestions/thoughts for #2 and #3.
#3. If you think that a 100GB cache for a 300GB backing store is too much, you don't have to use the full SSD for your cache; you can partition it. In most cases user data is going to be larger than system data (programs, etc), so you could make an appropriately-sized partition for your programs on the SSD (so they start up fast), make a second SSD partition for bcache, and put your data-heavy partitions on the larger 300GB disk (/home or /var, for example) using the bcache device (e.g., /dev/sda2) to cache them.
#2. You don't have to reinstall, but the ease with which you transition is based on your command line expertise. Here are two possibilities. In either case, you should either boot from a LiveCD or boot into single-user mode.
create partitions on the HDD, format, and mount them; use cp -a
to transfer the data from the SSD. Confirm the data is copied correctly and then remove it from the HDD. Shrink the system partition on the SSD and create one for bcache. Don't forget to update /etc/fstab
with your new filesystem layout.
or if you want to use the whole SSD, a blunt way to make the transition would be to use dd
to image the smaller SSD to the larger HDD and then use partitioning and filesystem tools (or gparted) to expand the partition.