Una v*irtual machine, *oppure macchina virtuale e quindi un vps, è un contenitore gestito da programma che simula un computer.
Sul sistema operativo ospitante (host) installato sul computer viene avviato una o più volte il programma emulatore secondo il numero di macchine virtuali (guest) che vogliamo o possiamo usare. Ogni virtual machine può far girare un sistema operativo e tante applicazioni, così è possibile adoperare più sistemi operativi simultaneamente. Essenzialmente.
Un vps non è altro che una macchina virtuale più orientata ad essere usata come server.
Per le VPS ecco qua una buona guida: http://www.valent-blog.eu/2008/09/18/guida-al-vps-scegliere-il-miglior-virtual-private-server/
Per quanto riguarda invece DNS, essendo un concetto di "vecchia" data trovi un sacco di guide molto valide, mentre per vps sinceramente ho letto delle guide che facevano pietà.