[go: up one dir, main page]

US20160173603A1 - Method and apparatus for managing file system of unified storage system - Google Patents

Method and apparatus for managing file system of unified storage system Download PDF

Info

Publication number
US20160173603A1
US20160173603A1 US14/933,080 US201514933080A US2016173603A1 US 20160173603 A1 US20160173603 A1 US 20160173603A1 US 201514933080 A US201514933080 A US 201514933080A US 2016173603 A1 US2016173603 A1 US 2016173603A1
Authority
US
United States
Prior art keywords
storage
file
thin provisioning
storage pool
file system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US14/933,080
Inventor
Alexander H. Ainscow
Li Hui Guo
Long Wen Lan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: AINSCOW, ALEXANDER H., LAN, LONG WEN, GUO, LI HUI
Publication of US20160173603A1 publication Critical patent/US20160173603A1/en
Priority to US17/861,119 priority Critical patent/US11847518B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F17/30091
    • G06F17/30117
    • G06F17/30914
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • G06F3/0605Improving or facilitating administration, e.g. storage management by facilitating the interaction with a user or administrator
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0643Management of files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/0644Management of space entities, e.g. partitions, extents, pools
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06187Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with magnetically detectable marking
    • G06K19/06206Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with magnetically detectable marking the magnetic marking being emulated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/077Constructional details, e.g. mounting of circuits in the carrier
    • G06K19/0772Physical layout of the record carrier
    • G06K19/07722Physical layout of the record carrier the record carrier being multilayered, e.g. laminated sheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/077Constructional details, e.g. mounting of circuits in the carrier
    • G06K19/07745Mounting details of integrated circuit chips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/08Methods or arrangements for sensing record carriers, e.g. for reading patterns by means detecting the change of an electrostatic or magnetic field, e.g. by detecting change of capacitance between electrodes
    • G06K7/082Methods or arrangements for sensing record carriers, e.g. for reading patterns by means detecting the change of an electrostatic or magnetic field, e.g. by detecting change of capacitance between electrodes using inductive or magnetic sensors
    • G06K7/087Methods or arrangements for sensing record carriers, e.g. for reading patterns by means detecting the change of an electrostatic or magnetic field, e.g. by detecting change of capacitance between electrodes using inductive or magnetic sensors flux-sensitive, e.g. magnetic, detectors

Definitions

  • Embodiments of the present invention generally relate to a storage system and a method of managing its file system, and more specifically, to a unified storage system and a method of managing a file system of the unified storage system.
  • NAS Network Attached Storage
  • a traditional way of creating a file system is to let end the user specify a set of volumes on which the file system data will be placed.
  • many file systems grow rapidly, so it is possible that a new storage space needs to be added or allocated soon after creation of the system.
  • the storage space in a file system is divided into a plurality of storage pools, and when a storage pool is established and when the storage spaces are added later to an existing storage pool, the sizes of these storage spaces should be kept uniform.
  • embodiments of the present invention propose a technical solution about managing a file system of a unified storage system.
  • a method of managing a file system of a unified storage system comprising a file level and a block level having a block-based physical storage space, the method comprising: creating a thin provisioning storage pool in the block level; mapping the thin provisioning storage pool to a file storage pool in the file level; and creating a file system by using the file storage pool.
  • an apparatus of managing a file system of a unified storage system comprising a file device and a block device having a block-based physical storage space
  • the apparatus comprising: a thin provisioning storage pool creating unit configured to create a thin provisioning storage pool in the block device; a mapping unit configured to map the thin provisioning storage pool to a file storage pool in the file device; and a file system creating unit configured to create a file system by using the file storage pool.
  • embodiments of the present invention may, according to mapping between thin provisioning storage pools forming the block level and the file storage pools of the file level, adjust the size of the thin previsioning storage pools to correspondingly control allocation of the size of the file system without performing rebalance or migration of the files and thereby ensure the system performance whilst reducing the cost.
  • Other features and advantages of the present invention will be made more apparent through the following depictions.
  • FIG. 1 illustrates a block diagram of an exemplary computer system/server which is applicable to implement the embodiments of the present invention
  • FIG. 2 illustrates a flow chart of a method for managing file systems of a unified storage system according to an embodiment that can implement the present invention
  • FIG. 3 illustrates a block diagram of a unified storage system of an embodiment that can implement the present invention.
  • FIG. 4 illustrates a block diagram of an apparatus for managing file systems of a unified storage system according to an embodiment of the present invention.
  • FIG. 1 in which an exemplary computer system/server 12 which is applicable to implement the embodiments of the present invention is shown.
  • Computer system/server 12 is only illustrative and is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the invention described herein.
  • computer system/server 12 is shown in the form of a general-purpose computing device.
  • the components of computer system/server 12 may include, but are not limited to, one or more processors or processing units 16 , a system memory 28 , and a bus 18 that couples various system components including system memory 28 to processor 16 .
  • Bus 18 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures.
  • bus architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.
  • Computer system/server 12 typically includes a variety of computer system readable media. Such media may be any available media that is accessible by computer system/server 12 , and it includes both volatile and non-volatile media, removable and non-removable media.
  • System memory 28 can include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and/or cache memory 32 .
  • Computer system/server 12 may further include other removable/non-removable, volatile/non-volatile computer system storage media.
  • storage system 34 can be provided for reading from and writing to a non-removable, non-volatile magnetic media (not shown and typically called a “hard drive”).
  • a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”).
  • an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided.
  • system memory 28 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the invention.
  • Program/utility 40 having a set (at least one) of program modules 42 , may be stored in system memory 28 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment.
  • Program modules 42 generally carry out the functions and/or methodologies of embodiments of the invention as described herein.
  • Computer system/server 12 may also communicate with one or more external devices 14 such as a keyboard, a pointing device, a display 24 , etc.; one or more devices that enable a user to interact with computer system/server 12 ; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server 12 to communicate with one or more other computing devices. Such communication can occur via Input/Output (I/O) interfaces 22 . Still yet, computer system/server 12 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter 20 .
  • LAN local area network
  • WAN wide area network
  • public network e.g., the Internet
  • network adapter 20 communicates with the other components of computer system/server 12 via bus 18 .
  • bus 18 It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system/server 12 . Examples, include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, redundant array of independent disks (RAID) systems, tape drives, and data archival storage systems, etc.
  • FIG. 2 illustrates a flow chart of a method 200 for managing file systems of a unified storage system according to an embodiment that can implement the present invention.
  • unified storage system refers to a storage system comprising a block-based storage manner and a file-based storage manner
  • the unified storage system may comprise file-based network attached storage (NAS) and block (data block)-based storage.
  • NAS file-based network attached storage
  • block (data block)-based storage typically, the unified storage system forms a network and establishes a file system between the file-based storage and the block-based storage to allocate storage space of a certain quota to the user so that the user reads/writes data.
  • the unified storage system comprises a block level and a file level.
  • the block level as a front-end, may perform control data block of the system, and include at least one physical storage device such as hard disk drive (HDD) or solid state drive (SSD).
  • HDD hard disk drive
  • SSD solid state drive
  • the data is read/written in form of a block.
  • the file level may perform control as a back-end file of the system, and a terminal user can have access to and read/write data stored in the file level in form of files.
  • a thin provisioning storage pool is created in the block level.
  • the allocated space of the thin provisioning storage pool may be larger than the physical storage space of the block level.
  • the thin provisioning storage pool as a virtual storage space may allocate to the user a logical storage space which is much larger than an actually-possessed physical storage space.
  • the size of the thin provisioning storage pool may be manually allocated by an administrator of the unified storage system, or automatically allocated by the system according to preset rules.
  • the network storage space e.g., network storage service, E-mailing service or the like
  • the network storage space allocated to the terminal user can be automatically expanded (e.g., a total capacity of the occupied data reaches a certain proportion of the allocated space) or shrunk (e.g., an account is not logged in beyond a preset period of time) in response to the preset rules.
  • the thin provisioning storage pool is mapped to a file storage pool of the file level. Being located at the file level, the file storage pool is also file-based.
  • the file storage pool may be considered as an available space quota allocated to the terminal user, and its size is proportional to the size of the thin provisioning storage pool created by the administrator or automatically created by the system.
  • the size of the file storage pool is equal to the size of the thin provisioning storage pool.
  • the capacity of the file-based file storage pool corresponds to the block-based thin provisioning storage pool and accords with a change of the thin provisioning storage pool.
  • the file-based file storage pool is also a virtual logical storage space.
  • the terminal user can access the file storage pool and read/write the data in a file form in a certain logical space allocated thereto.
  • the thin provisioning storage pool is mapped to the file storage pool one to one.
  • each provisioning storage pool corresponds to one file storage pool.
  • the file system needs a storage pool to decide what kind of file is placed in which pool, for example, frequently-accessed files are placed in a high-rate pool containing a solid state hard disk as the physical storage device according to the pre-defined rules.
  • the mapping is illustrated now only by way of an example.
  • the block level may create a thin provisioning storage pool, several volumes are created subsequently in the thin provisioning storage pool, and all volumes are added to the file storage pool of the file system to complete the mapping.
  • “Volume” refers to a hard disk (volume) that can be seen by the file system and is accessed through iSCSI or FC (fiber channel). The file system finally needs to be read/written on the volumes.
  • the disclosure is not intended to limit the number of the thin provisioning storage pools or file storage pools.
  • the number of the thin provisioning storage pools depends on creation of step S 201 , and it may include only one pool or a plurality of pools. However, after the thin provisioning storage pool is created, it is favorable to keep the number of the file storage pools consistent with the number of the thin provisioning storage pools.
  • the file system is created accordingly by using the file storage file obtained from the mapping.
  • the file system normally refers to a method and data structure for an operating system to clarify files in a certain logical space allocated, namely, a method of organizing files.
  • the file system is created at the file level and directly accessed by the user to facilitate a graphic interface-based operation (e.g., reading/writing the stored data).
  • adjustment may be only made to the size of the thin provisioning storage pool of the unified storage system, i.e., expand or shrink the thin provisioning storage pool created by the user at step S 201 (or initial stage) to expand or shrink the size of the file system accordingly.
  • the mapping By forming the mapping such that the thin provisioning storage pools correspond to the file storage pools one to one, the file system only performs storage management with the file storage pool in a file-based manner. Perform management for the thin provisioning storage pool and the mapping relationship is unnecessary.
  • the user need not deal with complexity of storage management, namely, the managing of hard disk allocation in the storage file and the mapping relationship of these hard disks to the file storage pool.
  • Control of the size of the file system may be completed at the block level and the file system need not be modified, and therefore, data migration does not occur. Since data stored in the physical storage device in the block level need not be rebalanced or migrated, the storage efficiency is improved.
  • the unified storage system using the embodiment of the present disclosure can achieve better balance between usability and performance of the storage management or file system management.
  • this may enable the change of the file system to be achieved only by the change to the thin provisioning storage pool without making any adjustment to data and the file system per se (e.g., the adjustment may comprise partitioning, migrating, deleting, rebalancing and the like).
  • the file system managing method 200 may further comprise promoting the user to adding a new physical storage space. This is particularly favorable to creation of the thin provisioning storage pool that is much larger (e.g., several times) than the physical storage space of the physical storage device because as stated above, the unified storage system allocates an excessive logical storage space to the user, but most of users only use a very small portion of the logical storage space (for example, an account of network mailing service is usually allocated several GBs (the measure unit “B” of the storage capacity in this text denotes byte), but most of users only use several hundreds of MBs even less).
  • the unified storage system prompts the user to add a new physical storage device so as to expand the total physical storage capacity of the system and thereby to effectively reduce the cost of initial investment for the hardware.
  • the pre-defined proportion may be 90 % of the current total physical storage space or capacity, and the pre-defined proportion may be pre-adjusted by the user (e.g., administrator).
  • the user e.g., administrator
  • the new physical storage device need not be added in response to the expansion of the thin provisioning storage pool.
  • the file system managing method 200 may further comprise prompting the user to delete data in the file system or refuse this shrinking request.
  • the pre-defined threshold may be proportional to the amount of data in the file system (i.e., the total amount of data written by the user). In other words, the pre-defined threshold is not a fixed value, but a variable varying with the total amount of the written data. For example, the pre-defined threshold may be maintained as a proportion 110%, 120% or any proportion greater than or equal to 100% of the total amount of data.
  • the total amount of data stored by all users in the physical storage space of the physical storage device is 300 GB, and meanwhile the size of the created thin provisioning storage pool is 400 GB.
  • the user desires to shrink the size of the thin provisioning storage pool to shrink the size of the file system allocated to all terminal users, and it is assumed that the pre-defined threshold be 110% of the total amount of data, the user may shrink the size of the thin provisioning storage pool to 350 GB.
  • the pre-defined value may be pre-adjusted by the user.
  • the administrator in the text refers to a user who has a certain right, i.e., may create the thin provisioning storage pool and adjust the size of the thin provisioning storage pool.
  • the administrator may be a terminal user that has a right to use the file system or an administrator of the system.
  • the file system managing method 200 may further comprise creating a plurality storage volumes, e.g., named space-efficient storage volumes in the text herein, according to the thin provisioning storage pool for use in the mapping of step S 202 .
  • a total capacity of a plurality of space-efficient storage volumes is equal to a maximum capacity of the thin provisioning storage pool.
  • the maximum capacity of the thin provisioning storage pool refers to a maximum storage size of a block-based virtual logical storage space that is created under approval of the unified storage system.
  • the number of the space-efficient storage volumes may be preset by the user due to different applications or automatically set by the unified storage system according to the preset rules (e.g., determined via a NAS device of the file level to ensure of desired level of parallelism).
  • the size of each space-efficient storage volume may be obtained by dividing the maximum volume of the thin provisioning storage cell by the number of the set space-efficient storage volumes.
  • the space-efficient storage volumes are described only by way of example. Assume that a physical storage pool S A is 1 TB, S B is 1 TB, the user first may create at the block level two thin provisioning storage pools T A and T B of 500 GB each. It should be appreciated that the user may create any number of thin provisioning storage pools according to needs. Subsequently, the user may use the thin provisioning storage pools T A and T B to automatically create the file system, automatically create 32 (or anther number of) maximum-capacity space-efficient storage volumes V A from S A according to properties (e.g., the size of extend) of the thin provisioning storage pools, and add these V A 's to the file storage pool F A .
  • properties e.g., the size of extend
  • the user may automatically create 32 (or, another number of) space-efficient storage volumes V B from S B and add them to the file storage pool F B .
  • the created thin provisioning storage pools T A and T B each are 500 GB, namely, 1 TB in total
  • the system prompts failure to continue writing.
  • the user may continue to write by only adjusting the size of the thin provisioning storage pools T A and T B (e.g., changing both of them to 2 TB, totally 4 TB).
  • the actual physical space is already written full, so the user needs to add a new physical storage device and adjust the thin provisioning storage pools to restore further writing.
  • the user users the space-efficient storage volumes to read/write file data, but the user need not perform management for a total of 64 space-efficient storage volumes (the sum of V A and V B ) and only needs to manage the size of the logic of the two thin provisioning storage pools T A and T B to achieve allocation for the file system.
  • the above examples may have any number of physical storage pools, and any number of physical storage devices may be created in the storage pool.
  • the physical storage pool S A may contain three storage devices of 500 GB, and S B may not be created.
  • the thin provisioning storage pools T A and T B are created from S A .
  • the thin provisioning storage pools should be mapped one to one to the file storage pools, namely, T A ⁇ F A , T B ⁇ F B .
  • the user can only see the physical storage pool and the thin provisioning storage pools, and the space-efficient storage volumes (V A and V B ) in the system are allocated and completed through the memory of the system.
  • Flexibility of storage may be provided by providing space-efficient storage volumes because as stated above, the data actually written by all users probably only occupy a very small portion of data allocated to them, and the maximum capacity that can be allocated is determined by the sum of the space-efficient storage volumes.
  • the sum of the space-efficient storage volumes is equal to the maximum capacity of the thin provisioning storage pools created under approval, and the file data read/written by the user is placed on the space-efficient storage volumes. Therefore, once the file data is created, the position thereof on the space-efficient storage volumes is in a fixed correspondence relationship to the position on the physical storage pool, and the correspondence relationship is not affected by the expansion or shrinking of the thin provisioning storage pools. In other words, it does not require re-allocation of the position of the data stored in the physical storage pool in the form of blocks because the user changes the size of the file system.
  • FIG. 3 illustrates a block diagram of a unified storage system 300 of an embodiment that can implement the present invention.
  • the unified storage system 300 comprises a block level 310 and a file level 320 .
  • thin provisioning storage pools 311 in the block level 310 are created first.
  • the block level 310 has a block-based physical storage space.
  • the number of thin provisioning storage pools 311 is two, and it might be favorable that the two thin provisioning storage pools 311 are created as having equal size.
  • the two thin provisioning storage pools 311 are mapped to two corresponding file storage pools 321 in the file level 320 .
  • Each file storage pool 321 is equal to its corresponding thin provisioning storage pool 311 in size, which is favorable for management of the file system because the user's reading/writing of the data may simultaneously correspond to the file storage pool in the file level and the thin provisioning storage pool in the block level and the physical storage space.
  • the file system 322 is created by using two file storage pools 321 obtained from mapping. Since illustrative block diagram of FIG. 3 further expounds on the illustrative flow chart of FIG. 2 in structure, depictions of principle of FIG. 2 also apply to FIG. 3 and will not be detailed herein.
  • the unified storage system 300 further comprises a controller 330 for various operations, e.g., mapping the thin provisioning storage pools to the file storage pools of the file level to use the file storage pools to create the file system.
  • the controller 330 may be configured to prompt the user to add a new physical storage space in the block level in response to data in the file system exceeding the pre-defined proportion of the block-based physical storage space.
  • the controller 330 may further be configured to prompt the user to delete data in the file system in response to the thin provisioning storage pool being shrunk as a pre-defined proportion of data in the file system.
  • the controller 330 may be further configured to create a plurality of space-efficient storage volumes for mapping according to the thin provisioning storage pools, and a total capacity of the plurality of the space-efficient storage volumes is equal to the maximum capacity of the thin provisioning storage pools.
  • the controller 330 may be configured to execute various other operations for the unified storage system 300 , such as read/write, deletion and migration of data.
  • FIG. 4 illustrates a block diagram of an apparatus 400 for managing a file system of a unified storage system according to an embodiment of the present invention.
  • the unified storage system comprises a file device and a block device having a block-based physical storage space.
  • the apparatus 400 comprises a thin provisioning storage pool creating unit 410 configured to create a thin provisioning storage pool in the block device; a mapping unit 420 configured to map the thin provisioning storage pool to a file storage pool in the file device; and a file system creating unit 430 configured to use the file storage pool to create a file system.
  • the apparatus 400 further comprises: a capacity change request receiving unit configured to receive a request to change a capacity of the file system; and a thin provisioning storage pool capacity changing unit configured to, in response to the request, change the capacity of the thin provisioning storage pool to change the capacity of the file system.
  • the apparatus 400 further comprises a physical storage space addition prompting unit configured to prompt the user to add a new physical storage space in the block device in response to data in the file system exceeding the pre-defined proportion of the block-based physical storage space.
  • the apparatus 400 further comprises a thin provisioning storage pool shrink prompting unit configured to execute at least one of the following in response to the thin provisioning storage pool being shrunk to be less than the pre-defined threshold: refusing the shrinking request; and prompting the user to delete the data in the file system.
  • the pre-defined threshold is proportional to the amount of data in the file system.
  • the apparatus 400 further comprises a space-efficient storage volume creating unit configured to, after creation of the thin provisioning storage pools, create a plurality of space-efficient storage volumes for mapping corresponding to the thin provisioning storage pools, wherein a total capacity of the plurality of the space-efficient storage volumes is equal to the maximum capacity of the thin provisioning storage pools.
  • FIG. 4 does not show optional unit or sub-units included by the apparatus 400 . All features and operations as described above are respectively applicable to the apparatus 400 and will not be detailed here. Furthermore, division of units and sub-units of the apparatus 400 are not restrictive but exemplary and aims to logically describe their main functions or operations. A function of a unit may be implemented by a plurality of units, and a plurality of units may be implemented by one unit. The scope of the present invention is not limited in this aspect.
  • the units included by the apparatus 400 may be implemented in many manners, including software, hardware, firmware or any combinations thereof.
  • the apparatus 400 may be implemented by using software and/or hardware.
  • the apparatus 400 may be implemented partially or completely based on hardware.
  • one or more units of the apparatus 400 may be implemented as an integrated circuit (IC) chip, an application-specific integrated circuit (ASIC), system on chip (SOC), field programmable gate array (FPGA), or the like.
  • IC integrated circuit
  • ASIC application-specific integrated circuit
  • SOC system on chip
  • FPGA field programmable gate array
  • the unified storage system may achieve the following advantages.
  • the file system management of the present disclosure may manage allocation of the storage space to achieve better balance of storage capacity usability and storage performance particularly in the case of using different file systems and storage properties.
  • the file system management of the present disclosure performs automation adaption and control for storage management in the unified storage system, which facilitates the user directly managing its file system without considering how to configure a file system disk or volume (number, size, type, whether to mirror and how to minor and the like).
  • embodiments of the present disclosure simplify use of the file level, e.g., use and operation of the NAS apparatus, by allocating “quotas” to the file storage pools.
  • the file system management of the present disclosure may simply expand or shrink the file system without need to rebalance and migrate the already-stored data, which therefore does not exert an influence on input and output of the files and is very important for the performance of the system.
  • the unified storage system and the file system management method according to the present disclosure can substantially improve storage efficiency between the file and the block, particularly for a multi-tenant environment because the physical storage space is shared between the block level and the file level and does not need the user's participation and operation.
  • the present invention may be a system, a method, and/or a computer program product.
  • the computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
  • the computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device.
  • the computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing.
  • a non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing.
  • RAM random access memory
  • ROM read-only memory
  • EPROM or Flash memory erasable programmable read-only memory
  • SRAM static random access memory
  • CD-ROM compact disc read-only memory
  • DVD digital versatile disk
  • memory stick a floppy disk
  • a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon
  • a computer readable storage medium is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
  • Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network.
  • the network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers.
  • a network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
  • Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages.
  • the computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server.
  • the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
  • electronic circuitry including, for example, programmable logic circuitry, field programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
  • These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
  • the computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s).
  • the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Artificial Intelligence (AREA)
  • Credit Cards Or The Like (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The disclosure relates to a method and apparatus of managing a file system of a unified storage system. According to embodiments of the present disclosure, the method comprises: creating a thin provisioning storage pool in a block level; mapping the thin provisioning storage pool to a file storage pool in a file level; and creating a file system by using the file storage pool. In this way, a capacity of the file system is expanded or shrunk without rebalancing or migrating data in the storage system.

Description

    BACKGROUND
  • Embodiments of the present invention generally relate to a storage system and a method of managing its file system, and more specifically, to a unified storage system and a method of managing a file system of the unified storage system.
  • In a unified storage appliance, for Network Attached Storage (NAS) sub systems, a traditional way of creating a file system is to let end the user specify a set of volumes on which the file system data will be placed. However, many file systems grow rapidly, so it is possible that a new storage space needs to be added or allocated soon after creation of the system. There are some limitations and restrictions to add the storage space for known parallel file systems (such as GPFS). The storage space in a file system is divided into a plurality of storage pools, and when a storage pool is established and when the storage spaces are added later to an existing storage pool, the sizes of these storage spaces should be kept uniform.
  • SUMMARY
  • Generally, embodiments of the present invention propose a technical solution about managing a file system of a unified storage system.
  • According to one embodiment of the present invention, there is provided a method of managing a file system of a unified storage system, the unified storage system comprising a file level and a block level having a block-based physical storage space, the method comprising: creating a thin provisioning storage pool in the block level; mapping the thin provisioning storage pool to a file storage pool in the file level; and creating a file system by using the file storage pool.
  • According to another embodiment of the present invention, there is provided an apparatus of managing a file system of a unified storage system, the unified storage system comprising a file device and a block device having a block-based physical storage space, the apparatus comprising: a thin provisioning storage pool creating unit configured to create a thin provisioning storage pool in the block device; a mapping unit configured to map the thin provisioning storage pool to a file storage pool in the file device; and a file system creating unit configured to create a file system by using the file storage pool.
  • It will be appreciated through the depictions below that embodiments of the present invention may, according to mapping between thin provisioning storage pools forming the block level and the file storage pools of the file level, adjust the size of the thin previsioning storage pools to correspondingly control allocation of the size of the file system without performing rebalance or migration of the files and thereby ensure the system performance whilst reducing the cost. Other features and advantages of the present invention will be made more apparent through the following depictions.
  • BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS
  • Through the more detailed description of some embodiments of the present disclosure in the accompanying drawings, the above and other objects, features and advantages of the present disclosure will become more apparent, wherein the same reference generally refers to the same components in the embodiments of the present disclosure.
  • FIG. 1 illustrates a block diagram of an exemplary computer system/server which is applicable to implement the embodiments of the present invention;
  • FIG. 2 illustrates a flow chart of a method for managing file systems of a unified storage system according to an embodiment that can implement the present invention;
  • FIG. 3 illustrates a block diagram of a unified storage system of an embodiment that can implement the present invention; and
  • FIG. 4 illustrates a block diagram of an apparatus for managing file systems of a unified storage system according to an embodiment of the present invention.
  • DETAILED DESCRIPTION
  • When working with a file system in a unified storage system, at times additional storage has to be added to the file system. After the storage is added, it is possible that the file system may need to be rebalanced to take advantage of the newly-added space. Rebalancing of files is an I/O intensive and time consuming operation, and it is very painful for a large file system. In a system sharing block storage and NAS storage, it is desirable to shrink the file system capacity by removing partial storage spaces in the unified storage system. When a certain storage space is removed from the file systems, a NAS controller needs to migrate data in the storage space. Data migration is also an I/O intensive and time consuming operation.
  • It is also impractical to allocate a single large-capacity storage space to the file system because in addition to a huge initial investment, the user only knows the size currently required by the file system, and does not plan or cannot predict the size that might be expanded in the future, so it is impossible to decide how much space should be allocated to them. Besides, the user might not be aware it is suitable to allocate how much storage space, and the amount of the storage space used by the file system will affect the performance of parallel file systems (e.g., a single storage device will become a bottleneck of parallel systems in respect of performance). Furthermore, once the single large-capacity storage space gets offline or malfunctions, an unbearable loss will be caused to the user.
  • It is hard to balance the storage allocation between a block part and a file part by an existing method, which causes waste of real storage space. This is especially disadvantageous in a multi-tenant environment where lots of tenants only consume a small fraction of their quotas. The embodiments disclosed herein generally address the above-described problems.
  • Some preferable embodiments will be described in more detail with reference to the accompanying drawings, in which the preferable embodiments of the present disclosure have been illustrated. However, the present disclosure can be implemented in various manners, and thus should not be construed to be limited to the embodiments disclosed herein. On the contrary, those embodiments are provided for the thorough and complete understanding of the present disclosure, and completely conveying the scope of the present disclosure to those skilled in the art.
  • Referring now to FIG. 1, in which an exemplary computer system/server 12 which is applicable to implement the embodiments of the present invention is shown. Computer system/server 12 is only illustrative and is not intended to suggest any limitation as to the scope of use or functionality of embodiments of the invention described herein.
  • As shown in FIG. 1, computer system/server 12 is shown in the form of a general-purpose computing device. The components of computer system/server 12 may include, but are not limited to, one or more processors or processing units 16, a system memory 28, and a bus 18 that couples various system components including system memory 28 to processor 16.
  • Bus 18 represents one or more of any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. By way of example, and not limitation, such architectures include Industry Standard Architecture (ISA) bus, Micro Channel Architecture (MCA) bus, Enhanced ISA (EISA) bus, Video Electronics Standards Association (VESA) local bus, and Peripheral Component Interconnect (PCI) bus.
  • Computer system/server 12 typically includes a variety of computer system readable media. Such media may be any available media that is accessible by computer system/server 12, and it includes both volatile and non-volatile media, removable and non-removable media.
  • System memory 28 can include computer system readable media in the form of volatile memory, such as random access memory (RAM) 30 and/or cache memory 32. Computer system/server 12 may further include other removable/non-removable, volatile/non-volatile computer system storage media. By way of example only, storage system 34 can be provided for reading from and writing to a non-removable, non-volatile magnetic media (not shown and typically called a “hard drive”). Although not shown, a magnetic disk drive for reading from and writing to a removable, non-volatile magnetic disk (e.g., a “floppy disk”), and an optical disk drive for reading from or writing to a removable, non-volatile optical disk such as a CD-ROM, DVD-ROM or other optical media can be provided. In such instances, each can be connected to bus 18 by one or more data media interfaces. As will be further depicted and described below, system memory 28 may include at least one program product having a set (e.g., at least one) of program modules that are configured to carry out the functions of embodiments of the invention.
  • Program/utility 40, having a set (at least one) of program modules 42, may be stored in system memory 28 by way of example, and not limitation, as well as an operating system, one or more application programs, other program modules, and program data. Each of the operating system, one or more application programs, other program modules, and program data or some combination thereof, may include an implementation of a networking environment. Program modules 42 generally carry out the functions and/or methodologies of embodiments of the invention as described herein.
  • Computer system/server 12 may also communicate with one or more external devices 14 such as a keyboard, a pointing device, a display 24, etc.; one or more devices that enable a user to interact with computer system/server 12; and/or any devices (e.g., network card, modem, etc.) that enable computer system/server 12 to communicate with one or more other computing devices. Such communication can occur via Input/Output (I/O) interfaces 22. Still yet, computer system/server 12 can communicate with one or more networks such as a local area network (LAN), a general wide area network (WAN), and/or a public network (e.g., the Internet) via network adapter 20. As depicted, network adapter 20 communicates with the other components of computer system/server 12 via bus 18. It should be understood that although not shown, other hardware and/or software components could be used in conjunction with computer system/server 12. Examples, include, but are not limited to: microcode, device drivers, redundant processing units, external disk drive arrays, redundant array of independent disks (RAID) systems, tape drives, and data archival storage systems, etc.
  • Embodiments of the present invention will be described in detail below. FIG. 2 illustrates a flow chart of a method 200 for managing file systems of a unified storage system according to an embodiment that can implement the present invention.
  • The technical term “unified storage system” refers to a storage system comprising a block-based storage manner and a file-based storage manner Specifically, the unified storage system may comprise file-based network attached storage (NAS) and block (data block)-based storage. Typically, the unified storage system forms a network and establishes a file system between the file-based storage and the block-based storage to allocate storage space of a certain quota to the user so that the user reads/writes data.
  • In an embodiment of the present disclosure of using the file system managing method 200, the unified storage system comprises a block level and a file level. The block level, as a front-end, may perform control data block of the system, and include at least one physical storage device such as hard disk drive (HDD) or solid state drive (SSD). In the block level of the unified storage system, the data is read/written in form of a block. The file level may perform control as a back-end file of the system, and a terminal user can have access to and read/write data stored in the file level in form of files.
  • At step S201, a thin provisioning storage pool is created in the block level. The allocated space of the thin provisioning storage pool may be larger than the physical storage space of the block level. When the thin provisioning storage pool is created to be larger than the physical storage space of the block level, the thin provisioning storage pool as a virtual storage space may allocate to the user a logical storage space which is much larger than an actually-possessed physical storage space. An advantage of so doing is that the user may allocate a fairly large logical storage space at an initial stage according to the planning, but actually use a small-capacity physical storage device; thereafter when the actually stored data almost fill the physical storage device full, the user is prompted to add a new physical storage device to reduce the initial investment cost and space utilization efficiency. Since the thin provisioning storage pool is created at the block level, so it also has a block-based storage manner.
  • It should be appreciated that the size of the thin provisioning storage pool may be manually allocated by an administrator of the unified storage system, or automatically allocated by the system according to preset rules. For example, the network storage space (e.g., network storage service, E-mailing service or the like) allocated to the terminal user can be automatically expanded (e.g., a total capacity of the occupied data reaches a certain proportion of the allocated space) or shrunk (e.g., an account is not logged in beyond a preset period of time) in response to the preset rules.
  • At step S202, the thin provisioning storage pool is mapped to a file storage pool of the file level. Being located at the file level, the file storage pool is also file-based. The file storage pool may be considered as an available space quota allocated to the terminal user, and its size is proportional to the size of the thin provisioning storage pool created by the administrator or automatically created by the system. Optionally, the size of the file storage pool is equal to the size of the thin provisioning storage pool. In other words, the capacity of the file-based file storage pool corresponds to the block-based thin provisioning storage pool and accords with a change of the thin provisioning storage pool.
  • In an embodiment of the present disclosure, similar to the block-based thin provisioning storage pool, the file-based file storage pool is also a virtual logical storage space. The terminal user can access the file storage pool and read/write the data in a file form in a certain logical space allocated thereto.
  • In an embodiment of the present disclosure, the thin provisioning storage pool is mapped to the file storage pool one to one. Specifically, each provisioning storage pool corresponds to one file storage pool. The file system needs a storage pool to decide what kind of file is placed in which pool, for example, frequently-accessed files are placed in a high-rate pool containing a solid state hard disk as the physical storage device according to the pre-defined rules. The mapping is illustrated now only by way of an example. The block level may create a thin provisioning storage pool, several volumes are created subsequently in the thin provisioning storage pool, and all volumes are added to the file storage pool of the file system to complete the mapping. “Volume” refers to a hard disk (volume) that can be seen by the file system and is accessed through iSCSI or FC (fiber channel). The file system finally needs to be read/written on the volumes.
  • It should be appreciated that the disclosure is not intended to limit the number of the thin provisioning storage pools or file storage pools. The number of the thin provisioning storage pools depends on creation of step S201, and it may include only one pool or a plurality of pools. However, after the thin provisioning storage pool is created, it is favorable to keep the number of the file storage pools consistent with the number of the thin provisioning storage pools.
  • At step S203, the file system is created accordingly by using the file storage file obtained from the mapping. The file system normally refers to a method and data structure for an operating system to clarify files in a certain logical space allocated, namely, a method of organizing files. In other words, the file system is created at the file level and directly accessed by the user to facilitate a graphic interface-based operation (e.g., reading/writing the stored data).
  • In an embodiment of the present disclosure, if the size of the file system is to be adjusted, adjustment may be only made to the size of the thin provisioning storage pool of the unified storage system, i.e., expand or shrink the thin provisioning storage pool created by the user at step S201 (or initial stage) to expand or shrink the size of the file system accordingly. By forming the mapping such that the thin provisioning storage pools correspond to the file storage pools one to one, the file system only performs storage management with the file storage pool in a file-based manner. Perform management for the thin provisioning storage pool and the mapping relationship is unnecessary. Hence, with the one-to-one mapping the user need not deal with complexity of storage management, namely, the managing of hard disk allocation in the storage file and the mapping relationship of these hard disks to the file storage pool. Control of the size of the file system may be completed at the block level and the file system need not be modified, and therefore, data migration does not occur. Since data stored in the physical storage device in the block level need not be rebalanced or migrated, the storage efficiency is improved. Furthermore, considering (a plurality of) file systems may be created in different manners (the file systems may be created as for example NTFS or FAT), the unified storage system using the embodiment of the present disclosure can achieve better balance between usability and performance of the storage management or file system management. Besides, it is favorable to keep the file storage pool consistent with the thin provisioning storage pool because according to the above statements, this may enable the change of the file system to be achieved only by the change to the thin provisioning storage pool without making any adjustment to data and the file system per se (e.g., the adjustment may comprise partitioning, migrating, deleting, rebalancing and the like).
  • In the embodiment of the present disclosure, when the data (the total amount of data written by the user) in the file system exceeds the pre-defined proportion of the block-based physical storage space, the file system managing method 200 may further comprise promoting the user to adding a new physical storage space. This is particularly favorable to creation of the thin provisioning storage pool that is much larger (e.g., several times) than the physical storage space of the physical storage device because as stated above, the unified storage system allocates an excessive logical storage space to the user, but most of users only use a very small portion of the logical storage space (for example, an account of network mailing service is usually allocated several GBs (the measure unit “B” of the storage capacity in this text denotes byte), but most of users only use several hundreds of MBs even less). However, only after the total amount of data stored by the user reaches a certain threshold of the physical storage capacity provided by the physical storage device of the block level does the unified storage system prompt the user to add a new physical storage device so as to expand the total physical storage capacity of the system and thereby to effectively reduce the cost of initial investment for the hardware. For example, the pre-defined proportion may be 90% of the current total physical storage space or capacity, and the pre-defined proportion may be pre-adjusted by the user (e.g., administrator). When the total amount of data stored by all users is less than the pre-defined proportion, the new physical storage device need not be added in response to the expansion of the thin provisioning storage pool.
  • In the embodiment of the present disclosure, when the user (e.g., administrator) shrinks the size of the thin provisioning storage pool to be less than the pre-defined threshold, the file system managing method 200 may further comprise prompting the user to delete data in the file system or refuse this shrinking request. The pre-defined threshold may be proportional to the amount of data in the file system (i.e., the total amount of data written by the user). In other words, the pre-defined threshold is not a fixed value, but a variable varying with the total amount of the written data. For example, the pre-defined threshold may be maintained as a proportion 110%, 120% or any proportion greater than or equal to 100% of the total amount of data.
  • Now only by way of example, the total amount of data stored by all users in the physical storage space of the physical storage device is 300 GB, and meanwhile the size of the created thin provisioning storage pool is 400 GB. If the user desires to shrink the size of the thin provisioning storage pool to shrink the size of the file system allocated to all terminal users, and it is assumed that the pre-defined threshold be 110% of the total amount of data, the user may shrink the size of the thin provisioning storage pool to 350 GB. However, at this time if the user desires to shrink the size of the thin provisioning storage pool to less than 330 GB, he/she is prompted to delete partial data in the file system or refuse this shrinking request. The pre-defined value may be pre-adjusted by the user.
  • It should be appreciated that the administrator in the text refers to a user who has a certain right, i.e., may create the thin provisioning storage pool and adjust the size of the thin provisioning storage pool. In other words, the administrator may be a terminal user that has a right to use the file system or an administrator of the system.
  • In the embodiment of the present disclosure, after step S201, namely, after creating the thin provisioning storage pool, the file system managing method 200 may further comprise creating a plurality storage volumes, e.g., named space-efficient storage volumes in the text herein, according to the thin provisioning storage pool for use in the mapping of step S202. A total capacity of a plurality of space-efficient storage volumes is equal to a maximum capacity of the thin provisioning storage pool. The maximum capacity of the thin provisioning storage pool refers to a maximum storage size of a block-based virtual logical storage space that is created under approval of the unified storage system. The number of the space-efficient storage volumes may be preset by the user due to different applications or automatically set by the unified storage system according to the preset rules (e.g., determined via a NAS device of the file level to ensure of desired level of parallelism). The size of each space-efficient storage volume may be obtained by dividing the maximum volume of the thin provisioning storage cell by the number of the set space-efficient storage volumes.
  • The space-efficient storage volumes are described only by way of example. Assume that a physical storage pool SA is 1 TB, SB is 1 TB, the user first may create at the block level two thin provisioning storage pools TA and TB of 500 GB each. It should be appreciated that the user may create any number of thin provisioning storage pools according to needs. Subsequently, the user may use the thin provisioning storage pools TA and TB to automatically create the file system, automatically create 32 (or anther number of) maximum-capacity space-efficient storage volumes VA from SA according to properties (e.g., the size of extend) of the thin provisioning storage pools, and add these VA's to the file storage pool FA. Meanwhile, the user may automatically create 32 (or, another number of) space-efficient storage volumes VB from SB and add them to the file storage pool FB. As the created thin provisioning storage pools TA and TB each are 500 GB, namely, 1 TB in total, when data exceeding 1 TB cannot be written in the file system, the system prompts failure to continue writing. However, since the actual physical space is 2 TB, the user may continue to write by only adjusting the size of the thin provisioning storage pools TA and TB (e.g., changing both of them to 2 TB, totally 4 TB). Thereafter, when the data exceeding 2 TB is written in the file system, the actual physical space is already written full, so the user needs to add a new physical storage device and adjust the thin provisioning storage pools to restore further writing.
  • In the above examples, the user users the space-efficient storage volumes to read/write file data, but the user need not perform management for a total of 64 space-efficient storage volumes (the sum of VA and VB) and only needs to manage the size of the logic of the two thin provisioning storage pools TA and TB to achieve allocation for the file system.
  • However, it should be appreciated that the above examples may have any number of physical storage pools, and any number of physical storage devices may be created in the storage pool. For example, the physical storage pool SA may contain three storage devices of 500 GB, and SB may not be created. Subsequently, the thin provisioning storage pools TA and TB are created from SA. However, the thin provisioning storage pools should be mapped one to one to the file storage pools, namely, TA→FA, TB→FB. In these mapping procedures, the user can only see the physical storage pool and the thin provisioning storage pools, and the space-efficient storage volumes (VA and VB) in the system are allocated and completed through the memory of the system.
  • Flexibility of storage may be provided by providing space-efficient storage volumes because as stated above, the data actually written by all users probably only occupy a very small portion of data allocated to them, and the maximum capacity that can be allocated is determined by the sum of the space-efficient storage volumes. In an embodiment of the present disclosure, the sum of the space-efficient storage volumes is equal to the maximum capacity of the thin provisioning storage pools created under approval, and the file data read/written by the user is placed on the space-efficient storage volumes. Therefore, once the file data is created, the position thereof on the space-efficient storage volumes is in a fixed correspondence relationship to the position on the physical storage pool, and the correspondence relationship is not affected by the expansion or shrinking of the thin provisioning storage pools. In other words, it does not require re-allocation of the position of the data stored in the physical storage pool in the form of blocks because the user changes the size of the file system.
  • FIG. 3 illustrates a block diagram of a unified storage system 300 of an embodiment that can implement the present invention. The unified storage system 300 comprises a block level 310 and a file level 320. In combination with the file system managing method 200 of FIG. 2, thin provisioning storage pools 311 in the block level 310 are created first. The block level 310 has a block-based physical storage space. In the present embodiment, as shown in FIG. 3, the number of thin provisioning storage pools 311 is two, and it might be favorable that the two thin provisioning storage pools 311 are created as having equal size.
  • The two thin provisioning storage pools 311 are mapped to two corresponding file storage pools 321 in the file level 320. Each file storage pool 321 is equal to its corresponding thin provisioning storage pool 311 in size, which is favorable for management of the file system because the user's reading/writing of the data may simultaneously correspond to the file storage pool in the file level and the thin provisioning storage pool in the block level and the physical storage space. The file system 322 is created by using two file storage pools 321 obtained from mapping. Since illustrative block diagram of FIG. 3 further expounds on the illustrative flow chart of FIG. 2 in structure, depictions of principle of FIG. 2 also apply to FIG. 3 and will not be detailed herein.
  • According to an embodiment of the present disclosure, the unified storage system 300 further comprises a controller 330 for various operations, e.g., mapping the thin provisioning storage pools to the file storage pools of the file level to use the file storage pools to create the file system. In an embodiment, the controller 330 may be configured to prompt the user to add a new physical storage space in the block level in response to data in the file system exceeding the pre-defined proportion of the block-based physical storage space. In another embodiment, the controller 330 may further be configured to prompt the user to delete data in the file system in response to the thin provisioning storage pool being shrunk as a pre-defined proportion of data in the file system. Besides, in other embodiments, the controller 330 may be further configured to create a plurality of space-efficient storage volumes for mapping according to the thin provisioning storage pools, and a total capacity of the plurality of the space-efficient storage volumes is equal to the maximum capacity of the thin provisioning storage pools. However, it should be appreciated that the controller 330 according to the present disclosure may be configured to execute various other operations for the unified storage system 300, such as read/write, deletion and migration of data.
  • FIG. 4 illustrates a block diagram of an apparatus 400 for managing a file system of a unified storage system according to an embodiment of the present invention. As stated above, the unified storage system comprises a file device and a block device having a block-based physical storage space.
  • According to an embodiment of the present disclosure, the apparatus 400 comprises a thin provisioning storage pool creating unit 410 configured to create a thin provisioning storage pool in the block device; a mapping unit 420 configured to map the thin provisioning storage pool to a file storage pool in the file device; and a file system creating unit 430 configured to use the file storage pool to create a file system.
  • In an embodiment, the apparatus 400 further comprises: a capacity change request receiving unit configured to receive a request to change a capacity of the file system; and a thin provisioning storage pool capacity changing unit configured to, in response to the request, change the capacity of the thin provisioning storage pool to change the capacity of the file system.
  • In an embodiment, the apparatus 400 further comprises a physical storage space addition prompting unit configured to prompt the user to add a new physical storage space in the block device in response to data in the file system exceeding the pre-defined proportion of the block-based physical storage space.
  • In an embodiment, the apparatus 400 further comprises a thin provisioning storage pool shrink prompting unit configured to execute at least one of the following in response to the thin provisioning storage pool being shrunk to be less than the pre-defined threshold: refusing the shrinking request; and prompting the user to delete the data in the file system. The pre-defined threshold is proportional to the amount of data in the file system.
  • In an embodiment, the apparatus 400 further comprises a space-efficient storage volume creating unit configured to, after creation of the thin provisioning storage pools, create a plurality of space-efficient storage volumes for mapping corresponding to the thin provisioning storage pools, wherein a total capacity of the plurality of the space-efficient storage volumes is equal to the maximum capacity of the thin provisioning storage pools.
  • It should be appreciated that for sake of clarity, FIG. 4 does not show optional unit or sub-units included by the apparatus 400. All features and operations as described above are respectively applicable to the apparatus 400 and will not be detailed here. Furthermore, division of units and sub-units of the apparatus 400 are not restrictive but exemplary and aims to logically describe their main functions or operations. A function of a unit may be implemented by a plurality of units, and a plurality of units may be implemented by one unit. The scope of the present invention is not limited in this aspect.
  • Furthermore, the units included by the apparatus 400 may be implemented in many manners, including software, hardware, firmware or any combinations thereof. For example, in some embodiments, the apparatus 400 may be implemented by using software and/or hardware. Alternatively or additionally, the apparatus 400 may be implemented partially or completely based on hardware. For example, one or more units of the apparatus 400 may be implemented as an integrated circuit (IC) chip, an application-specific integrated circuit (ASIC), system on chip (SOC), field programmable gate array (FPGA), or the like. The scope of the present invention is not limited in this aspect.
  • Through embodiments of the present disclosure, the unified storage system may achieve the following advantages. The file system management of the present disclosure may manage allocation of the storage space to achieve better balance of storage capacity usability and storage performance particularly in the case of using different file systems and storage properties. Besides, the file system management of the present disclosure performs automation adaption and control for storage management in the unified storage system, which facilitates the user directly managing its file system without considering how to configure a file system disk or volume (number, size, type, whether to mirror and how to minor and the like). In the level of use, embodiments of the present disclosure simplify use of the file level, e.g., use and operation of the NAS apparatus, by allocating “quotas” to the file storage pools. By controlling the thin provisioning storage pools to achieve the allocation of the file system, the file system management of the present disclosure may simply expand or shrink the file system without need to rebalance and migrate the already-stored data, which therefore does not exert an influence on input and output of the files and is very important for the performance of the system. Besides, the unified storage system and the file system management method according to the present disclosure can substantially improve storage efficiency between the file and the block, particularly for a multi-tenant environment because the physical storage space is shared between the block level and the file level and does not need the user's participation and operation.
  • The present invention may be a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.
  • The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.
  • Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.
  • Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.
  • Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.
  • These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.
  • The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.
  • The flowchart and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.
  • The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.

Claims (18)

What is claimed is:
1. A method for managing a file system of a unified storage system, the unified storage system comprising a file level and a block level having a block-based physical storage space, the method comprising:
creating a thin provisioning storage pool in the block level;
mapping the thin provisioning storage pool to a file storage pool in the file level; and
creating the file system by using the file storage pool.
2. The method of claim 1, further comprising:
receiving a request to change a capacity of the file system; and
in response to the request, changing the capacity of the file system by changing a capacity of the thin provisioning storage pool.
3. The method of claim 1, further comprising:
prompting a user to add a new physical storage space in the block level in response to an amount of data in the file system exceeding a pre-defined proportion of the block-based physical storage space.
4. The method of claim 1, further comprising, in response to the thin provisioning storage pool being shrunk to be less than a pre-defined threshold, performing at least one of the following:
refusing a shrinking request; and
prompting a user to delete data in the file system.
5. The method of claim 1, further comprising creating a plurality of storage volumes for the mapping according to the thin provisioning storage pool.
6. The method of claim 5, wherein a total capacity of the plurality of storage volumes is equal to a maximum capacity of the thin provisioning storage pool.
7. An apparatus for managing a file system of a unified storage system, the unified storage system comprising a file device and a block device having a block-based physical storage space, the apparatus comprising:
a thin provisioning storage pool creating unit configured to create a thin provisioning storage pool in the block device;
a mapping unit configured to map the thin provisioning storage pool to a file storage pool in the file device; and
a file system creating unit configured to create the file system by using the file storage pool.
8. The apparatus of claim 7, further comprising:
a capacity change request receiving unit configured to receive a request to change a capacity of the file system; and
a thin provisioning storage pool capacity changing unit configured to change the capacity of the file system by changing a capacity of the thin provisioning storage pool in response to the request.
9. The apparatus of claim 7, further comprising:
a physical storage space addition prompting unit configured to prompt a user to add a new physical storage space in the block device in response to an amount of data in the file system exceeding a pre-defined proportion of the block-based physical storage space.
10. The apparatus of claim 7, further comprising:
a thin provisioning storage pool shrink prompting unit configured to perform at least one of the following in response to the thin provisioning storage pool being shrunk to be less than a pre-defined threshold:
refusing a shrinking request; and
prompting a user to delete data in the file system.
11. The apparatus of claim 7, further comprising:
a storage volume creating unit configured to create a plurality of storage volumes for the mapping according to the thin provisioning storage pool.
12. The apparatus of claim 11, wherein a total capacity of the plurality of storage volumes is equal to a maximum capacity of the thin provisioning storage pool.
13. A computer program product for managing a file system of a unified storage system, the unified storage system comprising a file level and a block level having a block-based physical storage space, the computer program product comprising:
one or more computer readable storage media and program instructions stored on the one or more computer readable storage media, the program instructions comprising instructions for:
creating a thin provisioning storage pool in the block level;
mapping the thin provisioning storage pool to a file storage pool in the file level; and
creating the file system by using the file storage pool.
14. The computer program product of claim 13, wherein the program instructions comprise instructions for:
receiving a request to change a capacity of the file system; and
in response to the request, changing the capacity of the file system by changing a capacity of the thin provisioning storage pool.
15. The computer program product of claim 13, wherein the program instructions comprise instructions for:
prompting a user to add a new physical storage space in the block level in response to an amount of data in the file system exceeding a pre-defined proportion of the block-based physical storage space.
16. The computer program product of claim 13, wherein, in response to the thin provisioning storage pool being shrunk to be less than a pre-defined threshold, the program instructions comprise instructions for performing at least one of the following:
refusing a shrinking request; and
prompting a user to delete data in the file system.
17. The computer program product of claim 13, wherein the program instructions comprise instructions for creating a plurality of storage volumes for the mapping according to the thin provisioning storage pool.
18. The computer program product of claim 17, wherein a total capacity of the plurality of storage volumes is equal to a maximum capacity of the thin provisioning storage pool.
US14/933,080 2014-12-10 2015-11-05 Method and apparatus for managing file system of unified storage system Abandoned US20160173603A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US17/861,119 US11847518B2 (en) 2014-12-10 2022-07-08 Systems and methods for constructing programmable credential and security cards

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201410757054.2A CN105740165A (en) 2014-12-10 2014-12-10 Method and apparatus for managing file system of unified storage system
CN201410757054.2 2014-12-10

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/205,078 Continuation US20190258911A1 (en) 2014-12-10 2018-11-29 Systems and methods for constructing programmable credential and security cards

Publications (1)

Publication Number Publication Date
US20160173603A1 true US20160173603A1 (en) 2016-06-16

Family

ID=56112333

Family Applications (2)

Application Number Title Priority Date Filing Date
US14/933,080 Abandoned US20160173603A1 (en) 2014-12-10 2015-11-05 Method and apparatus for managing file system of unified storage system
US17/861,119 Active US11847518B2 (en) 2014-12-10 2022-07-08 Systems and methods for constructing programmable credential and security cards

Family Applications After (1)

Application Number Title Priority Date Filing Date
US17/861,119 Active US11847518B2 (en) 2014-12-10 2022-07-08 Systems and methods for constructing programmable credential and security cards

Country Status (2)

Country Link
US (2) US20160173603A1 (en)
CN (1) CN105740165A (en)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10326837B1 (en) * 2016-09-28 2019-06-18 EMC IP Holding Company LLC Data storage system providing unified file/block cloud access
US10379835B2 (en) * 2016-12-19 2019-08-13 International Business Machines Corporation Optimized creation of distributed storage and distributed processing clusters on demand
CN110825703A (en) * 2019-11-01 2020-02-21 浪潮云信息技术有限公司 Method for realizing elastic expansion and contraction of file system based on timing task
CN112749135A (en) * 2019-10-30 2021-05-04 伊姆西Ip控股有限责任公司 Method, apparatus and computer program product for balancing storage space of a file system
CN112765046A (en) * 2019-10-21 2021-05-07 伊姆西Ip控股有限责任公司 Method, apparatus and computer program product for reclaiming storage space
CN112765107A (en) * 2019-10-21 2021-05-07 伊姆西Ip控股有限责任公司 Method, apparatus and computer program product for adjusting memory space
CN112882653A (en) * 2021-01-26 2021-06-01 北京金山云网络技术有限公司 Storage volume creation method and device and electronic equipment
CN114063907A (en) * 2021-10-20 2022-02-18 郑州云海信息技术有限公司 A storage space allocation method, system, storage medium and device
US11256664B1 (en) * 2017-05-05 2022-02-22 Fannie Mae Systems and methods for memory management in source agnostic content staging
US20220335009A1 (en) * 2016-06-03 2022-10-20 Pure Storage, Inc. Converting Storage Resources to Distributed Persistent Storage for Containerized Applications
US11656773B2 (en) * 2020-04-28 2023-05-23 EMC IP Holding Company LLC Automatic management of file system capacity using predictive analytics for a storage system
CN117851132A (en) * 2024-03-07 2024-04-09 四川省华存智谷科技有限责任公司 Data recovery optimization method for distributed object storage
US12088667B1 (en) * 2023-03-30 2024-09-10 Dropbox, Inc. Generating and managing multilocational data blocks
US12093299B1 (en) 2023-03-30 2024-09-17 Dropbox, Inc. Generating and summarizing content blocks within a virtual space interface
US12147390B2 (en) 2022-09-08 2024-11-19 Dell Products L.P. Automatic file system capacity management using file system utilization prediction
US12204499B2 (en) 2023-03-30 2025-01-21 Dropbox, Inc. Virtual space platform for a content block browser

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8011577B2 (en) * 2007-12-24 2011-09-06 Dynamics Inc. Payment cards and devices with gift card, global integration, and magnetic stripe reader communication functionality

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110060885A1 (en) * 2009-04-23 2011-03-10 Hitachi, Ltd. Computing system and controlling methods for the same
US7949847B2 (en) * 2006-11-29 2011-05-24 Hitachi, Ltd. Storage extent allocation method for thin provisioning storage
US20120023301A1 (en) * 2010-07-23 2012-01-26 Hitachi, Ltd. Computer system and its control method
US20130166872A1 (en) * 2009-02-11 2013-06-27 Hitachi, Ltd. Methods and apparatus for migrating thin provisioning volumes between storage systems
US20150033224A1 (en) * 2013-07-24 2015-01-29 Netapp, Inc. Method and system for presenting and managing storage shares
US20150242309A1 (en) * 2014-02-24 2015-08-27 Fusion-Io, Inc. Systems and methods for storage compression
US9893953B1 (en) * 2011-12-23 2018-02-13 EMC IP Holding Company LLC Using application aware templates
US9965381B1 (en) * 2011-06-30 2018-05-08 EMC IP Holding Company LLC Indentifying data for placement in a storage system

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3382000A (en) 1966-12-16 1968-05-07 Everest & Jennings Vertically adjustable armrests for wheelchairs
US4876441A (en) 1984-03-27 1989-10-24 Casio Computer Co., Ltd. Card-like electronic apparatus
US4707594A (en) 1985-06-27 1987-11-17 Intellicard International, Inc. Unitary, self-contained consumer transaction card
US20050194453A1 (en) 2001-07-27 2005-09-08 Storcard, Inc. Enhanced smart card with rotating storage
US7652359B2 (en) * 2002-12-27 2010-01-26 Semiconductor Energy Laboratory Co., Ltd. Article having display device
US7013365B2 (en) 2003-06-16 2006-03-14 Michael Arnouse System of secure personal identification, information processing, and precise point of contact location and timing
US7566001B2 (en) * 2003-08-29 2009-07-28 Semiconductor Energy Laboratory Co., Ltd. IC card
US7689459B2 (en) 2003-09-24 2010-03-30 Industiral Technology Research Institute Card with embedded bistable display having short and long term information
US7641124B2 (en) 2003-12-17 2010-01-05 Qsecure, Inc. Magnetic data recording device
US20140019352A1 (en) 2011-02-22 2014-01-16 Visa International Service Association Multi-purpose virtual card transaction apparatuses, methods and systems
JP2006134145A (en) * 2004-11-08 2006-05-25 Seiko Epson Corp IC card
KR20070119051A (en) 2005-03-26 2007-12-18 프라이베이시스, 인크. E-Commerce Cards and E-Commerce Methods
EP2278564A1 (en) 2005-09-08 2011-01-26 Cardlab ApS A dynamic transaction card and a method of writing information to the same
US20100039594A1 (en) 2006-08-01 2010-02-18 Micro-D Ltd. Method of making smart cards, smart cards made according to the method, and an lcd particularly for use in such smart cards
US20080067247A1 (en) 2006-09-15 2008-03-20 Mcgregor Travis M Biometric authentication card and method of fabrication thereof
US20090006262A1 (en) 2006-12-30 2009-01-01 Brown Kerry D Financial transaction payment processor
EP2201543A1 (en) 2007-09-21 2010-06-30 Wireless Dynamics, Inc. Wireless smart card and integrated personal area network, near field communication and contactless payment system
US20090099947A1 (en) 2007-10-16 2009-04-16 Wachovia Corporation System and method for electronic funds payment
US9542635B2 (en) 2007-12-31 2017-01-10 Composecure, Llc Foil composite card
GB0805780D0 (en) * 2008-03-31 2008-04-30 Royal Bank Of Scotland Plc The Processor card arrangement
US7556193B1 (en) 2008-06-30 2009-07-07 International Business Machines Corporation Method and apparatus for affinity card consolidation
US8136736B2 (en) 2008-12-09 2012-03-20 Vasco Data Security, Inc. Slim electronic device with detector for unintentional activation
US8579203B1 (en) 2008-12-19 2013-11-12 Dynamics Inc. Electronic magnetic recorded media emulators in magnetic card devices
DE102009009263A1 (en) 2009-02-17 2010-08-19 Giesecke & Devrient Gmbh A method of making a window-containing final layer for a portable data carrier and final layer
US8393547B2 (en) 2009-08-05 2013-03-12 Perfect Plastic Printing Corporation RF proximity financial transaction card having metallic foil layer(s)
CA2779065A1 (en) 2009-10-29 2011-05-05 Sun Chemical B.V. Polyamideimide adhesives for printed circuit boards
DE102009052160A1 (en) 2009-11-06 2011-05-12 Infineon Technologies Ag Smart card module with flip-chip mounted semiconductor chip
GB2476987B (en) 2010-01-19 2013-11-27 Haim Cohen Transaction card with improved security features
US9122964B2 (en) * 2010-05-14 2015-09-01 Mark Krawczewicz Batteryless stored value card with display
CN102316126A (en) * 2010-06-30 2012-01-11 伊姆西公司 Keep watch on the system and the equipment of compression and transition state
CN102063383B (en) * 2010-12-22 2013-01-23 深圳市创新科信息技术有限公司 Method for recording mapping relation between logical extents (LE) and physical extents (PE)
US20120191513A1 (en) 2011-01-20 2012-07-26 Alexander Ocher Systems and Methods for Multi-Merchant Discount Payments
AU2012278963B2 (en) 2011-07-05 2017-02-23 Visa International Service Association Electronic wallet checkout platform apparatuses, methods and systems
US8818867B2 (en) 2011-11-14 2014-08-26 At&T Intellectual Property I, L.P. Security token for mobile near field communication transactions
US9129273B2 (en) 2011-12-01 2015-09-08 At&T Intellectual Property I, L.P. Point of sale for mobile transactions
US9892357B2 (en) 2013-05-29 2018-02-13 Cardlab, Aps. Method for remotely controlling a reprogrammable payment card
US9406011B2 (en) 2012-05-29 2016-08-02 Stratos Technologies, Inc. Virtual wallet
US9010647B2 (en) 2012-10-29 2015-04-21 Dynamics Inc. Multiple sensor detector systems and detection methods of magnetic cards and devices
US9010644B1 (en) 2012-11-30 2015-04-21 Dynamics Inc. Dynamic magnetic stripe communications device with stepped magnetic material for magnetic cards and devices
US10949627B2 (en) 2012-12-20 2021-03-16 Dynamics Inc. Systems and methods for non-time smearing detection mechanisms for magnetic cards and devices
US9123036B2 (en) 2013-03-01 2015-09-01 Looppay, Inc. Mobile checkout systems and methods
US8893964B2 (en) 2013-03-15 2014-11-25 Dell Products L.P. Secure point of sale presentation of a barcode at an information handling system display
WO2014143997A1 (en) * 2013-03-15 2014-09-18 Bodhi Technology Ventures Llc Facilitating access to location-specific information using wireless devices
DE102013105575A1 (en) * 2013-05-30 2014-12-04 Infineon Technologies Ag Smart card module, smart card, and method of manufacturing a smart card module
KR20150026233A (en) 2013-09-02 2015-03-11 삼성에스디에스 주식회사 Payment system and method t based on digital card
CA2928554C (en) 2013-10-25 2018-04-10 Cpi Card Group-Colorado, Inc. Multi-metal layered card
CN103744792B (en) * 2014-01-10 2017-10-31 浪潮电子信息产业股份有限公司 It is a kind of to realize the system that the automatic simplify configuration of storage system is fully distributed
US20150206047A1 (en) 2014-01-20 2015-07-23 John Herslow Metal card with radio frequency (rf) transmission capability
US10475026B2 (en) 2014-05-16 2019-11-12 International Business Machines Corporation Secure management of transactions using a smart/virtual card
US20160189127A1 (en) 2014-11-21 2016-06-30 Qvivr, Inc. Systems And Methods For Creating Dynamic Programmable Credential and Security Cards
US10127488B2 (en) 2014-12-30 2018-11-13 Qvivr, Inc. Systems and methods for creating dynamic programmable magnetic stripes

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7949847B2 (en) * 2006-11-29 2011-05-24 Hitachi, Ltd. Storage extent allocation method for thin provisioning storage
US20130166872A1 (en) * 2009-02-11 2013-06-27 Hitachi, Ltd. Methods and apparatus for migrating thin provisioning volumes between storage systems
US20110060885A1 (en) * 2009-04-23 2011-03-10 Hitachi, Ltd. Computing system and controlling methods for the same
US20120023301A1 (en) * 2010-07-23 2012-01-26 Hitachi, Ltd. Computer system and its control method
US9965381B1 (en) * 2011-06-30 2018-05-08 EMC IP Holding Company LLC Indentifying data for placement in a storage system
US9893953B1 (en) * 2011-12-23 2018-02-13 EMC IP Holding Company LLC Using application aware templates
US20150033224A1 (en) * 2013-07-24 2015-01-29 Netapp, Inc. Method and system for presenting and managing storage shares
US20150242309A1 (en) * 2014-02-24 2015-08-27 Fusion-Io, Inc. Systems and methods for storage compression

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20220335009A1 (en) * 2016-06-03 2022-10-20 Pure Storage, Inc. Converting Storage Resources to Distributed Persistent Storage for Containerized Applications
US10326837B1 (en) * 2016-09-28 2019-06-18 EMC IP Holding Company LLC Data storage system providing unified file/block cloud access
US10379835B2 (en) * 2016-12-19 2019-08-13 International Business Machines Corporation Optimized creation of distributed storage and distributed processing clusters on demand
US10379836B2 (en) * 2016-12-19 2019-08-13 International Business Machines Corporation Optimized creation of distributed storage and distributed processing clusters on demand
US11256664B1 (en) * 2017-05-05 2022-02-22 Fannie Mae Systems and methods for memory management in source agnostic content staging
US11874799B1 (en) 2017-05-05 2024-01-16 Fannie Mae Systems and methods for memory management in source agnostic content staging
CN112765046A (en) * 2019-10-21 2021-05-07 伊姆西Ip控股有限责任公司 Method, apparatus and computer program product for reclaiming storage space
CN112765107A (en) * 2019-10-21 2021-05-07 伊姆西Ip控股有限责任公司 Method, apparatus and computer program product for adjusting memory space
CN112749135A (en) * 2019-10-30 2021-05-04 伊姆西Ip控股有限责任公司 Method, apparatus and computer program product for balancing storage space of a file system
CN110825703A (en) * 2019-11-01 2020-02-21 浪潮云信息技术有限公司 Method for realizing elastic expansion and contraction of file system based on timing task
US11656773B2 (en) * 2020-04-28 2023-05-23 EMC IP Holding Company LLC Automatic management of file system capacity using predictive analytics for a storage system
CN112882653A (en) * 2021-01-26 2021-06-01 北京金山云网络技术有限公司 Storage volume creation method and device and electronic equipment
CN114063907A (en) * 2021-10-20 2022-02-18 郑州云海信息技术有限公司 A storage space allocation method, system, storage medium and device
US12147390B2 (en) 2022-09-08 2024-11-19 Dell Products L.P. Automatic file system capacity management using file system utilization prediction
US12088667B1 (en) * 2023-03-30 2024-09-10 Dropbox, Inc. Generating and managing multilocational data blocks
US12093299B1 (en) 2023-03-30 2024-09-17 Dropbox, Inc. Generating and summarizing content blocks within a virtual space interface
US20240333793A1 (en) * 2023-03-30 2024-10-03 Dropbox, Inc. Generating and managing multilocational data blocks
US12204499B2 (en) 2023-03-30 2025-01-21 Dropbox, Inc. Virtual space platform for a content block browser
CN117851132A (en) * 2024-03-07 2024-04-09 四川省华存智谷科技有限责任公司 Data recovery optimization method for distributed object storage

Also Published As

Publication number Publication date
US11847518B2 (en) 2023-12-19
CN105740165A (en) 2016-07-06
US20220343130A1 (en) 2022-10-27

Similar Documents

Publication Publication Date Title
US20160173603A1 (en) Method and apparatus for managing file system of unified storage system
US9880751B2 (en) Cost-effective IAAS (infrastructure-as-a-service) cloud storage based on adaptive virtual disks (AVD)
US10701134B2 (en) Transferring data between block and file storage systems
US10168915B2 (en) Workload performance in a multi-tier storage environment
US9760290B2 (en) Smart volume manager for storage space usage optimization
US10564874B2 (en) Dynamically managing a table of contents
US11079935B2 (en) Processing a space release command to free release space in a consistency group
US10372363B2 (en) Thin provisioning using cloud based ranks
US11010295B2 (en) Asynchronous update of metadata tracks in response to a cache hit generated via an i/o operation over a bus interface
US10303369B2 (en) Storage in tiered environment with cache collaboration
US10642540B2 (en) Aligning tenant resource demand in a multi-tier storage environment
US10956062B2 (en) Aggregating separate data within a single data log wherein single data log is divided in a plurality of blocks assigned to plurality of different streams
US10592152B2 (en) Lazy mechanism for preventing unneeded data replication in a multi-tier storage environment
US11099751B2 (en) Determining tracks to release in a source volume being copied to a target volume
US10664201B2 (en) Considering input/output workload and space usage at a plurality of logical devices to select one of the logical devices to use to store an object
US20210072914A1 (en) Converting small extent storage pools into large extent storage pools in place
US11199988B2 (en) Data migration across tiers in a multi-tiered storage area network
US11175845B2 (en) Adding a migration file group to a hierarchical storage management (HSM) system for data co-location
US10901652B2 (en) Heat value tracking
US11093178B2 (en) Using a space release data structure to indicate tracks to release for a space release command to release space of tracks

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:AINSCOW, ALEXANDER H.;GUO, LI HUI;LAN, LONG WEN;SIGNING DATES FROM 20151023 TO 20151104;REEL/FRAME:036966/0090

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: ADVISORY ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

STPP Information on status: patent application and granting procedure in general

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: ADVISORY ACTION MAILED

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION