1. A system for managing a storage array having a set of storage components, comprising: a storage array controller, the storage array controller including: a first instance of a controller firmware on a virtual machine in a privileged domain, the privileged domain having access to hardware of the storage array, the privileged domain including a host port virtualization agent; and a second instance of the controller firmware on a separate virtual machine in a first non-privileged array domain, wherein the privileged domain is configured to inspect an Input/Output (I/O) request and determine whether a target of the I/O request is an existing non-privileged array domain, the privileged domain is configured to initiate launch of the first non-privileged array domain array when the I/O request does not relate to an existing non-privileged array domain, and the privileged domain is configured to present available storage components to the first non-privileged array domain when the I/O request relates to the first non-privileged array domain.