1. A method for reprogramming firmware in a storage system, the storage system comprising a plurality of virtual machines operating under control of a virtual machine manager (hypervisor), the method comprising: operating current firmware on a current virtual machine of the plurality of virtual machines wherein the current firmware processes I/O requests directed to the current virtual machine; starting a new virtual machine of the plurality of virtual machines wherein the new virtual machine is adapted to operate under control of new firmware; mapping data from a memory space of the current virtual machine into memory space of the new virtual machine; quiescing operation of the current firmware; transferring control of devices presently controlled by the current virtual machine to control by the new virtual machine; and operating the new firmware in the new virtual machine to process I/O requests directed to the new virtual machine through the devices.