Method and device for storage management
Embodiments of the present disclosure provide a method and an apparatus for storage management. For example, there is provided a method comprising: creating a plurality of profiles for address mapping, the profiles comprising a part of mapping relation in the total mapping table and creating an index for a part of the plurality of profiles to accelerate the lookup speed. A corresponding device and computer program product are also disclosed.
1. A method of storage management, comprising:
creating a plurality of profiles for address mapping, a profile containing a part of an address mapping table stored on a non-volatile storage device, and the profile indicating:
a logical starting address of an initial logical block of a plurality of logical blocks,
a physical starting address corresponding to the logical starting address,
the number of the plurality of logical blocks, and
a modification flag bit indicating whether the profile is changed with respect to the address mapping table;
storing the plurality of profiles in a cache in an order of the corresponding logical starting addresses;
creating an index for a part of the plurality of profiles in the cache;
creating a first record for a first physical extent, the first record indicating a physical starting address of the first physical extent and a first number of physical blocks contained therein, at least a part of the plurality of logical blocks indicated by a first profile of the plurality of profiles being mapped to the first physical extent;
creating a second record for a second physical extent, the second record indicating a physical starting address of the second physical extent and a second number of physical blocks contained therein, at least a part of the plurality of logical blocks indicated by a second profile of the plurality of profiles being mapped to the second physical extent;
in response to a physical end address of the first physical extent and a physical starting address of the second physical extent being continuous, merging the first record and the second record to generate a third record, the third record indicating the physical starting address of the first physical extent and a sum of the first number and the second number; and
storing the third record in the cache.
2. The method of claim 1 , wherein creating an index for a part of the plurality of profiles in the cache comprises:
selecting the part of profiles randomly to create the index.
3. The method of claim 1 , wherein creating an index for a part of the plurality of profiles in the cache comprises:
selecting, based on an access frequency, the part of profiles to create the index.
4. The method of claim 1 , further comprising:
in response to the physical end address of the first physical extent and the physical starting address of the second physical extent being non-continuous, storing the first record and the second record in the cache.
5. The method of claim 1 , further comprising:
receiving a request for a target profile, the request indicating an index associated with the target profile; and
searching the target profile in the cache based on the index.
6. The method of claim 5 , further comprising:
in response to the target profile being absent in the cache, creating the target profile based on the address mapping table.
7. The method of claim 5 wherein the request comprises a request to modify a part of the address mapping table contained in the target profile, the method further comprising:
in response to the target profile being present in the cache, updating the part of the address mapping table contained in the target profile.
8. The method of claim 1 , further comprising:
in response to the number of idle profiles in the cache being lower than a first threshold, triggering reclaiming of the plurality of profiles; and
in response to the number of idle profiles in the cache being greater than a second threshold, ceasing the reclaiming.
9. The method of claim 8 , wherein triggering reclaiming of the plurality of profiles comprises:
reclaiming, among the plurality of profiles, profiles not having been changed with respect to the address mapping table.
10. The method of claim 8 , wherein triggering reclaiming of the plurality of profiles comprises:
reclaiming, among the plurality of profiles, profiles having been changed with respect to the address mapping table, comprising:
storing, in the non-volatile storage device, changed address mapping in the changed profiles.
11. The method of claim 8 , further comprising:
removing an index of a reclaimed profile.
12. An electronic device, comprising:
a processor; and
a memory coupled to the processor, the memory having instructions stored therein which, when executed by the processor, cause the electronic device to perform acts comprising:
creating a plurality of profiles for address mapping, one profile containing a part of an address mapping table stored on a non-volatile storage device and the profile indicating:
a logical starting address of an initial logical block of a plurality of logical blocks,
a physical starting address corresponding to the logical starting address,
the number of the plurality of logical blocks, and
a modification flag bit indicating whether the profile is changed with respect to the address mapping table;
storing the plurality of profiles in a cache in an order of the corresponding logical starting addresses;
creating an index for a part of the plurality of profiles in the cache,
creating a first record for a first physical extent, the first record indicating a physical starting address of the first physical extent and a first number of physical blocks contained therein, at least a part of the plurality of logical blocks indicated by a first profile of the plurality of profiles being mapped to the first physical extent:
creating a second record for a second physical extent, the second record indicating a physical starting address of the second physical extent and a second number of physical blocks contained therein, at least a part of the plurality of logical blocks indicated by a second profile of the plurality of profiles being mapped to the second physical extent;
in response to a physical end address of the first physical extent and a physical starting address of the second physical extent being continuous, merging the first record and the second record to generate a third record, the third record indicating the physical starting address of the first physical extent and a sum of the first number and the second number; and
storing the third record in the cache.
13. The device of claim 12 , wherein creating an index for a part of the plurality of profiles in the cache comprises:
selecting the part of profiles randomly to create the index.
14. The device of claim 12 , wherein creating an index for a part of the plurality of profiles in the cache comprises:
selecting, based on an access frequency, the part of profiles to create the index.
15. The device of claim 12 , wherein the acts further comprise:
in response to the physical end address of the first physical extent and the physical starting address of the second physical extent being non-continuous, storing the first record and the second record in the cache.
16. The device of claim 12 , wherein the acts further comprise:
receiving a request for a target profile, the request indicating an index associated with the target profile;
searching the target profile in the cache based on the index.
17. The device of claim 16 , wherein the acts further comprise:
in response to the target profile being absent in the cache, creating the target profile based on the address mapping table.
18. The device of claim 16 , wherein the request comprises a request to modify a part of the address mapping table contained in the target profile, the acts further comprising:
in response to the target profile being present in the cache, updating the part of the address mapping table contained in the target profile.
19. The device of claim 12 , wherein the acts further comprise:
in response to the number of idle profiles in the cache being lower than a first threshold, triggering reclaiming of the plurality of profiles; and
in response to the number of idle profiles in the cache being greater than a second threshold, ceasing the reclaiming.
20. The device of claim 19 , wherein triggering reclaiming of the plurality of profiles comprises:
reclaiming, among the plurality of profiles, profiles not having been changed with respect to the address mapping table.