Normalement le firewall est situé sur un serveur physique indépendant, en amont. Ou alors il peut être géré par un routeur matériel (Cisco, HP...). Si tu fais deux routeurs en failover bon courage pour la configuration.
Quand à KVM oui c'est assez performant, à condition d'utiliser les VirtIO pour le disque dur et la carte réseau (c'est très souple et très puissant). Tu as aussi KSM qui permet d'économiser de la mémoire si tes machines virtuelles tournent sur le même OS. Il y a énormément à apprendre de KVM.
Après je n'ai pas utilisé VMware esx mais il me semble qu'il faut plusieurs machines pour pouvoir le gérer, notamment pour vsphere. KVM est gratuit et moins embêtant sur ce point. Ce n'est pas pour autant une solution au rabais car c'est poussé par RedHat.
Un blog avec de l'info sur KVM:
http://www.linux-kvm.com