File, authetication, web and other server for school

Hi everybody.
I’m working in a school with 150 students, about 50 client pc configured in dual boot (windows 10 and Ubuntu). We have a 10 years old server (ubuntu 10.04 not updated anymore) on which is configured:

  • Samba + LDAP for centralized user authentication/management and domain controller
  • NFS (shared home directory to hold user homes)
  • DHCP
  • Apache + Tomcat (that serve personal web pages on their home)
  • MySql
  • PostgreSql
    The server is accessible only on local network.

Clients are joined to domain only for Ubuntu os. When a user login to an ubuntu client, his home directory is imported from the server to the local machine (NFS).
Windows clients can browse files on server shared with samba inserting username and password when requested.

Now i have a new “powerful” server… and wont to virtualize all what I need. My question is, how many VMs I need to do this? Is there a “best practice” on how to do it?
I have already installed xcp-ng and xen orchestra. In a first attempt I was thinking to replicate the old server in just one VM however I know this is a nonsense for what virtualization is.

This is my first experience with virtualization and I thought I would do this:

VM1:

  • Domain controller (Samba4) and centralized user management
  • DHCP
  • FreeRadius (in the future for wifi access management)

VM2:

  • NFS (for linux clients)
  • Samba share (for windows clients)

VM3:

  • Apache + Tomcat
  • MySql
  • PostgreSql

VM4:

  • Log server
  • Apt Cacher

I will use the old server for secondary Domain controller and backup.

Thank you for any advice.

Why separate the servers instead of just setting this up as one server?

Ok, but one server in a Vm or directly on the hardware as the old server?

Having a server virtualzed makes it easier to backup and have snapthots of but does come at the cost of some speed loss.

I am not an expert just my opinion, you can keep what you are planning separating the servers is also good. If one vm goes bad not everything goes down. You can also follow what Tom said make a server put everything in it. What I suggest if you will go with this track make 2 servers having everything (configure HA). Incase 1 goes down, the network will still be up while you recover the other vmguest.