IP Library Granted Patent US 9,256,474
Granted Patent B2
US 9,256,474 · App. 14/509,857 · Granted Feb 9, 2016

Automatically aligning virtual blocks to physical blocks

Inventors: Pratap V. Singh (Mountain View, CA); Vyacheslav V. Malyugin (Los Gatos, CA); Mark G. Gritter (Eagan, MN); Edward K. Lee (Dublin, CA)
Assignee: Tintri Inc.
G06F9/5077G06F11/00G06F12/00G06F12/02G06F12/06G06F12/0646G06F12/0868G06F12/0871G06F13/00G06F13/12G06F13/122G06F13/124
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 9,256,474
App. No.
14/509,857
Granted
Feb 9, 2016
Kind
B2
Abstract

Automatically aligning virtual blocks of partitions to blocks of underlying physical storage is disclosed. In some embodiments, a starting offset of a partition included in a logical container is detected. In some embodiments, a misalignment correction amount for a partition included in a logical container is detected. In some embodiments, a misalignment associated with a partition included in a logical container is corrected.

Claims (41)

1. A system, comprising:

a processor configured to:

extract data written to a logical container; and

determine a starting offset for a partition associated with the logical container based at least in part on a misalignment correction amount associated with a previous partition and on the extracted data; and

a memory coupled to the processor and configured to store the starting offset.

2. The system of claim 1 , wherein data written to the logical container comprises a master boot record (MBR).

3. The system of claim 2 , wherein the processor is further configured to detect the MBR based on one or both of the following: monitoring a location to which the MBR is to be written and detecting one or more data patterns associated with the MBR.

4. The system of claim 2 , wherein the processor is further configured to determine whether the MBR has been detected:

in the event that the MBR has not been detected, buffer a received write request until the MBR has been detected; and

in the event that the MBR has been detected, perform the write request and any buffered write requests by at least automatically translating an offset associated with each write request by at least a misalignment correction amount determined for a partition associated with that write request.

5. The system of claim 4 , wherein to buffer the write request includes to store data associated with the write request in temporary storage.

6. The system of claim 4 , wherein in the event that the MBR has been detected, the processor is further configured to move any unaligned data written prior to detecting the MBR based at least in part on any associated misalignment correction amounts.

7. The system of claim 1 , wherein the data written to the logical container associated with boundaries of one or more partitions associated with the logical container comprises a partition table.

8. The system of claim 7 , wherein to determine the starting offset for the partition associated with the logical container is based at least in part on reading the partition table.

9. The system of claim 1 , wherein the processor is further configured to use the starting offset of the partition to determine a misalignment correction amount for the partition.

10. The system of claim 9 , wherein the partition comprises a first partition and wherein the processor is further configured to determine a misalignment correction amount for a second partition associated with the logical container based at least in part on the misalignment correction amount determined for the first partition.

11. The system of claim 9 , wherein the processor is further configured to:

receive a request associated with the partition; and

automatically translate an offset associated with the request by an amount determined based at least in part on the misalignment correction amount for the partition.

12. The system of claim 11 , wherein to translate the offset associated with the request is performed transparent to an associated hypervisor.

13. The system of claim 11 , wherein the partition comprises a first partition and wherein the processor is further configured to translate a misalignment correction amount for a second partition included in the logical container based at least in part on the misalignment correction amount for the first partition.

14. The system of claim 11 , wherein the processor is further configured to perform the request at an offset determined based at least in part on the translation of the offset of the request by at least the misalignment correction amount for the partition.

15. The system of claim 11 , wherein the processor is further configured to:

determine whether the request is associated with a configured amount of storage associated with an end of the partition; and

in the event that the request is associated with the configured amount of storage associated with the end of the partition, apply wrapping back of the request to an offset associated with a gap of the partition.

16. The system of claim 1 , wherein the starting offset for the partition is determined based at least in part on statistical information derived from historical misalignment information.

17. The system of claim 1 , wherein determining the starting offset based at least in part on a misalignment correction amount associated with a previous partition and on the extracted data comprises:

computing the starting offset using the misalignment correction amount applied to the previous partition and an additional adjustment necessary to shift a starting boundary of the partition with the misalignment correction amount applied to a next starting boundary of a physical block.

18. A method, comprising:

extracting data written to a logical container; and

determining a starting offset for a partition associated with the logical container based at least in part on a misalignment correction amount associated with a previous partition and on the extracted data.

19. The method of claim 18 , wherein data written to the logical container comprises a master boot record (MBR).

20. The method of claim 19 , further comprising detecting the MBR based on one or both of the following: monitoring a disk location to which the MBR is to be written and detecting one or more data patterns associated with the MBR.

21. The method of claim 19 , further comprising determining whether the MBR has been detected:

in the event that the MBR has not been detected, buffering a received write request until the MBR has been detected; and

in the event that the MBR has been detected, performing the write request and any buffered write requests by at least automatically translating an offset associated with each write request by at least a misalignment correction amount determined for a partition associated with that write request.

22. The method of claim 18 , wherein the data written to the logical container associated with boundaries of one or more partitions associated with the logical container comprises a partition table.

23. The method of claim 22 , wherein determining the starting offset for the partition associated with the logical container is based at least in part on reading the partition table.

24. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

extracting data written to a logical container; and

determining a starting offset for a partition associated with the logical container based at least in part on a misalignment correction amount associated with a previous partition and on the extracted data.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 31, 2019
From: TINTRI INC.
To: TI ACQUISITION CORP.
Reel/Frame 048201/0666 →
CHANGE OF NAME Recorded Jan 31, 2019
From: TI ACQUISITION CORP.
To: TINTRI BY DDN, INC.
Reel/Frame 048211/0685 →
SECURITY INTEREST Recorded Oct 13, 2018
From: TI ACQUISITION CORP.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 047229/0463 →
SECOND AMENDMENT TO SECURITY AGREEMENT Recorded May 1, 2017
From: TINTRI, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 042380/0760 →
SECURITY INTEREST Recorded May 16, 2016
From: TINTRI, INC.
To: SILICON VALLEY BANK
Reel/Frame 038711/0505 →
SECURITY INTEREST Recorded Mar 5, 2015
From: TINTRI, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 035097/0801 →
Continuity (3)
Continuation 13421712 · Mar 15, 2012
Provisional Application 61453356 · Mar 16, 2011
Related Publication 20150089182A1 · Mar 26, 2015