WO2012114531A1 - 計算機システム及びデータ管理方法 - Google Patents
計算機システム及びデータ管理方法 Download PDFInfo
- Publication number
- WO2012114531A1 WO2012114531A1 PCT/JP2011/054646 JP2011054646W WO2012114531A1 WO 2012114531 A1 WO2012114531 A1 WO 2012114531A1 JP 2011054646 W JP2011054646 W JP 2011054646W WO 2012114531 A1 WO2012114531 A1 WO 2012114531A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- file
- information
- data
- management
- divided data
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Definitions
- the present invention relates to a computer and a data management method provided with a storage for distributing and arranging data.
- a conventional application processes data in a file format using a file access I / F.
- files There are various ways to handle files for each application. For example, an application for executing a basic business process using a main frame is described using a program language such as COBOL.
- FIG. 25 is an explanatory diagram showing a configuration example of a conventional file.
- the file 2500 is composed of a plurality of records.
- the file 2500 includes a record 2501, a record 2502, a record 2503, and a record 2504.
- the application handles the file as a set of records and inputs / outputs data in record units. That is, a record is a basic unit of data processed by an application.
- each record is composed of items called fields. Corresponding data is stored in the field.
- each record includes a field 2511, a field 2512, and a field 2513.
- a method of dividing data (file) into a plurality of parts and causing the application of each server to execute the divided data can be considered.
- a method of dividing a file into records and causing each server application to execute the file can be considered.
- Patent Document 1 describes that data stored in a database is divided into records by a key range (key range) to realize parallel processing.
- Non-Patent Document 1 In order to realize high-speed processing, distributed memory technology is known in which memories included in a plurality of servers are integrated to form one or more memory spaces, and data is processed in the memory spaces (for example, Non-Patent Document 1).
- parallel processing is realized by distributing and arranging data in each server, and further, data input / output is performed on the memory of each server, so that the processing speed can be increased.
- the key / value type data has a data structure in which a key, which is a data identifier, is associated with a value representing the contents of the data, and the data is managed in a [key, value] format.
- key-value type data is allocated to multiple servers according to the key range (key range).
- the application on each server realizes parallel processing as a whole computer system by processing key / value type data arranged in the server, thereby speeding up the processing.
- an API used in the distributed memory technology is generally Get / Put, and a value is acquired by specifying a key, and data is added by specifying a set of [key, value].
- JP-A-5-334165 Japanese Patent Laid-Open No. 7-219905
- one field included in the record may be used as a key, and the other field included in the record may be used as a value.
- the present invention has been made in view of the above-mentioned problems.
- it provides a data management method for distributed data that allows key / value type data to be handled in the name space of the file system, and further allows key / value type data to be distributed and distributed using a file access I / F. It is to be.
- a typical example of the invention disclosed in the present application is as follows.
- a plurality of computers for storing data comprising a first processor, a first memory connected to the first processor, and a first network interface connected to the first processor;
- a management computer that manages data stored on each of the computers, a second memory connected to the second processor, and a second network interface connected to the second processor;
- the computer system includes a storage generated by integrating storage areas included in the plurality of computers, and the storage divides a file including a plurality of file data and searches the file.
- the management computer includes an access management unit that controls access to the storage, and a storage management unit that manages the storage, and storage configuration information that includes information on storage areas that constitute the storage, and File management information including information on the arrangement of the divided data stored in the storage is stored, and the storage management unit stores the file corresponding to the divided data stored in the storage and the file Storing file identification information including information for identifying a system, and file system management information including arrangement definition information defining an arrangement method of the divided data in the storage in which the file system is constructed,
- the file data unit data A data access management unit that accesses the storage, and the management computer receives the file generation request including the file identification information of the arbitrary file from at least one of the applications, Based on the file identification information, the file system that is the storage destination of the arbitrary file is specified, the file system management information corresponding to the specified file system is searched, and the searched file system management information , Registering file identification information of the arbitrary file, referring
- an application can access file data distributed to each computer based on an access request including file identification information.
- FIG. 1 is an explanatory diagram showing a configuration example of a computer system according to an embodiment of the present invention.
- the computer system includes a management server 101 and a plurality of servers 102.
- the management server 101 is connected to a plurality of servers 102 via the network 104, and manages all the connected servers 102.
- the network 104 may be a WAN, LAN, IP network, or the like.
- the management server 101 and each server 102 may be directly connected.
- the distributed memory storage is generated from the storage area generated by integrating the memory areas of the servers 102. Details of the distributed memory storage will be described later with reference to FIG.
- the distributed memory storage of this embodiment stores file data.
- the distributed memory storage stores file data as key / value type data.
- the management server 101 is connected to the storage device 103.
- the storage device 103 stores files to be processed.
- the storage device 103 may be any device as long as it can hold a file permanently.
- a storage system including a plurality of storage media such as HDDs, a semiconductor disk device using a flash memory as a storage medium, an optical disk device, and the like are conceivable.
- the file in this embodiment is composed of a plurality of records.
- a record is composed of one or more fields.
- the management server 101 includes a processor 111, a memory 112, and interfaces 113-1, 113-2.
- the processor 111, the memory 112, and the interfaces 113-1, 113-2 are connected using an internal bus or the like.
- the management server 101 may include other configurations such as an input / output unit for inputting / outputting information.
- the processor 111 implements a function included in the management server 101 by executing a program read out on the memory 112.
- the memory 112 stores a program executed by the processor 111 and information necessary for executing the program. Specifically, the memory 112 stores programs for realizing the distributed memory storage management unit 121 and the file system management unit 122.
- the distributed memory storage management unit 121 manages the distributed memory storage.
- the distributed memory storage management unit 121 includes at least a key / value type data management unit 131 and global file management information 132.
- the key / value type data management unit 131 manages key / value type data stored on the distributed memory storage.
- the global file management information 132 stores management information on the arrangement position of the key / value type data divided into files on the distributed memory storage 301, that is, information on the correspondence relationship with the local file management information 126.
- the file system management unit 122 manages a file stored in the storage device 103 and the distributed memory storage 301 (see FIG. 3) and a file system in which the file is stored.
- the file system management unit 122 executes file input / output processing based on file identification information such as a file name.
- the file system management unit 122 includes mount information 151 and file status information 152.
- the mount information 151 stores management information such as a mounted file system, directory, and file. Details of the mount information 151 will be described later with reference to FIG.
- the file status information 152 manages the status information of the files stored in the storage device 103 and the distributed memory storage 301 (see FIG. 3). Details of the file status information 152 will be described later with reference to FIG.
- the server 102 includes a processor 114, a memory 115, and an interface 116.
- the processor 114, the memory 115, and the interface 116 are connected using an internal bus or the like.
- the server 102 may include other configurations such as an input / output unit for inputting / outputting information.
- the processor 114 implements a function provided in the server 102 by executing a program read out on the memory 115.
- the memory 115 stores a program executed by the processor 114 and information necessary for executing the program. Specifically, the memory 115 stores programs for realizing the AP 123, the distributed memory storage access unit 124, and the file system access unit 125, and also stores local file management information 126.
- the AP 123 is an application for accessing files stored in the storage device 103 and the distributed memory storage 301 (see FIG. 3).
- the application of this embodiment is described using the COBOL language. Note that the present invention is not limited to applications written using the COBOL language of the present invention. That is, any program that requests normal input / output may be used.
- FIG. 2 is an explanatory diagram showing an example of the source program of the AP 123 in the embodiment of the present invention.
- FIG. 2 shows a source program 201 using the COBOL language.
- a DATA DIVISION FILE SECTION 202 included in the source program 201 describes the definition of the file structure. Specifically, a file processed by an application is defined by a description entry (FD) and one or more record description entries.
- FD description entry
- record description entries one or more record description entries.
- the distributed memory storage access unit 124 controls access to the distributed memory storage 301 (see FIG. 3).
- the file system access unit 125 controls access to the file system and includes open file information 161.
- the open file information 161 stores information related to a file for which an open process has been executed among files stored in the storage device 103 and the distributed memory storage 301 (see FIG. 3).
- the server 102 can specify an accessible file by referring to the open file information 161. Details of the open file information 127 will be described later with reference to FIG.
- the AP 123 accesses a file stored in the storage device 103 or the distributed memory storage via the file system access unit 125.
- the local file management information 126 stores information about key / value type data stored in a storage area constituting the distributed memory storage 301 (see FIG. 3). That is, management information of key / value type data held by the server 102 itself is stored.
- FIG. 3 is an explanatory diagram illustrating a logical configuration example of the distributed memory storage according to the embodiment of this invention.
- FIG. 3 shows a distributed memory storage 301 in which the memory areas of the server 1 (102A), the server 2 (102B), and the server 3 (102C) are integrated.
- the distributed memory storage 301 stores a plurality of key / value type data 302.
- the key / value type data 302 is data having a data structure in which a key and a value are combined into one set.
- one key / value type data 302 is also referred to as an entry.
- a plurality of distributed memory storages 301 may be generated by integrating the memory areas of the server 1 (102A), the server 2 (102B), and the server 3 (102C). In this case, each distributed memory storage 301 can store different key / value type data.
- the memory areas of the server 1 (102A) and the server 2 (102B) or the memory areas of the server 2 (102B) and the server 3 (102C) are integrated to generate the distributed memory storage 301 in each memory area. May be.
- FIG. 4 is an explanatory diagram illustrating details of the distributed memory storage management unit 121 and the key / value type data management unit 131 according to the embodiment of this invention.
- the key / value type data management unit 131 includes a file system name space access unit 141, a file access unit 142, and a directory attribute management unit 143.
- the file system namespace access unit 141 executes a file system mount process and an unmount process. Details of the mounting process and the unmounting process will be described later with reference to FIGS. 15 and 16.
- the file access unit 142 accesses the key / value type data 302 stored on the distributed memory storage 301 in units of files.
- the directory attribute management unit 143 executes processing related to directory and file attributes.
- the distributed memory storage management unit 121 stores global file management information 132, distributed memory storage configuration information 133, distributed memory storage management information 134, and directory management information 135 as management information of the distributed memory storage 301.
- the distributed memory storage configuration information 133 stores information indicating the correspondence relationship between the distributed memory storage 301 and the memory area of each server 102. Details of the distributed memory storage configuration information 133 will be described later with reference to FIG.
- the distributed memory storage management information 134 stores information regarding the usage state of the distributed memory storage 301. Details of the distributed memory storage management information 134 will be described later with reference to FIG.
- the global file management information 132 stores information related to the correspondence with the local file management information 126. Details of the global file management information 132 will be described later with reference to FIG.
- the key / value type data is arranged in the memory area of each server 102 constituting the distributed memory storage 301. Therefore, the management server 101 can grasp in which memory area, that is, in which server 102 the key / value type data is arranged based on the global file management information 132.
- the directory management information 135 stores definition information such as a distribution method of records stored under a predetermined directory. Details of the directory management information 135 will be described later with reference to FIG.
- FIG. 5 is an explanatory diagram showing details of the distributed memory storage configuration information 133 according to the embodiment of this invention.
- the distributed memory storage configuration information 133 includes a distributed memory storage ID 501, an area number 502, and a plurality of physical memory area configuration information 503.
- the distributed memory storage ID 501 stores an identifier for identifying the distributed memory storage 301 in the computer system.
- the area number 502 stores the number of memory areas constituting the distributed memory storage 301 corresponding to the distributed memory storage ID 501.
- the physical memory area configuration information 503 stores configuration information of the memory areas that constitute the distributed memory storage 301. Specifically, the physical memory area configuration information 503 includes a server ID 511, an area ID 512, and a memory size 513.
- the server ID 511 stores an identifier for identifying the server 102 that provides the memory area constituting the distributed memory storage 301.
- the server ID 511 only needs to be information that can be identified by the server 102. For example, a host name, an IP address, or the like can be considered.
- the area ID 512 stores an identifier for identifying a memory area in the server 102 when the server 102 holds a plurality of memory areas.
- the area ID 512 may be any information that can identify the memory area.
- a physical address of the memory 115 may be considered. Note that a method using the top address of the memory area as the physical address of the memory 115 is conceivable.
- the memory size 513 stores information indicating the size of the memory area provided to the distributed memory storage 301.
- FIG. 6 is an explanatory diagram showing details of the distributed memory storage management information 134 according to the embodiment of this invention.
- the distributed memory storage management information 134 includes a distributed memory storage ID 601, the number of areas 602, and a plurality of physical memory operation information 603.
- the distributed memory storage ID 601 stores an identifier for identifying the distributed memory storage 301 on the computer system.
- the distributed memory storage ID 601 is the same information as the distributed memory storage ID 501.
- the area number 602 stores the number of memory areas constituting the distributed memory storage 301 corresponding to the distributed memory storage ID 501.
- the area number 602 is the same information as the area number 502.
- the physical memory operation information 603 stores information indicating the operation state of the memory area constituting the distributed memory storage 301. Specifically, the physical memory operation information 603 includes a memory size 611 and a used memory size 612.
- the memory size 611 stores information indicating the size of the memory area provided to the distributed memory storage 301.
- the memory size 611 is the same information as the memory size 513.
- the used memory size 612 stores information indicating the size of the memory area actually used among the memory areas provided to the distributed memory storage 301.
- FIG. 7 is an explanatory diagram showing details of the global file management information 132 according to the embodiment of this invention.
- the global file management information 132 includes file identification information 701, management attribute information 702, a local file management information pointer (start) 703, and a local file management information pointer (end) 704.
- the file identification information 701 stores identification information for identifying a file.
- the file identification information 701 may be any information that can identify a file. For example, a file name, an i-node number, and the like are conceivable.
- Management attribute information 702 stores file management information corresponding to the file identification information 701. Details of the management attribute information 702 will be described later with reference to FIG.
- the local file management information pointer (start) 703 and the local file management information pointer (end) 704 are held by the server 102 in which the key / value type data generated by dividing the file corresponding to the file identification information 701 is stored. A pointer to the local file management information 126 is stored.
- the local file management information list 711 indicating the arrangement relation is generated.
- the local file management information pointer (start) 703 stores the address of the first local file management information 126 in the local file management information list 711.
- the local file management information pointer (end) 704 stores the address of the last local file management information 126 in the local file management information list 711.
- the local file management information 126 includes a local file management information pointer 905 (see FIG. 9) that is a pointer to other local file management information 126.
- the local file management information pointer 905 stores a pointer so that the local file management information 126 can be read in the order of the local file management information list.
- Null is stored in the local file management information pointer 905 (see FIG. 9) of the last local file management information 126 in the local file management information list 711.
- the local file management information 126 includes a global file management information pointer 906 (see FIG. 9).
- the management server 101 when a file I / O including file identification information 701 is input, the management server 101 refers to the global file management information 132 to thereby distribute the key / value type data. 301 can be grasped. That is, the file can be associated with the key / value type data.
- FIG. 8 is an explanatory diagram showing details of the management attribute information 702 according to the embodiment of this invention.
- Management attribute information 702 includes permission information 811, owner information 812, and size 813. Other information may be included.
- the permission information 811 stores information on the access authority of the file corresponding to the file identification information 701.
- the owner information 812 stores information on the owner of the file corresponding to the file identification information 701.
- the size 813 stores information indicating the size of the file corresponding to the file identification information 701.
- FIG. 9 is an explanatory diagram showing details of the local file management information 126 according to the embodiment of this invention.
- the local file management information 126 includes file identification information 901, management attribute information 902, an entry list pointer (start) 903, an entry list pointer (end) 904, a local file management information pointer 905, and a global file management information pointer 906.
- the file identification information 901 stores identification information for identifying a file.
- the file identification information 901 may be any information that can identify a file. For example, a file name, an i-node number, and the like are conceivable.
- the file identification information 901 is the same information as the file identification information 701.
- Management attribute information 902 stores file management information corresponding to the file identification information 901.
- the management attribute information 902 is the same information as the management attribute information 702.
- the entry list pointer (start) 903 and the entry list pointer (end) 904 store a pointer to the entry 921.
- the entry 921 represents one key / value type data.
- an entry list 911 is created when key / value data is arranged in each server 102.
- entries 921 are arranged in the sort order of the key information.
- the entry list pointer (start) 903 stores a pointer to the first entry 921 included in the entry list 911.
- the entry list pointer (end) 904 stores a pointer to the last entry 921 included in the entry list 912.
- the local file management information pointer 905 is a pointer to other local file management information 126. Thereby, the management server 101 grasps the local file management information 126 storing the key / value type data obtained by dividing the file corresponding to the file identification information 901 by accessing the first local file management information 126. Can do.
- the global file management information pointer 906 stores a pointer to the global file management information 132 that manages the local file management information 126.
- the entry 921 includes file identification information 931, value identification information 932, a belonging local file management information pointer 933, an entry pointer 934, and a value pointer 935.
- the file identification information 931 stores file identification information.
- the file identification information 931 may be any information that can identify a file, and may be a file name, an i-node number, or the like.
- the file identification information 931 is the same information as the file identification information 701.
- the value identification information 932 stores field identification information included in the records constituting the file.
- the value identification information 932 may be any information that can identify a field. For example, the name of the field may be considered.
- the belonging local file management information pointer 933 stores a pointer to the local file management information 126 to which the entry 921 belongs.
- the entry pointer 934 stores a pointer to another entry 921. As shown in FIG. 9, the entry pointer 934 stores pointers so that the entries 921 can be read in the order of the entry list 911.
- Value pointer 935 stores a pointer to a memory area in which value 941 corresponding to actual data content is stored.
- FIG. 10 is an explanatory diagram illustrating a logical configuration example of the entry 921 according to the embodiment of this invention.
- the entry 921 is recognized as a set of a key 1001 and a value 941.
- the key 1001 includes file identification information 931 and value identification information 932.
- FIG. 11 is an explanatory diagram showing details of the directory management information 135 according to the embodiment of this invention.
- the directory management information 135 includes management attribute information 1101, arrangement attribute information 1102, and directory entry information 1103.
- Management attribute information 1101 stores directory management information.
- the management attribute information 1101 includes the same information as the management attribute information 702.
- the arrangement attribute information 1102 stores information related to the arrangement method of the key / value type data stored under the directory. Details of the arrangement attribute information 1102 will be described later with reference to FIG.
- the directory entry information 1103 stores identification information such as file names of files stored under the directory.
- FIG. 12 is an explanatory diagram showing details of the arrangement attribute information 1102 according to the embodiment of this invention.
- Arrangement attribute information 1102 includes record definition information 1201, field designation information 1202, arrangement policy 1203, and key range designation information 1204.
- the record definition information 1201 stores information on the structure of the records that make up the file. Details of the record definition information 1201 will be described later with reference to FIG.
- the field designation information 1202 stores field information corresponding to the value identification information 932 constituting the key 1001.
- key / value type data is generated according to the field specified by the field specifying information 1202.
- the placement policy 1203 stores information on a method of placing key / value data on the servers 102 constituting the distributed memory storage 301.
- the key / value type data arrangement method includes a method of equally arranging key / value type data on each server 102 (leveling) and a method of arranging key / value type data for each designated key range. Conceivable.
- the arrangement attribute information 1102 is not limited to the above-described method, and the same effect can be achieved by using any arrangement method in the present invention.
- the key range designation information 1204 stores information related to the key range for arranging key / value type data in each server 102. Note that when the arrangement policy 1203 stores information indicating leveling, the key range designation information 1204 is not used.
- the key range designation information 1204 further includes key range information 1211.
- the key range information 1211 stores information related to the key range for arranging the key / value type data in each server 102. Specifically, the key range information 1211 includes a start end 1231, an end end 1232, and a region ID 1233.
- the start end 1231 stores information on the key 1001 that is the start point of the key range.
- the end 1232 stores information on the key 1001 that is the end point of the key range.
- the area ID 1233 stores an identifier for identifying a memory area in the server 102 when the server 102 holds a plurality of memory areas.
- the area ID 1233 is the same information as the area ID 512.
- FIG. 23 is an explanatory diagram showing details of the record definition information 1201 according to the embodiment of this invention.
- the record definition information 1201 is information used when the management server 101 recognizes a record of a file and divides the file into records.
- the record definition information 1201 includes a record structure 2301 and a field structure 2302. In the present embodiment, the record definition information 1201 is set for each file or directory stored in the distributed memory storage 301.
- the record structure 2301 is information for identifying the record structure in the file, and includes a record delimiter 2311, a record type 2312, and a record length 2313.
- the record delimiter 2311 stores information indicating a character code that separates records.
- a character code representing a line feed For the record delimiter 2311, for example, it is conceivable to use a character code representing a line feed.
- the record type 2312 stores information indicating whether the record in the file is a fixed-length record or a variable-length record.
- the record length 2313 stores information indicating the length of one record when the record type 2312 indicates a fixed-length record.
- the record configuration 2301 only needs to include information that can identify the record configuration, and does not need to include all information of the record delimiter 2311, the record type 2312, and the record length 2313.
- the record delimiter 2311 may not be included in the record configuration 2301.
- the field configuration 2302 is information for identifying a field in the record, and includes a field delimiter 2321, a field number 2322, and field information 2323.
- the field delimiter 2321 stores information indicating a character code that separates the fields.
- a character code representing a blank can be used.
- the field information 2323 is information relating to data recorded in the corresponding field, and includes a field type 2331, a field length 2332, and a description format 2333. One field information 2323 exists for one field.
- the field type 2331 stores information indicating whether the corresponding field is a variable length field or a fixed length field when information indicating a variable length record is stored in the record type 2311.
- the field length 2332 stores the field length size of the corresponding field when the field type 2331 stores information indicating a fixed-length field, and the field type 2331 stores information indicating a variable-length field. In this case, the size of the area for storing information indicating the “field length” of the corresponding field is stored.
- the description format 2333 stores information indicating the description format of the data recorded in the corresponding field, such as ASCII or binary.
- the field configuration 2302 only needs to be able to identify the field in the record, and therefore does not need to include all the information of the field delimiter 2321, the number of fields 2322, and the field information 2323. For example, if the field length 2332 of the field information 2323 is specified, the field delimiter 2321 may not be included in the field configuration 2302.
- the file is composed of fixed-length records
- individual records can be recognized by the value set in the record length 2312.
- a field for recording the size of the record is set at the head of each record, and the management server 101 recognizes the record delimiter by the information of the field. be able to.
- the management server 101 can identify the first field from the information set in the field structure 2302 and obtain the record size. After recognizing the record, the management server 101 identifies the field with reference to the field number 2321 and the field size 2322 of the field configuration 2302.
- the record definition information 1201 may be in any format as long as the record and field of the file can be defined.
- the file structure definition of FILE SECTION 202 of DATA DIVISION included in the source program 201 described in FIG. 2 may be used.
- FIG. 13 is an explanatory diagram showing details of the mount information 151 according to the embodiment of this invention.
- a virtual file system (VFS) is used to convert an abstract operation (reading, writing, etc.) on an application file into an operation that depends on an individual file system.
- VFS virtual file system
- the virtual file system is described in Non-Patent Document 2, for example.
- the mount information 151 stores the list.
- the virtual file system information 1301 includes a Next 1311, a virtual node pointer 1312, and a file system dependent information pointer 1313.
- the virtual file system information 1301 includes other information, but is omitted because it is a known technique.
- Next 1311 stores a pointer to other virtual file system information 1301. As a result, all virtual file system information 1301 included in the list can be traced.
- the virtual node pointer 1312 stores a pointer to virtual node information 1303 to be mounted (virtual node of the mount point).
- the file system dependent information pointer 1313 stores a pointer to the file system dependent information 1302 or the distributed memory storage management information 134.
- At least one virtual file system information 1301 is associated with the distributed memory storage management information 134.
- the virtual node information 1303 stores file or directory management information.
- the virtual node information 1303 includes a belonging VFS pointer 1331, a mount VFS pointer 1332, and an object management information pointer 1333.
- the virtual node information 1303 includes other information, but is omitted because it is a known technique.
- the affiliation VFS pointer 1331 stores a pointer to virtual file system information 1301 corresponding to the virtual file system to which the virtual node belongs.
- the mount VFS pointer 1332 stores a pointer to virtual node information 1303 serving as a mount point.
- the object management information pointer 1333 stores a pointer to the object management information 1304.
- the object management information 1304 is file or directory management information depending on a predetermined file system.
- local file management information 126, global file management information 132, and directory management information 144 are included as object management information 1304 depending on the distributed memory storage 301.
- the mount information 151 points to the virtual file system information 1 (1301-1), which is the root file system.
- a pointer to the virtual file system 2 (1301-2) is stored in Next 1311 of the virtual file system information 1 (1301-1).
- a pointer to the file system dependency information 1302 is stored in the file system dependency information pointer 1313 of the virtual file system information 1 (1301-1). Since the virtual file system information 1 (1301-1) is the root file system and there is no virtual node to be mounted, the virtual node pointer 1312 stores a pointer to Null.
- the belonging VFS pointer 1331 indicates the virtual file system information 1 (1301-1).
- a pointer is stored.
- the object management information pointer 1333 of the virtual node information 1 (1303-1) stores a pointer to the object management information 1304 related to a predetermined file system. Since the virtual node information 1 (1303-1) is not mounted with any virtual file system information 1301, the mount VFS pointer 1332 stores a pointer to Null.
- the belonging VFS pointer 1331 indicates the virtual file system information 1 (1301-1). Is stored. Further, since the virtual node information 2 (1303-2) is a directory serving as a mount point, the mount VFS pointer 1332 stores a pointer to the virtual file system information 2 (1301-2). The object management information pointer 1333 of the virtual node information 2 (1303-2) stores a pointer to the object management information 1304 related to a predetermined file system.
- the assigned VFS pointer 1331 indicates the virtual file system information 2 (1301-2). Is stored.
- the object management information pointer 1333 of the virtual node information 1 (1303-1) a pointer to the object management information 1305 related to the distributed memory storage 301 is stored.
- the mount VFS pointer 1332 stores a pointer to Null.
- FIG. 14 is an explanatory diagram showing details of the open file information 161 according to the embodiment of this invention.
- the open file information 161 includes a belonging VFS pointer 1401, a virtual node pointer 1402, and a file pointer 1403.
- the belonging VFS pointer 1401 stores a pointer to the virtual file system information 1301 to which the file system that manages the file for which the open process has been executed belongs.
- the virtual node pointer 1402 stores a pointer to virtual node information 1303 that stores management information of the file for which the open process has been executed.
- the virtual node information 1303 is the same as the virtual node information shown in FIG. 13, and the object management information pointer 1333 of the virtual node information 1303 includes a pointer to the local file management information 126 or global file management information.
- One of the pointers to 132 is stored as object management information 1305.
- the file pointer 1403 stores the processing position of the data of the file to be read or written.
- FIG. 24 is an explanatory diagram illustrating an example of the file status information 152 according to the embodiment of this invention.
- the file status information 152 includes file identification information 2401 and status 2402.
- the file identification information 2401 stores identification information for identifying a file.
- the file identification information 2401 is the same as the file identification information 701.
- the status 2402 stores the processing status of the file. For example, information such as “Reading” is stored when a file read process is being executed, and “Writing” is stored when a file write process is being executed. Further, it may include identification information of the access source server 102.
- FIG. 15 is a flowchart for explaining the mount processing according to the embodiment of the present invention.
- the management server 101 When the management server 101 receives a mount command from the operator of the management server 101, the management server 101 reads the file system namespace access unit 141 and starts the following processing.
- the processing trigger is not limited to this, and the processing may be started when a mount command is received from the AP 123 of the server 102, for example.
- the file system namespace access unit 141 refers to the received mount command and determines whether or not the mount destination is the distributed memory storage 301 (step 1501).
- step 1507 When it is determined that the mount destination is not the distributed memory storage 301, that is, when it is determined that the storage device 103 is the mount destination, the file system name space access unit 141 executes a normal mount operation (step 1507). The process is terminated. Note that the mounting process in step 1507 is a known technique, and a description thereof will be omitted.
- the file system name space access unit 141 When it is determined that the mount destination is the distributed memory storage 301, the file system name space access unit 141 generates virtual file system information 1301 and distributed memory storage management information 134 (step 1502).
- a pointer to the generated distributed memory storage management information 134 is set in the generated virtual file system information 1301. Specifically, a pointer to the generated distributed memory storage management information 134 is stored in the file system dependent information pointer 1313 of the generated virtual file system information 1301.
- the file system name space access unit 141 generates virtual node information 1303 and object management information 1304 (step 1503).
- a pointer to the generated object management information 1304 is set in the generated virtual node information 1303. Specifically, a pointer to the generated object management information 1304 is stored in the object management information pointer 1333 of the generated virtual node information 1303.
- the file system name space access unit 141 sets a pointer to the generated virtual file system information 1301 in the generated virtual node information 1303 (step 1504). Specifically, a pointer to the generated virtual file system information 1301 is stored in the affiliation VFS pointer 1331 of the generated virtual node information 1303.
- the file system name space access unit 141 adds the generated virtual file system information 1301 to the mount information 151 (step 1505).
- a pointer to the generated virtual file system information 1301 is stored in Next 1311 of the last virtual file system information 1301 in the list in the mount information 151. Also, Null is stored in Next 1311 of the generated virtual file system information 1301.
- the file system information to be mounted is generated by the processing from step 1502 to step 1505.
- the file system namespace access unit 141 associates the generated virtual file system information 1301 with the virtual node information 1303 serving as a mount point (step 1506), and ends the process.
- a pointer to the virtual node information 1303 serving as a mount point is stored in the virtual node pointer 1312 of the generated virtual file system information 1301.
- a pointer to the generated virtual file system information 1301 is stored in the mount VFS pointer 1332 of the virtual node information 1303 serving as a mount point.
- FIG. 16 is a flowchart for explaining the unmount process according to the embodiment of the present invention.
- the management server 101 When the management server 101 receives an unmount command from the operator of the management server 101, the management server 101 reads the file system namespace access unit 141 and starts the following processing. Note that the processing trigger is not limited to this, and the processing may be started when an unmount command is received from the AP 123 of the server 102, for example.
- the file system name space access unit 141 refers to the received unmount command and determines whether or not the mount destination of the virtual file system information 1301 to be unmounted is the distributed memory storage 301 (step 1601).
- the file system name space access unit 141 identifies the mount point of the target virtual file system information 1301 based on the received unmount command. As a result, the virtual node information 1303 serving as a mount point can be specified.
- the namespace access unit 141 executes a normal unmount operation (step 1607) and ends the process. Note that the unmount process in step 1607 is a known technique, and thus description thereof is omitted.
- the file system name space access unit 141 corresponds to the virtual node information 1303 serving as a mount point and the target virtual file system information 1301.
- the attachment is deleted (step 1602).
- the pointer to the virtual node information 1303 serving as the mount point is deleted from the virtual node pointer 1312 of the target virtual file system information 1301.
- the pointer to the target virtual file system information 1301 is deleted from the mount VFS pointer 1332 of the virtual node information 1303 serving as the mount point.
- the file system name space access unit 141 deletes the target virtual file system information 1301 from the mount information 151 (step 1603). Specifically, the following processing is executed.
- the file system namespace access unit 141 specifies virtual file system information 1301 in which a pointer to the target virtual file system information 1301 is stored from the virtual file system information 1301 included in the list in the mount information 151. Further, the file system name space access unit 141 deletes the pointer from the Next 1311 of the specified virtual file system information 1301 to the target virtual file system information 1301.
- the file system name space access unit 141 deletes the pointer to the target virtual file system information 1301 from the virtual node information 1303 storing the pointer to the target virtual file system information 1301 (step 1604). Specifically, the pointer to the target virtual file system information 1301 is deleted from the affiliation VFS pointer 1331 of the virtual node information 1303.
- the file system namespace access unit 141 deletes the pointer to the object management information 1304 from the virtual node information 1303 from which the pointer to the target virtual file system information 1301 has been deleted (step 1605). Specifically, the pointer to the object management information 1304 is deleted from the object management information pointer 1333 of the virtual node information 1303.
- file system name space access unit 141 may delete the virtual node information 1303 and the object management information 1304, or may leave them as they are to be used again.
- the file system name space access unit 141 deletes the pointer to the distributed memory storage management information 134 from the target virtual file system information 1301 (step 1606). Specifically, the pointer to the distributed memory storage management information 134 is deleted from the file system dependent information pointer 1313 of the target virtual file system information 1301.
- file system name space access unit 141 may delete the target virtual file system information 1301 and the distributed memory storage management information 134 or leave them as they are for reuse.
- FIG. 17A and FIG. 17B are flowcharts for explaining the open processing in the embodiment of the present invention.
- the file system access unit 125 When the file system access unit 125 receives an access request (read request, write request, etc.) from the AP 123, the file system access unit 125 starts an open process. At this time, the file system access unit 125 transmits an open process execution request to the management server 101.
- the execution request includes at least the file name of the file to be processed.
- the file system access unit 125 that has transmitted the execution request for the open process executes a normal open process. Specifically, the open file information 161 is initialized, and necessary pointers are set in the open file information 161.
- a pointer to the virtual file system information 1301 of the file system mounted on the directory where the target file exists is stored in the affiliation VFS pointer 1401 of the open file information 161.
- the virtual node pointer 1402 stores a pointer to virtual node information 1303 that stores management information of the target file.
- either the local file management information 126 or the global file management information 132 is set in the object management information pointer 1333 in the open file information 161.
- the information described above is acquired by the management server 101 and transmitted to the file system access unit 125.
- the process of the management server 101 that has received the execution request for the open process will be described.
- the management server 101 When the management server 101 receives an open process execution request including the file name of the file to be processed, the management server 101 calls the file system management unit 122 to start the following process.
- a file with a specified file name is also referred to as a target file.
- the management server 101 determines whether the target file is stored in the distributed memory storage 301 based on the file name included in the open process execution request (step 1701).
- the management server 101 converts the relative path name into an absolute path.
- the management server 101 refers to the mount information 151 based on the absolute path name, and determines whether or not the distributed memory storage 301 is mounted in the directory in which the target file is stored. More specifically, the following processing is executed.
- the management server 101 refers to the absolute path name, and follows the list of virtual file system information 1301 in which the mount information 151 is stored based on the directory name included in the absolute path name, Determine whether there is a mount point.
- the management server 101 When it is determined that there is a mount point for the virtual node information 1303, the management server 101 refers to the mount VFS pointer 1332 of the virtual node information 1303 indicated by the mount point, and identifies the virtual file system information 1301 of the mount destination. . Also, the management server 101 refers to the object management information 1304 corresponding to the virtual node information 1303 indicated by the mount point, and identifies the virtual node information 1303 to be mounted on the directory in which the target file is stored.
- the management server 101 refers to the belonging VFS pointer 1331 of the identified virtual node information 1303 and identifies the belonging virtual file system information 1301.
- the management server 101 refers to the file system dependent information pointer 1313 of the specified virtual file system information 1301 and determines whether or not a pointer is stored in the distributed memory storage management information 134.
- step 1731 When the target file is not stored in the distributed memory storage 301, that is, when it is determined that the target file is stored in the storage device 103, the management server 101 executes a normal open process (step 1731) and ends the process. To do.
- the open process of step 1731 is a well-known technique, description is abbreviate
- the management server 101 When it is determined that the target file is stored in the distributed memory storage 301, the management server 101 reads the distributed memory storage management unit 121 and executes the following processing.
- the management server 101 converts the absolute path name into file identification information in the distributed memory storage 301 (step 1702).
- an i-node number may be used as file identification information.
- the i-node number may be duplicated. Therefore, it may be used together with information for identifying a file system (including distributed memory storage) or information for identifying a device.
- the distributed memory storage ID 601 of the distributed memory storage management information 134 it is conceivable to use the distributed memory storage ID 601 of the distributed memory storage management information 134.
- the file identification information an absolute path name may be used as it is because the purpose is to identify the file.
- the management server 101 refers to the directory management information 135 corresponding to the directory specified in Step 1701 and determines whether or not the target file exists on the distributed memory storage 301 (Step 1703).
- the management server 101 refers to the directory entry information 1103 of the directory management information 135, specifies the directory in which the target file is stored according to the format defined in the distributed memory storage 301, and sets the file name of the target file. Search for.
- the file name of the target file is stored in the directory entry information 1103, it is determined that the target file exists on the distributed memory storage 301.
- the pointer to the virtual file system information 1301 stored in the affiliation VFS pointer 1401 of the open file information 161 and the pointer to the virtual node information 1303 stored in the virtual node pointer 1402 are specified.
- the management server 1010 transmits the information of each pointer described above to the file system access unit 125.
- the file system access unit 125 sets a pointer in the open file information 161.
- the management server 101 refers to the file name included in the open process execution request and determines whether local access is specified (step 1705).
- the local access means that only the local file management information 126 corresponding to the target file is accessed.
- key / value type data obtained by dividing file A is arranged in each of server A and server B, if server A specifies local access and requests access to file A, it is stored in server A.
- the key / value type data (local file management information 126) of the file A to be accessed is accessed.
- a method for specifying local access a method of including identification information for specifying local access in a file name is conceivable. For example, when local access is specified for a file whose file name is “/ X / A”, “/X/A.local” is included in the execution request for the open process.
- this invention is not limited to this, You may use the method of providing the identification information which designates local access separately from a file name.
- the management server 101 can determine whether or not local access is specified by determining whether or not there is identification information specifying local access as described above.
- the management server 101 sets a pointer to the local file management information 126 in the object management information pointer 1333 of the virtual node information 1303 that stores the pointer to the open file information 161. (Step 1706).
- the management server 101 transmits a response including a pointer to the local file management information 126 to the distributed memory storage access unit 124.
- the distributed memory storage access unit 124 can access only the key / value type data stored in the local file management information 126 in the target file.
- the management server 101 sets a pointer to the global file management information 132 in the object management information pointer 1333 of the virtual node information 1303 in the open file information 161 (step 1707). .
- the management server 101 transmits a response including a pointer to the global file management information 132 to the distributed memory storage access unit 124.
- the received information is notified from the distributed memory storage access unit 124 to the file system access unit 125, and the pointer is set in the open file information 161.
- the necessary information is set in the open file information 161 by the processing from step 1704 to step 1707.
- the management server 101 notifies the server 102 that has transmitted the execution request for the open process that the process has been completed (step 1708), and ends the process.
- the file system access unit 125 that has received the notification assigns a file descriptor to the file for which the open process has been executed.
- the management server 101 generates management information (not shown) in which the file descriptor is associated with the pointer to the open file information 161 corresponding to the file for which the open process has been executed. Thereafter, the file system access unit 125 performs file access using the file descriptor.
- the management server 101 determines whether or not a file creation instruction is included in the open process execution request (step 1711).
- the management server 101 When it is determined that the file creation instruction is not included in the open process execution request, the management server 101 notifies the server 102 that has transmitted the open process execution request of an open error (step 1721), and performs the process. finish.
- the management server 101 stores the file name included in the open process execution request in the directory entry information 1103 of the directory management information 135 (step 1712). ).
- the directory management information 135 can be specified based on the file name included in the file creation instruction. For example, if the file name included in the file creation instruction is “/ W / X / A”, the management server 101 knows that the file is stored under the directory “/ W / X”, and Corresponding directory management information 135 can be specified.
- the management server 101 generates global file management information 132 and local file management information 126 based on the arrangement attribute information 1102 of the directory management information 135 (step 1713).
- the management server 101 stores the identification information obtained by converting the file name in the file identification information 701 of the global file management information 132 and sets necessary information in the management attribute information 702 of the global file management information 132.
- the management server 101 determines the arrangement of the local file management information 126 to each server 102 constituting the distributed memory storage 301 based on the arrangement policy 1203 and the key range designation information 1204, and stores the local file management information 126. Generate. At this time, a local file management information list 711 is also generated.
- the distributed memory storage configuration information 133 is referred to. As a result, the servers 102 constituting the distributed memory storage 301 can be grasped, and the arrangement method to each server 102 can be determined.
- the management server 101 stores pointers in the local management information pointer (start) 703 and the local management information pointer (end) 704 based on the generated local file management information list 711.
- the management server 101 stores the same identification information as the file identification information 701 in the file identification information 901 of the local file management information 126, stores the same information as the management attribute information 702 in the management attribute information 902, and
- the global file management information pointer 906 stores a pointer to the global file management information 132 to which it belongs. Further, the management server 101 stores a pointer corresponding to the local file management information pointer 905 based on the generated local file management information list 711.
- the management server 101 transmits the generated local file management information 126 to each server 102 according to the determined arrangement.
- the management server 101 can grasp the correspondence between the file identification information such as the file name and the key / value type data.
- the server 102 may execute processing such as Step 1701 and Step 1702.
- any processing may be performed as long as the management server 101 and the server 102 can cooperate to generate the open file information 161.
- the file system access unit 125 After the open process is completed, the file system access unit 125 first processes the access request.
- the file system access unit 125 determines whether the access is to the distributed memory storage 301.
- the file system access unit 125 calls the distributed memory storage access unit 124, and the distributed memory storage access unit 124 executes the following processing.
- the distributed memory storage access unit 124 determines whether or not the local file management information 126 is read.
- the distributed memory storage access unit 124 determines whether a pointer to the local file management information 126 is stored in the object management information pointer 1333 in the open file information 161. When a pointer to the local file management information 126 is stored in the object management information pointer 1333, it is determined that the local file management information 126 is read.
- the distributed memory storage access unit 124 reads the data of the file based on the local file management information 126 of the own, and ends the processing.
- the distributed memory storage access unit 124 requests the management server 101 to perform read processing. Upon receiving the request, the management server 101 executes the process shown in FIG.
- the distributed memory storage access unit 124 determines whether or not it is a write to its own local file management information 126.
- the distributed memory storage access unit 124 determines whether a pointer to the local file management information 126 is stored in the object management information pointer 1333 in the open file information 161.
- the distributed memory storage access unit 124 When it is determined that the write is to the local file management information 126, the distributed memory storage access unit 124 writes the file data based on the local file management information 126 and ends the process.
- the distributed memory storage access unit 124 creates key / value type data based on the file identification information 901 of the local file management information 126. Further, the distributed memory storage access unit 124 adds an entry corresponding to the created key / value type data to the entry list 911 and further updates the local file management information 126. Thereafter, the distributed memory storage access unit 124 transmits the updated local file management information 126 to the management server 101.
- the present invention is not limited to data writing processing. Any method may be used as long as key / value data can be created.
- the distributed memory storage access unit 124 requests the management server 101 to perform writing processing.
- the management server 101 that has received the request executes the process shown in FIG.
- FIG. 18 is a flowchart illustrating a read process for the distributed memory storage 301 according to the embodiment of this invention.
- the management server 101 determines whether or not the access request is a read request (step 1801).
- the management server 101 refers to a function included in the access request and determines whether the access request is a read request.
- the determination process may be executed by the file system access unit 125 of the server 102 or the like.
- the management server 101 receives the determination result of the server 102.
- the management server 101 executes a write process (step 1811). The writing process will be described later with reference to FIG.
- the management server 101 specifies a file to be read (step 1802).
- the management server 101 specifies a file based on a pointer to the global file management information 132 specified by the server 102.
- the server 102 specifies a pointer to the global file management information 132 by the following process.
- the server 102 specifies the open file information 161 based on the file descriptor. Next, the server 102 specifies the virtual node information 1303 based on the specified open file information 161. Further, the server 102 refers to the object management information pointer 1333 in the virtual node information 1303 and specifies a pointer to the global file management information 132.
- the management server 101 updates the file status information 152. Specifically, the identification information of the file to be processed is stored in the file identification information 2501, and information indicating that the reading process is being executed is stored in the state 2502.
- the management server 101 determines whether or not it is a record unit read process (step 1803).
- a method for designating reading in units of records for example, a method using a function for reading out information in units of records, or a method of including a flag for designating reading in units of records in an access request can be considered.
- the management server 101 can determine whether or not the read processing is in units of records by referring to a function used for the access request or a flag included in the access request.
- the determination process may be executed by the file system access unit 125 of the server 102 or the like. In this case, the management server 101 receives the determination result of the server 102.
- the management server 101 reads out the data (value) of the file to be read in record units based on the global file management information 132 or the local file management information 126 (step) 1804).
- the management server 101 instructs the server 102 holding the entry 921 to read the value 941.
- the server 102 reads the value 941 from the designated entry 921 and transmits the read value 941 to the requesting server 102.
- the server 102 that has received the data updates the file pointer 1403 of the open file information 161. Specifically, a pointer corresponding to the read value 941 is stored in the file pointer 1403. Thereby, it is possible to grasp how far the data of the file to be read has been read.
- the management server 101 executes the same processing until all data (values) of the file to be read are read.
- the management server 101 stores data (value) of a file to be read in a buffer (not shown) based on the global file management information 132 ( Step 1821).
- the request size of data to be read is included in the access request.
- the value 941 is read from the position indicated by the file pointer 1403 within a range not exceeding the requested size, and the read value 941 is stored in a buffer (not shown).
- the management server 101 determines whether or not the data size has reached a certain level (step 1823).
- the management server 101 returns to Step 1821 and executes the same processing (Step 1821 to Step 1823).
- the management server 101 transmits data (value) stored in the buffer to the server 102.
- the server 102 that has received the data updates the file pointer 1403 of the open file information 161.
- FIG. 19 is a flowchart for explaining a write process to the distributed memory storage 301 in the embodiment of the present invention.
- step 1801 in FIG. 18 when the access request is a write request, the management server 101 executes the following processing.
- the write request includes a file name.
- the management server 101 determines a data write destination directory based on the file name to be written (step 1901).
- the management server 101 refers to the absolute path name included in the access request, and the virtual server system information 1301 in which the mount information 151 is stored based on the directory name included in the absolute path name.
- the directory management information 135 corresponding to the directory can be specified.
- the management server 101 refers to the object management information pointer 1333 of the virtual node information 1303 and acquires a pointer to the global file management information 132.
- the management server 101 determines the server 102 on which the local file management information 126 to which the entry 921 is added is arranged based on the arrangement attribute information 1102 of the directory management information 135 and the global file management information 132.
- the data write destination is determined by the above processing.
- the management server 101 generates key / value type data from the data to be written based on the directory management information 135 (step 1902).
- the management server 101 generates key / value type data based on the record definition information 1201 and the field designation information 1202 of the arrangement attribute information 1102, and sorts the generated key / value type data.
- the management server 101 instructs the write destination server 102 to add the generated key / value data to the local file management information 126 (step 1903).
- Each server 102 that has received the instruction generates entries for the number of key / value type data to be added, and information necessary for file identification information 931, value identification information 932, and belonging local file management information pointer 933 of the entry 921. Set. Next, each server 102 stores a pointer to the generated key / value type data (value 941) in the value pointer 935.
- the server 102 adds an entry 921 to the entry list 911 in the sort order.
- the entry list pointer 904 is updated.
- a pointer is also stored in the entry list pointer 903.
- the management server 101 acquires record unit data from the buffer based on the record definition information 1201 of the arrangement attribute information 1102.
- the management server 101 generates a key and a value based on the field designation information 1202 of the arrangement attribute information 1102, and sorts the key / value type data based on the record definition information 1201.
- the management server 101 generates an entry 921 based on the generated key / value type data, and adds the generated entry 921 to the entry list 911 in the sort order. At this time, the management server 101 notifies the server 102 of how far it has been written.
- the server 102 Upon receiving the notification, the server 102 updates the file pointer 1403 of the open file information 161. Specifically, a pointer corresponding to the written data is stored in the file pointer 1403. Thereby, it is possible to grasp how far the data of the file to be written has been written.
- the management server 101 determines whether or not the data size exceeds a certain level.
- the management server 101 executes the same process as described above.
- the management server 101 When it is determined that the data size is constant, the management server 101 writes the data stored in the buffer to the distributed memory storage 301.
- the management server 101 can determine whether or not the write processing is in units of records by referring to a function used for the access request or a flag included in the access request.
- FIG. 20 is an explanatory diagram showing an example of a directory structure in the embodiment of the present invention.
- each directory is arranged in a hierarchy under the root directory “/”. As shown in FIG. 20, the directory arranged in the storage device 103 and the directory arranged in the distributed memory storage 301 are included. Directories and files under the directory “/ W” are arranged on the distributed memory storage 301.
- the copy request includes the copy source file name and the copy destination file name. It is assumed that local access is not specified. Further, it is assumed that the open process has been executed for the file in the storage device 103.
- the management server 101 executes open processing (see FIGS. 17A and 17B) in the distributed memory storage 301.
- the management server 101 performs processing for creating a file under the directory “/ W / X” (step 1712 to step 1713) are executed. At this time, the management server 101 determines an entry arrangement method and the like based on the directory management information 135 corresponding to the directory “/ W / X”.
- the server 102 does not need to be aware of the arrangement method and the key / value type data structure which are different for each directory, and automatically inputs the file name and the key / value type data structure and the key / value type data.
- the arrangement method of the value type data is determined.
- management server 101 sets a pointer to the global file management information 132 and returns a file descriptor to the server 102 (steps 1707 and 1708).
- the management server 101 executes a write process in order to store the data of the file stored in the storage device 103 on the distributed memory storage 301 (see FIG. 19).
- the management server 101 generates key / value type data from the file data stored in the storage device 103 based on the directory management information 135 corresponding to the directory “/ W / X”, and determines the determined arrangement.
- the generated key / value type data is transmitted to each server 102 according to the method.
- the server 102 that has received the key / value type data sets necessary data in the entry 921.
- the arrangement policy of the directory “/ W / X” is memory usage leveling, and field 1 is used as a key.
- the key range is not specified.
- the file is copied from the storage device 103 to the distributed memory storage 301.
- the management server 101 executes an open process on the file whose file name is “/ W / X / A” in order to read the file data (see FIGS. 17A and 17B). At this time, since the file with the file name “/ W / X / A” exists in the distributed memory storage 301, the processing of Step 1707 and Step 1708 is executed.
- the management server 101 executes an open process for the file whose file name is “/ W / Y / Z / B” in order to write the read entry 921 (see FIGS. 17A and 17B).
- the management server 101 creates a file under the directory “/ W / Y / Z”. (Steps 1712 to 1714) are executed.
- the management server 101 determines an entry arrangement method and the like based on the directory management information 135 corresponding to the directory “/ W / Y / Z”.
- the arrangement policy of the directory “/ W / Y / Z” is key range designation, and field 2 is used as a key.
- 0-40, 41-70, 71-99 are designated as key ranges.
- the key-value type data with the field 2 value “0-40” is stored in the server 1 (102A), and the field 2 value is “41-70”.
- the key / value type data is stored in the server 2 (102B), and the key / value type data in which the value of the field 2 is “71-99” is stored in the server 3 (102C).
- the AP 123 does not need to be aware of a different arrangement method and key / value type data structure for each directory, and automatically inputs the file name and the key / value type data structure and key / value type. A data arrangement method and the like are determined.
- the management server 101 When the open process is completed, the management server 101 next executes a read process to read the file data of the file whose file name is “/ W / X / A” (see FIG. 18). Furthermore, the management server 101 executes a write process for writing the read data into a file whose file name is “/ W / Y / Z / B” (see FIG. 19).
- step 1903 based on the directory management information 135 corresponding to the directory “/ W / Y / Z”, the directory “/ W / Y” is obtained from the key / value type data under the directory “/ W / X / A”. / Z ”subordinate key / value type data (entry 921) is generated. Further, based on the directory management information 135 corresponding to the directory “/ W / Y / Z”, the generated key / value type data (entry 921) is arranged on the distributed memory storage 301.
- FIG. 21 is an explanatory diagram showing an example of arrangement of key / value type data when copying file data between directories in the embodiment of the present invention.
- the file 2001-1 represents a file whose file name in FIG. 20 is “/ W / X / A”.
- the key / value type data 2011-1 to 2011-6 constituting the file 2001-1 are equally arranged on each server 102.
- the file 2001-2 represents a file whose file name is “/ W / Y / Z / B” in FIG.
- the key / value type data 2021-1 to 2021-6 constituting the file 2001-2 is stored in each server 102 based on the key range. Be placed.
- the key / value type data 2011-1 in the directory “/ W / X” is composed of “/ W / X / A” and “101”, and “101”, “11”, and “abc”. Is value.
- the key / value type data 2021-1 in the directory “/ W / Y / Z” includes “/ W / Y / Z / B” and “11”, and “101”, “11”, and “11”. “Abc” is the value.
- Key / value data 2011-1 is key / value data 2021-1
- key / value data 2011-2 is key / value data 2021-5
- key / value data 2011-3 is key / value data.
- key / value data 2011-4 is key / value data 2021-6
- key / value data 2011-5 is key / value data 2021-3
- key / value data 2011-6 is a key.
- value type data 2021-2 corresponds to value type data 2021-2.
- files can be copied or moved between directories on the distributed memory storage 301.
- the server 102 need only specify a file name without having to specify a different key and key / value type arrangement method for each directory. That is, the AP 123 can execute a file operation on the distributed memory storage 301 using a normal file I / F. Therefore, the data in the distributed memory storage 301 can be operated without using the AP 123 corresponding to the key / value type data structure. That is, it is not necessary to create an AP 123 for each key / value type data.
- 22A, 22B, and 22C are explanatory diagrams showing the correspondence between the input of the server 102 and the response from the management server 101 in the embodiment of the present invention.
- FIG. 22A is a diagram showing a response of the management server 101 when the AP 123 specifies a file name.
- the management server 101 when a read request including a file name is input from the AP 123, the management server 101 reads and reads values from all corresponding key / value data on the distributed memory storage 301. The received value is transmitted to the server 102 as a response.
- FIG. 22B is a diagram showing a response of the management server 101 when the AP 123 specifies a file name and local access.
- the management server 101 when a read request including a file name and local access designation is input from the AP 123, the management server 101 reads and reads the value from the key / value type data on the server 102. The received value is transmitted to the server 102 as a response.
- FIG. 22C is a diagram illustrating a response of the management server 101 when the AP 123 designates a key.
- the management server 101 when a read request including a key is input from the AP 123, the management server 101 reads the value corresponding to the key and transmits the read value to the server 102 as a response. Note that the processing of FIG. 22C is the same processing as normal key / value type data reading.
- the AP 123 of the server 102 can access a key / value data format database using the file I / F. Therefore, there is no need to create a different application for each key. In addition, by making local designation, it becomes possible to access only necessary data among the file data.
- the management server 101 and the server 102 have been described as apparatuses that perform different processes.
- the management server 101 is configured such that a part of the memory 112 of the management server 101 is used for the distributed memory storage 301.
- the server 102 may be configured to include functions.
- the present invention is also applicable to a mode in which the management server 101 includes the open file information 161.
- the management server 101 determines whether access to the local file management information 132 or the global file management information 132 is based on the open file information 161.
- step 1802 In the read process, the process of step 1802 is different.
- the management server 101 identifies the open file information 161 and identifies the virtual node information 1303 based on the identified open file information 161.
- the management server 101 refers to the object management information pointer 1333 in the virtual node information 1303 to determine which of the local file management information 132 or the global file management information 132 is read out.
- the management server 101 sets the local file management information 126 of the server 102 that has transmitted the read request as a reading target.
- step 1901 In the read process, the process of step 1901 is different.
- the management server 101 identifies the open file information 161 and identifies the virtual node information 1303 based on the identified open file information 161.
- the management server 101 specifies the virtual node information 1303 based on the specified. Further, the management server 101 refers to the affiliation VFS pointer 1331 of the identified virtual node information 1303, and identifies the directory where the file is placed by following the relationship shown in FIG. Thereby, the directory management information 135 corresponding to the directory can be specified.
- the management server 101 refers to the object management information pointer 1333 of the identified virtual node information 1303 and identifies the write destination.
- the management server 101 instructs the server 102 that has transmitted the write request to generate an entry in its own local file management information 132. To do.
- management server 101 transmits information necessary for entry generation acquired by the same processing as in FIG. 19 together with the instruction.
- the server 102 that has received the instruction writes data according to the received information.
- Modification 2 As another embodiment, a method of performing processing for a file such as an open process, a read process, and a write process with a dedicated library is conceivable. That is, a dedicated library function is used as a function for executing processing on a file such as open processing, read processing, and write processing.
- the library When the AP 123 uses a dedicated library function, the library first determines whether the operation is for a file on the distributed memory storage 301. As this determination, for example, a method of determining whether or not a file name is specified to include a specific directory name can be considered.
- the management server 101 determines that the file is a file on the distributed memory storage 301 when the target file includes a specific directory name. Then, the processing from step 1702 onward is executed in the library. On the other hand, when the target file does not include a specific directory name, the management server 101 executes a conventional open function as a normal file operation.
- the management server 101 uses a value corresponding to the file descriptor returned by the normal open function as a file descriptor in the library as a return value of the open function. return.
- processing similar to that shown in FIGS. 18 and 19 can be performed by designating the file descriptor in the library.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
データを格納する複数の計算機と、各計算機上に格納されるデータを管理する管理計算機とを備える計算機システムであって、計算機システムは、複数の計算機が備える記憶領域を統合して生成されたストレージを備え、管理計算機は、ストレージに格納される分割データの配置に関する情報を含むファイル管理情報、及び配置定義情報を含むファイルシステム管理情報を格納し、ファイルデータ単位のデータを処理するアプリケーションから任意のファイルのファイル識別情報を含むファイル生成要求を受け付けた場合に、任意のファイルの格納先であるファイルシステムを特定し、対応するファイルシステム管理情報を参照してストレージを構成する記憶領域への分割データの配置方法を決定し、ファイル管理情報を生成する。
Description
本出願は、平成23年(2011年)2月23日に出願された日本特許出願特願2011-36880の優先権を主張し、その内容を参照することにより、本出願に取り込む。
本発明は、データを分散して配置するストレージを備える計算機及びデータ管理方法に関する。
近年、計算システムにおいてアプリケーションが処理するデータ量が爆発的に増大している。計算機システムが扱うデータ量の増大に伴う処理時間の増加によって、バッチジョブなどの処理が、所定の時間内に完了できないという問題が生じている。したがって、処理の高速化を実現するために、複数のサーバが大量のデータを並列処理することが要求されている。
従来のアプリケーションは、ファイルアクセスI/Fを用いて、データをファイル形式で処理する。アプリケーション毎に様々なファイルの扱い方が存在する。例えば、メインフレームを用いる基幹業務処理を実行するアプリケーションは、COBOL等のプログラム言語を用いて記述される。
図25は、従来のファイルの構成例を示す説明図である。
ファイル2500は複数のレコードから構成される。図25に示す例では、ファイル2500は、レコード2501、レコード2502、レコード2503及びレコード2504を含む。
アプリケーションは、ファイルをレコードの集合として扱い、レコード単位にデータを入出力する。すなわち、レコードはアプリケーションが処理するデータの基本単位となる。
また、一つのレコードは、フィールドと呼ばれる項目から構成される。フィールドには対応するデータが格納される。図25に示す例では、各レコードには、フィールド2511、フィールド2512、及びフィールド2513が含まれる。
並列処理を実現するためには、データ(ファイル)を複数に分割して、分割されたデータを各サーバのアプリケーションに実行させる方法が考えられる。例えば、ファイルをレコード単位に分割して、各サーバのアプリケーションに実行させる方法が考えられる。
前述した分割方法としては、キーに基づいてデータベースに格納されるデータを分割する分散データベース技術がある(例えば、特許文献1参照)。特許文献1には、キーレンジ(キーの範囲)によってデータベースに格納されるデータをレコード毎に分割し、処理の並列化を実現することが記載されている。
また、メッシュ状又は所定の規則にしたがって大量のデータを分割して、各計算機で並列処理を実行させる技術も知られている(例えば、特許文献2参照)。
一方、処理の高速化を実現するために、複数のサーバが備えるメモリを統合して一以上のメモリ空間を構成し、当該メモリ空間上でデータを処理する分散メモリ技術が知られている(例えば、非特許文献1参照)。
分散メモリ技術では、各サーバにデータを分散して配置することによって並列処理を実現し、さらに、各サーバのメモリ上でデータの入出力が行われるため、処理の高速化が可能となる。
分散メモリ技術では、キー・バリュー型データ形式が採用される。キー・バリュー型データは、データの識別子であるキーと、データの内容を表すバリューとを対応づけたデータ構造であり、[キー、バリュー]の形式でデータが管理される。
分散メモリ技術では、キーレンジ(キーの範囲)に応じてキー・バリュー型データが複数のサーバに配置される。各サーバ上のアプリケーションは、当該サーバに配置されたキー・バリュー型データを処理することによって計算機ステム全体として並列処理を実現し、処理の高速化が図られている。
キー・バリュー型データの実体はオブジェクト指向におけるオブジェクトであるため、キー・バリュー型データに用いられるアプリケーションはオブジェクト指向言語で記述される。例えば、分散メモリ技術において用いられるAPIはGet/Putが一般的であり、キーを指定してバリューを獲得し、また、[キー、バリュー]の組を指定してデータを追加する。
GemStone、"GemFire Enterprise"、平成19年6月
S.R.Klieman、"Vnode:An Architecture for Multiple File System Types in Sun UNIX"、昭和61年、USENIX Summer 1986 Technical Conference, p.238-247
前述した分散メモリ技術を適用するためには、ファイルをキー・バリュー型データに分割する必要がある。この場合、レコードに含まれる1つのフィールドをキーとし、レコードに含まれる他のフィールドをバリューとすればよい。
しかし、キー・バリュー型データを用いた分散メモリ技術では、前述したようにファイル形式のデータを処理する従来のアプリケーションをそのまま用いることができない。したがって、キー・バリュー型データ(オブジェクト)に対応したアプリケーションを新規に開発する必要がある。
また、分散メモリ技術では、指定されたフィールドをキーとしてレコードがソートされ、所定のキーレンジでファイルが分割される。このとき、別のフィールドをキーとするアプリケーションがある場合、ソート処理及びファイルの分割処理を改めて実行する必要があり、処理が煩雑化する。
本発明では、前述した問題点を鑑みてなされたものである。すなわち、キー・バリュー型データをファイルシステムの名前空間上で扱えるように対応づけて、さらに、ファイルアクセスI/Fを用いてキー・バリュー型データの分散配置を行える分散データのデータ管理方法を提供することである。
本願において開示される発明の代表的な一例を示せば以下の通りである。すなわち、第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、及び前記第1のプロセッサに接続される第1のネットワークインタフェースを備え、データを格納する複数の計算機と、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、及び前記第2のプロセッサに接続される第2のネットワークインタフェースを備え、前記各計算機上に格納されるデータを管理する管理計算機と、を備える計算機システムであって、前記計算機システムは、前記複数の計算機が備える記憶領域を統合して生成されたストレージを備え、前記ストレージは、複数のファイルデータを含むファイルを分割して、検索キー及び前記ファイルデータから構成される分割データを、当該ストレージを構成する前記記憶領域に分散して格納し、前記管理計算機は、前記ストレージに対するアクセスを制御するアクセス管理部、及び、前記ストレージを管理するストレージ管理部を備え、前記ストレージを構成する記憶領域の情報を含むストレージ構成情報、及び、前記ストレージに格納される前記分割データの配置に関する情報を含むファイル管理情報を格納し、前記ストレージ管理部は、前記ストレージに格納される前記分割データに対応する前記ファイル及び前記ファイルが格納されるファイルシステムを識別するための情報を含むファイル識別情報、並びに、前記ファイルシステムが構築される前記ストレージにおける前記分割データの配置方法を定義する配置定義情報を含むファイルシステム管理情報を格納し、前記各計算機は、ファイルデータ単位のデータを処理するアプリケーション前記ストレージにアクセスするデータアクセス管理部を備え、前記管理計算機は、少なくとも一つの前記アプリケーションから任意のファイルの前記ファイル識別情報を含むファイル生成要求を受け付けた場合に、前記任意のファイルのファイル識別情報に基づいて、前記任意のファイルの格納先である前記ファイルシステムを特定し、前記特定されたファイルシステムに対応する前記ファイルシステム管理情報を検索し、前記検索されたファイルシステム管理情報に、前記任意のファイルのファイル識別情報を登録し、前記ストレージ構成情報、及び、前記検索されたファイルシステム管理情報を参照して、前記ストレージを構成する記憶領域への前記任意のファイルの前記ファイルデータから生成される前記分割データの配置方法を決定し、前記決定された配置方法に基づいて、前記ファイル管理情報を生成し、少なくとも一つの前記アプリケーションから前記任意のファイルのファイル識別情報を含むアクセス要求を受け付けた場合に、前記任意のファイルのファイル識別情報に基づいて前記ファイル管理情報を参照して、前記任意のファイルの前記分割データを格納する前記複数の計算機を特定し、前記特定された複数の計算機に格納された前記任意のファイルの分割データへアクセスするためのポインタを設定することを特徴とする。
本発明の代表的な実施形態によれば、アプリケーションは、ファイル識別情報を含むアクセス要求に基づいて、各計算機に分散配置されるファイルデータにアクセスすることができる。
以下に図面を参照しながら本発明の実施形態を説明する。
図1は、本発明の実施形態における計算機システムの構成例を示す説明図である。
本実施形態の計算機システムは、管理サーバ101及び複数のサーバ102から構成される。
管理サーバ101は、ネットワーク104を介して複数のサーバ102と接続され、接続される全サーバ102を管理する。ネットワーク104は、WAN、LAN、及びIPネットワークなどが考えられる。なお、管理サーバ101と各サーバ102とが直接接続されてもよい。
本実施形態では、各サーバ102のメモリ領域を統合して生成された記憶領域から分散メモリストレージが生成される。分散メモリストレージの詳細については図3を用いて後述する。本実施形態の分散メモリストレージには、ファイルのデータが格納される。なお、分散メモリストレージには、キー・バリュー型データとしてファイルのデータが格納される。
また、管理サーバ101は、記憶装置103と接続される。記憶装置103には、処理対象となるファイルが格納される。記憶装置103は、ファイルを永続的に保持できるものであればどのようなものでもよい。例えば、HDD等の記憶媒体を複数備えるストレージシステム、フラッシュメモリを記憶媒体として用いた半導体ディスク装置、光ディスク装置等が考えられる。
なお、本実施形態におけるファイルは複数のレコードから構成される。また、レコードは、一以上のフィールドから構成される。
管理サーバ101は、プロセッサ111、メモリ112、及びインタフェース113-1、113-2を備える。プロセッサ111、メモリ112、及びインタフェース113-1、113-2は、内部バス等を用いて接続される。なお、管理サーバ101は、情報を入出力するための入出力部等の他の構成を備えてもよい。
プロセッサ111は、メモリ112上に読み出されたプログラムを実行することによって、管理サーバ101が備える機能を実現する。
メモリ112は、プロセッサ111によって実行されるプログラム及び当該プログラムを実行するために必要な情報を格納する。具体的には、メモリ112は、分散メモリストレージ管理部121、及びファイルシステム管理部122を実現するためのプログラムを格納する。
分散メモリストレージ管理部121は、分散メモリストレージを管理する。分散メモリストレージ管理部121は、少なくとも、キー・バリュー型データ管理部131及びグローバルファイル管理情報132を含む。
キー・バリュー型データ管理部131は、分散メモリストレージ上に格納されるキー・バリュー型データを管理する。
グローバルファイル管理情報132は、ファイルを分割したキー・バリュー型データの分散メモリストレージ301上の配置位置の管理情報、すなわち、ローカルファイル管理情報126との対応関係に関する情報を格納する。
なお、分散メモリストレージ管理部121及びキー・バリュー型データ管理部131の詳細な構成については図3を用いて後述する。
ファイルシステム管理部122は、記憶装置103及び分散メモリストレージ301(図3参照)に格納されるファイルと、当該ファイルが格納されるファイルシステムとを管理する。ファイルシステム管理部122は、ファイルの名称等のファイルの識別情報に基づいて、ファイルの入出力処理を実行する。
また、ファイルシステム管理部122は、マウント情報151及びファイル状態情報152を含む。
マウント情報151は、マウントされるファイルシステム、ディレクトリ及びファイル等の管理情報を格納する。マウント情報151の詳細については、図13を用いて後述する。
ファイル状態情報152は、記憶装置103及び分散メモリストレージ301(図3参照)に格納されたファイルの状態情報を管理する。ファイル状態情報152の詳細については、図24を用いて後述する。
サーバ102は、プロセッサ114、メモリ115、及びインタフェース116を備える。プロセッサ114、メモリ115、及びインタフェース116は、内部バス等を用いて接続される。なお、サーバ102は、情報を入出力するための入出力部等の他の構成を備えてもよい。
プロセッサ114は、メモリ115上に読み出されたプログラムを実行することによって、サーバ102が備える機能を実現する。
メモリ115は、プロセッサ114によって実行されるプログラム及び当該プログラムを実行するために必要な情報を格納する。具体的には、メモリ115は、AP123、分散メモリストレージアクセス部124、及びファイルシステムアクセス部125を実現するためのプログラム格納し、また、ローカルファイル管理情報126を格納する。
AP123は、記憶装置103及び分散メモリストレージ301(図3参照)に格納されるファイルにアクセスするためのアプリケーションである。本実施形態のアプリケーションは、COBOL言語を用いて記述される。なお、本発明のCOBOL言語を用いて記述されたアプリケーションに限定されない。すなわち、通常の入出力を要求するプログラムであればどのようなものであってもよい。
図2は、本発明の実施形態におけるAP123のソースプログラムの一例を示す説明図である。
図2では、COBOL言語を用いたソースプログラム201を示す。ソースプログラム201に含まれるDATA DIVISIONのFILE SECTION202には、ファイル構造の定義が記述される。具体的には、アプリケーションが処理するファイルは、一つのファイルは記述項(FD)と、一つ以上のレコード記述項とによって定義される。
図1の説明に戻る。
分散メモリストレージアクセス部124は、分散メモリストレージ301(図3参照)に対するアクセスを制御する。ファイルシステムアクセス部125は、ファイルシステムに対するアクセスを制御し、また、オープンファイル情報161を含む。
オープンファイル情報161は、記憶装置103及び分散メモリストレージ301(図3参照)に格納されたファイルのうち、オープン処理が実行されたファイルに関する情報を格納する。サーバ102は、オープンファイル情報161を参照することによって、アクセス可能なファイルを特定できる。オープンファイル情報127の詳細については、図14を用いて後述する。
本実施形態では、AP123は、ファイルシステムアクセス部125を介して記憶装置103又は分散メモリストレージに格納されるファイルにアクセスする。
ローカルファイル管理情報126は、分散メモリストレージ301(図3参照)を構成する記憶領域に格納されるキー・バリュー型データに関する情報を格納する。すなわち、サーバ102自身が保持するキー・バリュー型データの管理情報が格納される。
なお、プログラムによって実現された構成は、ハードウェアを用いて実現してもよい。
図3は、本発明の実施形態の分散メモリストレージの論理的構成例を示す説明図である。
図3では、サーバ1(102A)、サーバ2(102B)及びサーバ3(102C)のメモリ領域を統合した分散メモリストレージ301を示す。
分散メモリストレージ301は、複数のキー・バリュー型データ302を格納する。キー・バリュー型データ302は、キーとバリューとを一つの組としたデータ構造のデータである。なお、以下では、一つのキー・バリュー型データ302をエントリとも記載する。
なお、サーバ1(102A)、サーバ2(102B)及びサーバ3(102C)のメモリ領域を統合して、複数の分散メモリストレージ301を生成してもよい。この場合、それぞれの分散メモリストレージ301には、異なるキー・バリュー型データを格納することができる。
また、サーバ1(102A)及びサーバ2(102B)のメモリ領域、又は、サーバ2(102B)及びサーバ3(102C)のメモリ領域を統合して、それぞれのメモリ領域に分散メモリストレージ301を生成してもよい。
本実施形態では、分散メモリストレージ301を用いて例を説明するが、他の記憶装置を複数使用して同様のストレージを構成してもよい。
図4は、本発明の実施形態の分散メモリストレージ管理部121及びキー・バリュー型データ管理部131の詳細を示す説明図である。
キー・バリュー型データ管理部131は、ファイルシステム名前空間アクセス部141、ファイルアクセス部142、及びディレクトリ属性管理部143を含む。
ファイルシステム名前空間アクセス部141は、ファイルシステムのマウント処理及びアンマウント処理を実行する。マウント処理及びアンマウント処理の詳細については、図15及び図16を用いて後述する。
ファイルアクセス部142は、分散メモリストレージ301上に格納されるキー・バリュー型データ302に対して、ファイル単位のアクセスを実行する。
ディレクトリ属性管理部143は、ディレクトリ及びファイルの属性に関する処理を実行する。
分散メモリストレージ管理部121は、分散メモリストレージ301の管理情報として、グローバルファイル管理情報132、分散メモリストレージ構成情報133、分散メモリストレージ管理情報134、及びディレクトリ管理情報135を格納する。
分散メモリストレージ構成情報133は、分散メモリストレージ301と各サーバ102のメモリ領域との対応関係を表す情報を格納する。分散メモリストレージ構成情報133の詳細については図5を用いて後述する。
分散メモリストレージ管理情報134は、分散メモリストレージ301の使用状態に関する情報を格納する。分散メモリストレージ管理情報134の詳細については、図6を用いて後述する。
グローバルファイル管理情報132は、ローカルファイル管理情報126との対応関係に関する情報を格納する。グローバルファイル管理情報132の詳細については、図7を用いて後述する。
キー・バリュー型データを用いて分散メモリ技術では、分散メモリストレージ301を構成する各サーバ102のメモリ領域にキー・バリュー型データが配置される。そのため、管理サーバ101は、グローバルファイル管理情報132に基づいて、キー・バリュー型データがどのメモリ領域に、すなわち、どのサーバ102に配置されているかを把握できる。
なお、グローバルファイル管理情報132の詳細については、図7を用いて後述する。
ディレクトリ管理情報135は、所定のディレクトリ配下に格納するレコードの分散方法等の定義情報を格納する。ディレクトリ管理情報135の詳細については、図11を用いて後述する。
以下、各情報について説明する。
図5は、本発明の実施形態の分散メモリストレージ構成情報133の詳細を示す説明図である。
分散メモリストレージ構成情報133は、分散メモリストレージID501、領域数502、及び複数の物理メモリ領域構成情報503を含む。
分散メモリストレージID501は、計算機システムにおける分散メモリストレージ301を識別するための識別子を格納する。
領域数502は、分散メモリストレージID501に対応する分散メモリストレージ301を構成するメモリ領域の数を格納する。
物理メモリ領域構成情報503は、分散メモリストレージ301を構成するメモリ領域の構成情報を格納する。具体的には、物理メモリ領域構成情報503は、サーバID511、領域ID512、及びメモリサイズ513を含む。
サーバID511は、分散メモリストレージ301を構成するメモリ領域を提供するサーバ102を識別するための識別子を格納する。サーバID511は、サーバ102が識別できる情報であればよく、例えば、ホスト名、IPアドレス等が考えられる。
領域ID512は、サーバ102が複数のメモリ領域を保持する場合に、当該サーバ102内のメモリ領域を識別するための識別子を格納する。領域ID512は、メモリ領域を識別できる情報であればよく、例えば、メモリ115の物理的なアドレス等が考えられる。なお、メモリ115の物理的なアドレスには、メモリ領域の先頭のアドレスを用いる方法が考えられる。
メモリサイズ513は、分散メモリストレージ301に提供されるメモリ領域の大きさを表す情報を格納する。
図6は、本発明の実施形態の分散メモリストレージ管理情報134の詳細を示す説明図である。
分散メモリストレージ管理情報134は、分散メモリストレージID601、領域数602、及び複数の物理メモリ稼動情報603を含む。
分散メモリストレージID601は、計算機システム上の分散メモリストレージ301を識別するための識別子を格納する。分散メモリストレージID601は、分散メモリストレージID501と同一の情報である。
領域数602は、分散メモリストレージID501に対応する分散メモリストレージ301を構成するメモリ領域の数を格納する。領域数602は、領域数502と同一の情報である。
物理メモリ稼動情報603は、分散メモリストレージ301を構成するメモリ領域の稼動状態を表す情報を格納する。具体的には、物理メモリ稼動情報603は、メモリサイズ611及び使用メモリサイズ612を含む。
メモリサイズ611は、分散メモリストレージ301に提供されるメモリ領域の大きさを表す情報を格納する。メモリサイズ611は、メモリサイズ513と同一の情報である。
使用メモリサイズ612は、分散メモリストレージ301に提供されるメモリ領域のうち、実際に使用されているメモリ領域の大きさを表す情報を格納する。
図7は、本発明の実施形態のグローバルファイル管理情報132の詳細を示す説明図である。
グローバルファイル管理情報132は、ファイル識別情報701、管理属性情報702、ローカルファイル管理情報ポインタ(開始)703、及びローカルファイル管理情報ポインタ(終了)704を含む。
ファイル識別情報701は、ファイルを識別するための識別情報を格納する。ファイル識別情報701は、ファイルを識別できる情報であればよく、例えば、ファイル名、iノード番号等が考えられる。
管理属性情報702は、ファイル識別情報701に対応するファイルの管理情報を格納する。管理属性情報702の詳細については、図8を用いて後述する。
ローカルファイル管理情報ポインタ(開始)703及びローカルファイル管理情報ポインタ(終了)704は、ファイル識別情報701に対応するファイルを分割して生成されたキー・バリュー型データが格納されるサーバ102が保持するローカルファイル管理情報126へのポインタを格納する。
本実施形態では、キー・バリュー型データが配置されるときに、配置関係を示すローカルファイル管理情報リスト711が生成される。ローカルファイル管理情報ポインタ(開始)703は、ローカルファイル管理情報リスト711の最初のローカルファイル管理情報126のアドレスを格納する。また、ローカルファイル管理情報ポインタ(終了)704は、ローカルファイル管理情報リスト711の最後のローカルファイル管理情報126をアドレスが格納する。
一方、ローカルファイル管理情報126は、他のローカルファイル管理情報126へのポインタであるローカルファイル管理情報ポインタ905(図9参照)を含む。図7に示すように、ローカルファイル管理情報ポインタ905(図9参照)にはローカルファイル管理情報リスト順にローカルファイル管理情報126が読み出せるようにポインタが格納される。これによって、エントリ(キー・バリュー型データ)が配置されるサーバ102を把握することが可能となる。
なお、ローカルファイル管理情報リスト711の最後のローカルファイル管理情報126のローカルファイル管理情報ポインタ905(図9参照)にはNullが格納される。
また、ローカルファイル管理情報126は、グローバルファイル管理情報ポインタ906(図9参照)を含む。
これによって、グローバルファイル管理情報132とローカルファイル管理情報126との対応関係を把握することができる。
なお、ローカルファイル管理情報126の詳細については図9を用いて後述する。
本実施形態では、ファイル識別情報701が含まれるファイルI/Oが入力された場合、管理サーバ101は、グローバルファイル管理情報132を参照することによって、キー・バリュー型データが配置される分散メモリストレージ301を把握できる。すなわち、ファイルとキー・バリュー型データとの対応づけが可能となる。
図8は、本発明の実施形態の管理属性情報702の詳細を示す説明図である。
管理属性情報702は、パーミション情報811、オーナー情報812、及びサイズ813を含む。なお、他の情報が含まれてもよい。
パーミション情報811は、ファイル識別情報701に対応するファイルのアクセス権限の情報を格納する。
オーナー情報812は、ファイル識別情報701に対応するファイルの所有者の情報を格納する。
サイズ813は、ファイル識別情報701に対応するファイルの大きさを表す情報を格納する。
図9は、本発明の実施形態のローカルファイル管理情報126の詳細を示す説明図である。
ローカルファイル管理情報126は、ファイル識別情報901、管理属性情報902、エントリリストポインタ(開始)903、エントリリストポインタ(終了)904、ローカルファイル管理情報ポインタ905、及びグローバルファイル管理情報ポインタ906を含む。
ファイル識別情報901は、ファイルを識別するための識別情報を格納する。ファイル識別情報901は、ファイルを識別できる情報であればよく、例えば、ファイル名、iノード番号等が考えられる。ファイル識別情報901は、ファイル識別情報701と同一の情報である。
管理属性情報902は、ファイル識別情報901に対応するファイルの管理情報を格納する。管理属性情報902は、管理属性情報702と同一の情報である。
エントリリストポインタ(開始)903は、及びエントリリストポインタ(終了)904は、エントリ921へのポインタを格納する。ここで、エントリ921は、一つのキー・バリュー型データを表す。
本実施形態では、各サーバ102にキー・バリュー型データを配置するときに、エントリリスト911が作成される。エントリリスト911は、キー情報のソート順にエントリ921が並んでいる。
エントリリストポインタ(開始)903は、エントリリスト911に含まれる最初のエントリ921へのポインタを格納する。
エントリリストポインタ(終了)904は、エントリリスト912に含まれる最後のエントリ921へのポインタを格納する。
ローカルファイル管理情報ポインタ905は、他のローカルファイル管理情報126へのポインタである。これによって、管理サーバ101は、最初のローカルファイル管理情報126にアクセスすることによって、ファイル識別情報901に対応するファイルが分割されたキー・バリュー型データを格納するローカルファイル管理情報126を把握することができる。
グローバルファイル管理情報ポインタ906は、ローカルファイル管理情報126を管理するグローバルファイル管理情報132へのポインタを格納する。
次に、エントリ921について説明する。
エントリ921は、ファイル識別情報931、バリュー識別情報932、所属ローカルファイル管理情報ポインタ933、エントリポインタ934、及びバリューポインタ935を含む。
ファイル識別情報931は、ファイルの識別情報を格納する。ファイル識別情報931は、ファイルを識別できる情報であればよく、ファイル名、iノード番号等が考えられる。ファイル識別情報931は、ファイル識別情報701と同一の情報である。
バリュー識別情報932は、ファイルを構成するレコードに含まれるフィールドの識別情報を格納する。バリュー識別情報932は、フィールドを識別できる情報であればよく、例えば、フィールドの名称等が考えられる。
所属ローカルファイル管理情報ポインタ933は、エントリ921が所属するローカルファイル管理情報126へのポインタを格納する。
エントリポインタ934は、他のエントリ921へのポインタを格納する。図9に示すように、エントリポインタ934には、エントリリスト911順にエントリ921が読み出せるようにポインタが格納される。
なお、エントリリスト911の最後のエントリ921のエントリポインタ934にはNullが格納される。これによって、エントリリスト911の最後のエントリ921であることが分かる。
バリューポインタ935は、実際のデータ内容に対応するバリュー941が格納されたメモリ領域へポインタを格納する。
図10は、本発明の実施形態におけるエントリ921の論理的な構成例を示す説明図である。
図10に示すように、エントリ921は、キー1001とバリュー941との組として認識される。
本実施形態では、キー1001は、ファイル識別情報931とバリュー識別情報932とから構成される。
図11は、本発明の実施形態のディレクトリ管理情報135の詳細を示す説明図である。
ディレクトリ管理情報135は、管理属性情報1101、配置属性情報1102、及びディレクトリエントリ情報1103を含む。
管理属性情報1101は、ディレクトリの管理情報を格納する。管理属性情報1101は、管理属性情報702と同一の情報を含む。
配置属性情報1102は、ディレクトリ配下に格納するキー・バリュー型データの配置方法に関する情報を格納する。配置属性情報1102の詳細については、図12を用いて後述する。
ディレクトリエントリ情報1103は、ディレクトリ配下に格納されるファイルのファイル名等の識別情報を格納する。
図12は、本発明の実施形態の配置属性情報1102の詳細を示す説明図である。
配置属性情報1102は、レコード定義情報1201、フィールド指定情報1202、配置方針1203、及びキーレンジ指定情報1204を含む。
レコード定義情報1201は、ファイルを構成するレコードの構造に関する情報を格納する。レコード定義情報1201の詳細については、図23を用いて後述する。
フィールド指定情報1202は、キー1001を構成するバリュー識別情報932に対応するフィールドの情報を格納する。本実施形態では、フィールド指定情報1202によって指定されたフィールドにしたがって、キー・バリュー型データが生成される。
配置方針1203は、分散メモリストレージ301を構成するサーバ102へのキー・バリュー型データの配置方法に関する情報を格納する。
キー・バリュー型データの配置方法には、キー・バリュー型データを各サーバ102に均等に配置する方法(平準化)、及び、指定されたキーレンジ毎にキー・バリュー型データを配置する方法が考えられる。なお、配置属性情報1102は、前述した方法に限定されず、本発明ではどのような配置方法を用いても同様の効果を奏する。
キーレンジ指定情報1204は、各サーバ102にキー・バリュー型データを配置するためのキーレンジに関する情報を格納する。なお、配置方針1203が平準化を表す情報が格納されている場合には、キーレンジ指定情報1204は用いられない。
キーレンジ指定情報1204は、さらに、キーレンジ情報1211を含む。
キーレンジ情報1211は、キー・バリュー型データを各サーバ102に配置するためのキーの範囲に関する情報を格納する。具体的には、キーレンジ情報1211は、始端1231、終端1232、及び領域ID1233を含む。
始端1231は、キーレンジの開始点となるキー1001の情報を格納する。終端1232は、キーレンジの終了点となるキー1001の情報を格納する。
領域ID1233は、サーバ102が複数のメモリ領域を保持する場合に、当該サーバ102内のメモリ領域を識別するための識別子を格納する。領域ID1233は、領域ID512と同一の情報である。
図23は、本発明の実施形態におけるレコード定義情報1201の詳細を示す説明図である。
レコード定義情報1201は、管理サーバ101がファイルのレコードを認識し、レコード単位にファイルを分割する場合に利用される情報である。レコード定義情報1201は、レコード構成2301、及びフィールド構成2302を含む。なお、本実施形態において、レコード定義情報1201は、分散メモリストレージ301に格納されるファイル、又は、ディレクトリごとに設定される。
レコード構成2301は、ファイル内のレコード構成を識別するための情報であり、レコードデリミタ2311、レコード種別2312、及びレコード長2313を含む。
レコードデリミタ2311は、レコードとレコードとを区切る文字コードを示す情報を格納する。レコードデリミタ2311には、例えば、改行を表す文字コードなどを用いることが考えられる。
レコード種別2312は、ファイル内のレコードが固定長レコード又は可変長レコードのいずれであるかを示す情報を格納する。
例えば、レコード種別2312に固定長レコードを示す情報が格納される場合、ファイルを構成するレコードは、全て同一の長さのレコードとなる。一方、レコード種別2312に可変長レコードを示す情報が格納される場合、ファイルを構成するレコードは、それぞれ長さが異なるレコードとなる。
レコード長2313は、レコード種別2312が固定長レコードを示す場合に、1つのレコードの長さを示す情報を格納する。
なお、レコード構成2301にはレコードの構成を識別可能な情報が含まれていればよく、レコードデリミタ2311、レコード種別2312、及びレコード長2313のすべての情報を含む必要はない。例えば、固定長のレコードである場合、レコードデリミタ2311はレコード構成2301に含まれてなくてもよい。
フィールド構成2302は、レコード内のフィールドを識別するための情報であり、フィールドデリミタ2321、フィールド数2322、及びフィールド情報2323を含む。
フィールドデリミタ2321は、フィールドとフィールドとを区切る文字コードを示す情報を格納する。フィールドデリミタ2321には、例えば、空白を表す文字コードなどを用いることが考えられる。
フィールド情報2323は、対応するフィールドに記録されるデータに関する情報であり、フィールド種別2331、フィールド長2332、及び記述形式2333を含む。なお、1つのフィールドに対して1つフィールド情報2323が存在する。
フィールド種別2331は、レコード種別2311に可変長レコードを示す情報が格納される場合、対応するフィールドが可変長フィールド又は固定長フィールドのいずれであるかを示す情報を格納する。
フィールド長2332は、フィールド種別2331に固定長フィールドを示す情報が格納される場合、対応するフィールドのフィールド長の大きさを格納し、また、フィールド種別2331に可変長フィールドを示す情報が格納される場合、対応するフィールドの"フィールド長"を示す情報を格納する領域のサイズを格納する。
記述形式2333は、ASCII、バイナリ等、対応するフィールドに記録されたデータの記述形式を示す情報を格納する。
なお、フィールド構成2302は、レコード内のフィールドを識別できればよいため、フィールドデリミタ2321、フィールド数2322、フィールド情報2323のすべての情報を含む必要はない。例えば、フィールド情報2323のフィールド長2332が指定されていれば、フィールドデリミタ2321はフィールド構成2302に含まれなくてもよい。
ファイルが固定長レコードから構成される場合、レコード長2312に設定された値によって個々のレコードを認識することができる。一方、ファイルが可変長レコードから構成される場合、各レコードの先頭には当該レコードの大きさを記録するフィールドが設定されており、管理サーバ101は、当該フィールドの情報によってレコードの区切りを認識することができる。
ファイルが可変長レコードから構成される場合、管理サーバ101は、フィールド構成2302に設定される情報から最初のフィールドを識別し、レコードサイズを求めることができる。管理サーバ101は、レコードを認識した後、フィールド構成2302のフィールド数2321、及びフィールドサイズ2322を参照してフィールドを識別する。
なお、レコード定義情報1201は、ファイルのレコード、及びフィールドが定義できる形式であれば、どのような形式であってもよい。例えば、図2で説明した、ソースプログラム201に含まれるDATA DIVISIONのFILE SECTION202のファイル構造の定義を用いてもよい。
図13は、本発明の実施形態のマウント情報151の詳細を示す説明図である。
本実施形態では、アプリケーションのファイルに対する抽象化された操作(読み出し、書き込みなど)を、個別のファイルシステムに依存する操作に変換するために仮想ファイルシステム(VFS)が用いられる。これによって、アプリケーションは、ファイルシステムの異なる記憶媒体に対して同一の操作でアクセス可能となる。なお、仮想ファイルシステムについては、例えば、非特許文献2に記載されている。
仮想ファイルシステムでは、仮想ファイルシステム情報1301のリストが存在し、マウント情報151は、当該リストを格納する。
仮想ファイルシステム情報1301は、Next1311、仮想ノードポインタ1312、及びファイルシステム依存情報ポインタ1313を含む。なお、仮想ファイルシステム情報1301は他の情報も含むが、公知の技術であるため省略する。
Next1311は、他の仮想ファイルシステム情報1301へのポインタを格納する。これによって、リストに含まれる全ての仮想ファイルシステム情報1301をたどることができる。
仮想ノードポインタ1312は、マウントされる仮想ノード情報1303(マウントポイントの仮想ノード)へのポインタを格納する。
ファイルシステム依存情報ポインタ1313は、ファイルシステム依存情報1302又は分散メモリストレージ管理情報134へのポインタを格納する。
本実施形態では、少なくとも一つの仮想ファイルシステム情報1301が分散メモリストレージ管理情報134と対応づけられる。
仮想ノード情報1303は、ファイル又はディレクトリの管理情報を格納する。仮想ノード情報1303は、所属VFSポインタ1331、マウントVFSポインタ1332、及びオブジェクト管理情報ポインタ1333を含む。なお、仮想ノード情報1303は他の情報も含むが、公知の技術であるため省略する。
所属VFSポインタ1331は、仮想ノードが所属する仮想ファイルシステムに対応する仮想ファイルシステム情報1301へのポインタを格納する。
マウントVFSポインタ1332は、マウントポイントとなる仮想ノード情報1303へのポインタを格納する。
オブジェクト管理情報ポインタ1333は、オブジェクト管理情報1304へのポインタを格納する。
ここで、オブジェクト管理情報1304は、所定のファイルシステムに依存するファイル又はディレクトリの管理情報である。本実施形態では、分散メモリストレージ301に依存するオブジェクト管理情報1304として、ローカルファイル管理情報126、グローバルファイル管理情報132及びディレクトリ管理情報144が含まれる。
図13に示す例では、マウント情報151から仮想ファイルシステム情報1(1301-1)へポイントされており、これがルートファイルシステムである。仮想ファイルシステム情報1(1301-1)のNext1311には、仮想ファイルシステム2(1301-2)へのポインタが格納される。また、仮想ファイルシステム情報1(1301-1)のファイルシステム依存情報ポインタ1313には、ファイルシステム依存情報1302へのポインタが格納される。なお、仮想ファイルシステム情報1(1301-1)は、ルートファイルシステムであり、マウントされる仮想ノードがないため、仮想ノードポインタ1312にはNullへのポインタが格納される。
図13に示す例では、仮想ファイルシステム情報2(1301-2)の他に仮想ファイルシステム情報1301が存在しないため、Next1311にはNullへのポインタが格納される。また、仮想ファイルシステム情報2(1301-2)のファイルシステム依存情報ポインタ1313には、分散メモリストレージ管理情報134へのポインタが格納される。また、仮想ファイルシステム情報2(1301-2)は、仮想ノード情報2(1303-2)にマウントされているため、仮想ノードポインタ1312には、仮想ノード情報2(1303-2)へのポインタが格納される。
図13に示す例では、仮想ノード情報1(1303-1)は仮想ファイルシステム情報1(1301-1)に所属するため、所属VFSポインタ1331には仮想ファイルシステム情報1(1301-1)へのポインタが格納される。また、仮想ノード情報1(1303-1)のオブジェクト管理情報ポインタ1333には、所定のファイルシステムに関するオブジェクト管理情報1304へのポインタが格納される。なお、仮想ノード情報1(1303-1)は、いずれの仮想ファイルシステム情報1301もマウントされていないため、マウントVFSポインタ1332にはNullへのポインタが格納される。
図13に示す例では、仮想ノード情報2(1303-2)は、仮想ファイルシステム情報1(1301-1)に所属するため、所属VFSポインタ1331には仮想ファイルシステム情報1(1301-1)へのポインタが格納される。また、仮想ノード情報2(1303-2)はマウントポイントとなるディレクトリであるため、マウントVFSポインタ1332には仮想ファイルシステム情報2(1301-2)へのポインタが格納される。また、仮想ノード情報2(1303-2)のオブジェクト管理情報ポインタ1333には、所定のファイルシステムに関するオブジェクト管理情報1304へのポインタが格納される。
図13に示す例では、仮想ノード情報3(1303-3)は、仮想ファイルシステム情報2(1301-2)に所属するため、所属VFSポインタ1331には仮想ファイルシステム情報2(1301-2)へのポインタが格納される。また、仮想ノード情報1(1303-1)のオブジェクト管理情報ポインタ1333には、分散メモリストレージ301に関するオブジェクト管理情報1305へのポインタが格納される。なお、仮想ノード情報3(1303-3)は、いずれの仮想ファイルシステム情報1301もマウントされていないため、マウントVFSポインタ1332にはNullへのポインタが格納される。
図14は、本発明の実施形態のオープンファイル情報161の詳細を示す説明図である。
オープンファイル情報161は、所属VFSポインタ1401、仮想ノードポインタ1402、及びファイルポインタ1403を含む。
所属VFSポインタ1401は、オープン処理が実行されたファイルを管理するファイルシステムが所属する仮想ファイルシステム情報1301へのポインタを格納する。
仮想ノードポインタ1402は、オープン処理が実行されたファイルの管理情報を格納する仮想ノード情報1303へのポインタを格納する。
ここで、仮想ノード情報1303は、図13に示す仮想ノード情報と同一のものであり、当該仮想ノード情報1303のオブジェクト管理情報ポインタ1333には、ローカルファイル管理情報126へのポインタ又はグローバルファイル管理情報132へのポインタのいずれかがオブジェクト管理情報1305として格納される。
ファイルポインタ1403は、読み出し処理又は書き込み処理の対象となるファイルのデータの処理位置を格納する。
図24は、本発明の実施形態におけるファイル状態情報152の一例を示す説明図である。
ファイル状態情報152は、ファイル識別情報2401及び状態2402を含む。
ファイル識別情報2401は、ファイルを識別するための識別情報を格納する。ファイル識別情報2401は、ファイル識別情報701と同一のものである。
状態2402は、ファイルの処理状態等を格納する。例えば、ファイルに対する読み出し処理が実行されている場合には「読み出し中」、ファイルの書き込み処理が実行されている場合には「書き込み中」などの情報が格納される。また、アクセス元のサーバ102の識別情報等を含んでいてもよい。
図15は、本発明の実施形態におけるマウント処理を説明するフローチャートである。
管理サーバ101は、当該管理サーバ101の操作者からマウントコマンドを受け付けると、ファイルシステム名前空間アクセス部141を読み出して以下の処理を開始する。なお、処理契機はこれに限定されず、例えば、サーバ102のAP123からマウントコマンドを受け付けた場合に処理が開始されてもよい。
ファイルシステム名前空間アクセス部141は、受け付けたマウントコマンドを参照して、マウント先が分散メモリストレージ301であるか否かを判定する(ステップ1501)。
マウント先が分散メモリストレージ301でないと判定された場合、すなわち、記憶装置103がマウント先であると判定された場合、ファイルシステム名前空間アクセス部141は、通常のマウント操作を実行し(ステップ1507)、処理を終了する。なお、ステップ1507のマウント処理は公知の技術であるため説明を省略する。
マウント先が分散メモリストレージ301であると判定された場合、ファイルシステム名前空間アクセス部141は、仮想ファイルシステム情報1301及び分散メモリストレージ管理情報134を生成する(ステップ1502)。
このとき、生成された仮想ファイルシステム情報1301には、生成された分散メモリストレージ管理情報134へのポインタが設定される。具体的には、生成された仮想ファイルシステム情報1301のファイルシステム依存情報ポインタ1313に、生成された分散メモリストレージ管理情報134へのポインタが格納される。
次に、ファイルシステム名前空間アクセス部141は、仮想ノード情報1303及びオブジェクト管理情報1304を生成する(ステップ1503)。
このとき、生成された仮想ノード情報1303には、生成されたオブジェクト管理情報1304へのポインタが設定される。具体的には、生成された仮想ノード情報1303のオブジェクト管理情報ポインタ1333に、生成されたオブジェクト管理情報1304へのポインタが格納される。
ファイルシステム名前空間アクセス部141は、生成された仮想ノード情報1303に、生成された仮想ファイルシステム情報1301へのポインタを設定する(ステップ1504)。具体的には、生成された仮想ノード情報1303の所属VFSポインタ1331に、生成された仮想ファイルシステム情報1301へのポインタが格納される。
ファイルシステム名前空間アクセス部141は、マウント情報151に、生成された仮想ファイルシステム情報1301を追加する(ステップ1505)。
具体的には、マウント情報151におけるリストの最後の仮想ファイルシステム情報1301のNext1311に、生成された仮想ファイルシステム情報1301へのポインタが格納される。また、生成された仮想ファイルシステム情報1301のNext1311にはNullが格納される。
ステップ1502~ステップ1505の処理によって、マウントするファイルシステムの情報が生成される。
ファイルシステム名前空間アクセス部141は、生成された仮想ファイルシステム情報1301と、マウントポイントとなる仮想ノード情報1303とを対応づけて(ステップ1506)、処理を終了する。
具体的には、生成された仮想ファイルシステム情報1301の仮想ノードポインタ1312に、マウントポイントとなる仮想ノード情報1303へのポインタが格納される。また、マウントポイントとなる仮想ノード情報1303のマウントVFSポインタ1332に、生成された仮想ファイルシステム情報1301へのポインタが格納される。
図16は、本発明の実施形態におけるアンマウント処理を説明するフローチャートである。
管理サーバ101は、当該管理サーバ101の操作者からアンマウントコマンドを受け付けると、ファイルシステム名前空間アクセス部141を読み出して以下の処理を開始する。なお、処理契機はこれに限定されず、例えば、サーバ102のAP123からアンマウントコマンドを受け付けた場合に処理が開始されてもよい。
ファイルシステム名前空間アクセス部141は、受け付けたアンマウントコマンドを参照して、アンマウント処理の対象となる仮想ファイルシステム情報1301のマウント先が分散メモリストレージ301であるか否かを判定する(ステップ1601)。
以下、アンマウント処理の対象となる仮想ファイルシステム情報1301を対象仮想ファイルシステム情報1301とも記載する。
このとき、ファイルシステム名前空間アクセス部141は、受け付けたアンマウントコマンドに基づいて、対象仮想ファイルシステム情報1301のマウントポイントを特定する。これによって、マウントポイントとなる仮想ノード情報1303を特定できる。
対象仮想ファイルシステム情報1301のマウント先が分散メモリストレージ301でないと判定された場合、すなわち、記憶装置103上の記憶領域が対象仮想ファイルシステム情報1301のマウント先であると判定された場合、ファイルシステム名前空間アクセス部141は、通常のアンマウント操作を実行し(ステップ1607)、処理を終了する。なお、ステップ1607のアンマウント処理は公知の技術であるため説明を省略する。
対象仮想ファイルシステム情報1301のマウント先が分散メモリストレージ301であると判定された場合、ファイルシステム名前空間アクセス部141は、マウントポイントとなる仮想ノード情報1303と、対象仮想ファイルシステム情報1301との対応づけを削除する(ステップ1602)。
具体的には、対象仮想ファイルシステム情報1301の仮想ノードポインタ1312から、マウントポイントとなる仮想ノード情報1303へのポインタが削除される。また、マウントポイントとなる仮想ノード情報1303のマウントVFSポインタ1332から、対象仮想ファイルシステム情報1301へのポインタが削除される。
ファイルシステム名前空間アクセス部141は、マウント情報151から、対象仮想ファイルシステム情報1301を削除する(ステップ1603)。具体的には、以下のような処理が実行される。
まず、ファイルシステム名前空間アクセス部141は、マウント情報151におけるリストに含まれる仮想ファイルシステム情報1301の中から、対象仮想ファイルシステム情報1301へのポインタが格納される仮想ファイルシステム情報1301を特定する。さらに、ファイルシステム名前空間アクセス部141は、特定された仮想ファイルシステム情報1301のNext1311から対象仮想ファイルシステム情報1301へのポインタを削除する。
次に、ファイルシステム名前空間アクセス部141は、対象仮想ファイルシステム情報1301へのポインタを格納する仮想ノード情報1303から、対象仮想ファイルシステム情報1301へのポインタを削除する(ステップ1604)。具体的には仮想ノード情報1303の所属VFSポインタ1331から、対象仮想ファイルシステム情報1301へのポインタが削除される。
ファイルシステム名前空間アクセス部141は、対象仮想ファイルシステム情報1301へのポインタが削除された仮想ノード情報1303から、オブジェクト管理情報1304へのポインタを削除する(ステップ1605)。具体的には、仮想ノード情報1303のオブジェクト管理情報ポインタ1333から、オブジェクト管理情報1304へのポインタが削除される。
なお、ファイルシステム名前空間アクセス部141は、仮想ノード情報1303及びオブジェクト管理情報1304を削除してもよいし、再度利用するためそのまま残しておいてもよい。
ファイルシステム名前空間アクセス部141は、対象仮想ファイルシステム情報1301から、分散メモリストレージ管理情報134へのポインタを削除する(ステップ1606)。具体的には、対象仮想ファイルシステム情報1301のファイルシステム依存情報ポインタ1313から、分散メモリストレージ管理情報134へのポインタが削除される。
なお、ファイルシステム名前空間アクセス部141は、対象仮想ファイルシステム情報1301及び分散メモリストレージ管理情報134を削除してもよいし、再度利用するためそのまま残しておいてもよい。
図17A及び図17Bは、本発明の実施形態におけるオープン処理を説明するフローチャートである。
ファイルシステムアクセス部125は、AP123からのアクセス要求(読み出し要求、書き込み要求等)を受け付けるとオープン処理を開始する。また、このとき、ファイルシステムアクセス部125は、管理サーバ101に対してオープン処理の実行要求を送信する。当該実行要求には、少なくとも処理対象のファイルのファイル名が含まれる。
当該オープン処理の実行要求を送信したファイルシステムアクセス部125は、通常のオープン処理を実行する。具体的には、オープンファイル情報161を初期化し、オープンファイル情報161に必要なポインタを設定する。
初期化処理では、オープンファイル情報161の所属VFSポインタ1401に、対象ファイルが存在するディレクトリにマウントされるファイルシステムの仮想ファイルシステム情報1301へのポインタが格納される。また、仮想ノードポインタ1402には、対象ファイルの管理情報を格納する仮想ノード情報1303へのポインタが格納される。
また、オープン処理では、オープンファイル情報161におけるオブジェクト管理情報ポインタ1333に、ローカルファイル管理情報126又はグローバルファイル管理情報132のいずれかのポインタが設定される。
前述した情報は、管理サーバ101によって取得され、ファイルシステムアクセス部125に送信されたものである。以下、オープン処理の実行要求を受け付けた管理サーバ101の処理について説明する。
管理サーバ101は、処理対象のファイルのファイル名を含むオープン処理の実行要求を受け付けると、ファイルシステム管理部122を呼び出して以下の処理を開始する。以下、ファイル名が指定されたファイルを対象ファイルとも記載する。
なお、オープン処理の実行要求に含まれるファイル名は、絶対パス又は相対パスの何れを用いてもよい。
管理サーバ101は、オープン処理の実行要求に含まれるファイル名に基づいて、対象ファイルが分散メモリストレージ301に格納されるか否かを判定する(ステップ1701)。
具体的には、管理サーバ101は、ファイル名が相対パス名の場合、当該相対パス名を絶対パスに変換する。次に、管理サーバ101は、絶対パス名に基づいてマウント情報151を参照して、対象ファイルが格納されるディレクトリに分散メモリストレージ301がマウントされているか否かを判定する。より詳細には、以下の処理が実行される。
まず、管理サーバ101は、絶対パス名を参照し、当該絶対パス名に含まれるディレクトリ名に基づいて、マウント情報151が格納される仮想ファイルシステム情報1301のリストをたどり、仮想ノード情報1303へのマウントポイントがあるか否かを判定する。
仮想ノード情報1303へのマウントポイントがあると判定された場合、管理サーバ101は、当該マウントポイントが示す仮想ノード情報1303のマウントVFSポインタ1332を参照し、マウント先の仮想ファイルシステム情報1301を特定する。また、管理サーバ101は、当該マウントポイントが示す仮想ノード情報1303に対応するオブジェクト管理情報1304を参照し、対象ファイルが格納されるディレクトリにマウントされる仮想ノード情報1303を特定する。
次に、管理サーバ101は、特定された仮想ノード情報1303の所属VFSポインタ1331を参照して、所属する仮想ファイルシステム情報1301を特定する。
さらに、管理サーバ101は、特定された仮想ファイルシステム情報1301のファイルシステム依存情報ポインタ1313を参照し、分散メモリストレージ管理情報134へポインタが格納されているか否かを判定する。
ファイルシステム依存情報ポインタ1313に分散メモリストレージ管理情報134へのポインタが格納される場合には、対象ファイルが分散メモリストレージ301に格納されると判定される。
以上が、ステップ1701における処理である。
対象ファイルが分散メモリストレージ301に格納されない場合、すなわち、対象ファイルが記憶装置103に格納されると判定された場合、管理サーバ101は、通常のオープン処理を実行し(ステップ1731)、処理を終了する。なお、ステップ1731のオープン処理は公知の技術であるため説明を省略する。
対象ファイルが分散メモリストレージ301に格納されると判定された場合、管理サーバ101は、分散メモリストレージ管理部121を読み出して以下の処理を実行する。
対象ファイルが分散メモリストレージ301に格納されていると判定された場合、管理サーバ101は、絶対パス名を分散メモリストレージ301内のファイル識別情報に変換する(ステップ1702)。
ファイル識別情報としては、iノード番号を用いることが考えられる。ただし、ファイルシステムが異なるとiノード番号が重複することがあり得る。そのため、ファイルシステム(分散メモリストレージを含む)を識別する情報、又は、デバイスを識別する情報とともに用いてもよい。
例えば、分散メモリストレージの場合、分散メモリストレージ管理情報134の分散メモリストレージID601を用いることが考えられる。また、ファイル識別情報としては、ファイルが特定できることが目的であるため、絶対パス名をそのまま用いてもよい。
管理サーバ101は、ステップ1701において特定されたディレクトリに対応するディレクトリ管理情報135を参照して、対象ファイルが分散メモリストレージ301上に存在するか否かを判定する(ステップ1703)。
具体的には、管理サーバ101は、ディレクトリ管理情報135のディレクトリエントリ情報1103を参照して、分散メモリストレージ301において規定されるフォーマットに従って対象ファイルを格納するディレクトリを特定し、対象ファイルのファイル名を検索する。ディレクトリエントリ情報1103に対象ファイルのファイル名が格納される場合に、対象ファイルが分散メモリストレージ301上に存在すると判定される。
以上の処理によって、オープンファイル情報161の所属VFSポインタ1401に格納する仮想ファイルシステム情報1301へのポインタ、及び、仮想ノードポインタ1402に格納する仮想ノード情報1303へのポインタが特定される。管理サーバ1010は、前述した各ポインタの情報をファイルシステムアクセス部125に送信する。当該ポインタの情報を受けたファイルシステムアクセス部125は、オープンファイル情報161にポインタを設定する。
次に、管理サーバ101は、オープン処理の実行要求に含まれるファイル名を参照して、ローカルアクセスが指定されているか否かを判定する(ステップ1705)。
ここで、ローカルアクセスとは、対象ファイルに対応するローカルファイル管理情報126にのみアクセスすることを表す。例えば、ファイルAを分割したキー・バリュー型データがサーバA及びサーバBのそれぞれに配置されている場合に、サーバAがローカルアクセスを指定してファイルAへのアクセスを要求すると、サーバAに格納されるファイルAのキー・バリュー型データ(ローカルファイル管理情報126)にのみアクセスされる。
ローカルアクセスを指定する方法としては、ファイル名にローカルアクセスを指定する識別情報を含める方法が考えられる。例えば、ファイル名が「/X/A」のファイルに対してローカルアクセスを指定する場合には、「/X/A.local」がオープン処理の実行要求に含まれる。なお、本発明はこれに限定されず、ファイル名とは別にローカルアクセスを指定する識別情報を付与する方法を用いてもよい。
管理サーバ101は、前述したようなローカルアクセスを指定する識別情報の有無を判定することによって、ローカルアクセスが指定されているか否かを判定できる。
ローカルアクセスが指定されていると判定された場合、管理サーバ101は、オープンファイル情報161へのポインタを格納する仮想ノード情報1303のオブジェクト管理情報ポインタ1333に、ローカルファイル管理情報126へのポインタを設定する(ステップ1706)。
具体的には、管理サーバ101は、ローカルファイル管理情報126へのポインタを含む応答を分散メモリストレージアクセス部124に送信する。これによって、分散メモリストレージアクセス部124は、対象ファイルのうち、ローカルファイル管理情報126に格納されるキー・バリュー型データにのみアクセスすることが可能となる。
ローカルアクセスが指定されていないと判定された場合、管理サーバ101は、オープンファイル情報161における仮想ノード情報1303のオブジェクト管理情報ポインタ1333に、グローバルファイル管理情報132へのポインタを設定する(ステップ1707)。
具体的には、管理サーバ101は、グローバルファイル管理情報132へのポインタを含む応答を分散メモリストレージアクセス部124に送信する。受信した情報は、分散メモリストレージアクセス部124からファイルシステムアクセス部125へ通知され、当該ポインタがオープンファイル情報161に設定される。
ステップ1704~ステップ1707の処理によってオープンファイル情報161に必要な情報が設定される。
その後、管理サーバ101は、オープン処理の実行要求を送信したサーバ102に処理が完了した旨を通知し(ステップ1708)、処理を終了する。
当該通知を受信したファイルシステムアクセス部125は、オープン処理が実行されたファイルに対してファイル記述子を付与する。また、管理サーバ101は、ファイル記述子とオープン処理が実行されたファイルに対応するオープンファイル情報161へのポインタとを対応づけた管理情報(図示省略)を生成する。ファイルシステムアクセス部125は、以後、ファイル記述子を用いてファイルアクセスを実行する。
一方、ステップ1703において、対象ファイルが分散メモリストレージ301に存在しないと判定された場合、管理サーバ101は、オープン処理の実行要求にファイル作成指示が含まれるか否かを判定する(ステップ1711)。
オープン処理の実行要求にファイル作成指示が含まれないと判定された場合、管理サーバ101は、オープン処理の実行要求を送信したサーバ102に対してオープンエラーを通知して(ステップ1721)、処理を終了する。
オープン処理の実行要求にファイル作成指示が含まれると判定された場合、管理サーバ101は、ディレクトリ管理情報135のディレクトリエントリ情報1103に、オープン処理の実行要求に含まれるファイル名を格納する(ステップ1712)。
具体的には、ファイル名を変換した識別情報が格納される。なお、ディレクトリ管理情報135は、ファイル作成指示に含まれるファイル名に基づいて特定可能である。例えば、ファイル作成指示に含まれるファイル名が「/W/X/A」である場合、管理サーバ101は、ディレクトリ「/W/X」配下に格納されるファイルであることが分かり、当該ディレクトに対応するディレクトリ管理情報135を特定できる。
次に、管理サーバ101は、ディレクトリ管理情報135の配置属性情報1102に基づいて、グローバルファイル管理情報132及びローカルファイル管理情報126を生成する(ステップ1713)。
具体的には、以下のような処理が実行される。
まず、管理サーバ101は、ファイル名が変換された識別情報をグローバルファイル管理情報132のファイル識別情報701に格納し、また、グローバルファイル管理情報132の管理属性情報702に必要な情報を設定する。
次に、管理サーバ101は、配置方針1203及びキーレンジ指定情報1204に基づいて、分散メモリストレージ301を構成する各サーバ102へのローカルファイル管理情報126の配置を決定し、ローカルファイル管理情報126を生成する。このとき、ローカルファイル管理情報リスト711も生成される。なお、ローカルファイル管理情報126の配置を決定する場合には、分散メモリストレージ構成情報133が参照される。これによって、分散メモリストレージ301を構成するサーバ102を把握でき、各サーバ102への配置方法が決定できる。
管理サーバ101は、生成されたローカルファイル管理情報リスト711に基づいて、ローカル管理情報ポインタ(開始)703、及び、ローカル管理情報ポインタ(終了)704にポインタを格納する。
さらに、管理サーバ101は、ローカルファイル管理情報126のファイル識別情報901にファイル識別情報701と同一の識別情報を格納し、管理属性情報902には管理属性情報702と同一の情報を格納し、また、グローバルファイル管理情報ポインタ906には所属するグローバルファイル管理情報132へのポインタを格納する。また、管理サーバ101は、生成されたローカルファイル管理情報リスト711に基づいて、ローカルファイル管理情報ポインタ905に対応するポインタを格納する。
その後、管理サーバ101は、決定された配置にしたがって各サーバ102に、生成されたローカルファイル管理情報126を送信する。
以上の処理によって、管理サーバ101は、ファイル名等のファイル識別情報と、キー・バリュー型データとの対応関係を把握できる。
なお、本発明は前述した処理に限定されない。例えば、サーバ102が、ステップ1701及びステップ1702等の処理を実行してもよい。本発明では、管理サーバ101及びサーバ102が連携して、オープンファイル情報161を生成することができれば、どのような処理であってもよい。
以下、AP123からのアクセス要求の処理について説明する。
オープン処理が完了した後、まず、ファイルシステムアクセス部125によってアクセス要求が処理される。
まず、ファイルシステムアクセス部125は、分散メモリストレージ301に対するアクセスか否かを判定する。
例えば、オブジェクト管理情報ポインタ1333に、ローカルファイル管理情報126又はグローバルファイル管理情報132へのポインタが格納される場合に、分散メモリストレージ301に対するアクセスであると判定される。
分散メモリストレージ301に対するアクセスであると判定された場合、ファイルシステムアクセス部125は、分散メモリストレージアクセス部124を呼び出し、当該分散メモリストレージアクセス部124が以下の処理を実行する。
ここでは、分散メモリストレージ301に対するアクセスについて説明する。
アクセス要求が読み出し要求である場合、分散メモリストレージアクセス部124は、自身のローカルファイル管理情報126に対する読み出しであるか否かを判定する。
具体的には、分散メモリストレージアクセス部124は、オープンファイル情報161におけるオブジェクト管理情報ポインタ1333に、ローカルファイル管理情報126へのポインタが格納されているか否かを判定する。オブジェクト管理情報ポインタ1333にローカルファイル管理情報126へのポインタが格納されている場合には、自身のローカルファイル管理情報126に対する読み出しであると判定される。
自身のローカルファイル管理情報126に対する読み出しであると判定された場合、分散メモリストレージアクセス部124は、自身のローカルファイル管理情報126に基づいてファイルのデータを読み出し、処理を終了する。
自身のローカルファイル管理情報126に対する読み出しでないと判定された場合、分散メモリストレージアクセス部124は、管理サーバ101に読み出し処理を依頼する。当該依頼を受け付けた管理サーバ101は、図18に示す処理を実行する。
アクセス要求が書き込み要求である場合、分散メモリストレージアクセス部124は、自身のローカルファイル管理情報126に対する書き込みであるか否かを判定する。
具体的には、分散メモリストレージアクセス部124は、オープンファイル情報161におけるオブジェクト管理情報ポインタ1333に、ローカルファイル管理情報126へのポインタが格納されているか否かを判定する。
自身のローカルファイル管理情報126に対する書き込みであると判定された場合、分散メモリストレージアクセス部124は、自身のローカルファイル管理情報126に基づいてファイルのデータを書き込み、処理を終了する。
データを書き込み処理では、例えば、以下のような処理が実行される。分散メモリストレージアクセス部124は、ローカルファイル管理情報126のファイル識別情報901に基づいて、キー・バリュー型データを作成する。さらに、分散メモリストレージアクセス部124は、作成されたキー・バリュー型データに対応するエントリをエントリリスト911に追加し、さらに、ローカルファイル管理情報126を更新する。その後、分散メモリストレージアクセス部124は、更新されたローカルファイル管理情報126を管理サーバ101に送信する。
なお、本発明は、データの書き込み処理に限定されない。キー・バリュー型データが作成できればどのような方法であってもよい。
自身のローカルファイル管理情報126に対する書き込みでないと判定された場合、分散メモリストレージアクセス部124は、管理サーバ101に書き込み処理を依頼する。当該依頼を受け付けた管理サーバ101は、図19に示す処理を実行する。
次に、図18及び図19を用いて分散メモリストレージ301に対する読み出し処理及び書き込み処理について説明する。
以下では、オープン処理後に、サーバ102から分散メモリストレージ301へのアクセス要求を受け付けた場合の管理サーバ101の処理について説明する。
図18は、本発明の実施形態における分散メモリストレージ301に対する読み出し処理を説明するフローチャートである。
管理サーバ101は、サーバ102から分散メモリストレージ301へのアクセス要求を受け付けると、当該アクセス要求が読み出し要求か否かを判定する(ステップ1801)。
具体的には、管理サーバ101は、アクセス要求に含まれる関数を参照して、アクセス要求が読み出し要求であるか否かを判定する。
なお、当該判定処理は、サーバ102のファイルシステムアクセス部125等が実行してもよい。この場合、管理サーバ101は、サーバ102の判定結果を受信することとなる。
アクセス要求が読み出し要求でないと判定された場合、すなわち、アクセス要求が書き込み要求であると判定された場合、管理サーバ101は、書き込み処理を実行する(ステップ1811)。書き込み処理については図19を用いて後述する。
アクセス要求が読み出し要求であると判定された場合、管理サーバ101は、読み出し処理の対象となるファイルを特定する(ステップ1802)。
具体的には、管理サーバ101は、サーバ102が指定したグローバルファイル管理情報132へのポインタに基づいてファイルを特定する。なお、サーバ102は以下のような処理によってグローバルファイル管理情報132へのポインタを特定する。
サーバ102は、ファイル記述子に基づいてオープンファイル情報161を特定する。次に、サーバ102は、特定されたオープンファイル情報161に基づいて、仮想ノード情報1303を特定する。さらに、サーバ102は、当該仮想ノード情報1303におけるオブジェクト管理情報ポインタ1333を参照して、グローバルファイル管理情報132へのポインタを特定する。
このとき、管理サーバ101は、ファイル状態情報152を更新する。具体的には、処理対象であるファイルの識別情報をファイル識別情報2501に格納し、また、状態2502に読み出し処理が実行されていることを示す情報を格納する。
次に、管理サーバ101は、レコード単位の読み出し処理であるか否かを判定する(ステップ1803)。
レコード単位の読み出しを指定する方法としては、例えば、レコード単位の情報を読み出すための関数を用いる方法、レコード単位の読み出しを指定するフラグ等をアクセス要求に含める方法が考えられる。
管理サーバ101は、アクセス要求に用いられる関数、又はアクセス要求に含まれるフラグ等を参照することによって、レコード単位の読み出し処理であるか否かを判定できる。なお、当該判定処理は、サーバ102のファイルシステムアクセス部125等が実行してもよい。この場合、管理サーバ101は、サーバ102の判定結果を受信することとなる。
レコード単位の読み出し要求であると判定された場合、管理サーバ101は、グローバルファイル管理情報132又はローカルファイル管理情報126に基づいて、読み出し対象となるファイルのデータ(バリュー)をレコード単位に読み出す(ステップ1804)。
具体的には、管理サーバ101は、エントリ921を保持するサーバ102にバリュー941の読み出しを指示する。当該指示を受けたサーバ102は、指定されたエントリ921からバリュー941を読み出し、読み出されたバリュー941を要求元のサーバ102に送信する。
当該データを受信したサーバ102は、オープンファイル情報161のファイルポインタ1403を更新する。具体的には、読み出したバリュー941に対応するポインタがファイルポインタ1403に格納される。これによって、読み出し対象となるファイルのデータがどこまで読み出されたかを把握できる。
管理サーバ101は、読み出し対象となるファイルのデータ(バリュー)が全て読み出されるまで同様の処理を実行する。
ステップ1803において、レコード単位の読み出し要求でないと判定された場合、管理サーバ101は、グローバルファイル管理情報132に基づいて、読み出し対象となるファイルのデータ(バリュー)をバッファ(図示省略)に格納する(ステップ1821)。
なお、レコード単位の読み出し要求でない場合には、読み出すデータの要求サイズがアクセス要求に含まれる。
このとき、要求サイズを超えない範囲内で、ファイルポインタ1403に示された位置からバリュー941を読み出され、読み出されたバリュー941がバッファ(図示省略)に格納される。
管理サーバ101は、一定以上のデータサイズになったか否かを判定する(ステップ1823)。
具体的には、要求サイズ分のデータ(バリュー)が読み出された、又は、バッファに所定の閾値以上のデータ(バリュー)が読み出されたか、のいずれかに該当するか否かが判定される。いずれかに該当する場合には、一定以上のデータサイズになったと判定される。
一定のデータサイズになっていないと判定された場合、管理サーバ101は、ステップ1821に戻り、同様の処理(ステップ1821~ステップ1823)を実行する。
一定のデータサイズになっていると判定された場合、管理サーバ101は、バッファに格納されるデータ(バリュー)をサーバ102に送信する。
なお、当該データを受信したサーバ102は、オープンファイル情報161のファイルポインタ1403を更新する。
図19は、本発明の実施形態における分散メモリストレージ301に対する書き込み処理を説明するフローチャートである。
図18のステップ1801において、アクセス要求が書き込み要求であった場合に、管理サーバ101は、以下の処理を実行する。なお、書き込み要求には、ファイル名が含まれる。
管理サーバ101は、書き込み対象のファイル名に基づいてデータの書き込み先のディレクトリを決定する(ステップ1901)。
具体的には、以下のような処理が実行される。
まず、管理サーバ101は、アクセス要求に含まれる管理サーバ101は、絶対パス名を参照し、当該絶対パス名に含まれるディレクトリ名に基づいて、マウント情報151が格納される仮想ファイルシステム情報1301のリストをたどり、ファイルが配置されるディレクトリを特定する。これによって、当該ディレクトリに対応するディレクトリ管理情報135を特定できる。
また、管理サーバ101は、仮想ノード情報1303のオブジェクト管理情報ポインタ1333を参照して、グローバルファイル管理情報132へのポインタを取得する。
管理サーバ101は、ディレクトリ管理情報135の配置属性情報1102、及び、グローバルファイル管理情報132に基づいて、エントリ921を追加するローカルファイル管理情報126を配置するサーバ102を決定する。
以上の処理によってデータの書き込み先が決定される。
次に、管理サーバ101は、ディレクトリ管理情報135に基づいて、書き込み対象となるデータからキー・バリュー型データを生成する(ステップ1902)。
具体的には、管理サーバ101は、配置属性情報1102のレコード定義情報1201及びフィールド指定情報1202に基づいて、キー・バリュー型データを生成し、生成されたキー・バリュー型のデータをソートする。
管理サーバ101は、書き込み先のサーバ102に対して、ローカルファイル管理情報126に生成されたキー・バリュー型データを追加するように指示する(ステップ1903)。
当該指示を受信した各サーバ102は、追加するキー・バリュー型データの数だけエントリを生成し、エントリ921のファイル識別情報931、バリュー識別情報932、及び所属ローカルファイル管理情報ポインタ933に必要な情報を設定する。次に、各サーバ102は、バリューポインタ935に生成されたキー・バリュー型データ(バリュー941)へのポインタを格納する。
さらに、サーバ102は、ソート順位に、エントリリスト911にエントリ921を追加する。このとき、エントリリストポインタ904が更新される。なお、ファイルが初めて生成される場合には、エントリリストポインタ903にもポインタが格納される。
なお、書き込み時にレコード単位の書き込みが指定されていない場合には、以下のような処理を実行してもよい。
まず、管理サーバ101は、配置属性情報1102のレコード定義情報1201に基づいて、バッファからレコード単位のデータを取得する。
管理サーバ101は、配置属性情報1102のフィールド指定情報1202に基づいてキーとバリューとを生成し、レコード定義情報1201に基づいてキー・バリュー型のデータをソートする。
管理サーバ101は、生成されたキー・バリュー型データに基づいてエントリ921を生成し、生成されたエントリ921をソート順にエントリリスト911に追加する。このとき、管理サーバ101は、どこまで書き込まれたかをサーバ102に通知する。
当該通知を受けたサーバ102は、オープンファイル情報161のファイルポインタ1403を更新する。具体的には、書き込まれたデータに対応するポインタがファイルポインタ1403に格納される。これによって、書き込み対象となるファイルのデータがどこまで書き込まれたかを把握できる。
管理サーバ101は、一定以上のデータサイズになったか否かを判定する。
具体的には、要求サイズ分のデータ(バリュー)が書き込まれた、又は、バッファに所定の閾値以上のデータ(バリュー)が書き込まれたか、のいずれかに該当するか否かが判定される。いずれかに該当する場合には、一定以上のデータサイズになったと判定される。
一定のデータサイズになっていないと判定された場合、管理サーバ101は、前述した処理と同様の処理を実行する。
一定のデータサイズになっていると判定された場合、管理サーバ101は、バッファに格納されるデータを分散メモリストレージ301に書き込む。
なお、レコード単位の書き込みを指定する方法としては、例えば、レコード単位の情報を書き込みための関数を用いる方法、レコード単位の書き込みを指定するフラグ等をアクセス要求に含める方法が考えられる。管理サーバ101は、アクセス要求に用いられる関数、又はアクセス要求に含まれるフラグ等を参照することによって、レコード単位の書き込み処理であるか否かを判定できる。
次に、本発明の適用例について図20及び図21を用いて説明する。
図20は、本発明の実施形態におけるディレクトリ構造の一例を表す説明図である。
図20に示すようにルートディレクトリ「/」以下に階層状に各ディレクトリが配置されている。図20に示すように、記憶装置103に配置されたディレクトリと分散メモリストレージ301に配置されたディレクトリとが含まれる。分散メモリストレージ301上には、ディレクトリ「/W」配下のディレクトリ及びファイルが配置される。
サーバ102から、記憶装置103に格納されるファイルを分散メモリストレージ301にコピーするためのコピー要求を受け付けた場合の処理について説明する。なお、コピー要求には、コピー元のファイル名及びコピー先のファイル名が含まれる。また、ローカルアクセスは指定されていないものとする。また、記憶装置103のファイルについてはオープン処理が実行済みであるとする。
このとき、管理サーバ101は、サーバ102からコピー要求を受け付けると、分散メモリストレージ301におけるオープン処理(図17A、図17B参照)を実行する。
この時点では、分散メモリストレージ301上にファイル名「/W/X/A」のファイルは存在しないため、管理サーバ101は、ディレクトリ「/W/X」配下にファイルを作成するための処理(ステップ1712~ステップ1713)を実行する。このとき、管理サーバ101は、ディレクトリ「/W/X」に対応するディレクトリ管理情報135に基づいて、エントリの配置方法等を決定する。
これによって、サーバ102は、ディレクトリ毎に異なる配置方法、及びキー・バリュー型データの構造を意識する必要はなく、ファイル名を入力することによって自動的にキー・バリュー型データの構造、及びキー・バリュー型データの配置方法等が決定される。
さらに、管理サーバ101は、グローバルファイル管理情報132へのポインタを設定し、サーバ102にファイル記述子を返信する(ステップ1707、ステップ1708)。
次に、管理サーバ101は、記憶装置103に格納されたファイルのデータを分散メモリストレージ301上に格納するために、書き込み処理を実行する(図19参照)。
このとき、管理サーバ101は、ディレクトリ「/W/X」に対応するディレクトリ管理情報135に基づいて、記憶装置103に格納されるファイルのデータからキー・バリュー型データを生成し、決定された配置方法にしたがって各サーバ102に生成されたキー・バリュー型データを送信する。当該キー・バリュー型データを受信したサーバ102は、エントリ921に必要なデータを設定する。
図20に示す例では、ディレクトリ「/W/X」の配置方針はメモリ使用量平準化であり、キーにはフィールド1が用いられる。また、キーレンジの指定はされていない。
以上の処理によって、記憶装置103から分散メモリストレージ301にファイルがコピーされる。
次に、サーバ102からファイル名が「/W/X/A」であるファイルを「/W/Y/Z」配下にコピーためのコピー要求又は移動するための移動要求を受け付けた場合の処理について説明する。なお、コピー要求又は移動要求の何れにも、コピー元のファイル名及びコピー先のファイル名が含まれる。また、「/W/X/A」に対してローカルアクセスは指定されていないものとする。
管理サーバ101は、ファイルデータを読み出すためにファイル名が「/W/X/A」のファイルに対してオープン処理を実行する(図17A、図17B参照)。このとき、分散メモリストレージ301にはファイル名が「/W/X/A」であるファイルは存在するため、ステップ1707及びステップ1708の処理が実行される。
また、管理サーバ101は、読み出されたエントリ921を書き込むためにファイル名が「/W/Y/Z/B」のファイルに対するオープン処理を実行する(図17A、図17B参照)。この時点では、分散メモリストレージ301上にファイル名「/W/Y/Z」のファイルは存在しないため、管理サーバ101は、ディレクトリ「/W/Y/Z」配下にファイルを作成するための処理(ステップ1712~ステップ1714)を実行する。このとき、管理サーバ101は、ディレクトリ「/W/Y/Z」に対応するディレクトリ管理情報135に基づいて、エントリの配置方法等を決定する。
図20に示す例では、ディレクトリ「/W/Y/Z」の配置方針はキーレンジ指定であり、キーにはフィールド2が用いられる。また、キーレンジは0-40、41-70、71-99が指定されている。図3に示すような分散メモリストレージ301の場合、フィールド2の値が「0-40」のキー・バリュー型データがサーバ1(102A)に格納され、フィールド2の値が「41-70」のキー・バリュー型データがサーバ2(102B)に格納され、フィールド2の値が「71-99」のキー・バリュー型データがサーバ3(102C)に格納される。
これによって、AP123は、ディレクトリ毎に異なる配置方法及びキー・バリュー型データの構造を意識する必要はなく、ファイル名を入力することによって自動的にキー・バリュー型データの構造、及びキー・バリュー型データの配置方法等が決定される。
管理サーバ101は、オープン処理が終了すると、次に、ファイル名が「/W/X/A」であるファイルのファイルデータを読み出すために読み出し処理を実行する(図18参照)。さらに、管理サーバ101は、読み出されたデータをファイル名が「/W/Y/Z/B」のファイルに書き込むための書き込み処理を実行する(図19参照)。
このとき、ステップ1903において、ディレクトリ「/W/Y/Z」に対応するディレクトリ管理情報135に基づいて、ディレクトリ「/W/X/A」配下のキー・バリュー型データからディレクトリ「/W/Y/Z」配下のキー・バリュー型データ(エントリ921)が生成される。さらに、ディレクトリ「/W/Y/Z」に対応するディレクトリ管理情報135に基づいて、生成されたキー・バリュー型データ(エントリ921)が分散メモリストレージ301上に配置される。
図21は、本発明の実施形態におけるディレクトリ間のファイルのデータをコピーした場合のキー・バリュー型データの配置例を示す説明図である。
ファイル2001-1は、図20のファイル名が「/W/X/A」のファイルを表す。
ディレクトリ「/W/X/」の配置方針はメモリ使用量平準化であるため、ファイル2001-1を構成するキー・バリュー型データ2011-1~2011-6は、各サーバ102に均等に配置される。
ファイル2001-2は、図20のファイル名が「/W/Y/Z/B」のファイルを表す。
ディレクトリ「/W/Y/Z」の配置方針はキーレンジ指定であるため、ファイル2001-2を構成するキー・バリュー型データ2021-1~2021-6は、キーレンジに基づいて各サーバ102に配置される。
ここで、ディレクトリ「/W/X」におけるキー・バリュー型データ2011-1は、「/W/X/A」及び「101」からキーが構成され、「101」、「11」及び「abc」がバリューである。また、ディレクトリ「/W/Y/Z」におけるキー・バリュー型データ2021-1は、「/W/Y/Z/B」及び「11」からキーが構成され、「101」、「11」及び「abc」がバリューである。
図21に示すように、ファイルをディレクト「/W/X」からディレクトリ「/W/Y/Z」へコピー又は移動させた場合、矢印に示すような関係になる。
キー・バリュー型データ2011-1はキー・バリュー型データ2021-1、キー・バリュー型データ2011-2はキー・バリュー型データ2021-5、キー・バリュー型データ2011-3はキー・バリュー型データ2021-4、キー・バリュー型データ2011-4はキー・バリュー型データ2021-6、キー・バリュー型データ2011-5はキー・バリュー型データ2021-3、キー・バリュー型データ2011-6はキー・バリュー型データ2021-2に対応する。
以上の処理によって、分散メモリストレージ301上のディレクトリ間においてファイルのコピー又は移動が可能となる。
前述のように、サーバ102は、ディレクトリ毎に異なるキー、及びキー・バリュー型データの配置方法等を指定する必要がなくファイル名のみを指定すればよい。すなわち、AP123は、通常のファイルI/Fを用いて分散メモリストレージ301上のファイル操作を実行できる。したがって、キー・バリュー型データの構造に対応したAP123を用いることなく分散メモリストレージ301のデータを操作できる。すなわち、キー・バリュー型データ毎にAP123を作り込む必要がない。
図22A、図22B及び図22Cは、本発明の実施形態のおけるサーバ102の入力と、管理サーバ101からの応答との対応を表した説明図である。
図22Aは、AP123がファイル名を指定した場合における管理サーバ101の応答を示す図である。
図22Aに示すように、AP123から、ファイル名を含む読み出し要求が入力されると、管理サーバ101は、分散メモリストレージ301上の対応する全てのキー・バリュー型データからバリューを読み出して、読み出されたバリューを応答としてサーバ102に送信する。
図22Bは、AP123がファイル名と、ローカルアクセスとを指定した場合における管理サーバ101の応答を示す図である。
図22Bに示すように、AP123から、ファイル名とローカルアクセス指定とを含む読み出し要求が入力されると、管理サーバ101は、当該サーバ102上のキー・バリュー型データからバリューを読み出し、読み出されたバリューを応答としてサーバ102に送信する。
図22Cは、AP123がキーを指定した場合における管理サーバ101の応答を示す図である。
図22Cに示すように、AP123から、キーを含む読み出し要求が入力されると、管理サーバ101は、当該キーに対応するバリューを読み出し、読み出されたバリューを応答としてサーバ102に送信する。なお図22Cの処理は、通常のキー・バリュー型データのデータ読み出しと同一の処理である。
本発明の一形態によれば、サーバ102のAP123は、ファイルI/Fを用いてキー・バリュー型データ形式のデータベースにアクセスすることができる。したがって、キー毎に異なるアプリケーションを作成する必要がない。また、ローカル指定をすることによって、ファイルデータうち必要なデータのみにアクセスすることが可能となる。
なお、本実施形態では、管理サーバ101とサーバ102とはそれぞれが異なる処理を行う装置として説明してきたが、管理サーバ101のメモリ112の一部を分散メモリストレージ301に用いる等、管理サーバ101が、サーバ102が有する機能も含むような構成としてもよい。
[変形例1]
本発明は、管理サーバ101が、オープンファイル情報161を備える形態にも適用可能である。この場合、管理サーバ101が、オープンファイル情報161に基づいて、ローカルファイル管理情報132、又は、グローバルファイル管理情報132へのアクセスか否かを判定する。
本発明は、管理サーバ101が、オープンファイル情報161を備える形態にも適用可能である。この場合、管理サーバ101が、オープンファイル情報161に基づいて、ローカルファイル管理情報132、又は、グローバルファイル管理情報132へのアクセスか否かを判定する。
以下、読み出し処理(図18)及び書き込み処理(図19)の差異について説明する。
読み出し処理ではステップ1802の処理が異なる。
管理サーバ101は、オープンファイル情報161を特定し、特定されたオープンファイル情報161に基づいて、仮想ノード情報1303を特定する。
さらに、管理サーバ101は、当該仮想ノード情報1303におけるオブジェクト管理情報ポインタ1333を参照して、ローカルファイル管理情報132、又は、グローバルファイル管理情報132のいずれが読み出されるか判定する。
オブジェクト管理情報ポインタ1333に、グローバルファイル管理情報132へのポインタが格納される場合、分散メモリストレージ301に格納される全てのローカルファイル管理情報126が読み出し対象となる。一方、オブジェクト管理情報ポインタ1333に、ローカルファイル管理情報126へのポインタが格納される場合、分散メモリストレージ301を構成する一つのサーバ102のローカルファイル管理情報126が読み出し対象となる。
オブジェクト管理情報ポインタ1333に、グローバルファイル管理情報132へのポインタが格納される場合は図18と同一の処理となる。
一方、オブジェクト管理情報ポインタ1333に、ローカルファイル管理情報126へのポインタが格納される場合、管理サーバ101は、読み出し要求を送信したサーバ102自身のローカルファイル管理情報126を読み出し対象とする。
他の処理は同一である。
読み出し処理ではステップ1901の処理が異なる。
管理サーバ101は、オープンファイル情報161を特定し、特定されたオープンファイル情報161に基づいて、仮想ノード情報1303を特定する。
次に、管理サーバ101は、特定されたに基づいて、仮想ノード情報1303を特定する。さらに、管理サーバ101は、特定された仮想ノード情報1303の所属VFSポインタ1331を参照して、図13に示すような関係をたどることによってファイルが配置されるディレクトリを特定する。これによって、当該ディレクトリに対応するディレクトリ管理情報135を特定できる。
さらに、管理サーバ101は、特定された仮想ノード情報1303のオブジェクト管理情報ポインタ1333を参照して、書き込み先を特定する。
オブジェクト管理情報ポインタ1333にグローバルファイル管理情報132へのポインタが格納される場合は、図19と同一の処理となる。
一方、オブジェクト管理情報ポインタ1333にローカルファイル管理情報126へのポインタが格納される場合、管理サーバ101は、書き込み要求を送信したサーバ102に自身のローカルファイル管理情報132にエントリを生成するように指示する。
なお、管理サーバ101は、図19と同一の処理によって取得されたエントリ生成に必要な情報を当該指示と共に送信する。
当該指示を受信したサーバ102は、受信した情報にしたがってデータを書き込む。
[変形例2]
他の実施形態としては、オープン処理、読み出し処理、及び書き込み処理などのファイルに対する処理を専用のライブラリで行う方法が考えられる。すなわち、オープン処理、読み出し処理、書き込み処理などのファイルに対する処理を実行する関数として、専用のライブラリ関数を用いる。
他の実施形態としては、オープン処理、読み出し処理、及び書き込み処理などのファイルに対する処理を専用のライブラリで行う方法が考えられる。すなわち、オープン処理、読み出し処理、書き込み処理などのファイルに対する処理を実行する関数として、専用のライブラリ関数を用いる。
AP123が専用のライブラリ関数を使用した場合、ライブラリでは、まず、分散メモリストレージ301上のファイルに対する操作か否かを判定する。この判定は、例えば、ファイル名として、特定のディレクトリ名を含むように指定されているか否かを判定する方法が考えられる。
つまり、第一の実施形態の図17に示したオープン処理において、ステップ1701の判定では、管理サーバ101は、対象ファイルが特定のディレクトリ名を含む場合、分散メモリストレージ301上のファイルであると判定し、ライブラリの中でステップ1702以下の処理を実行する。一方、対象ファイルが特定のディレクトリ名を含まない場合、管理サーバ101は、通常のファイル操作として、従来のオープン関数を実行する。
分散メモリストレージ301上のファイルであると判定された場合、管理サーバ101は、オープン関数の戻り値として、前述の通常のオープン関数が返すファイル記述子に相当する値をライブラリ内のファイル記述子として返す。この後のAP123からの読み出し、及び、書き込み要求では、当該ライブラリ内のファイル記述子を指定することによって、図18及び図19と同様の処理が可能になる。
以上、本発明を添付の図面を参照して詳細に説明したが、本発明はこのような具体的構成に限定されるものではなく、添付した請求の範囲の趣旨内における様々な変更及び同等の構成を含むものである。
Claims (16)
- 第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、及び前記第1のプロセッサに接続される第1のネットワークインタフェースを備え、データを格納する複数の計算機と、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、及び前記第2のプロセッサに接続される第2のネットワークインタフェースを備え、前記各計算機上に格納されるデータを管理する管理計算機と、を備える計算機システムであって、
前記計算機システムは、前記複数の計算機が備える記憶領域を統合して生成されたストレージを備え、
前記ストレージは、複数のファイルデータを含むファイルを分割して、検索キー及び前記ファイルデータから構成される分割データを、当該ストレージを構成する前記記憶領域に分散して格納し、
前記管理計算機は、
前記ストレージに対するアクセスを制御するアクセス管理部、及び、前記ストレージを管理するストレージ管理部を備え、
前記ストレージを構成する記憶領域の情報を含むストレージ構成情報、及び、前記ストレージに格納される前記分割データの配置に関する情報を含むファイル管理情報を格納し、
前記ストレージ管理部は、
前記ストレージに格納される前記分割データに対応する前記ファイル及び前記ファイルが格納されるファイルシステムを識別するための情報を含むファイル識別情報、並びに、前記ファイルシステムが構築される前記ストレージにおける前記分割データの配置方法を定義する配置定義情報を含むファイルシステム管理情報を格納し、
前記各計算機は、
ファイルデータ単位のデータを処理するアプリケーション前記ストレージにアクセスするデータアクセス管理部を備え、
前記管理計算機は、
少なくとも一つの前記アプリケーションから任意のファイルの前記ファイル識別情報を含むファイル生成要求を受け付けた場合に、前記任意のファイルのファイル識別情報に基づいて、前記任意のファイルの格納先である前記ファイルシステムを特定し、前記特定されたファイルシステムに対応する前記ファイルシステム管理情報を検索し、
前記検索されたファイルシステム管理情報に、前記任意のファイルのファイル識別情報を登録し、
前記ストレージ構成情報、及び、前記検索されたファイルシステム管理情報を参照して、前記ストレージを構成する記憶領域への前記任意のファイルの前記ファイルデータから生成される前記分割データの配置方法を決定し、
前記決定された配置方法に基づいて、前記ファイル管理情報を生成し、
少なくとも一つの前記アプリケーションから前記任意のファイルのファイル識別情報を含むアクセス要求を受け付けた場合に、前記任意のファイルのファイル識別情報に基づいて前記ファイル管理情報を参照して、前記任意のファイルの前記分割データを格納する前記複数の計算機を特定し、
前記特定された複数の計算機に格納された前記任意のファイルの分割データへアクセスするためのポインタを設定することを特徴とする計算機システム。 - 請求項1に記載の計算機システムであって、
前記各計算機は、当該計算機が備え、前記ストレージを構成する記憶領域に格納される前記分割データを管理する分割データ管理情報を格納し、
前記管理計算機は、
前記ストレージを構成する記憶領域への前記任意のファイルの分割データの配置方法を決定した後に、前記決定された配置方法に基づいて前記分割データ管理情報を生成し、
前記ファイルシステム管理情報に、前記生成された分割データ管理情報へアクセスするためのポインタを格納し、
前記決定された配置方法に基づいて、前記生成された分割データ管理情報を前記各計算機に送信することを特徴とする計算機システム。 - 請求項2に記載の計算機システムであって、
前記ストレージ上には階層的なディレクトリ構造のファイルシステムが構築され、前記管理計算機は、前記ディレクトリ毎の前記ファイルシステム管理情報を格納し、
前記ファイルシステム管理情報は、さらに、前記ファイルシステムに格納される前記分割データにおける前記検索キー及び前記ファイルデータの構造を定義する分割データ定義情報を含み、
前記分割データ定義情報は、前記ディレクトリの配下に格納される前記ファイルの前記分割データにおける、前記検索キー及び前記ファイルデータの構造を定義する情報を含み、
前記配置定義情報は、前記ディレクトリの配下に格納される前記ファイルの前記分割データの配置方法に関する情報を含むことを特徴とする計算機システム。 - 請求項3に記載の計算機システムであって、
前記管理計算機は、
少なくとも一つの前記アプリケーションから第1ファイルの前記ファイル識別情報を含むファイルデータの書き込み要求を受信した場合に、前記第1ファイルのファイル識別情報に基づいて前記第1ファイルの前記ファイルデータが書き込まれる前記ディレクトリを特定し、
前記特定されたディレクトリに対応する前記ファイルシステム管理情報に含まれる前記配置定義情報を参照して、前記第1ファイルのファイルデータから生成される第1分割データを配置する前記複数の計算機を決定し、
前記特定されたディレクトリに対応する前記ファイルシステム管理情報に含まれる前記分割データ定義情報を参照して、前記特定されたディレクトリ配下に書き込まれる前記第1ファイルのファイルデータから前記第1分割データを生成し、
前記決定された複数の計算機に、前記生成された第1分割データを送信し、
前記各計算機は、前記第1分割データを受信した場合に、当該計算機が備え、前記ストレージを構成する記憶領域に前記受信した第1分割データを格納し、前記分割データ管理情報に前記格納された第1分割データへアクセスするためのポインタを格納することを特徴とする計算機システム。 - 請求項4に記載の計算機システムであって、
少なくとも一つの前記アプリケーションから送信される前記第1ファイルのファイル識別情報を含むファイルデータの書き込み要求には、特定の前記分割データ管理情報への書き込みを指定する情報が含まれ、
前記管理計算機は、
前記特定の分割データ管理情報への書き込みを指定する情報が含まれる前記ファイルデータの書き込み要求を受信した場合に、前記ファイル管理情報を参照して、前記特定の分割データ管理情報を格納する前記計算機を特定し、
前記特定された計算機に対して前記生成された第1分割データを送信することを特徴とする計算機システム。 - 請求項3に記載の計算機システムであって、
前記管理計算機は、
少なくとも一つの前記アプリケーションから第1ファイルの前記ファイル識別情報を含むファイルデータの読み出し要求を受信した場合に、前記第1ファイルのファイル識別情報に基づいて前記第1ファイルの前記ファイルデータを読み出す前記一以上の計算機を特定し、
前記特定された一以上の計算機に、前記第1ファイルのファイルデータから生成された第1分割データの読み出し要求を送信し、
前記各計算機は、
前記読み出し要求を受信した場合に、前記分割データ管理情報を参照して、前記第1分割データを検索し、
検索された前記第1分割データから取得された前記第1ファイルのファイルデータを前記管理計算機に送信し、
前記管理計算機は、前記一以上の計算機から受信した前記第1ファイルのファイルデータを前記ファイルデータの読み出し要求を送信した前記アプリケーションに送信することを特徴とする計算機システム。 - 請求項6に記載の計算機システムであって、
少なくとも一つの前記アプリケーションから送信される前記第1ファイルのファイル識別情報を含むファイルデータの読み出し要求には、特定の前記分割データ管理情報への読み出しを指定する情報が含まれ、
前記管理計算機は、
前記特定の分割データ管理情報への読み出しを指定する情報が含まれる前記ファイルデータの読み出し要求を受信した場合に、前記ファイル管理情報を参照して、前記特定の分割データ管理情報を格納する前記計算機を特定し、
前記特定された計算機に対して前記第1ファイルの前記第1分割データの読み出し要求を送信することを特徴とする計算機システム。 - 請求項3に記載の計算機システムであって、
前記ファイルシステムは、第1ディレクトリと第2ディレクトリとを含み、
前記第1ディレクトリには第2ファイルが格納され、
前記ストレージには前記第2ファイルから生成された第2分割データが格納され、
前記管理計算機は、
少なくとも一つの前記アプリケーションから前記第2ファイルの前記ファイル識別情報を含み、前記第2ファイルを前記第2ディレクトリにコピーするためのコピー要求を受信した場合に、前記第2ファイルのファイル識別情報に基づいて、前記第2ファイルの前記ファイルデータを読み出す前記複数の計算機を特定し、
前記特定された複数の計算機に、前記第2ファイルの前記第2分割データの読み出し要求を送信し、
前記各計算機は、
前記読み出し要求を受信した場合に、前記分割データ管理情報を参照して、前記検索キーに基づいて前記第2分割データを検索し、
検索された前記第2分割データから取得された前記第2ファイルのファイルデータを前記管理計算機に送信し、
前記管理計算機は、
前記第2ファイルのファイルデータが読み出された後に、前記第2ディレクトリに対応する前記ファイルシステム管理情報に含まれる前記分割データ定義情報を参照して、前記第2ファイルのファイルデータから第3分割データを生成し、
前記第2ディレクトリに対応する前記ファイルシステム管理情報に含まれる前記配置定義情報を参照して、前記生成された第3分割データを配置する前記複数の計算機を決定し、
前記決定された複数の計算機に、前記生成された第3分割データを送信し、
前記各計算機は、前記第3分割データを受信した場合に、当該計算機が備え、前記ストレージを構成する記憶領域に前記受信した第3分割データを格納し、前記分割データ管理情報に前記格納された第3分割データへアクセスするためのポインタを格納することを特徴とする計算機システム。 - 第1のプロセッサ、前記第1のプロセッサに接続される第1のメモリ、及び前記第1のプロセッサに接続される第1のネットワークインタフェースを備え、データを格納する複数の計算機と、第2のプロセッサ、前記第2のプロセッサに接続される第2のメモリ、及び前記第2のプロセッサに接続される第2のネットワークインタフェースを備え、前記各計算機上に格納されるデータを管理する管理計算機と、を備える計算機システムにおけるデータ管理方法であって、
前記計算機システムは、前記複数の計算機が備える記憶領域を統合して生成されたストレージを備え、
前記ストレージは、複数のファイルデータを含むファイルを分割して、検索キー及び前記ファイルデータから構成される分割データを、当該ストレージを構成する前記記憶領域に分散して格納し、
前記管理計算機は、
前記ストレージに対するアクセスを制御するアクセス管理部、及び、前記ストレージを管理するストレージ管理部を備え、
前記ストレージを構成する記憶領域の情報を含むストレージ構成情報、及び、前記ストレージに格納される前記分割データの配置に関する情報を含むファイル管理情報を格納し、
前記ストレージ管理部は、
前記ストレージに格納される前記分割データに対応する前記ファイル及び前記ファイルが格納されるファイルシステムを識別するための情報を含むファイル識別情報、並びに、前記ファイルシステムが構築される前記ストレージにおける前記分割データの配置方法を定義する配置定義情報を含むファイルシステム管理情報を格納し、
前記各計算機は、
ファイルデータ単位のデータを処理するアプリケーション、及び、前記ストレージにアクセスするデータアクセス管理部を備え、
前記方法は、
前記管理計算機が、少なくとも一つの前記アプリケーションから任意のファイルの前記ファイル識別情報を含むファイル生成要求を受け付けた場合に、前記任意のファイルのファイル識別情報に基づいて、前記任意のファイルの格納先である前記ファイルシステムを特定し、前記特定されたファイルシステムに対応する前記ファイルシステム管理情報を検索する第1のステップと、
前記管理計算機が、前記検索されたファイルシステム管理情報に、前記任意のファイルのファイル識別情報を登録する第2のステップと、
前記管理計算機が、前記ストレージ構成情報、及び、前記検索されたファイルシステム管理情報を参照して、前記ストレージを構成する記憶領域への前記任意のファイルの前記ファイルデータから生成される前記分割データの配置方法を決定する第3のステップと、
前記管理計算機が、前記決定された配置方法に基づいて、前記ファイル管理情報を生成する第4のステップと、
前記管理計算機が、少なくとも一つの前記アプリケーションから前記任意のファイルのファイル識別情報を含むアクセス要求を受け付けた場合に、前記任意のファイルのファイル識別情報に基づいて前記ファイル管理情報を参照して、前記任意のファイルの前記分割データを格納する前記複数の計算機を特定する第5のステップと、
前記管理計算機が、前記特定された複数の計算機に格納された前記任意ファイルに対応する分割データへアクセスするためのポインタを設定する第6のステップと、を含むことを特徴とするデータ管理方法。 - 請求項9に記載のデータ管理方法であって、
前記各計算機は、当該計算機が備え、前記ストレージを構成する記憶領域に格納される前記分割データを管理する分割データ管理情報を格納し、
前記第4のステップは、前記決定された配置方法に基づいて前記分割データ管理情報を生成するステップと、
前記ファイルシステム管理情報に、前記生成された分割データ管理情報へアクセスするためのポインタを格納するステップと、
前記決定された配置方法に基づいて、前記生成された分割データ管理情報を前記各計算機に送信するステップと、を含むことを特手様とするデータ管理方法。 - 請求項10に記載のデータ管理方法であって、
前記ストレージ上には階層的なディレクトリ構造のファイルシステムが構築され、前記管理計算機は、前記ディレクトリ毎の前記ファイルシステム管理情報を格納し、
前記ファイルシステム管理情報は、さらに、前記ファイルシステムに格納される前記分割データにおける前記検索キー及び前記ファイルデータの構造を定義する分割データ定義情報を含み、
前記分割データ定義情報は、前記ディレクトリの配下に格納される前記ファイルの前記分割データにおける、前記検索キー及び前記ファイルデータの構造を定義する情報を含み、
前記配置定義情報は、前記ディレクトリの配下に格納される前記ファイルの前記分割データの配置方法に関する情報を含むことを特徴とするデータ管理方法。 - 請求項11に記載のデータ管理方法であって、さらに、
前記管理計算機が、少なくとも一つの前記アプリケーションから第1ファイルの前記ファイル識別情報を含むファイルデータの書き込み要求を受信した場合に、前記第1ファイルのファイル識別情報に基づいて前記第1ファイルデータの前記ファイルデータが書き込まれる前記ディレクトリを特定する第7のステップと、
前記管理計算機が、前記特定されたディレクトリに対応する前記ファイルシステム管理情報に含まれる前記配置定義情報を参照して、前記第1のファイルのファイルデータから生成される第1分割データを配置する前記複数の計算機を決定する第8のステップと、
前記管理計算機が、前記特定されたディレクトリに対応する前記ファイルシステム管理情報に含まれる前記分割データ定義情報を参照して、前記特定されたディレクトリ配下に書き込まれる前記第1ファイルのファイルデータから前記第1分割データを生成する第9のステップと、
前記管理計算機が、前記決定された複数の計算機に、前記生成された第1分割データを送信する第10のステップと、
前記各計算機が、前記第1分割データを受信した場合に、当該計算機が備え、前記ストレージを構成する記憶領域に前記受信した第1分割データを格納し、前記分割データ管理情報に前記格納された第1分割データへアクセスするためのポインタを格納する第11のステップと、を含むことを特徴とするデータ管理方法。 - 請求項12に記載のデータ管理方法であって、
少なくとも一つの前記アプリケーションから送信される前記第1ファイルのファイル識別情報を含むファイルデータの書き込み要求には、特定の前記分割データ管理情報への書き込みを指定する情報が含まれ、
前記第8のステップは、前記特定の分割データ管理情報への書き込みを指定する情報が含まれる前記ファイルデータの書き込み要求を受信した場合に、前記ファイル管理情報を参照して、前記特定の分割データ管理情報を格納する前記計算機を特定するステップを含み、
前記第10のステップは、前記特定された計算機に対して前記生成された第1分割データを送信するステップを含むことを特徴とするデータ管理方法。 - 請求項11に記載のデータ管理方法であって、さらに、
前記管理計算機が、少なくとも一つの前記アプリケーションから第1ファイルの前記ファイル識別情報を含むファイルデータの読み出し要求を受信した場合に、前記第1ファイルのファイル識別情報に基づいて前記第1ファイルの前記ファイルデータを読み出す前記一以上の計算機を特定する第12のステップと、
前記管理計算機が、前記特定された一以上の計算機に、前記第1ファイルのファイルデータから生成された第1分割データの読み出し要求を送信する第13のステップと、
前記各計算機が、前記読み出し要求を受信した場合に、前記分割データ管理情報を参照して、前記第1分割データを検索する第14のステップと、
前記各計算機が、検索された前記第1分割データから取得された前記第1ファイルのファイルデータを前記管理計算機に送信する第15のステップと、
前記管理計算機が、前記一以上の計算機から受信した前記第1ファイルのファイルデータを前記ファイルデータの読み出し要求を送信した前記アプリケーションに送信する第16のステップと、を含むことを特徴とするデータ管理方法。 - 請求項14に記載のデータ管理方法であって、
少なくとも一つの前記アプリケーションから送信される前記第1ファイルのファイル識別情報を含むファイルデータの読み出し要求には、特定の前記分割データ管理情報への読み出しを指定する情報が含まれ、
前記第15のステップは、前記特定の分割データ管理情報への読み出しを指定する情報が含まれる前記ファイルデータの読み出し要求を受信した場合に、前記ファイル管理情報を参照して、前記特定の分割データ管理情報を格納する前記計算機を特定するステップと、
前記特定された計算機に対して前記第1ファイルの前記第1分割データの読み出し要求を送信するステップと、を含むことを特徴とするデータ管理方法。 - 請求項11に記載のデータ管理方法であって、
前記ファイルシステムは、第1ディレクトリと第2ディレクトリとを含み、
前記第1ディレクトリには第2ファイルが格納され、
前記ストレージには前記第2ファイルから生成された第2分割データが格納され、
前記方法は、さらに、
前記管理計算機が、少なくとも一つの前記アプリケーションから前記第2ファイルの前記ファイル識別情報を含み、前記第2ファイルを前記第2ディレクトリにコピーするためのコピー要求を受信した場合に、前記第2ファイルのファイル識別情報に基づいて、前記第2ファイルの前記ファイルデータを読み出す前記複数の計算機を特定する第17のステップと、
前記管理計算機が、前記特定された複数の計算機に、前記第2ファイルの前記第2分割データの読み出し要求を送信する第18のステップと、
前記各計算機が、前記読み出し要求を受信した場合に、前記分割データ管理情報を参照して、前記検索キーに基づいて前記第2分割データを検索する第19のステップと、
前記各計算機が、検索された前記第2分割データから取得された前記第2ファイルのファイルデータを前記管理計算機に送信する第20のステップと、
前記管理計算機が、前記第2ファイルのファイルデータが読み出された後に、前記第2ディレクトリに対応する前記ファイルシステム管理情報に含まれる前記分割データ定義情報を参照して、前記第2ファイルのファイルデータから第3分割データを生成する第21のステップと、
前記管理計算機が、前記第2ディレクトリに対応する前記ファイルシステム管理情報に含まれる前記配置定義情報を参照して、前記生成された第3分割データを配置する前記複数の計算機を決定する第22のステップと、
前記管理計算機が、前記決定された複数の計算機に、前記生成された第3分割データを送信する第23のステップと、
前記各計算機が、前記第3分割データを受信した場合に、当該計算機が備え、前記ストレージを構成する記憶領域に前記受信した第3分割データを格納し、前記分割データ管理情報に前記格納された第3分割データへアクセスするためのポインタを格納する第24のステップと、を含むことを特徴とするデータ管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/823,186 US20130325915A1 (en) | 2011-02-23 | 2011-03-01 | Computer System And Data Management Method |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2011-036880 | 2011-02-23 | ||
JP2011036880A JP5589205B2 (ja) | 2011-02-23 | 2011-02-23 | 計算機システム及びデータ管理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012114531A1 true WO2012114531A1 (ja) | 2012-08-30 |
Family
ID=46720345
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2011/054646 WO2012114531A1 (ja) | 2011-02-23 | 2011-03-01 | 計算機システム及びデータ管理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20130325915A1 (ja) |
JP (1) | JP5589205B2 (ja) |
WO (1) | WO2012114531A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015097774A1 (ja) * | 2013-12-25 | 2015-07-02 | 株式会社日立製作所 | 計算機システム及びデータ管理方法 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI507891B (zh) * | 2012-03-23 | 2015-11-11 | Egis Technology Inc | 具雲端儲存空間管理功能之電子裝置、雲端儲存系統、其方法及其電腦程式產品 |
JP6155861B2 (ja) * | 2013-06-06 | 2017-07-05 | 富士通株式会社 | データ管理方法、データ管理プログラム、データ管理システム及びデータ管理装置 |
KR102075386B1 (ko) * | 2013-11-28 | 2020-02-11 | 한국전자통신연구원 | 대용량 순차 수집 데이터 처리를 위한 프레임워크 제공장치 및 이의 데이터 처리방법 |
US9805389B2 (en) | 2014-01-13 | 2017-10-31 | Facebook, Inc. | Systems and methods for near real-time merging of multiple streams of data |
US11157641B2 (en) * | 2016-07-01 | 2021-10-26 | Microsoft Technology Licensing, Llc | Short-circuit data access |
US9934287B1 (en) | 2017-07-25 | 2018-04-03 | Capital One Services, Llc | Systems and methods for expedited large file processing |
CA3071965C (en) * | 2017-08-10 | 2024-01-16 | Shardsecure, Inc. | Method for securing data utilizing microshard fragmentation |
US10831552B1 (en) * | 2017-08-15 | 2020-11-10 | Roblox Corporation | Using map-reduce to increase processing efficiency of small files |
US20190087440A1 (en) * | 2017-09-15 | 2019-03-21 | Hewlett Packard Enterprise Development Lp | Hierarchical virtual file systems for accessing data sets |
JP6785205B2 (ja) | 2017-09-21 | 2020-11-18 | キオクシア株式会社 | メモリシステムおよび制御方法 |
JP2019079464A (ja) | 2017-10-27 | 2019-05-23 | 東芝メモリ株式会社 | メモリシステムおよび制御方法 |
JP6982468B2 (ja) | 2017-10-27 | 2021-12-17 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11003372B2 (en) * | 2018-05-31 | 2021-05-11 | Portworx, Inc. | Protecting volume namespaces from corruption in a distributed container orchestrator |
JP2020004465A (ja) | 2018-06-26 | 2020-01-09 | キオクシア株式会社 | 半導体記憶装置 |
US20200174814A1 (en) * | 2018-11-30 | 2020-06-04 | Nutanix, Inc. | Systems and methods for upgrading hypervisor locally |
JP2022189454A (ja) * | 2021-06-11 | 2022-12-22 | 株式会社日立製作所 | ファイルストレージシステム、及び管理情報ファイル回復方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07219905A (ja) * | 1994-02-07 | 1995-08-18 | Fujitsu Ltd | 分散ファイルシステム |
JP2005063214A (ja) * | 2003-08-15 | 2005-03-10 | National Institute Of Advanced Industrial & Technology | データ管理方法および装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6360330B1 (en) * | 1998-03-31 | 2002-03-19 | Emc Corporation | System and method for backing up data stored in multiple mirrors on a mass storage subsystem under control of a backup server |
US7310644B2 (en) * | 2001-06-06 | 2007-12-18 | Microsoft Corporation | Locating potentially identical objects across multiple computers |
US7716180B2 (en) * | 2005-12-29 | 2010-05-11 | Amazon Technologies, Inc. | Distributed storage system with web services client interface |
WO2011023134A1 (en) * | 2009-08-28 | 2011-03-03 | Beijing Innovation Works Technology Company Limited | Method and system for managing distributed storage system through virtual file system |
-
2011
- 2011-02-23 JP JP2011036880A patent/JP5589205B2/ja not_active Expired - Fee Related
- 2011-03-01 WO PCT/JP2011/054646 patent/WO2012114531A1/ja active Application Filing
- 2011-03-01 US US13/823,186 patent/US20130325915A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07219905A (ja) * | 1994-02-07 | 1995-08-18 | Fujitsu Ltd | 分散ファイルシステム |
JP2005063214A (ja) * | 2003-08-15 | 2005-03-10 | National Institute Of Advanced Industrial & Technology | データ管理方法および装置 |
Non-Patent Citations (2)
Title |
---|
HIROKAZU TAKAHASHI ET AL.: "Zukai Linux Kernel .4 no Sekkeo ti Jisso", LINUX JAPAN, vol. 4, no. 4, 1 April 2001 (2001-04-01), pages 179 - 180 * |
KOHEI HIRAGA ET AL.: "Design of Distributed Metadata Management System for Global File System", IPSJ SIG NOTES, HEISEI 21 NENDO (3), 15 October 2009 (2009-10-15), pages 1 - 7 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2015097774A1 (ja) * | 2013-12-25 | 2015-07-02 | 株式会社日立製作所 | 計算機システム及びデータ管理方法 |
JP6034512B2 (ja) * | 2013-12-25 | 2016-11-30 | 株式会社日立製作所 | 計算機システム及びデータ管理方法 |
US9934248B2 (en) | 2013-12-25 | 2018-04-03 | Hitachi, Ltd. | Computer system and data management method |
Also Published As
Publication number | Publication date |
---|---|
US20130325915A1 (en) | 2013-12-05 |
JP2012174096A (ja) | 2012-09-10 |
JP5589205B2 (ja) | 2014-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5589205B2 (ja) | 計算機システム及びデータ管理方法 | |
US11288267B2 (en) | Pluggable storage system for distributed file systems | |
JP7090606B2 (ja) | データベース・システムにおけるテスト・データの形成及び動作 | |
US11468103B2 (en) | Relational modeler and renderer for non-relational data | |
US7979478B2 (en) | Data management method | |
US7765189B2 (en) | Data migration apparatus, method, and program for data stored in a distributed manner | |
US7376658B1 (en) | Managing cross-store relationships to data objects | |
US9378216B2 (en) | Filesystem replication using a minimal filesystem metadata changelog | |
US20160267132A1 (en) | Abstraction layer between a database query engine and a distributed file system | |
CN111801661A (zh) | 多主机分布式数据管理系统中的事务操作 | |
US20060206507A1 (en) | Hierarchal data management | |
JP2004070403A (ja) | ファイル格納先ボリューム制御方法 | |
KR100529661B1 (ko) | 오브젝트 통합 관리 시스템 | |
JP2018538600A (ja) | データ準備のためのシグニチャベースのキャッシュ最適化 | |
US11741144B2 (en) | Direct storage loading for adding data to a database | |
EP2981908A1 (en) | Query integration across databases and file systems | |
US9934248B2 (en) | Computer system and data management method | |
KR101628676B1 (ko) | 대용량 과학 데이터 파일의 분산 저장 시스템 및 방법 | |
KR20130053152A (ko) | 태그 기반 파일 관리 방법 및 그 시스템 | |
JP2006031608A (ja) | 計算機、ストレージシステム、計算機が行うファイル管理方法、およびプログラム | |
EP3436973A1 (en) | File system support for file-level ghosting | |
CN113811867A (zh) | 用于文件系统中的文件的硬链接操作 | |
JP4079990B2 (ja) | オブジェクト統合管理システムの生成方法 | |
Groth | A distributed algorithm for determining the provenance of data | |
TWI475419B (zh) | 用於在儲存系統上存取檔案的方法和系統 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 11859236 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13823186 Country of ref document: US |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 11859236 Country of ref document: EP Kind code of ref document: A1 |