Management of Storage Resources Allocated from Non-volatile Memory Devices to Users
Abstract
A computer having a plurality of accounts and a storage device having a host interface, a controller, non-volatile storage media, and firmware. Each account has a namespace identifier that identifies the allocation of a portion of the non-volatile storage media to the account. The storage device stores a namespace map that defines the mapping between the logical addresses in a namespace identified by the namespace identifier and the logical addresses, in a capacity of the storage device, that correspond to the portion of the non-volatile storage media allocated to and accessible to the account. The account accesses the portion of the non-volatile storage media via the logical addresses in the namespace. The firmware of the storage device configures the controller to convert, using the namespace map, the logical addresses in the namespace to the physical addresses of the portion of the non-volatile storage media.
Claims
exact text as granted — not AI-modifiedWhat is claimed is:
1 . A computer system, comprising:
a storage device having:
a host interface;
a controller;
non-volatile storage media; and
firmware; and
a plurality of accounts; and wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account; wherein the storage device stores a namespace map that defines a mapping between:
logical addresses in a namespace identified by the namespace identifier, wherein the respective account accesses the portion of the non-volatile storage media via the logical addresses in the namespace; and
logical addresses, in a capacity of the storage device, corresponding to the portion of the non-volatile storage media accessible to the respective account; and
wherein the firmware includes instructions which when executed by the controller, cause the controller to convert, using the namespace map, the logical addresses in the namespace to physical addresses of the portion of the non-volatile storage media accessible to the respective account.
2 . The computer system of claim 1 , wherein entire storage resources allocated for user data in the respective account are identified by the namespace identifier.
3 . The computer system of claim 2 , wherein a size of the namespace corresponds to a quota of the entire storage resources allocated for user data in the respective account.
4 . The computer system of claim 3 , wherein a size of the portion of the non-volatile storage media allocated to the respective account is smaller than the quota.
5 . The computer system of claim 4 , wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account based on usage of the portion of the non-volatile storage media allocated to the respective account.
6 . The computer system of claim 4 , wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account in response to a determination that an unused portion, allocated from the non-volatile storage media to the respective account, is smaller than a threshold.
7 . The computer system of claim 4 , wherein the controller of the storage device is configured by the firmware to increase the size of the portion of the non-volatile storage media allocated to the respective account by adjusting the namespace map.
8 . The computer system of claim 2 , wherein the controller of the storage device is configured by the firmware to adjust the size of the namespace in response to a change in the quota for the respective account.
9 . The computer system of claim 8 , wherein the controller of the storage device is configured by the firmware to adjust the size of the namespace by adjusting the namespace map.
10 . The computer system of claim 9 , wherein the adjusting of the namespace map is performed by adding or removing an identifier of a block of logical addresses in the capacity of the storage device.
11 . The computer system of claim 10 , wherein the block has a predetermined size.
12 . The computer system of claim 11 , wherein the predetermined size is a power of two.
13 . The computer system of claim 1 , wherein the storage device has a register storing a crypto key of the namespace during data access performed in the namespace.
14 . The computer system of claim 1 , wherein the host interface implements single root I/O virtualization.
15 . The computer system of claim 14 , wherein the namespace is attached to a virtual function of the storage device implemented via the single root I/O virtualization.
16 . The computer system of claim 1 , wherein the each respective account in the plurality of accounts is configured with a single namespace identifier for identifying storage resources available to store user data in the each respective account.
17 . A method implemented in a computer system, the method comprising:
connecting a storage device to a host, the storage device having:
a host interface;
a controller;
non-volatile storage media; and
firmware; and
configuring, in the host, a plurality of accounts, wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account; storing, in the storage device, a namespace map that defines a mapping between:
logical addresses in a namespace identified by the namespace identifier, wherein the respective account accesses the portion of the non-volatile storage media via the logical addresses in the namespace; and
logical addresses, in a capacity of the storage device, corresponding to the portion of the non-volatile storage media accessible to the respective account; and
converting, by the controller executing the firmware and using at least the namespace map, the logical addresses in the namespace to physical addresses of the portion of the non-volatile storage media accessible to the respective account.
18 . The method of claim 17 , further comprising:
monitoring, by the controller of the storage device, usage of the namespace; and adjusting, by the controller of the storage device, a size of the namespace based on the usage of the namespace in accordance with a quota of storage resources allocated to the account.
19 . The method of claim 18 , wherein the adjusting of the size of the namespace includes adding to, or removing from, the namespace map, an identifier of a block of logical addresses in the capacity of the storage device.
20 . A non-transitory computer storage medium storing instructions which, when executed by a computer system, cause the computer system to perform a method, the method comprising:
configuring, in a host coupled to a storage device, a plurality of accounts, the storage device having:
a host interface;
a controller;
non-volatile storage media; and
firmware;
wherein each respective account in the plurality of accounts has a namespace identifier that identifies allocation of a portion of the non-volatile storage media to the respective account; storing, in the storage device, a namespace map that defines a mapping between:
logical addresses in a namespace identified by the namespace identifier, wherein the respective account accesses the portion of the non-volatile storage media via the logical addresses in the namespace; and
logical addresses, in a capacity of the storage device, corresponding to the portion of the non-volatile storage media accessible to the respective account; and
converting, by the controller executing the firmware and using at least the namespace map, the logical addresses in the namespace to physical addresses of the portion of the non-volatile storage media accessible to the respective account.Join the waitlist — get patent alerts
Track US2022214967A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.