IP Library Granted Patent US 11,797,434
Granted Patent B2
US 11,797,434 · App. 17/322,456 · Granted Oct 24, 2023

Managing storage devices

Inventors: Christopher J. Sabol (San Jose, CA); Tomasz Jeznach (Santa Clara, CA)
Assignee: Google LLC
G06F12/0246G06F3/0604G06F3/0647G06F3/0659G06F3/0679G06F12/08G06F13/1668G06F3/06G06F2003/0697G06F2212/7202G06F2212/7207
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 11,797,434
App. No.
17/322,456
Granted
Oct 24, 2023
Kind
B2
Abstract

Methods, systems, and apparatus, including computer programs encoded on a computer storage medium, for managing storage devices. In some implementations, a memory controller receives a logical write request over a logical interface that the memory controller provides for accessing a non-volatile storage device. The logical write request indicates a logical address at which to write data to the non-volatile storage device. In response to receiving the logical write request, the memory controller sends a write request event to a host system. The memory controller receives a physical write command from the host system over a physical interface that the memory controller provides for accessing the non-volatile storage device. In response to receiving the physical write command, the memory controller stores the data in the non-volatile storage device according to the physical write command.

Claims (45)

1. A method comprising:

providing, by a host system, a virtual environment to a guest device and providing the guest device access to a source storage device managed by the host system;

initiating, by the host system, migration of contents of the source storage device to a destination storage device;

suspending, by the host system, the virtual environment for the guest device and discontinuing access to the source storage device by the guest; and

before completing the migration of the contents of the source storage device to the destination storage device, resuming, by the host system, the virtual environment for the guest device and providing the guest device access to the destination storage device instead of the source storage device;

preparing, by the host system, the destination storage device for migration by modifying a logical to physical mapping of the destination storage device such that each logical address in the logical to physical mapping is associated with an invalid physical address that indicates that data associated with the logical address is invalid;

in response to a read request that attempts to read the data from a logical address mapped to the invalid physical address, generating an error event; and

in response to a write request to write data to a logical address mapped to the invalid physical address before data is migrated for the logical address:

updating the logical to physical mapping for the logical address with a physical address to which the data is to be written;

writing the data to the physical address;

notifying the host system of the writing of data to the physical address; and

determining, by the host system, the data written to the physical address is more current than data not yet migrated for the logical address mapped to the physical address and in response not migrating the data not yet migrated for the logical address mapped to the physical address.

2. The method of claim 1 , further comprising providing the guest device access to the destination storage device over a logical interface of the destination storage device.

3. The method of claim 2 , further comprising directing write requests from the guest device to the destination storage device.

4. An apparatus comprising:

a processing device; and

a non-transitory computer readable memory storing instructions executable by the processing device that upon such execution cause the processing device to perform operations comprising:

providing, by a host system, a virtual environment to a guest device and providing the guest device access to a source storage device managed by the host system;

initiating, by the processing device, migration of contents of the source storage device to a destination storage device;

suspending, by the processing device, the virtual environment for the guest device and discontinuing access to the source storage device by the guest; and

before completing the migration of the contents of the source storage device to the destination storage device, resuming, by the processing device, the virtual environment for the guest device and providing the guest device access to the destination storage device instead of the source storage device;

preparing, by the processing device, the destination storage device for migration by modifying a logical to physical mapping of the destination storage device such that each logical address in the logical to physical mapping is associated with an invalid physical address that indicates that data associated with the logical address is invalid;

in response to a read request that attempts to read the data from a logical address mapped to the invalid physical address, generating an error event; and

in response to a write request to write data to a logical address mapped to the invalid physical address before data is migrated for the logical address:

updating the logical to physical mapping for the logical address with a physical address to which the data is to be written;

writing the data to the physical address;

notifying the processing device of the writing of data to the physical address; and

determining, by the processing device, the data written to the physical address is more current than data not yet migrated for the logical address mapped to the physical address and in response not migrating the data not yet migrated for the logical address mapped to the physical address.

5. The apparatus of claim 4 , the operations further comprising providing the guest device access to the destination storage device over a logical interface of the destination storage device.

6. The apparatus of claim 5 , the operations further comprising directing write requests from the guest device to the destination storage device.

7. The apparatus of claim 4 , wherein the processing device is a memory management module.

8. A non-transitory computer readable memory storing instructions executable by a processing device that upon such execution cause the processing device to perform operations comprising:

providing, by a host system, a virtual environment to a guest device and providing the guest device access to a source storage device managed by the host system;

initiating, by the processing device, migration of contents of the source storage device to a destination storage device;

suspending, by the processing device, the virtual environment for the guest device and discontinuing access to the source storage device by the guest; and

before completing the migration of the contents of the source storage device to the destination storage device, resuming, by the processing device, the virtual environment for the guest device and providing the guest device access to the destination storage device instead of the source storage device;

preparing, by the processing device, the destination storage device for migration by modifying a logical to physical mapping of the destination storage device such that each logical address in the logical to physical mapping is associated with an invalid physical address that indicates that data associated with the logical address is invalid;

in response to a read request that attempts to read the data from a logical address mapped to the invalid physical address, generating an error event; and

in response to a write request to write data to a logical address mapped to the invalid physical address before data is migrated for the logical address:

updating the logical to physical mapping for the logical address with a physical address to which the data is to be written;

writing the data to the physical address;

notifying the processing device of the writing of data to the physical address; and

determining, by the processing device, the data written to the physical address is more current than data not yet migrated for the logical address mapped to the physical address and in response not migrating the data not yet migrated for the logical address mapped to the physical address.

9. The non-transitory computer readable memory of claim 8 , the operations further comprising providing the guest device access to the destination storage device over a logical interface of the destination storage device.

10. The non-transitory computer readable memory of claim 9 , the operations further comprising directing write requests from the guest device to the destination storage device.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 18, 2021
From: SABOL, CHRISTOPHER J.; JEZNACH, TOMASZ
To: GOOGLE INC.
Reel/Frame 056277/0183 →
CHANGE OF NAME Recorded May 18, 2021
From: GOOGLE INC.
To: GOOGLE LLC
Reel/Frame 056281/0454 →
Continuity (3)
Continuation 15937161 · Mar 27, 2018
Continuation 14311920 · Jun 23, 2014
Related Publication 20210271596A1 · Sep 2, 2021