Bottom line is you can choose either method. If you go with a virtual machine you need make sure that the virtual disks being used have separate logical units (LUNS) or separate spindles, that way you can place your logs and data files on truly
separate disks. Generally these days virtual environments are backed by a SAN with RAID support, so this might be happening by default.
Next you should ensure that the SQL server guest OS has memory priority so that there is no memory swapping or resource competing with other guests on the same VM host.
In my opinion...
With today's cloud computing advances I think you are better off with virtual SQL server in a highly available configuration (HA) instead of a physical server with a failover (clustering or mirroring), which forces you to use a third server as witness.
I have worked with either configurations, and most of my clients are using well configured and administered virtual environments for SQL without any issues.
Microsoft is conducting an online survey to understand your opinion of the Technet Web site. If you choose to participate, the online survey will be presented to you when you leave the Technet Web site.