
Planning for Windows Server virtualization
Installing Windows Server 2016 is an easy process, and is far simpler than older editions. In a corporate environment, however, a server administrator or an IT professional is likely to have more than one server and, as simple as the installation process may be, it is time-consuming and inefficient to install one server at a time. Individuals and companies may also have different needs for installing a new operating system; there are decisions to be made regarding whether we want a client operating system or a server operating system, and whether we are in a corporate environment and require a massive deployment, or whether we are in a smaller company, office, or home for small, individual deployments. For this reason, Microsoft has developed multiple options for installing new operating systems.
Before getting into the details of the deployment and the various deployment programs and methods, let's take a look at virtualization. Today, we have more flexibility in the deployment of operating systems, as virtualization is more accessible and affordable than ever, not only for IT professionals and developers within large companies with huge data centers, but also for individuals. All you need is a credit card and, in less than a minute, you can have an operating system deployed.
But what is virtualization? Virtualization is essentially an abstraction. It refers to simply hiding or changing the reality of something from someone. Virtualization in the IT domain is the abstraction of physical hardware resources from a software program, which, in our case, is the operating system. In a nutshell, a hypervisor is fooling (or abstracting) the real hardware in such a way that the operating system thinks it is installed on real hardware.
There are many different types of virtualization, which we will take a brief look at here:
- Server virtualization is the most popular and well-known type of virtualization, and is the type that's often associated with the Windows Server operating system in the form of a software known as Windows Server Hyper-V. With this type of virtualization, you are able to run multiple servers and client operating systems on a physical machine, enabling you to achieve greater operating system density.
- Desktop virtualization is a very similar virtualization type that exists on Windows 10. It enables you to run multiple operating systems and applications on a client version of Hyper-V.
- Application virtualization is another type of virtualization that enables you to run multiple versions of the same application on an operating system. A practical example would be the need to run an older version of an application and the newest version of the same application concurrently, which are otherwise incompatible. Microsoft Application Virtualization (App-V) is an example of application virtualization.
- Presentation virtualization is a very common virtualization type that you might already be using without you having any knowledge of this. The best-known representative of it in Windows operating systems is Remote Desktop Services (RDS), where the applications run on a remote computer and the screen content is transported to the client computer.
There are other types of virtualization, such as network, storage, memory, and data virtualization, but these are beyond the scope of this book.
There are many advantages to virtualization, including the following:
- Provisioning or deploying virtual servers is much faster than provisioning physical servers.
- Adding hardware to virtual machines is easier and faster than adding hardware to physical servers.
- Consolidating multiple virtual machines onto a physical server increases server density, thereby leading to a more efficient server resource utilization, since multiple low-resource virtual machines can run simultaneously on a physical host.
- Lower operational costs.
- Virtual machines are easier and faster to back up and easier and faster to restore.
- It is easier to set up virtual machines to run in an isolated environment for development and testing purposes than it is to set up physical machines. Virtual machines can also be managed more efficiently.
- Virtual machines can be transferred to other physical servers in case of maintenance or hardware failures.
- Virtualized environments can be easier to back up or migrate to the cloud for increased redundancy or as a disaster recovery solution.
The main points to consider when planning for the virtualization of server workloads are as follows:
- CPU usage: Low processor usage machines are good virtualization candidates since a large number of these servers can be co-hosted, such as DHCP or DNS servers. High processor usage servers might not be good virtualization candidates because their high CPU operations might impact other co-hosted virtual machines. High-CPU virtual machines can be set up in a way that limits their CPU usage at certain levels to leave enough host CPU time for other workloads. This, however, impacts the performance of the CPU-limited virtual machine, which, in turn, impacts either the users it is servicing or the services it is running, because it is not receiving sufficient resources to process information in a timely manner.
- Memory requirements: Servers with lower memory usage are, of course, better virtualization candidates than servers with high memory usage, such as email servers (exchange servers, for example). Memory-demanding servers can be virtualized too, but require a different approach, such as limiting the maximum or upper memory limits or disabling the Dynamic Memory feature.
- Input/output traffic: Chatty servers, or servers that generate a large amount of traffic, such as file servers, can easily eat up all the bandwidth to the point where inbound and outbound traffic to co-hosted virtual machines is too slow and unreliable. Some solutions include installing multiple network interface cards, or even dedicated network cards, or enabling Quality of Service (QoS).
- Disk or storage usage: Servers with lower disk I/O requirements are generally easier to virtualize, while servers with high disk I/O workloads require more disks that are faster and special for distributed storage with specific storage protocols.
- Special server workloads: Servers requiring special hardware or that have higher hardware resource demands require more detailed planning and investment.
- Combined workloads: Adequate planning and care is needed when planning for combined workloads to assess all aspects of the co-hosted servers' behavior to avoid resource depletion, poor performance and, consequently, a poor user experience.
- Order of virtualization or virtualization priority: Identifying the order in which servers should be virtualized is an important point in virtualization planning and assessment. One way to assess or identify the order of computers to be virtualized is by looking at the computers' impact on production. Depending on your environment, your priority for virtualizing your workloads might be based on something else, such as the company's departments or branches. The following are examples of prioritization based on the criticality or production impact:
- Non-critical servers are the best candidates and should be virtualized first. These include development, sandbox, or testing environment servers, technician machines, and non-production servers.
- Low-risk machines, such as servers that could be shut down for a few hours, should be the next in line for virtualization, such as duplicate server workloads that are often found in backup systems, web farms, or high-availability systems.
- Medium-risk servers, such as RADIUS, proxy, or gateway servers, are good candidates for the next virtualization wave. These servers might be taken offline during the night or low peak periods, although they might already have some sort of redundancy in place and could be virtualized without downtime.
- High-risk servers running critical line-of-business applications, database servers, email, or identity directory servers are usually virtualized last.
As you can see, some workloads are more suitable for virtualization than others. These servers are easier to virtualize because there are no special requirements or architectural designs to follow. Servers that have higher disk activity, require more memory, or run processor-intensive workloads, are generally harder to virtualize because more factors must be considered and they require more detailed and more careful planning. These considerations are valid, regardless of which type of hypervisor you choose. Hyper-V in Microsoft Windows Server 2016 supports several Windows Server and Windows client guest operating systems, as well as a large number of Linux and FreeBSD distributions to run in virtual machines.
When planning for a Hyper-V virtualization, you need to consider several factors, such as the virtual machine generation and supported devices, the operating systems supported, the virtual hard disk types used, and the virtual network types. More on Hyper-V supported guest operating systems, settings, and features will be discussed in later chapters.