Migrate to virtual systems
Move server systems to virtual computers to allow for more dynamic, modular and stable systems.
The idea for the migration started when I received a Dell Precision 690. I no longer needed my main desktop and its components happened to be compatible with my cloud server. This got me thinking, I could merge all the components into the cloud server and I will be able to have double the computing power. What am I going to do with all of those resources? I then thought of running all the servers in VMs and that was the start.
I began to plan on how to run the servers from multiple VMs. Some interesting issues came up, such as the issue of running multiple websites from multiple computers. The answer to that question is a reverse proxy. Minecraft had the same issue but it also can be reverse proxied.
Each VM (virtual machine) has its DBs (Databases) stored locally and not from a DB server. This reduces the amount of VMs needed and makes the system more redundant by allowing the VM’s functions to continue functioning even if a central DB server fails. The DHCP server was vitalized and switched from MS DHCP to ISC-DHCP-Server.
In moving all the servers to virtual computers the issue rose on how to manage all the virtual computers more easily, as I had a few of them. And the solution was Active Directory Domain Services (ADDS). I created a virtual computer that ran Samba ADDS as the domain controller and DNS server. This allowed me to have SSO on all of my virtual computer and some of my physical ones.
All of the virtual machines were moved to Ubuntu server to streamline resource usage. The WDS server however might not be migrated. All of the VMs are Gen 2 Hyper-V for future proofing and feature availability.
After the planning phase was over I started to build out the infrastructure. I used Hyper-V as the virtualization host as it is more integrated with Windows than VirtualBox and there is a type 1 available for free from Microsoft. I decided that a type 1 Hypervisor would be the way to go to streamline resource usage since there would be no servers running from the host OS anymore. the host never had a dedicated display so a command line environment would suit it very well.
The only roadblock that came up was that the Motherboard that I was using for the virtual host was incompatible with Gen 1 virtual computers. So I purchased a compatible (hardware wise) motherboard to replace the current motherboard. During the time when the server was unavailable, because of the motherboard change, all of the VMs ran off of my laptop.