Popular Virtualization Platforms and Technologies – TechMikeNY

OUR TECHS ARE AVAILABLE MONDAY - FRIDAY 9:00 AM TO 5:00 PM EST

RECENT ARTICLES

Timelapse ASMR: Watch Us (Re)Build Servers...

Wed, Feb 28, 24

  As you might have guessed, configuring enterprise-grade servers takes some serious...

GPU Compatibility: What to Consider

Tue, Feb 06, 24

From rendering complex graphics to training neural networks, the specialized parallel processing...

All About RAID Batteries – Preventing Data...

Wed, Jan 17, 24

  Ever sat around and wondered about your RAID controller’s battery? Can’t...

WATCH: Installing a Rear Flex Bay in an R7...

Wed, Dec 20, 23

This tutorial will show you, step-by-step, how to install a rear flex...

VIEW ALL

Popular Virtualization Platforms and Technologies

 

Virtualization is a hot topic these days for good reason - it offers a ton of benefits! From optimizing infrastructure to simplifying disaster recovery, being able to run multiple virtual computers on physical hardware is an incredibly powerful capability that allows for so much more flexibility. But with all of the complex platforms available out there, it can be overwhelming to know where to start. We put together an overview of popular options like VMware, Microsoft Hyper-V, VirtualBox, and more, so you can start reaping the advantages of going virtual.

 


Jump to:

  

 

       

      A quick overview of hypervisors and virtual machines

       

      It’s been a while since we’ve talked about virtualization. Before we dive into the platforms and types, let’s review some of the basics.

      Here are a few refreshers from our article explaining virtual machine basics:  

      “Think of a Virtual Machine (VM) as a computer within a computer. If you think of a traditional desktop or laptop, it runs on a single Operating System (OS), and that OS is tied to the system's hardware resources. In virtualization, a type of software called a hypervisor allows you to create a new virtual computer (the virtual machine) within that host computer …[This virtual machine can have] all the same features as a traditional computer; e.g., its own network IP or its own OS (which can be different from the host OS).” - TechMikeNY.

      In essence, a VM Host, known as a hypervisor, is a software that enables the creation and management of virtual machines. It runs directly on physical hardware, such as a desktop, laptop, or server, and acts as a mediator between the physical hardware and virtual machines.

      A virtual machine (VM), meanwhile, is a software emulation of a physical computer system. It operates within the VM host and runs its own operating system and applications. What’s really neat is that multiple virtual machines can run within a single hypervisor on the same hardware; the hypervisor just manages the virtual machines in a way that allows the resources of the physical server to be allocated between them efficiently.

      “As you can imagine, having a "computer inside a computer "allows you to run processes –and take risks –that you would typically not want to do with a system running a single OS.  For example if you experience a system crash in a virtual environment, the consequences are minimal compared to [those that would occur] if your laptop's OS crashed. (Spoiler Alert: the latter would be Game Over.)” - TechMikeNY.

      Virtual machines are ideal for concurrently using different versions of applications, creating secure backups, and isolating experimental environments, but perhaps their most valuable benefit for do-it-yourself tinkering is the room they provide for trial and error.

      VM hosts/hypervisors exist in two primary forms: Type 1 and Type 2.


      Type 1 or “bare-metal” hypervisors
      (e.g. VMware ESXi, Microsoft Hyper-V, and Xen)


      Type 1 hypervisors, also known as bare-metal hypervisors, run directly on the physical hardware (in lieu of the system’s original operating system). They provide a layer of abstraction between the physical hardware and the virtual machines. and they have direct access to the underlying physical resources, such as the CPU, memory, and storage. Type 1 hypervisors are typically used in server environments, and are designed for high availability, scalability, and security.


      Type 2 or “hosted” hypervisors
      (e.g. Oracle VirtualBox, VMware Workstation, and Parallels Desktop)


      Type 2 hypervisors, on the other hand, run on top of the physical hardware’s existing OS and provide a virtualized environment for guest operating systems to run. A Type 2 hypervisor will typically be used in a desktop environment, and is generally easier to install and use, as it can be installed as a regular software program on an existing operating system. However, since it is running within the host operating system, it may have some limitations and performance overhead.




      In short, Type 1 “bare-metal” hypervisors, such as VMware ESXi, run directly on the physical hardware, while Type 2 “hosted” hypervisors, such as Oracle VirtualBox, run on top of an existing operating system already being used by the physical hardware (which in the case of VirtualBox could be Windows, macOS, Linux, and Solaris).

      Popular Virtualization Platforms

       


      We took a look at the key features of the most popular virtualization platforms. In this guide, we’ve included what it is that each platform is good for, a bit about its management interfaces, and a few other considerations you’ll want to keep in mind when looking for the perfect platform to run a “computer within a computer”
      .

      Each of these platforms is meant to scale from small businesses to large enterprises and supports live migration, snapshotting, dynamic memory and cross-platform compatibility. If you see one of those mentioned as a key feature, we thought the platform’s specific execution of the feature made it distinct.


      (Please keep in mind that our rating scale is based on a comparative assessment of the platforms and may not be accurate for all use cases. Ratings were assigned on a 1-5 star scale and were based on platforms' performance relative to one another. The ratings for "Management Interface "were determined by considering the level of management control as well as the user interface's accessibility.)



      Microsoft-Hyper-V-Logo






       

       

       

       

      1. Microsoft Hyper-V









      Best for Windows Workloads 
      Price: $24.95 to $199. Free version available.

      Security: ★★★★☆ 
      Management Interface: ★★★★☆ 
      Scalability: ★★★★☆

      Microsoft Hyper-V is a robust, Type 1 “bare-metal” hypervisor developed by Microsoft specifically for Windows workloads. Hyper-V enables users to create and manage virtual machines (VMs) running on Windows-based operating systems, allowing for the virtualization of various Windows applications and services as well as a wide range of Windows guest operating systems.

      For managing multiple Hyper-V hosts, VMs, and advanced features, Microsoft provides the Hyper-V Manager and System Center Virtual Machine Manager (SCVMM) as management tools for performance monitoring and resource allocation (similar to vSphere’s vCenter).

      Some key features of Microsoft Hyper-V:

      • PowerShell Integration: Offers extensive automation capabilities through PowerShell cmdlets, allowing administrators to streamline management tasks and perform bulk operations.
      • Hyper-V Replica: Provides asynchronous replication of VMs to a secondary site for great disaster recovery capabilities and data protection.
      • Integration Services: A set of optimized drivers and services that ensures Hyper-V can smoothly and efficiently communicate and work together with Windows guest operating systems.

      Microsoft Hyper-V is particularly well-suited for users heavily invested in the Microsoft ecosystem; it seamlessly integrates with other Microsoft products and tools, such as Active Directory and System Center suite, allowing for a cohesive management experience. Hyper-V is able to support a significant number of VMs on a cluster of hosts, and between its live migration feature and centralized management capabilities, it scales well.

      1  Note: Hyper-V Server is available to download for free from the Windows site, but you would still need licenses for Windows VMs. Using Hyper-V, the Windows Server OS allows you to use one Standard license for up to two Windows Server VMs. Using one Windows Server DataCenter OS allows for unlimited VMs.

       

       

       

      vSphere-Logo















      2. VMware vSphere











      Best for Enterprise Virtualization
      Price: $995-3995. Free version available.


      Security: ★★★★★ 
      Management Interface: ★★★★★
      Scalability: ★★★★★


      VMware vSphere is a comprehensive virtualization and cloud computing platform developed by VMware. vSphere enables the creation and management of VMs; each VM represents a self-contained and isolated instance of an operating system and applications, running on a single physical server.

      At the core of vSphere is the VMware ESXi hypervisor, a Type 1 bare-metal hypervisor that runs directly on the server hardware. ESXi can be installed without using vSphere or vCenter, and can be managed independently. Using vSphere, multiple ESXi hosts can be managed and operated in unison. For managing multiple ESXi hosts, VMs, and advanced features, vSphere offers a centralized management interface called vCenter Server. It provides a single point of control for managing multiple ESXi hosts, VMs, and advanced features. Administrators can monitor performance, allocate resources, and automate tasks through the vCenter interface.

      Some key features of vSphere:

      • vMotion: Allows live migration of running VMs between hosts, ensuring zero downtime and enabling load balancing.
      • vSphere High Availability (HA): Automatically restarts VMs on different hosts in the event of a host failure, minimizing downtime.
      • Distributed Resource Scheduler (DRS): Dynamically balances VM workloads across hosts, optimizing resource allocation.
      • Storage vMotion: Enables live migration of VMs' virtual disks between storage devices without service interruption.
      • Fault Tolerance (FT): Provides continuous availability by creating a real-time mirrored copy of a VM on a different host.
      • Distributed Switch: Simplifies network management by centralizing network configuration across multiple hosts.

      VMware vSphere can potentially support thousands of VMs on a cluster of hosts. It leverages features like Distributed Resource Scheduler (DRS) and Distributed Power Management (DPM) to optimize resource utilization and energy efficiency.

      KVM-Logo


















      3. KVM, or Kernel-based Virtual Machine







      Best for Linux Environments
      Price: Free.


      Security: ★★★★☆ 
      Management Interface: ★★★☆☆ 
      Scalability: ★★★★★

      KVM, which stands for Kernel-based Virtual Machine, is an open-source virtualization technology that is tightly integrated with the Linux kernel. It provides a platform for virtualizing Linux-based workloads, making it an ideal choice for users running Linux applications and services.

      In terms of management, KVM offers several options, including command-line tools and graphical interfaces like Virt-Manager. While the management interface for KVM may not be as feature-rich or user-friendly as some of the others on this list, it does provide essential management capabilities, such as creating, starting, stopping, and monitoring VMs.

      Some key features of KVM:

      • Linux Integration: KVM leverages virtualization extensions found in modern processors. Being "kernel-based "means that KVM is implemented as a module within the Linux kernel, the core component of the Linux operating system (which directly interacts with the hardware and manages system resources). KVM's integration with the Linux kernel allows it to provide efficient and flexible virtualization support directly within the kernel itself, resulting in excellent performance for Linux VMs and a wide range of Linux guest operating systems.
      • Extensibility and Customizability: KVM provides extensive options for tailoring virtualization environments to specific requirements for hardware optimization, workload customization, and application-specific configurations. This flexibility makes KVM great for a variety of use cases and enables efficient resource allocation.
      • Virtio: A specialized interface that enhances the efficiency of I/O operations by enabling the guest operating system to be aware of the hypervisor 2.


        KVM is particularly popular among cloud providers and Linux-focused deployments due to its performance and strong integration with the Linux ecosystem. It offers excellent support for virtualizing Linux workloads and can accommodate a large number of VMs on a single physical server. Overall, it’s a reliable and efficient choice for anyone seeking to virtualize Linux workloads, offering strong security as well as good scalability and integration with the Linux ecosystem.

        (Note: while KVM itself is open source, there are various distributions and management tools available that provide additional features and support for KVM-based virtualization.)

         

        If you want to get nerdy about it: Making the guest operating system aware of the virtualization layer is a concept called paravirtualization, where the guest OS is modified to collaborate effectively with the hypervisor. The modification typically involves replacing certain hardware-specific operations with calls to the hypervisor. Virtio is a powerful framework for implementing paravirtualization.

        Proxmox-Logo






















        4. Proxmox VE, or Proxmox Virtual Environment








        Best for DevOps
        Price: $90/year to $840/year. Free version available.

         

        Security: ★★★★☆ 
        Management Interface: ★★★☆☆ 
        Scalability: ★★★★☆

        Proxmox VE (Virtual Environment) is an open-source virtualization platform that combines virtualization, containerization 3, and software-defined storage in a single solution. It is based on Debian GNU/Linux and utilizes the KVM hypervisor and LXC (Linux Containers) technology to provide a robust virtualization platform, and its integration with Zettabyte File System (ZFS) is a big draw for many of its users.

        Proxmox VE offers a web-based management interface, Proxmox GUI (Graphical User Interface), which allows users to easily create, configure, and manage virtual machines and containers. Unfortunately, its GUI doesn’t have dockers, making it a little more difficult to deploy applications. However, the interface does provide a comprehensive set of tools for monitoring and managing resources, performing backups and restores, and implementing high availability and clustering.

        Some key features of Proxmox VE:

        • High Availability: Proxmox VE includes built-in high availability features that ensure the continuous availability of virtual machines and containers. It uses a shared storage infrastructure and automatic failover mechanisms to minimize downtime and maintain service availability.
        • Clustering: Proxmox VE supports clustering, allowing multiple Proxmox hosts to be combined into a cluster for centralized management and load balancing. Clustering provides resource pooling, live migration, and centralized storage management, enhancing scalability and fault tolerance.
        • Backup and Restore: Proxmox VE offers comprehensive backup and restore capabilities for virtual machines and containers by supporting both full and incremental backups, snapshot-based backups, and the ability to restore individual files or entire virtual machines.
        • Software-Defined Storage: Proxmox VE utilizes Ceph, a distributed storage system, to provide flexible, software-defined storage capabilities, including replication and erasure coding, providing data redundancy and resilience.
        • Integration with ZFS: Proxmox VE integrates with the ZFS file system, offering data integrity checks, snapshotting, and data compression. With ZFS, data is verified before it is committed to the disk, a neat feature that enhances data protection. And by offering features such as copy-on-write, data deduplication, and efficient storage allocation, ZFS improves efficiency in virtualized environments.

           

          Overall, Proxmox VE provides a solid foundation for virtualization. As far as virtualization platforms go, Proxmox VE is pretty quick to get up and running; the combination of its open-source nature and the access the platform provides to a robust set of features makes it particularly popular among educational and research institutions. (Which in turn makes for excellent community support.) Its flexible architecture allows for easy integration of virtual machines and containers, enabling efficient resource management, high availability, and some top-notch scalability.


          3 Good to know: Containerization is a way to package applications and all the things they need to run into small, self-contained units called containers. These containers are like little isolated bubbles that can be easily moved around and run on different computers. They make it easier for developers to build, ship, and run applications, and they help save computer resources by running more efficiently.







          Xen-Logo





















          5. Xen (open-source)








           

          Best for Cloud and Hosting Providers
          Price: Free


          Security: ★★★★★ 
          Management Interface: ★★★☆☆ 
          Scalability: ★★★★★

          Xen is a powerful open-source server virtualization platform that provides efficient and secure virtualization capabilities for a wide range of workloads. Developed by the Xen Project, Xen offers a reliable solution for virtualizing server environments.

          As a Type 1 hypervisor, Xen runs directly on the server hardware, enabling the creation and management of multiple VMs. It supports various guest operating systems, including Linux, Windows, and BSD, making it a versatile choice for users with diverse workload requirements.

          Xen provides a management interface called XenCenter, which allows administrators to monitor and control virtual machines, allocate resources, and perform essential management tasks. Given the extensive features that some other platforms offer, we only gave XenCenter three stars, but XenCenter does still offer essential functionality for managing virtualized environments.

          One important aspect of Xen is its focus on security. It ensures that each virtual machine is isolated from others, which means that even if one VM is compromised or experiences an issue, it does not affect the other VMs running on the same server. This isolation helps protect sensitive data and applications from unauthorized access or potential threats.

           

          Some key features of Xen:

          • Paravirtualization: Xen employs paravirtualization techniques, enabling guest operating systems to collaborate effectively with the hypervisor and achieve near-native performance.
          • Live Migration: Similar to other machines, Xen supports live migration, allowing VMs to be seamlessly moved between physical hosts with minimal downtime and ensuring high availability.

          • Security Isolation: As mentioned, Xen provides strong security isolation between VMs, ensuring that each VM operates independently and securely.

          • Resource Pooling: Xen enables resource pooling, making for efficient allocation and sharing of hardware resources among virtual machines.

          • Distributed Architecture: Xen's distributed architecture allows you to create virtual environments that spread across many computers. This means your virtual machines can be distributed among multiple servers, helping to balance the workload and protect against hardware failures. It's a pretty neat way to handle more work as your needs grow.

             

            Xen is particularly well-suited for anyone looking to consolidate their server infrastructure and improve efficiency. It offers excellent security measures, ensuring isolation between VMs, and has a reputation for stability and performance. Xen's live migration and distributed architecture contribute to its outstanding scalability, a facet of Xen that has made it an appealing choice for cloud service providers, hosting providers, research environments, and financial institutions.

             

            Note: While Xen offers a robust open-source solution, Citrix's XenServer is a popular alternative option if you’re looking for something more enterprise-grade. XenServer, based on the Xen hypervisor, provides a commercial virtualization platform with additional tools for high availability, a centralized management console, live migration, and advanced networking options. We chose to focus on Xen because it’s open-source and compatible with a wide range of operating systems, but Citrix's XenServer is a very solid option. 

            VirtualBox-Logo







































            6. Oracle VirtualBox








             

            Best for Desktop Virtualization
            Price: $50 per Named Workstation User license, $1K per Socket license.



            Security: ★★★☆☆ 
            Management Interface: ★★★☆☆ 
            Scalability: ★★☆☆☆

            Oracle VirtualBox is a widely used open-source virtualization platform that enables users to run multiple operating systems simultaneously on a single physical machine. A type 2, or “hosted ”hypervisor, it provides a flexible solution for desktop virtualization, offering compatibility with various host operating systems, including Windows, macOS, Linux, and Oracle Solaris.

            Oracle VirtualBox was intended for individual use, so in comparison to the other platforms mentioned, its management interface has fewer of the more advanced features necessary for a multiple-user environment. You can use it to configure virtual hardware settings, manage storage, and control network configurations, but as far as virtualization platforms go, it's not the most sophisticated. If you need a temporary environment for testing or for running remote applications, VirtualBox can function as a short-term solution, but we wouldn’t recommend using it long-term for larger-scale organizational use.

            Some key features of VirtualBox:

            • Run Multiple Operating Systems: With VirtualBox, you can run several operating systems at the same time on one computer. It's useful for tasks like software development, testing different setups, and using older software. However, when using some of the other operating systems outside of the preset list of options, you may run into some compatibility issues.
            • USB Device Support: VirtualBox allows you to use USB devices plugged into your physical hardware while operating your virtual machines; that means you can seamlessly connect to USB devices, such as external storage, printers, and other peripherals, while working within your new virtual environment.
            • Networking Capabilities: Oracle VirtualBox offers a range of networking options, including Network Address Translation (NAT), bridged networking, and internal networking. Users can customize their network configurations within VirtualBox, enabling virtual machines to interact with the network and other devices as needed.

              Oracle VirtualBox is favored by individuals, developers, and small-scale environments due to its open-source nature and cross-platform compatibility. It is a cost-effective virtualization option great for testing software configurations, running virtualized environments, or exploring new operating systems.




              Parallels-Logo


































              7. Parallels Desktop








               

              Best for Mac Users and Cross-Platform Compatibility
              Price: $49.99-$79.99 per license, $49.99-$99.99 per license per year.


              Security: ★★★☆☆ 
              Management Interface: ★★★★☆ 
              Scalability: ★★★☆☆

              Parallels Desktop is a powerful virtualization software designed specifically for Mac users. It uses a type 2 (hosted) hypervisor, allowing you to run Windows, Linux, and other operating systems seamlessly alongside macOS on your Mac computer.

              Parallels Desktop has a very user-friendly and feature-rich management interface called Parallels Desktop Control Center. It provides easy access to tools for controlling resource allocation, configuring networking options, and a variety of other management features.

               

              Some key features of Parallels Desktop:

              • Performance and Graphics: Parallels Desktop delivers excellent performance, ensuring smooth and responsive virtual machine experiences. It supports demanding applications and provides advanced graphics support for gaming, design software, and other resource-intensive tasks.
              • Coherence Mode : This feature enables seamless integration between Windows and macOS, hiding the Windows desktop so that Windows applications appear as if they are running directly on your Mac. You can launch Windows applications from the macOS Dock and use them side by side with Mac applications.
              • One-Click Tools: Parallels Desktop offers a range of one-click tools that simplify common tasks, such as optimizing virtual machine performance, managing disk space, and installing guest operating systems.
                 

                The platform offers flexible licensing options to suit different needs. There is a standard edition, geared towards individual users, and a Pro edition for professionals and businesses (which mostly offers enhanced features, such as integration with development tools and centralized administration capabilities).


                Parallels Desktop is the ideal choice for Mac users who need to run specific Windows applications or require compatibility with other operating systems. Using Parallels Desktop, you can take advantage of the capabilities of different operating systems without the need for dual-booting or purchasing additional hardware. 

                 

                What about cloud-based virtualization?


                Cloud-based virtualization is an alternative form of virtualization; as the name implies, it's a way of creating and managing VMs
                in the cloud instead of using physical hardware. In cloud-based virtualization, the virtualization layer is deployed and managed by a cloud service provider, who provisions and allocates the necessary computing resources for running virtual machines.

                If you’re working on virtualization in a data center or otherwise dealing with an infrastructure that is reliant on physical hardware, you may not need to focus on cloud-based virtualization right now. Some cloud service providers have a good infrastructure for resource management, and cloud environments do typically offer redundancy / failover mechanisms. However, to avoid vendor lock-in and ensure you’re taking the safest route in terms of data security, access control, and compliance requirements, we would recommend going through the more traditional, on-premises virtualization.

                So you're saying I should get started... 


                Virtualization is a critical component of cloud computing, data centers, and software development.
                Embracing virtualization makes it possible to optimize infrastructure, consolidate resources, streamline operations, and create an insulated testing environment. Platforms like VMware and Microsoft Hyper-V provide powerful tools to effectively manage virtualized environments that offer significant advantages; from increased efficiency and scalability to better disaster recovery and room for trial and error, these systems allow you to effectively leverage some pretty neat and transformative technology. 

                 

                Some server configurations you may want to consider:

                Dell PowerEdge R630 Server


                Processors: 
                Total of 28x Cores (2x 2.60Ghz E5-2690v4 14 Core Processors)

                Memory: Total of 256GB (8x 32GB PC4-2666V RAM)

                Hard Drives: Total Storage of 15.0TB (5x NEW 1TB SSD SATA 2.5'' 6G + 5x 2TB 7.2K SAS 2.5'' 12G)

                RAID Controller: H730P

                 

                Dell PowerEdge R640 Server


                Processors:
                Total of 48x Cores (2x 2.10Ghz Platinum 8160 24-Core Processors)

                Memory: Total of 384GB (12x 32GB PC4-2666V RAM)

                Raid Controller: H730P

                Dell PowerEdge R820 Server


                Processors:
                 Total of 48x Cores (4x 2.40Ghz E5-4657Lv2 12 Core Processors)

                Memory: Total of 768GB (48x 16GB PC3-12800R RAM)

                Hard Drives: Total Storage of 240GB ( 2x 120GB SSD SATA 2.5'' 6G + 6x Caddies / Sleds)

                Raid Controller: H730P

                 

                 



                Additional Resources



                Documentation and Community Forums


                If you’re interested in learning more, many of the open-source platforms we mentioned above have solid documentation and widely used community forums. These great resources are filled with support for understanding specific platforms as well as the more general, complex concepts associated with virtualization. 

                Xen Project Official Website
                Virtual Box Official Website
                KVM Information + Forums
                Kubernetes
                Docker
                More on containers

                Feature Glossary

                • Dynamic Memory - Dynamically adjusting the memory allocated to VMs based on demand, optimizing resource utilization and enabling efficient memory management.
                • Fault Tolerance (FT) - Providing continuous availability for virtual machines by creating a mirrored secondary VM that runs in lockstep with the primary VM. If the primary VM fails, the secondary VM can take over instantly with no interruption in service. Requires identical server hardware and storage for the mirrored VMs.
                • High Availability (HA) - Minimizing virtual machine downtime by eliminating single points of failure through clustering, load balancing, and failover capabilities. HA ensures the continuous availability of critical applications and services by providing automated failover between hosts. High availability functionality requires redundant, shared storage and a cluster of hosts.
                • Live Migration - The process of enabling virtual machines (VMs) to be smoothly transferred between physical hosts while experiencing minimal downtime, ensuring uninterrupted accessibility and availability of services. Good for load balancing, fault tolerance, and facilitating hardware maintenance or upgrades in virtualized environments.
                • Snapshotting - Capturing the current state and data of a virtual machine (VM) at a specific point in time. Can be used to create a "snapshot "or point-in-time copy of the VM, which can be used for backup, recovery, or testing purposes.
                • Virtual Networking - Enabling virtual machines to connect with each other and physical network resources through software-based virtual network components (like switches, NICs, and routers configured by the hypervisor). Virtual networking tools allow VMs to have unique IP and MAC addresses.
                • Virtual Storage - Abstracting physical storage resources and providing virtualized storage volumes to VMs. Virtual storage allows for the dynamic allocation of shared storage capacity to VMs as needed from networked storage arrays. It enables features like live migration and HA by providing consistent VM access to storage. Requires a SAN or NAS.

                 

                 2 comments

                • Thanks, Zach!

                  TechMike
                • Nice basic virtualization primer. Thank you!

                  Zach

                Leave a comment

                Name . . Message .

                Please note, comments must be approved before they are published