Efficient scaling of computing resources by accessing distributed storage targets
Systems and methods for storage resource and computation resource expansion. A method embodiment includes migrating a computing task from an external computing environment to a different computing/storage environment. The method commences by identifying a storage system having virtualized controllers and by identifying a computing device that performs a workload that interfaces with the storage system. The virtualized controllers execute in the second computing environment to manage access to storage target devices by accessing a storage target device identified by an IP address. A particular virtualized controller that is connected to the storage target device is selected and configured to process storage I/O from a migrated workload. A user virtual machine or user executable container is configured to execute the workload on one of the nodes in the computing and storage system within the second computing environment. After migration, the computing task from the external computing environment is discarded or decommissioned.
1. A method, comprising:
identifying a workload sent for execution to an external computing device located external to a virtualization environment,
the virtualization environment comprising a computing node having a storage device and a virtualized controller managing access to the storage device, and data for the external computing device is stored within the storage device in the virtualization environment,
wherein the virtualization environment comprises multiple computing nodes and a storage pool having multiple storage devices, the multiple computing nodes comprising respective virtualized controllers that manage access to the storage pool;
configuring a user virtual machine or user executable container to execute at least a portion of the workload on the computing node, wherein the data for the external computing device is accessible to the user virtual machine or user executable container using the virtualized controller, wherein the user virtual machine or user executable container accesses a snapshot on at least one of the multiple storage devices; and
redirecting execution of the at least a portion of the workload from the external computing device to the user virtual machine or the user executable container.
2. The method of claim 1 , further comprising:
identifying the external computing device in an external computing environment, the external computing device performing at least a part of the workload that interfaces with the storage pool by accessing the storage pool identified by a network address, wherein
the user virtual machine or user executable container accesses the storage device via the virtualized controller based at least in part on processing of a redirect command.
3. The method of claim 2 , further comprising:
identifying the virtualized controller from the respective virtualized controllers, the virtualized controller being connected to the storage device identified by the network address.
4. The method of claim 1 , further comprising selecting the virtualized controller based at least in part on at least one of one or more controller selection policy attributes, one or more policy specifications, one or more node loading attributes, one or more node topology attributes, or one or more events.
5. The method of claim 4 , wherein the one or more controller selection policy attributes describe at least one of one or more preferred virtualized controllers, one or more excluded virtualized controllers, a virtualized controller health, a virtualized controller loading, or a random selection algorithm.
6. The method of claim 1 , further comprising deleting, responsive to a workload activity threshold breach, at least one of the user virtual machine or user executable container, or the snapshot.
7. The method of claim 1 , further comprising detaching, responsive to configuring the user virtual machine or user executable container, the external computing device from the virtualized controller.
8. The method of claim 1 , wherein at least one of the external computing device, or the user virtual machine or user executable container comprises a protocol initiator to facilitate access to the storage device.
9. The method of claim 1 , redirecting the execution comprising:
determining the storage device from the multiple storage devices in the storage pool managed by at least the virtualized controller on a host machine; and
determining the virtual machine or executable container from multiple virtual machines or executable containers on the host machine based at least in part upon network identification information of the multiple storage devices, wherein
the virtualized controller being connected to the storage pool is connected by at least one of a virtual network address, or a DNS-resolvable hostname.
10. A non-transitory computer readable medium having stored thereon a sequence of instructions which, when stored in memory and executed by a microprocessor, causes the microprocessor to perform a set of acts, the set of acts comprising:
identifying a workload sent for execution to an external computing device located external to a virtualization environment,
the virtualization environment comprising a computing node having a storage device and a virtualized controller managing access to the storage device, and data for the external computing device is stored within the storage device in the virtualization environment,
wherein the virtualization environment comprises multiple computing nodes and a storage pool having multiple storage devices, the multiple computing nodes comprising respective virtualized controllers that manage access to the storage pool;
configuring a user virtual machine or user executable container to execute at least a portion of the workload on the computing node, wherein the data for the external computing device is accessible to the user virtual machine or user executable container using the virtualized controller, wherein the user virtual machine or user executable container accesses a snapshot on at least one of the multiple storage devices; and
redirecting execution of the at least a portion of the workload from the external computing device to the user virtual machine or the user executable container.
11. The non-transitory computer readable medium of claim 10 , the set of acts further comprising:
identifying the external computing device in an external computing environment, the external computing device performing at least a part of the workload that interfaces with the storage pool by accessing the storage pool identified by a network address, wherein the workload is an application.
12. The non-transitory computer readable medium of claim 10 , the set of acts further comprising selecting the virtualized controller based at least in part on at least one of one or more controller selection policy attributes, one or more policy specifications, one or more node loading attributes, one or more node topology attributes, or one or more events.
13. The non-transitory computer readable medium of claim 12 , wherein the one or more controller selection policy attributes describe at least one of one or more preferred virtualized controllers, one or more excluded virtualized controllers, a virtualized controller health, a virtualized controller loading, or a random selection algorithm.
14. The non-transitory computer readable medium of claim 10 , the set of acts further comprising deleting, responsive to a workload activity threshold breach, at least one of the user virtual machine or user executable container, or the snapshot.
15. The non-transitory computer readable medium of claim 10 , the set of acts further comprising detaching, responsive to configuring the user virtual machine or user executable container, the external computing device from the virtualized controller.
16. The non-transitory computer readable medium of claim 10 , the set of acts further comprising selecting the virtualized controller based at least in part on at least one of one or more controller selection policy attributes or one or more events.
17. A system, comprising:
a non-transitory storage medium having stored thereon a sequence of instructions; and
one or more processors that execute the instructions to cause the one or more processors to perform a set of acts, the set of acts comprising,
identifying a workload sent for execution to an external computing device located external to a virtualization environment,
the virtualization environment comprising a computing node having a storage device and a virtualized controller managing access to the storage device, and data for the external computing device is stored within the storage device in the virtualization environment,
wherein the virtualization environment comprises multiple computing nodes and a storage pool having multiple storage devices, the multiple computing nodes comprising respective virtualized controllers that manage access to the storage pool;
configuring a user virtual machine or user executable container to execute at least a portion of the workload on the computing node, wherein the data for the external computing device is accessible to the user virtual machine or user executable container using the virtualized controller; and
redirecting execution of the at least a portion of the workload from the external computing device to the user virtual machine or the user executable container.
18. The system of claim 17 , the set of acts further comprising:
identifying the external computing device in an external computing environment, the external computing device performing at least a part of the workload that interfaces with the storage pool by accessing the storage pool identified by a network address; and
identifying the virtualized controller from the respective virtualized controllers, the virtualized controller being connected to the storage device identified by the network address.