VIRTUAL NETWORK STORAGE ARRAY DATA TRANSMISSIONS
An aspect of the present disclosure relates to establishing and controlling virtual network communications between storage arrays. In embodiments, Input/Output (IO) workloads received by a source device are monitored. IO operations of each IO workload to be transmitted to one or more target devices of a plurality of target devices can be identified. Transmissions of one or more of the identified IO operations can be controlled based on one or more characteristics of each identified IO operation.
1 . A method comprising:
monitoring input/output (IO) workloads received by a source device, wherein the source device is a storage array;
identifying IO operations in each IO workload to be transmitted to one or more target devices of a plurality of target devices, wherein the target devices are remote devices;
defining a virtual communication tunnel (VCT) between the source device and the one or more target devices, wherein the VCT includes one or more paths;
establishing the VCT's size based on a number of paths the VCT includes; and
controlling transmission of one or more of the identified IO operations via the VCT based on each identified IO operation's characteristics.
2 . The method of claim 1 , wherein the one or more characteristics include at least one or more of a data type related to each IO operation, IO size, IO type, IO service level, destination target device, and/or status of a virtual tunnel between the source and target devices.
3 . The method of claim 2 , further comprising: establishing a virtual tunnel between the source device and each target device.
4 . The method of claim 3 , further comprising: establishing each virtual tunnel by associating a source device port to a target device port associated with each virtual tunnel.
5 . The method of claim 2 , further comprising:
grouping two or more communication paths between the source device and each target device; and
establishing each virtual tunnel using each related group of communication paths.
6 . The method of claim 1 , further comprising: establishing a size of each virtual tunnel based on one or more of: a volume of IO operations anticipated to be transmitted over each virtual tunnel and/or the one or more characteristics of each IO operation related to the volume of IO operations.
7 . The method of claim 1 , further comprising: identifying one or more patterns related to IO operations transmitted over each virtual tunning based on historical and/or current IO workloads received by the source device.
8 . The method of claim 1 , further comprising: generating one or more data transmission models from the identified patterns.
9 . The method of claim 1 , further comprising: dynamically adjusting each virtual tunnel's size using at least one of the data transmission models.
10 . The method of claim 1 , further comprising controlling transmission of one or more of the identified IO operations using the one or more data transmission models.
11 . An apparatus including a memory and processor configured to:
monitor input/output (IO) workloads received by a source device, wherein the source device is a storage array;
identify IO operations in each IO workload to be transmitted to one or more target devices of a plurality of target devices, wherein the target devices are remote devices;
define a virtual communication tunnel (VCT) between the source device and the one or more target devices, wherein the VCT includes one or more paths;
establish the VCT's size based on a number of paths the VCT includes; and
control transmissions of one or more of the identified IO operations via the VCT based on each identified IO operation's characteristics.
12 . The apparatus of claim 1 , wherein the one or more characteristics include at least one or more of a data type related to each IO operation, IO size, IO type, IO service level, destination target device, and/or status of a virtual tunnel between the source and target devices.
13 . The apparatus of claim 2 , further configured to: establish a virtual tunnel between the source device and each target device.
14 . The apparatus of claim 3 , further configured to: establish each virtual tunnel by associating a source device port to a target device port associated with each virtual tunnel.
15 . The apparatus of claim 2 , further configured to:
group two or more communication paths between the source device and each target device; and
establish each virtual tunnel using each related group of communication paths.
16 . The apparatus of claim 1 , further configured to establish each virtual tunnel's size based on one or more of: a volume of IO operations anticipated to be transmitted over each virtual tunnel and/or the one or more characteristics of each IO operation related to the volume of IO operations.
17 . The apparatus of claim 1 , further configured to: identify one or more patterns related to IO operations transmitted over each virtual tunnel based on historical and/or current IO workloads received by the source device.
18 . The apparatus of claim 1 , further configured to: generate one or more data transmission models from the identified patterns.
19 . The apparatus of claim 1 , further configured to dynamically adjust each virtual tunnel's size using the one or more data transmission models.
20 . The apparatus of claim 1 , further configured to control transmissions of one or more of the identified IO operations using at least one of the data transmission models.