IP Library Granted Patent US 7,689,803
Granted Patent B2
US 7,689,803 · App. 11/156,635 · Granted Mar 30, 2010

System and method for communication using emulated LUN blocks in storage virtualization environments

Assignee: Symantec Operating Corporation
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 7,689,803
App. No.
11/156,635
Granted
Mar 30, 2010
Kind
B2
Abstract

A system for communication using emulated LUN blocks in storage virtualization environments includes a first host and an off-host virtualizer. The off-host virtualizer may be configured to generate operating system metadata for a virtual storage device, and to make the operating system metadata accessible to the first host. A first layer of a storage software stack at the host may use the operating system metadata to detect the existence of the virtual storage device as an addressable storage device. The off-host virtualizer may also be configured to provide configuration information at a designated set of block addresses within the virtual storage device. A second layer of the storage software stack may be configured to read the configuration information from the designated set of blocks.

Claims (54)

1. A system comprising:

a first host;

an off-host virtualizer comprising at least one processor and a memory, wherein the memory stores program instructions, wherein the program instructions are executable by the at least one processor to:

generate and load into the memory a plurality of sets of operating system metadata corresponding to a plurality of different operating systems for a virtual storage device;

receive a request from the first host to access the virtual storage device, wherein the request is received after the generating and loading of the plurality of sets of operating system metadata;

determine an identity of an operating system used by the first host;

select a set of operating system metadata corresponding to one of the plurality of different operating systems based on the determined identity of the operating system used by the first host;

make the selected set of operating system metadata accessible to the first host; and

provide configuration information at a designated range of blocks within the virtual storage device, wherein the configuration information comprises at least a portion of the selected set of operating system metadata, wherein the designated range of blocks is dependent upon the determined identity of the operating system used by the first host;

wherein the first host comprises a storage software stack including a first layer and a second layer;

wherein the first layer is configured to use the selected set of operating system metadata to detect an existence of the virtual storage device as addressable storage; and

wherein the second layer is configured to read the configuration information from the designated range of blocks.

2. The system as recited in claim 1 , wherein the configuration information includes a volume identifier and a volume length.

3. The system as recited in claim 1 , wherein the configuration information includes a security code.

4. The system as recited in claim 1 , wherein the configuration information includes multi-pathing state information.

5. The system as recited in claim 1 , wherein the configuration information includes statistics on I/O operations performed on the virtual storage device.

6. The system as recited in claim 1 , wherein the second layer is configured to write additional configuration information to a second designated range of blocks within the virtual storage device, and wherein the program instructions are further executable by the at least one processor to operate in response to the additional configuration information.

7. The system as recited in claim 6 , wherein the first host is a node of a cluster, and wherein the additional configuration information includes cluster state information.

8. The system as recited in claim 6 , wherein the additional configuration information includes an I/O fencing request.

9. The system as recited in claim 6 , wherein the additional configuration information includes a device number associated with a physical storage device, wherein the device number is used as part of a file handle during Network File System (NFS) operations.

10. The system as recited in claim 9 , further comprising a second host, wherein the device number is used to maintain file handle consistency when NFS service for a particular file system is transferred from the first host to the second host.

11. The system as recited in claim 6 , wherein the additional configuration information includes an identifier for the first host.

12. The system as recited in claim 6 , wherein the additional configuration information includes an identification of an operating system in use at the first host.

13. The system as recited in claim 1 , wherein the off-host virtualizer is a virtualizing switch.

14. The system as recited in claim 1 , wherein the off-host virtualizer is a virtualization appliance.

15. The system as recited in claim 1 , wherein the program instructions are further executable by the at least one processor to leave an initial range of blocks of the virtual storage device unmapped to physical storage, and to return an I/O error in response to an I/O operation directed at the initial range of blocks.

16. A method comprising:

generating and loading into a memory a plurality of sets of operating system metadata corresponding to a plurality of different operating systems for a virtual storage device at an off-host virtualizer comprising the memory;

receiving a request from a first host to access the virtual storage device, wherein the request is received after the generating and loading of the plurality of sets of operating system metadata;

determining an identity of an operating system used by the first host;

selecting a set of operating system metadata corresponding to one of the plurality of different operating systems based on the determined identity of the operating system used by the first host;

making the selected set of operating system metadata accessible to a first layer of a storage software stack at a first host;

the off-host virtualizer providing configuration information at a designated range of blocks within the virtual storage device, wherein the configuration information comprises at least a portion of the selected set of operating system metadata, wherein the designated range of blocks is dependent upon the determined identity of the operating system used by the first host;

the first layer using the selected set of operating system metadata to detect an existence of the virtual storage device as a logical unit (LUN); and

a second layer of the storage software stack reading the configuration information from the designated range of blocks.

17. The method as recited in claim 16 , further comprising:

the second layer writing additional configuration information to a second designated range of blocks; and

the off-host virtualizer operating in response to the additional configuration information.

18. The method as recited in claim 16 , wherein the off-host virtualizer is a virtualizing switch.

19. The method as recited in claim 16 , wherein the off-host virtualizer is a virtualization appliance.

20. A computer accessible storage medium comprising program instructions, wherein the instructions are executable to:

generate and load into a memory a plurality of sets of operating system metadata corresponding to a plurality of different operating systems for a virtual storage device at an off-host virtualizer comprising the memory;

receive a request from a first host to access the virtual storage device, wherein the request is received after the generation of the plurality of sets of operating system metadata;

determine an identity of an operating system used by the first host;

select a set of operating system metadata corresponding to one of the plurality of different operating systems based on the determined identity of the operating system used by the first host;

make the selected set of operating system metadata accessible to a first layer of a storage software stack at the first host;

provide configuration information from the off-host virtualizer at a designated range of blocks within the virtual storage device, wherein the configuration information comprises at least a portion of the selected set of operating system metadata, wherein the designated range of blocks is dependent upon the determined identity of the operating system used by the first host;

use the selected set of operating system metadata at the first layer to detect an existence of the virtual storage device as a logical unit (LUN); and

read the configuration information from the designated range of blocks at a second layer of the storage software stack.

21. The computer accessible storage medium as recited in claim 20 , wherein the instructions are further executable to:

write additional configuration information to a second designated range of blocks of the virtual storage device from the second layer; and

operate on the additional configuration information from the off-host virtualizer.

22. The computer accessible storage medium as recited in claim 20 , wherein the off-host virtualizer is a virtualizing switch.

23. The computer accessible storage medium as recited in claim 20 , wherein the off-host virtualizer is a virtualization appliance.

Assignments (12)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED ON REEL 019872 FRAME 979. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNEE IS SYMANTEC OPERATING CORPORATION. Recorded Mar 5, 2012
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 027819/0462 →
CHANGE OF NAME Recorded Sep 26, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC CORPORATION
Reel/Frame 019872/0979 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 20, 2005
From: KARR, RONALD S.; KUMAR, MUKUL; ROY, SUBHOJIT
To: VERITAS OPERATING CORPORATION
Reel/Frame 016715/0305 →
Priority Claims (1)
WO PCT/US2004/039306 · Nov 22, 2004 · international
Continuity (2)
Continuation In Part 1072261400 · Nov 26, 2003
Related Publication 20050228937A1 · Oct 13, 2005