IP Library › Granted Patent US 10,235,055
Granted Patent B1
US 10,235,055 · App. 15/086,503 · Granted Mar 19, 2019

Storage performance testing to evaluate moving data among arrays

Inventors: Yossef Saad (Ganei Tikva, IL); Assaf Natanzon (Tel Aviv, IL); Michael Trachtman (Arlington, MA)
Assignee: EMC IP Holding Company LLC
G06F3/0611G06F3/061G06F3/067G06F3/0631G06F3/0647G06F3/0653G06F3/0683
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,235,055
App. No.
15/086,503
Filed
Mar 31, 2016
Granted
Mar 19, 2019
Kind
B1
Art Unit
2184
USPC
710/105
Abstract

A technique controls movement of a logical unit of storage (LUN) among computerized storage. The technique involves selecting, by processing circuitry, a set of target storage locations of the computerized storage. The technique further involves performing, by the processing circuitry, performance evaluation operations on each target storage location of the selected set of target storage locations. The performance evaluation operations performed on each target storage location electronically assess a performance outcome of moving a production LUN from a source storage location of the computerized storage to that target storage location. The technique further involves moving, by the processing circuitry, the production LUN from the source storage location to a particular target storage location of the selected set of target storage locations based on a set of electronic performance assessments resulting from the performance evaluation operations performed on each target storage location.

Claims (84)

1. A method of controlling movement of a logical unit of storage (LUN) among computerized storage, the method comprising:

selecting, by processing circuitry, a set of target storage locations of the computerized storage;

performing, by the processing circuitry, performance evaluation operations on each target storage location of the selected set of target storage locations, the performance evaluation operations performed on each target storage location electronically assessing a performance outcome of moving a production LUN from a source storage location of the computerized storage to that target storage location; and

moving, by the processing circuitry, the production LUN from the source storage location to a particular target storage location of the selected set of target storage locations based on a set of electronic performance assessments resulting from the performance evaluation operations performed on each target storage location;

wherein performing the performance evaluation operations includes:

providing simulated host input/output (I/O) requests to at least one target storage location of the selected set of target storage locations while actual host I/O requests are processed on the production LUN at the source storage location on behalf of a set of host computers;

wherein performing the performance evaluation operations further includes:

in response to providing simulated host I/O requests to a test LUN at the particular target storage location, detecting that the particular target storage location provides slower data access speeds than that of the source storage location;

wherein the source storage location resides on a first data storage array;

wherein the particular target storage location resides on a second data storage array;

wherein the second data storage array provides slower access to host data than that of the first data storage array; and

wherein moving the production LUN from the source storage location to the particular target storage location includes, in response to detection that the particular target storage location (i) provides slower data access speeds than that of the source storage location and (ii) concurrently complies with a service level agreement that defines data access speed requirements for the production LUN, re-locating the production LUN from the first data storage array to the second data storage array that provides the slower access to host data.

2. A method as in claim 1 wherein providing the simulated host I/O requests includes: outputting, as the simulated I/O requests, read and write commands which mimic actual read and write commands sent from the set of host computers to the production LUN at the source storage location for processing.

3. A method as in claim 1 wherein the computerized storage includes multiple data storage arrays; and wherein providing the simulated host I/O requests includes: simultaneously sending the simulated host I/O requests to a respective test LUN on each of the multiple data storage arrays while actual host I/O requests are processed on the production LUN at the source storage location on behalf of the set of host computers.

4. A method as in claim 3 wherein simultaneously sending the simulated host I/O requests to the respective test LUN on each of the multiple data storage arrays includes:

outputting a first set of simulated host I/O requests to a first test LUN on a first host-accessible data storage array while the first host-accessible data storage array concurrently processes a first set of actual host I/O requests from the set of host computers, and

outputting a second set of simulated host I/O requests to a second test LUN on a second host-accessible data storage array while the second host-accessible data storage array concurrently processes a second set of actual host I/O requests from the set of host computers.

5. A method as in claim 4 wherein the first host-accessible data storage array includes a faster storage tier of faster storage and a slower storage tier of slower storage that provides slower data access speeds than that of the faster storage tier of faster storage; and

wherein outputting the first set of simulated host I/O requests to the first test LUN on the first host-accessible data storage array includes (i) processing some host I/O requests of the first set of simulated host I/O requests using the faster storage tier to determine whether placement of the production LUN on the faster storage tier complies with the service level agreement and (ii) processing other host I/O requests of the first set of simulated host I/O requests using the slower storage tier to determine whether placement of the production LUN on the slower storage tier complies with the service level agreement.

6. A method as in claim 4 , further comprising:

outputting another set of simulated host I/O requests to the first host-accessible data storage array while the first host-accessible data storage array concurrently processes the first set of simulated host I/O requests and the first set of actual host I/O requests to assess a performance outcome of simultaneously re-locating (i) the production LUN from the source storage location of the computerized storage and (ii) another LUN from another source storage location to the first host-accessible data storage array.

7. A method as in claim 1 wherein the computerized storage includes an existing data storage array; and wherein the method further comprises: prior to providing the simulated host I/O requests, creating a set of I/O traces based on monitored operation of the existing data storage array, the created set of I/O traces identifying a time period of peak operation of the existing data storage array.

8. A method as in claim 7 wherein providing the simulated host I/O requests includes:

concurrently providing a first set of simulated host I/O requests and a second set of simulated host I/O requests to the existing data storage array, the first set of simulated host I/O requests duplicating a workload on the existing data storage array during the time period of peak operation of the existing data storage array, and the second set of simulated host I/O requests mimicking the actual host I/O requests that are processed on the production LUN at the source storage location on behalf of the set of host computers.

9. A method as in claim 7 wherein providing the simulated host I/O requests includes:

concurrently providing a first set of simulated host I/O requests and a second set of simulated host I/O requests to simulation circuitry which simulates behavior of the existing data storage array,

wherein the first set of simulated host I/O requests duplicates, on the simulation circuitry, a workload on the existing data storage array during the time period of peak operation of the existing data storage array, and

wherein the second set of simulated host I/O requests mimics, on the simulation circuitry, the actual host I/O requests that are processed on the production LUN at the source storage location on behalf of the set of host computers.

10. A method as in claim 1 wherein the method further comprises, prior to providing the simulated host I/O requests, generating specialized metadata based on monitored processing of the actual host I/O requests on the production LUN; wherein the specialized metadata identifies environmental characteristics of the source storage location residing on the first data storage array; and wherein performing the performance evaluation operations further includes, prior to providing the simulated host I/O requests and based on the specialized metadata, configuring the particular target storage location residing on the second data storage array with the same environmental characteristics as the source storage location residing on the first data storage array.

11. A method as in claim 10 wherein the second data storage array includes (i) multiple data storage tiers providing different data access speeds, (ii) a cache, and (iii) data storage services; and

wherein configuring the particular target storage location residing on the second data storage array includes (i) distributing data of the test LUN among the multiple data storage tiers of the second data storage array based on the specialized metadata, (ii) copying at least some data of the test LUN into the cache of the second data storage array based on the specialized metadata, and (iii) invoking the data storage services in accordance with the specialized metadata to improve emulation of the production LUN using the test LUN.

12. A method of controlling movement of a logical unit of storage (LUN) among computerized storage, the method comprising:

selecting, by processing circuitry, a set of target storage locations of the computerized storage;

performing, by the processing circuitry, performance evaluation operations on each target storage location of the selected set of target storage locations, the performance evaluation operations performed on each target storage location electronically assessing a performance outcome of moving a production LUN from a source storage location of the computerized storage to that target storage location; and

moving, by the processing circuitry, the production LUN from the source storage location to a particular target storage location of the selected set of target storage locations based on a set of electronic performance assessments resulting from the performance evaluation operations performed on each target storage location;

wherein performing the performance evaluation operations includes:

providing simulated host input/output (I/O) requests to at least one target storage location of the selected set of target storage locations while actual host I/O requests are processed on the production LUN at the source storage location on behalf of a set of host computers;

wherein performing the performance evaluation operations further includes:

in response to providing simulated host I/O requests to a test LUN at the particular target storage location, detecting that the particular target storage location provides slower data access speeds than that of the source storage location;

wherein the source storage location resides on a first data storage tier of a data storage array;

wherein the particular target storage location resides on a second data storage tier of the data storage array;

wherein the second data storage tier provides slower access to host data than that of the first data storage tier; and

wherein moving the production LUN from the source storage location to the particular target storage location includes, in response to detection that the particular target storage location (i) provides slower data access speeds than that of the source storage location and (ii) concurrently complies with a service level agreement that defines data access speed requirements for the production LUN, re-locating the production LUN from the first data storage tier to the second data storage tier that provides the slower access to host data.

13. Electronic apparatus, comprising:

interface circuitry constructed and arranged to interface with computerized storage;

memory; and

control circuitry coupled to the interface circuitry and the memory, the memory storing instructions which, when carried out by the control circuitry, cause the control circuitry to:

select a set of target storage locations of the computerized storage,

perform performance evaluation operations on each target storage location of the selected set of target storage locations through the interface circuitry, the performance evaluation operations performed on each target storage location electronically assessing a performance outcome of moving a production logical unit of storage (LUN) from a source storage location of the computerized storage to that target storage location, and

move the production LUN from the source storage location to a particular target storage location of the selected set of target storage locations through the interface circuitry based on a set of electronic performance assessments resulting from the performance evaluation operations performed on each target storage location;

wherein the control circuitry, when performing the performance evaluation operations, is constructed and arranged to:

provide simulated host input/output (I/O) requests to at least one target storage location of the selected set of target storage locations while actual host I/O requests are processed on the production LUN at the source storage location on behalf of a set of host computers;

wherein the control circuitry, when performing the performance evaluation operations, is further constructed and arranged to:

in response to providing simulated host I/O requests to a test LUN at the particular target storage location, detect that the particular target storage location provides slower data access speeds than that of the source storage location;

wherein the source storage location resides on a first data storage array;

wherein the particular target storage location resides on a second data storage array;

wherein the second data storage array provides slower access to host data than that of the first data storage array; and

wherein the control circuitry, when moving the production LUN from the source storage location to the particular target storage location, is constructed and arranged to, in response to detection that the particular target storage location (i) provides slower data access speeds than that of the source storage location and (ii) concurrently complies with a service level agreement that defines data access speed requirements for the production LUN, re-locate the production LUN from the first data storage array to the second data storage array that provides the slower access to host data.

14. Electronic apparatus as in claim 13 wherein the computerized storage includes multiple data storage arrays; and wherein the control circuitry, when performing the performance evaluation operations, is constructed and arranged to:

simultaneously send read and write commands to a respective test LUN on each of the multiple data storage arrays while actual read and write commands are processed on the production LUN at the source storage location on behalf of a set of host computers.

15. Electronic apparatus as in claim 14 wherein the computerized storage includes an existing data storage array; and wherein the control circuitry is further constructed and arranged to:

prior to simultaneously sending read and write commands to the respective test LUN on each of the multiple data storage arrays, create a set of I/O traces based on monitored operation of the existing data storage array, the created set of I/O traces identifying a time period of peak operation of the existing data storage array.

16. A computer program product having a non-transitory computer readable medium which stores a set of instructions to control movement of a logical unit of storage (LUN) among computerized storage; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:

selecting a set of target storage locations of the computerized storage;

performing performance evaluation operations on each target storage location of the selected set of target storage locations, the performance evaluation operations performed on each target storage location electronically assessing a performance outcome of moving a production LUN from a source storage location of the computerized storage to that target storage location; and

moving the production LUN from the source storage location to a particular target storage location of the selected set of target storage locations based on a set of electronic performance assessments resulting from the performance evaluation operations performed on each target storage location;

wherein performing the performance evaluation operations includes:

providing simulated host input/output (I/O) requests to at least one target storage location of the selected set of target storage locations while actual host I/O requests are processed on the production LUN at the source storage location on behalf of a set of host computers;

wherein performing the performance evaluation operations further includes:

in response to providing simulated host I/O requests to a test LUN at the particular target storage location, detecting that the particular target storage location provides slower data access speeds than that of the source storage location;

wherein the source storage location resides on a first data storage tier of a data storage array;

wherein the particular target storage location resides on a second data storage tier of the data storage array;

wherein the second data storage tier provides slower access to host data than that of the first data storage tier; and

wherein moving the production LUN from the source storage location to the particular target storage location includes, in response to detection that the particular target storage location (i) provides slower data access speeds than that of the source storage location and (ii) concurrently complies with a service level agreement that defines data access speed requirements for the production LUN, re-locating the production LUN from the first data storage tier to the second data storage tier that provides the slower access to host data.

17. A method as in claim 1 wherein the first data storage tier includes only flash memory;

wherein the second data storage tier includes only magnetic disk drives; and

wherein re-locating the production LUN from the first data storage tier to the second data storage tier includes:

reading host data from the flash memory and writing that host data to the magnetic disk drives to migrate the production LUN from the first data storage tier to the second data storage tier in a manner which is transparent to the set of host computers.

18. A method as in claim 1 wherein the service level agreement defines a requirement that a data access speed to access the production LUN must be less than a predefined time threshold.

19. A computer program product as in claim 16 wherein the first data storage tier includes only flash memory;

wherein the second data storage tier includes only magnetic disk drives; and

wherein re-locating the production LUN from the first data storage tier to the second data storage tier includes:

reading host data from the flash memory and writing that host data to the magnetic disk drives to migrate the production LUN from the first data storage tier to the second data storage tier in a manner which is transparent to the set of host computers.

20. A computer program product as in claim 16 wherein the service level agreement defines a requirement that a data access speed to access the production LUN must be less than a predefined time threshold.

Assignments (11)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 13, 2016
From: SAAD, YOSSEF; NATANZON, ASSAF; TRACHTMAN, MICHAEL
To: EMC CORPORATION
Reel/Frame 038580/0840 →
Continuity (1)
Continuation In Part 14980501 · Dec 28, 2015
Cited By (5)
US 12,271,756 US 12,299,294 US 12,323,489 US 12,547,312 US 12,650,772