I have a couple KVM machines:

   1   l ~/VMs
   2   -rw-r--r--   1 void users 1,986,002,944 09-17 09:11 | archlinux-current.qcow2
   3   -rw-r--r--   1 void users 2,451,505,152 09-17 09:14 | centos-7.qcow2
   4   -rw-r--r--   1 void users 3,032,350,720 09-17 10:06 | freebsd-103.qcow2
   5   -rw-r--r--   1 void users 1,813,512,192 05-20 20:03 | netbsd-70.qcow2
   6   -rw-r--r--   1 void users   843,251,712 05-20 18:55 | openbsd-59.qcow2
   7   -rw-r--r--   1 void users 6,452,215,808 09-17 09:21 | ubuntu-1204.qcow2
   8   -rw-r--r--   1 void users 6,224,478,208 09-17 09:22 | ubuntu-1404.qcow2
   9   -rw-r--r--   1 void users 4,264,034,304 09-17 09:24 | ubuntu-1604.qcow2

 Only for testing purposes. "Does $foo run on $bar?"

 I  upgraded  my  FreeBSD  box  from 10.2 to 10.3 today. I followed the
 guide at [1].  It took pretty long, almost 1.5  hours,  but  this  may
 have been due to slow internet.

 Upgrading  OpenBSD from 5.9 to 6.0 was much quicker. I booted into the
 install kernel, hit a few buttons, and was done.

 NetBSD (7.0 to 7.0.1) was pretty easy, too. Boot from an  installation
 ISO, choose "upgrade" and wait. Didn't take long.

 This  was  the first time that I actually upgraded these BSD boxes. In
 the past, I simply did a clean reinstall from scratch. I also used  to
 think  that  BSD upgrades are painful. In the past, this may have been
 true -- no idea, really, I never went through. But these few  upgrades
 today were just a piece of cake.

 Of  course,  since  those  are  only  base  images,  I  don't have any
 additional packages/ports installed. Just the base systems. This makes
 things easier.

 ____________________

 1. https://www.freebsd.org/releases/10.3R/installation.html#upgrade-binary