You can practice with pg_upgrade as well, backup your PG_DATADIR, restore it on your new machine and run the upgrade. I typically don't bother doing it on a separate VM myself, I just run the upgrade without the --link flag so it copies all the data files and log segments, test and then open it up.
For the database size it seems the recommended approach is the pg_dump > pg_restore... with a maintenance window and a new VM holding Postgres 10.
This looks pretty safe and I'd be happy following that process, and it would let me practise it a few times first which I like.