Saturday, August 16, 2008

Virtual Servers and PACS

The thought of multiple operating systems running on one computer is nothing new. My very own Dell Outlet-Site 8Gb RAM extravaganza now can be booted into Windows XP x64, to take full advantage of those 8G's, or into XP Pro, to use the peripherals that x64 doesn't support (pretty much all of them.) One of the things computers do quite well is to run lots of different things simultaneously, although I can't with my present set-up run XP Pro and x64 at the same time.

It turns out that with the proper layer of software, such as the products from VMWare, one can simultaneously run two (or more) virtual machines on one piece of hardware. This lends itself well to servers, but it can work with desktops too.

Why would you do this? From VMWare:

  • VMware Server enables users to quickly provision new server capacity by partitioning a physical server into multiple virtual machines. With VMware Server, users can:

  • Provision a new server in minutes without investing in new hardware

  • Run Windows and Linux operating systems and applications on the same physical server

  • Increase the utilization of a physical server

  • Move virtual machines from one physical host to another without re-configuration

  • Easily migrate virtual machines to VMware Infrastructure

  • Access enterprise-class support organization

  • Efficiently provision, monitor and manage infrastructure with VirtualCenter add-on

  • Capture state of an entire virtual machine and roll back to that state with the click of a button
So what can you do with this?
  • Streamline software development and testing by allowing developers to create multiple environments with different operating systems on the same server

  • Simplify IT testing of patches, new applications and operating systems by allowing systems administrators to test in secure virtual machines and be able to roll back to a clean state by leveraging snapshots.

  • Simplify server provisioning by building a virtual machine once and deploying it multiple times

  • Evaluate software in ready-to-run virtual machines without installation and configuration

  • Re-host legacy operating systems such as Windows NT Server 4.0 and Windows 2000 Server in a virtual machine running on new hardware and operating system

  • Leverage pre-built, ready-to-run virtual appliances that include virtual hardware, operating system and application environments. Virtual appliances for Web, email, proxy and other infrastructure services are available for download from VMTN.
And how does this work?

VMware Server installs and runs as an application on top of a host Windows or Linux operating system. A thin virtualization layer partitions the physical server so multiple virtual machines can run simultaneously on a single server. Computing resources of the physical server are treated as a uniform pool of resources that can be allocated to virtual machines in a controlled manner. VMware Server isolates each virtual machine from its host and other virtual machines, leaving them unaffected if an application in a virtual machine crashes. Data does not leak across virtual machines and applications can only communicate over pre-configured network connections. VMware Server encapsulates a virtual machine environment as a file, which is easy to back-up, move and copy.

The banner at the top of the post suggests that the main impetus for this software might be green, in otherwords running fewer computers, and using less energy. If your energy bills are outrageous, you might consider this rationale. Reuters reported that a hospital in Munich, Germany, achieved a 50% energy savings in this manner. However, reducing the number of hardware servers altogether is probably a better reason. Our PACS implementation uses about 10 servers, with production, test and fail-over devices for PACS and RIS, and others for additional applications. Several of these might not require the full resources of an individual server, and the combination of virtual servers would suffice.

A whitepaper from Stratus Technologies dated June, 2008 further discusses the use of server virtualization:

Server virtualization is getting attention as hospitals and other healthcare delivery organizations increase IT usage while seeking ways to accommodate its cost. Among many other advantages, virtualization allows healthcare delivery organizations to save money by consolidating a number of applications on the same physical server. Server virtualization can be defined as the practice of using a software layer to let one physical computing server run multiple virtual machines that support multiple applications.

Why Virtualize?

Server Consolidation: Many applications in the enterprise require as little as 5-10 percent of a server’s capacity. Business enterprises that have implemented virtualization are opting to consolidate a number of these applications on a single physical server, while planning capacity for growth in the total workload.

Application Lifecycle Management: Compared with typical enterprise applications, healthcare IT applications are distinguished by the need for long lifecycles-possibly a decade or more. After the IT solution is in production, healthcare delivery organizations want to ensure stability and reduce risk by avoiding changes to the software application itself, as well as the operating system and the server hardware.

  • Speed and ease of provisioning. Server virtualization allows you to create a standard virtual machine - consisting of software files that include the application and an operating system - that can be copied onto a server in a matter of minutes when additional capacity is required. The virtual machine can be qualified and tested in advance to ensure it will work as expected.

  • Hardware and capacity upgrades. When more processing power or storage capacity is needed, virtualization can similarly let you move the virtual machine to newer hardware with no change to the application or operating system. You are not locked into older hardware.

  • Failover and disaster recovery (DR). A virtual machine’s image - including configuration state, disk state and so on - residing on one physical server can also be periodically replicated to another physical server for backup or fast restart. Healthcare delivery organizations can use this capability to support DR. Not only is it prudent to provide for recovering electronically stored health data, but also The Health Insurance Portability and Accountability Act (HIPAA) requires a DR plan to do so. Some virtualization software also allows for point-in-time rollbacks. Useful when data corruption has occurred, rollback lets an administrator revert the virtual machine to an earlier known good state.

  • Upgrades without downtime. A capability known as live migration allows for planned hardware and operating system upgrades (in cases where the operating system is not visible to the application) with virtually no interruption to the application and little perceived impact by users. Note that the operating system that can be upgraded is at the host OS/hypervisor layer; guest operating systems cannot be upgraded online.
So, it's an interesting idea, but Stratus identifies some potential problems, particularly worrisome in the health-care realm:

While consolidating applications on fewer computer servers has significant benefits, risks exist when the underlying platform (including hardware, virtualization software layer and drivers) is not sufficiently robust. A problem that affects the platform could cause downtime or performance issues for all the applications on that platform. The incident could then be followed by a long recovery time.
Stratus projects that this process will evolve into "True Utility Computing":

People want pools of servers that not only run multiple applications, but also enable dynamic and fluid use of resources. In the future, automated management capabilities - such as application-sensitive monitoring and intelligent policy making - will be necessary to bring this flexibility to the mainstream.

Until we reach this point, we'll have to be satisfied with VMWare, or other (nonfree) options such as Microsoft Virtual Server.

I haven't found many references to the use of virtual servers with PACS. Some posts on the Fuji Synapse message board suggest some hesitation:

I would not dream to install it on anything but a real server running real Windows OS. Some things like your core database you should not compromise on in the CIO / CTO'seffort to save expenses and virtualized the data center. You need a robust cluster to avoid downtimes. This I would insist and draw a line in the sand on if I were you...Same goes with your IIS ( DICOM ) Servers. Unless you can get 100 MB right up to the blade where the blade running Vmware / windows is, your performance in image transfer is going to be poor. I set up a test of this and the Vmware instance of a Fuji DICOM server would only allow users to download image to workstations at ~ 9 IPS versus a real servers speeds of 20+ IPS.
So, virtual servers might not yet be ready for PACS primetime, but certainly some of the less-demanding services, RIS, corporate email, and so on, could work well in this environment. Maybe cutting the purchase of one server won't make that much difference in your enterprise, but then again, it might, and this technique allows that possibility.

Could radiologists ever go virtual? They already have! Well, not really, but you get the idea.


Anonymous said...

We have our own (non-comemrcial) archive running in a virtual environment. It pretty well does what it says on the tin & I would recommend anyone to take a look. The primary benefit in our case is disaster tolerance - with all storage based on a fully replicated SAN across 2 disparate sites, if one site suffers catastrophic outage (fire, flood etc), all services are transferred to the other site & restarted, potentially within half hour or so. There are some services that don't cluster well, and this gives us protection for those.

But there are gotchas. Be wary of virtualising anything with high IO - it may be necessary to have a one-to-one relationship between host and guest (in which case some - but not all - of the benfits are lost). That isn't to say don't virtualise, just consider carefully.

Also, don't scrimp with the 'free' version (and don't host on Windows). Go for a full enterprise version (of whatever - there are a number of alternatives to VMWare - including Sun, Oracle and Citrix) and buy in professional services to do it right - because you deserve it.

Anonymous said...

PS..... A note on the message board comment:
"Unless you can get 100 MB right up to the blade where the blade running Vmware / windows....."

If anyone is at a point where that applies then they've got deeper issues than virtualisation. In fact in this day & age if you haven't got Gb to the server then you should be knocking on doors, and I assume since it's talking about Windows, that it's the 'free' version. If you are going to test it as a new platform, give it a fair shot & get an evaluation of the full product.