Virtualization has become one of the most critical
aspects of IT systems today. In fact, it is one of the most talked-about
buzz words in IT. However, let's first understand what exactly
virtualization is, why businesses need it, and how NAV works in
virtualization environments.
In simple terms, virtualization
means to create a virtual version of a physical resource. The resource
could be a physical device such as a physical server, storage device,
network or programs, or even operating systems. A simple example could
be that of partitioning a hard drive—we take one physical
drive and partition it to create two separate hard drives.
Although there can be many
detailed categorizations and sub-categorizations of virtualization, it
can be broadly classified into five main categories:
Server virtualization: Consolidating multiple physical servers into virtual servers that run on a single physical server.
Application virtualization: An application runs on another host from where it is installed in a variety of ways.
Desktop virtualization:
Essentially it's the concept of separating a personal computer desktop
environment from the physical machine through a remote server
connection. The virtualized desktop is stored on a remote central server
and so, when users work from their remote desktop client, all of the
programs, applications, processes, and data used are kept and run
centrally, allowing users to access their desktops on any light device
that need not be as resource rich as the applications would have
otherwise required.
Network virtualization:
With network virtualization, a physical network is logically segmented
by multiplexing shared access to a single network. Resource components
of a virtual network could include switches, VLANs, network storage
devices, virtual network containers, and so on.
Storage virtualization:
This is the technique of virtualizing the disk/data storage for our
data, which is consolidated to and managed by a virtual storage system.
Advantages of virtualization
The following are the advantages of virtualization:
Virtualization
results in huge savings on hardware, environmental costs, management,
and administration of the server infrastructure by consolidating the
workloads of several underutilized servers to fewer machines, perhaps a
single machine (server consolidation).
Virtualization
is an important concept in building secure platforms by providing
secure, isolated playground systems for running untrusted applications.
Virtual
machines can be used to run multiple operating systems simultaneously,
different versions, or entirely different systems.
Virtual
machines can provide abstracts of hardware, or hardware configuration
that we do not actually have (such as multiple CPUs, SCSI devices, and
so on).
Virtualization can make tasks such as system migration, backup, and recovery easier and more manageable.
Apart
from various other advantages, high availability is one of the many
important advantages of a virtualized environment. Let's take an example
of high availability with Hyper-V available using new features in
Server 2008. Availability means that users can access a system to do
their work. With high availability, there is a significant expectation
that users will always be able to access the system, as it has been
designed and implemented to ensure operational continuity. High
availability for Hyper-V is achieved through the use of the Windows
Server 2008 Failover Cluster feature. High availability is impacted by
both planned and unplanned downtime, and failover clustering can
significantly increase availability of virtual machines in both of these
categories.
Virtual machines can be
managed by the Failover Cluster, and the Failover Cluster can be used
inside of virtual machines to monitor and move the workloads that are
hosted in the virtual machine. In order to understand availability,
let's take broad categories in planned and unplanned downtime scenarios:
Guest availability:
Guests that are running Windows Server 2008 can use the Windows
Failover Cluster feature to provide high availability for their
workloads. There are several advantages to using Windows failover
clustering inside of a guest.
Virtual machine maintenance:
If the configuration of the VM needs to be changed or if the OS or
software needs to be updated or changed, the workload can be moved to
another node of the cluster and the virtual machine can either be shut
down or updated with minimal interruption to the end users.
Host machine maintenance:
If the physical machine hosting a Hyper-V VM needs maintenance or
software updates and other members of the Windows Failover Cluster are
located on different Hyper-V hosts, the workload on the VM can be moved
to another node of the cluster and VM can be shut down to accommodate
the changes or reboots of the physical server.
Virtual or Host Machine Failure:
If there is a failure of the physical Hyper-V host or the virtual
machine guest, the other nodes of the Windows Failover Cluster will
detect that the cluster member is no longer responding or participating
in the cluster and the surviving nodes will bring online the
applications or services that had been running on the failed VM.
Dynamics NAV and application virtualization
Dynamics NAV is widely
used today in development environments with various virtualization
technologies. Although there's no formal recommendation from Microsoft
on the use of virtualization with NAV in production environments,
various case studies and tests suggest the use of Dynamics NAV in a
virtualized environment with a slight variance in performance. To study
in detail how NAV is supported in virtualization environments, let's
first look at the compatibility guidance on NAV with various
virtualization technologies. The guidance is available on the server
catalog website often suggested by the Microsoft support team for
versions compatibility.
The following table shows which virtualization technologies are supported with the listed guest OS architectures:
Virtualization technology
|
Windows Server 2003 SP2
|
Windows Server 2008
|
Windows Server 2008 R2
|
---|
Hyper V
|
Yes
|
Yes
|
Yes
|
VMWare ESX 3.5 Update 2,3,4
|
Yes
|
Yes
|
No
|
VMWare ESX 3.5 Update 3,4
|
Yes
|
Yes
|
Yes
|
VM vSphere 4
|
Yes
|
Yes
|
No
|
According to the website, VMWare ESX 3.5 update 5 and VM vSphere 4.0 update 1 are not supported as of now.
Guest OS x86(32 Bit) is only supported and x64 is not supported as of now.
But this compatibility guidance website or other sources should be checked for the latest and current compatibility updates.
After having gone through the compatibility guide, let's now review some performance results with NAV on some common processes.
The tests were done on Dynamics
NAV 2009 SP1 on Server 2008 as host OS with HyperV. Although the tests
are done using Hyper-V only, various sources suggest similar results
(testing recommended) using other Hypervisor-based virtualizations such
as VMWare, among others.
The scenario used three
service tiers with and without HyperV on standard hardware with 75
simulated concurrent users. The tests were done using standard hardware,
not high performance machines.
Similar tests scenarios can also be studied in the official hardware and performance guide provided by Microsoft for NAV 2009.
The performance
difference was huge in some specific processes, but the average
performance declined from anywhere between 8 percent to 40 precent in
most processes. The average response time ranged from 300ms to 1100ms
without Hyper-V to 330ms to 1500ms with Hyper-V. The processes for which
the performance was very different were short processes ranging from
1ms to 20ms.
Although the
percentagewise performance was down to an average of 8% to 40%, the
actual response time differential was in the range of 30ms to 500ms
depending on the process.
This might not be a big deterrent
in most businesses but Microsoft Dynamics NAV should not be run in a
virtualized environment purely for performance reasons; instead, other
factors such as saving on hardware costs, among others, should be
strongly considered for a virtualized environment.
Also, other factors such as SQL
optimization should be considered. For example, adding two or more cores
to the computer running Microsoft Dynamics NAV Server (according to the
performance guide) gives a 5 percent gain over two cores.
Server virtualization is
supported with NAV 2009 even today. But NAV 2009 R2 and future versions
interfaces would allow deployment using Microsoft Application
Virtualization (App-V) technology, which is relevant for both on-premise
and hosted solutions.