Isso é incrivelmente simples de se fazer no vSphere usando pools de recursos (pode ficar confuso), vApps ou diretamente aplicados a VMs individuais.
O que você precisa fazer é ter uma VM por classe de trabalho. Não é possível fazer isso por meio do vSphere, se você executar toda a sua carga de trabalho em uma VM de SQL, não conseguirá ver essa granularidade. Mas se você tiver duas ou mais VMs, poderá dividir facilmente a carga de trabalho e limitar o que deseja fazer com CPU, memória, armazenamento e IO de rede de maneira muito simples. Dito isso, você precisará aprender os fundamentos do vSphere, não podemos lhe dizer todos os passos, não é para isso que estamos aqui, esperamos que você conheça o ABC.
Se você tiver que fazer tudo isso em uma VM, então esse controle obviamente deve cair nos ombros do SQL e eu não sou especialista nisso.