Postoje dvije glavne vrste virtualnih strojeva. Jedan, koji se zove virtualni stroj sustava, koristi se za oponašanje svih procesa i komponenti stvarnog računala. Drugi, koji je poznat kao procesni virtualni stroj, koristi se za pokretanje samo jedne aplikacije i nestaje kada se ta aplikacija zatvori.
Virtualni strojevi sustava dopuštaju osobi da koristi jedan poslužitelj kao da se radi o mnogo različitih računala. Korištenjem ove vrste tehnologije, jedan stroj može se rekonfigurirati na više različitih načina. Svaka od ovih rekonfiguracija potpuno je izolirana od ostalih sustava i može djelovati kao neovisno računalo, iako svaka od njih postoji na istom fizičkom stroju. Ova izolacija znači da ako se jedan sustav sruši, ostali virtualni strojevi se i dalje mogu koristiti.
Korištenje sustavnih strojeva također omogućuje korisniku pokretanje više operacijskih sustava na istom stroju. To omogućuje korisniku pokretanje programa koji su dostupni samo na jednoj vrsti operacijskog sustava. Također omogućuje testiranje programa na više platformi bez prebacivanja strojeva.
Ovisno o potrebama korisnika, strojevi sustava mogu se konfigurirati da rade kao da imaju niz različitih tipova hardvera. Unutar svakog stroja nalazi se virtualna matična ploča, virtualni procesor, kartica za virtualni video grafički akcelerator i sve ostale komponente koje se nalaze unutar fizičkog računala. Virtualno računalo može se čak konfigurirati za korištenje hardvera na fizičkom sustavu kao da je napravljeno prema različitim specifikacijama. Postoji onoliko različitih konfiguracija virtualnih strojeva sustava koliko i konfiguracija fizičkih računalnih poslužitelja.
Procesni virtualni strojevi koriste se za pokretanje jednog programa odvojeno od operativnog sustava fizičkog računala. To omogućuje korisniku pokretanje programa koji bi inače mogao biti nekompatibilan s normalnim operativnim sustavom. Svaki procesni stroj kreiran je za izvođenje određenog programa i postoji samo dok se program izvodi. Zatvaranje programa koji se izvodi učinit će da procesni stroj nestane, a ponovno otvaranje tog programa stvorit će novi virtualni stroj.