IP Library Granted Patent US 9,424,263
Granted Patent B1
US 9,424,263 · App. 14/456,458 · Granted Aug 23, 2016

Multi-tiered filesystem

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,424,263
App. No.
14/456,458
Granted
Aug 23, 2016
Kind
B1
Abstract

A multi-tiered filesystem integrates multiple types of storage devices into a contiguous filesystem storage space having regions associated with two or more tiers of storage.

Claims (115)

1. A file server comprising:

a controller managing (i) a plurality of file systems and (ii) a storage pool provided with a plurality of storage tiers, a higher storage tier of the plurality of storage tiers having a first characteristic and a lower storage tier of the plurality of storage tiers having a second characteristic different from the first characteristic of the higher storage tier,

wherein the controller is configured to store user data associated with a user file handled by a file system of the plurality of file systems into the lower storage tier of the storage pool and to store metadata for managing the user file into the higher storage tier of the storage pool based on the type of the storage tier and the type of the user data or the metadata of the user file,

wherein the storage tiers include at least one metadata region predominantly used for storing metadata and at least one user data region predominantly used for storing user data, and

wherein the controller stores system metadata associated with a file system of the plurality of file systems in blocks of storage associated with the at least one metadata region, and, for each of a first number of user files associated with said file system of the plurality of file systems, the controller stores user metadata for the user file in blocks of storage associated with the at least one metadata region and storing user data for the user file in blocks of storage associated with the at least one user data region.

2. A file server according to claim 1 , wherein the storage tiers are based on at least one of different storage device media, different storage device speeds, or different storage device reliabilities.

3. A file server according to claim 2 , wherein the different storage device media include solid state storage and at least one type of disk storage.

4. A file server according to claim 1 , wherein the storage tiers include a high-speed storage tier and at least one lower-speed storage tier.

5. A file server according to claim 1 , wherein the storage tiers include a high-reliability storage tier and at least one lower-reliability storage tier.

6. A file server according to claim 1 , wherein the at least one metadata region is associated with solid state storage devices and wherein the at least one user data region is associated with disk storage devices.

7. A file server according to claim 1 , wherein the at least one metadata region is associated with high-reliability disk storage devices and wherein the at least one user data region is associated with lower-reliability disk storage devices.

8. A file server according to claim 1 , wherein the controller selectively stores a portion of system metadata in blocks of data associated with the at least one user data region when there is insufficient storage space in the at least one metadata region for storing the portion of system metadata.

9. A file server according to claim 1 , wherein, for each of a second number of user files, the controller stores both the user metadata and the user data for the user file in storage blocks associated with the at least one metadata region.

10. A file server according to claim 3 , wherein the at least one user data region includes a plurality of user data regions associated with different user data tiers, and wherein the controller stores the user data for the user file by selecting a user data tier for the user data from among the plurality of user data tiers based on a predetermined storage policy; and storing the user data for the user file in blocks of storage associated with the selected user data tier.

11. A file server according to claim 10 , wherein, for each of a third number of user files, the controller stores user metadata and user data for the user file in blocks of storage associated with different user data tiers, wherein the user data tier in which the user metadata is stored is associated with a hierarchically higher storage tier than the user data tier in which the user data is stored.

12. A file server according to claim 1 , wherein, for each of a fourth number of user files, the controller stores the user metadata and the user data for the user file in blocks of storage associated with the same user data tier.

13. A file server according to claim 1 , wherein the controller migrates data between storage tiers based on a predetermined migration policy.

14. A file server according to claim 1 , wherein the controller manages each filesystem using a hierarchy of virtual storage constructs including system drives, ranges composed of one or more system drives, stripesets composed of one or more ranges, and spans composed of one or more stripesets, and wherein the storage tiers are managed at the stripeset level such that each stripeset is associated with a storage tier and the filesystem integrates storage from stripesets associated with multiple storage tiers.

15. A method for managing file systems by a file server in a file storage system, the method comprising:

managing a plurality of file systems; and

managing a storage pool provided with a plurality of storage tiers, a higher storage tier of the plurality of storage tiers having a first characteristic and a lower storage tier of the plurality of storage tiers having a second characteristic different from the first characteristic of the higher storage tier; and

storing user data associated with a user file handled by a file system of the plurality of file systems into the lower storage tier of the storage pool and storing metadata for managing the user file into the higher storage tier of the storage pool based on the type of the storage tier and the type of the user data or the metadata of the user file wherein the at least one metadata region is associated with solid state storage devices and wherein the at least one user data region is associated with disk storage devices, and wherein the method further comprises:

storing system metadata associated with a file system of the plurality of file systems in blocks of storage associated with the at least one metadata region; and

for each of a first number of user files associated with said file system of the plurality of file systems, storing user metadata for the user file in blocks of storage associated with the at least one metadata region and storing user data for the user file in blocks of storage associated with the at least one user data region.

16. A method according to claim 15 , wherein the storage tiers are based on at least one of different storage device media, different storage device speeds, or different storage device reliabilities.

17. A method according to claim 16 , wherein the different storage device media include solid state storage and at least one type of disk storage.

18. A method according to claim 15 , wherein the storage tiers include a high-speed storage tier and at least one lower-speed storage tier.

19. A method according to claim 15 , wherein the storage tiers include a high-reliability storage tier and at least one lower-reliability storage tier.

20. A method according to claim 15 , wherein the at least one metadata region is associated with solid state storage devices and wherein the at least one user data region is associated with disk storage devices.

21. A method according to claim 15 , wherein the at least one metadata region is associated with high-reliability disk storage devices and wherein the at least one user data region is associated with lower-reliability disk storage devices.

22. A method according to claim 15 , further comprising:

selectively storing a portion of system metadata in blocks of data associated with the at least one user data region when there is insufficient storage space in the at least one metadata region for storing the portion of system metadata.

23. A method according to claim 15 , further comprising, for each of a second number of user files, storing both the user metadata and the user data for the user file in storage blocks associated with the at least one metadata region.

24. A method according to claim 15 , wherein the at least one user data region includes a plurality of user data regions associated with different user data tiers, and wherein storing the user data for the user file comprises:

selecting a user data tier for the user data from among the plurality of user data tiers based on a predetermined storage policy; and

storing the user data for the user file in blocks of storage associated with the selected user data tier.

25. A method according to claim 24 , further comprising, for each of a third number of user files, storing user metadata and user data for the user file in blocks of storage associated with different user data tiers, wherein the user data tier in which the user metadata is stored is associated with a hierarchically higher storage tier than the user data tier in which the user data is stored.

26. A method according to claim 24 , further comprising, for each of a fourth number of user files, storing the user metadata and the user data for the user file in blocks of storage associated with the same user data tier.

27. A method according to claim 15 , further comprising:

migrating data between storage tiers based on a predetermined migration policy.

28. A method according to claim 15 , wherein each filesystem is managed using a hierarchy of virtual storage constructs including system drives, ranges composed of one or more system drives, stripesets composed of one or more ranges, and spans composed of one or more stripesets, and wherein the storage tiers are managed at the stripeset level such that each stripeset is associated with a storage tier and the filesystem integrates storage from stripesets associated with multiple storage tiers.

29. A file storage system comprising:

a plurality of storage devices including storage devices associated with different storage characteristics; and

a file server comprising a controller managing the plurality of storage devices including managing (i) a plurality of file systems and (ii) a storage pool provided with a plurality of storage tiers, a higher storage tier of the plurality of storage tiers having a first characteristic and a lower storage tier of the plurality of storage tiers having a second characteristic different from the first characteristic of the higher storage tier, wherein the controller is configured to store user data associated with a user file handled by a file system of the plurality of file systems into the lower storage tier of the storage pool and to store metadata for managing the user file into the higher storage tier of the storage pool based on the type of the storage tier and the type of the user data or the metadata of the user file, wherein the storage tiers include at least one metadata region predominantly used for storing metadata and at least one user data region predominantly used for storing user data, and wherein the controller stores system metadata associated with a file system of the plurality of file systems in blocks of storage associated with the at least one metadata region, and, for each of a first number of user files associated with said file system of the plurality of file systems, the controller stores user metadata for the user file in blocks of storage associated with the at least one metadata region and storing user data for the user file in blocks of storage associated with the at least one user data region.

30. A file storage system according to claim 29 , wherein the storage tiers are based on at least one of different storage device media, different storage device speeds, or different storage device reliabilities.

31. A file storage system according to claim 30 , wherein the different storage device media include solid state storage and at least one type of disk storage.

32. A file storage system according to claim 29 , wherein the storage tiers include a high-speed storage tier and at least one lower-speed storage tier.

33. A file storage system according to claim 29 , wherein the storage tiers include a high-reliability storage tier and at least one lower-reliability storage tier.

34. A file storage system according to claim 29 , wherein the at least one metadata region is associated with solid state storage devices and wherein the at least one user data region is associated with disk storage devices.

35. A file storage system according to claim 29 , wherein the at least one metadata region is associated with high-reliability disk storage devices and wherein the at least one user data region is associated with lower-reliability disk storage devices.

36. A file storage system according to claim 29 , wherein the controller selectively stores a portion of system metadata in blocks of data associated with the at least one user data region when there is insufficient storage space in the at least one metadata region for storing the portion of system metadata.

37. A file storage system according to claim 29 , wherein, for each of a second number of user files, the controller stores both the user metadata and the user data for the user file in storage blocks associated with the at least one metadata region.

38. A file storage system according to claim 29 , wherein the at least one user data region includes a plurality of user data regions associated with different user data tiers, and wherein the controller stores the user data for the user file by selecting a user data tier for the user data from among the plurality of user data tiers based on a predetermined storage policy; and storing the user data for the user file in blocks of storage associated with the selected user data tier.

39. A file storage system according to claim 38 , wherein, for each of a third number of user files, the controller stores user metadata and user data for the user file in blocks of storage associated with different user data tiers, wherein the user data tier in which the user metadata is stored is associated with a hierarchically higher storage tier than the user data tier in which the user data is stored.

40. A file storage system according to claim 38 , wherein, for each of a fourth number of user files, the controller stores the user metadata and the user data for the user file in blocks of storage associated with the same user data tier.

41. A file storage system according to claim 29 , wherein the controller migrates data between storage tiers based on a predetermined migration policy.

42. A file storage system according to claim 29 , wherein the controller manages each filesystem using a hierarchy of virtual storage constructs including system drives, ranges composed of one or more system drives, stripesets composed of one or more ranges, and spans composed of one or more stripesets, and wherein the storage tiers are managed at the stripeset level such that each stripeset is associated with a storage tier and the filesystem integrates storage from stripesets associated with multiple storage tiers.

43. A file server comprising:

a controller managing (i) a plurality of file systems and (ii) a storage pool provided with a plurality of storage tiers, a higher storage tier of the plurality of storage tiers having a first characteristic and a lower storage tier of the plurality of storage tiers having a second characteristic different from the first characteristic of the higher storage tier, and

wherein the controller is configured to store user data associated with a user file handled by a file system of the plurality of file systems into the lower storage tier of the storage pool and to store metadata for managing the user file into the higher storage tier of the storage pool based on the type of the storage tier and the type of the user data or the metadata of the user file, wherein the controller manages each filesystem using a hierarchy of virtual storage constructs including system drives, ranges composed of one or more system drives, stripesets composed of one or more ranges, and spans composed of one or more stripesets, and wherein the storage tiers are managed at the stripeset level such that each stripeset is associated with a storage tier and the filesystem integrates storage from stripesets associated with multiple storage tiers.

44. A file server according to claim 43 , wherein the storage tiers are based on at least one of different storage device media, different storage device speeds, or different storage device reliabilities.

45. A file server according to claim 44 , wherein the different storage device media include solid state storage and at least one type of disk storage.

46. A file server according to claim 43 , wherein the storage tiers include a high-speed storage tier and at least one lower-speed storage tier.

47. A file server according to claim 43 , wherein the storage tiers include a high-reliability storage tier and at least one lower-reliability storage tier.

48. A file server according to claim 43 , wherein the storage tiers include at least one metadata region predominantly used for storing metadata and at least one user data region predominantly used for storing user data.

49. A file server according to claim 48 , wherein the at least one metadata region is associated with solid state storage devices and wherein the at least one user data region is associated with disk storage devices.

50. A file server according to claim 48 , wherein the at least one metadata region is associated with high-reliability disk storage devices and wherein the at least one user data region is associated with lower-reliability disk storage devices.

51. A file server according to claim 48 , wherein the controller stores system metadata associated with a file system of the plurality of file systems in blocks of storage associated with the at least one metadata region, and, for each of a first number of user files associated with said file system of the plurality of file systems, the controller stores user metadata for the user file in blocks of storage associated with the at least one metadata region and storing user data for the user file in blocks of storage associated with the at least one user data region.

52. A file server according to claim 51 , wherein the controller selectively stores a portion of system metadata in blocks of data associated with the at least one user data region when there is insufficient storage space in the at least one metadata region for storing the portion of system metadata.

53. A file server according to claim 51 , wherein, for each of a second number of user files, the controller stores both the user metadata and the user data for the user file in storage blocks associated with the at least one metadata region.

54. A file server according to claim 51 , wherein the at least one user data region includes a plurality of user data regions associated with different user data tiers, and wherein the controller stores the user data for the user file by selecting a user data tier for the user data from among the plurality of user data tiers based on a predetermined storage policy; and storing the user data for the user file in blocks of storage associated with the selected user data tier.

55. A file server according to claim 54 , wherein, for each of a third number of user files, the controller stores user metadata and user data for the user file in blocks of storage associated with different user data tiers, wherein the user data tier in which the user metadata is stored is associated with a hierarchically higher storage tier than the user data tier in which the user data is stored.

56. A file server according to claim 54 , wherein, for each of a fourth number of user files, the controller stores the user metadata and the user data for the user file in blocks of storage associated with the same user data tier.

57. A file server according to claim 43 , wherein the controller migrates data between storage tiers based on a predetermined migration policy.

58. A method for managing file systems by a file server in a file storage system, the method comprising:

managing a plurality of file systems; and

managing a storage pool provided with a plurality of storage tiers, a higher storage tier of the plurality of storage tiers having a first characteristic and a lower storage tier of the plurality of storage tiers having a second characteristic different from the first characteristic of the higher storage tier; and

storing user data associated with a user file handled by a file system of the plurality of file systems into the lower storage tier of the storage pool and storing metadata for managing the user file into the higher storage tier of the storage pool based on the type of the storage tier and the type of the user data or the metadata of the user file, wherein each filesystem is managed using a hierarchy of virtual storage constructs including system drives, ranges composed of one or more system drives, stripesets composed of one or more ranges, and spans composed of one or more stripesets, and wherein the storage tiers are managed at the stripeset level such that each stripeset is associated with a storage tier and the filesystem integrates storage from stripesets associated with multiple storage tiers.

59. A method according to claim 58 , wherein the storage tiers are based on at least one of different storage device media, different storage device speeds, or different storage device reliabilities.

60. A method according to claim 59 , wherein the different storage device media include solid state storage and at least one type of disk storage.

61. A method according to claim 58 , wherein the storage tiers include a high-speed storage tier and at least one lower-speed storage tier.

62. A method according to claim 58 , wherein the storage tiers include a high-reliability storage tier and at least one lower-reliability storage tier.

63. A method according to claim 58 , wherein the storage tiers include at least one metadata region predominantly used for storing metadata and at least one user data region predominantly used for storing user data.

64. A method according to claim 63 , wherein the at least one metadata region is associated with solid state storage devices and wherein the at least one user data region is associated with disk storage devices.

65. A method according to claim 63 , wherein the at least one metadata region is associated with high-reliability disk storage devices and wherein the at least one user data region is associated with lower-reliability disk storage devices.

66. A method according to claim 63 , further comprising:

storing system metadata associated with a file system of the plurality of file systems in blocks of storage associated with the at least one metadata region; and

for each of a first number of user files associated with said file system of the plurality of file systems, storing user metadata for the user file in blocks of storage associated with the at least one metadata region and storing user data for the user file in blocks of storage associated with the at least one user data region.

67. A method according to claim 66 , further comprising:

selectively storing a portion of system metadata in blocks of data associated with the at least one user data region when there is insufficient storage space in the at least one metadata region for storing the portion of system metadata.

68. A method according to claim 66 , further comprising, for each of a second number of user files, storing both the user metadata and the user data for the user file in storage blocks associated with the at least one metadata region.

69. A method according to claim 66 , wherein the at least one user data region includes a plurality of user data regions associated with different user data tiers, and wherein storing the user data for the user file comprises:

selecting a user data tier for the user data from among the plurality of user data tiers based on a predetermined storage policy; and

storing the user data for the user file in blocks of storage associated with the selected user data tier.

70. A method according to claim 69 , further comprising, for each of a third number of user files, storing user metadata and user data for the user file in blocks of storage associated with different user data tiers, wherein the user data tier in which the user metadata is stored is associated with a hierarchically higher storage tier than the user data tier in which the user data is stored.

71. A method according to claim 69 , further comprising, for each of a fourth number of user files, storing the user metadata and the user data for the user file in blocks of storage associated with the same user data tier.

72. A method according to claim 58 , further comprising:

migrating data between storage tiers based on a predetermined migration policy.

73. A file storage system comprising:

a plurality of storage devices including storage devices associated with different storage characteristics; and

a file server comprising a controller managing the plurality of storage devices including managing (i) a plurality of file systems and (ii) a storage pool provided with a plurality of storage tiers, a higher storage tier of the plurality of storage tiers having a first characteristic and a lower storage tier of the plurality of storage tiers having a second characteristic different from the first characteristic of the higher storage tier, wherein the controller is configured to store user data associated with a user file handled by a file system of the plurality of file systems into the lower storage tier of the storage pool and to store metadata for managing the user file into the higher storage tier of the storage pool based on the type of the storage tier and the type of the user data or the metadata of the user file, wherein the controller manages each filesystem using a hierarchy of virtual storage constructs including system drives, ranges composed of one or more system drives, stripesets composed of one or more ranges, and spans composed of one or more stripesets, and wherein the storage tiers are managed at the stripeset level such that each stripeset is associated with a storage tier and the filesystem integrates storage from stripesets associated with multiple storage tiers.

74. A file storage system according to claim 73 , wherein the storage tiers are based on at least one of different storage device media, different storage device speeds, or different storage device reliabilities.

75. A file storage system according to claim 74 , wherein the different storage device media include solid state storage and at least one type of disk storage.

76. A file storage system according to claim 73 , wherein the storage tiers include a high-speed storage tier and at least one lower-speed storage tier.

77. A file storage system according to claim 73 , wherein the storage tiers include a high-reliability storage tier and at least one lower-reliability storage tier.

78. A file storage system according to claim 73 , wherein the storage tiers include at least one metadata region predominantly used for storing metadata and at least one user data region predominantly used for storing user data.

79. A file storage system according to claim 78 , wherein the at least one metadata region is associated with solid state storage devices and wherein the at least one user data region is associated with disk storage devices.

80. A file storage system according to claim 78 , wherein the at least one metadata region is associated with high-reliability disk storage devices and wherein the at least one user data region is associated with lower-reliability disk storage devices.

81. A file storage system according to claim 78 , wherein the controller stores system metadata associated with a file system of the plurality of file systems in blocks of storage associated with the at least one metadata region, and, for each of a first number of user files associated with said file system of the plurality of file systems, the controller stores user metadata for the user file in blocks of storage associated with the at least one metadata region and storing user data for the user file in blocks of storage associated with the at least one user data region.

82. A file storage system according to claim 81 , wherein the controller selectively stores a portion of system metadata in blocks of data associated with the at least one user data region when there is insufficient storage space in the at least one metadata region for storing the portion of system metadata.

83. A file storage system according to claim 81 , wherein, for each of a second number of user files, the controller stores both the user metadata and the user data for the user file in storage blocks associated with the at least one metadata region.

84. A file storage system according to claim 81 , wherein the at least one user data region includes a plurality of user data regions associated with different user data tiers, and wherein the controller stores the user data for the user file by selecting a user data tier for the user data from among the plurality of user data tiers based on a predetermined storage policy; and storing the user data for the user file in blocks of storage associated with the selected user data tier.

85. A file storage system according to claim 84 , wherein, for each of a third number of user files, the controller stores user metadata and user data for the user file in blocks of storage associated with different user data tiers, wherein the user data tier in which the user metadata is stored is associated with a hierarchically higher storage tier than the user data tier in which the user data is stored.

86. A file storage system according to claim 84 , wherein, for each of a fourth number of user files, the controller stores the user metadata and the user data for the user file in blocks of storage associated with the same user data tier.

87. A file storage system according to claim 73 , wherein the controller migrates data between storage tiers based on a predetermined migration policy.

Assignments (4)
MERGER Recorded Jan 28, 2020
From: HITACHI VANTARA CORPORATION
To: HITACHI VANTARA LLC
Reel/Frame 051719/0202 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2019
From: HITACHI DATA SYSTEMS ENGINEERING UK LIMITED
To: HITACHI VANTARA CORPORATION
Reel/Frame 048825/0506 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2014
From: ASTON, CHRISTOPHER J.; LAKER, MARK STEPHEN; WILLIS, TREVOR E.; BERRINGTON, NEIL; DOREY, MARTIN A.; GARBAGNATI, CARLO F.; SHOTTAN, SHMUEL D.
To: BLUEARC UK LIMITED
Reel/Frame 034512/0331 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 16, 2014
From: BLUEARC UK LIMITED
To: HITACHI DATA SYSTEMS ENGINEERING UK LIMITED
Reel/Frame 034512/0357 →