Source: https://patents.google.com/patent/JP2014085882A/en
Timestamp: 2019-12-13 15:54:46
Document Index: 669934285

Matched Legal Cases: ['art 11', 'art 12', 'art 14', 'art 15', 'art 16', 'art 17', 'art 23', 'art 27']

JP2014085882A - Information processor, storage server, storage system, backup method, and backup program - Google Patents
Information processor, storage server, storage system, backup method, and backup program Download PDF
JP2014085882A
JP2014085882A JP2012234964A JP2012234964A JP2014085882A JP 2014085882 A JP2014085882 A JP 2014085882A JP 2012234964 A JP2012234964 A JP 2012234964A JP 2012234964 A JP2012234964 A JP 2012234964A JP 2014085882 A JP2014085882 A JP 2014085882A
JP2012234964A
哲 小田
大子郎 横関
詩織 豊島
2012-10-24 Application filed by Nippon Telegr & Teleph Corp <Ntt>, 日本電信電話株式会社 filed Critical Nippon Telegr & Teleph Corp <Ntt>
2012-10-24 Priority to JP2012234964A priority Critical patent/JP2014085882A/en
2014-05-12 Publication of JP2014085882A publication Critical patent/JP2014085882A/en
[PROBLEMS] To store data at a minimum cost for a user. [MEANS FOR SOLVING PROBLEMS] A client 4 is generated when a server 2 stores data from a server 2 that stores data stored by clients 4, 5, and 6. The fee amount varies depending on the number of clients who have deposited the same data as the data. Then, the client 4 selects data to be deposited in the server 2 from the data stored in the file system 20 according to the acquired fee amount.
The present invention relates to an information processing apparatus, a storage server, a storage system, a backup method, and a backup program.
Conventionally, as an example of a storage service for storing client data, an online storage service for storing client data in a storage device installed on a network has been provided. Such an online storage service has been spreading in recent years because it can read data from the storage device without depending on the terminal environment on the client side.
On the other hand, along with the increase in data stored in the storage device, the burden of capital investment on the service provider, the usage fee on the user side, and the load on the network and storage device increase, and the performance of the online storage service decreases. doing. In order to cope with such an increase in data, when storing data in the storage device, it is determined whether or not the same data has already been stored. If the same data is stored, duplicate storage is performed. There is known a dedupe technique that does not perform the above.
In addition, there is known a technique for reducing the storage cost of data by determining the identity of data to be registered to avoid duplicate storage, and individually managing only metadata indicating data for each user. For example, a storage apparatus to which such a technique is applied receives only a hash value of data as metadata from a client. Then, the storage apparatus determines whether data having the same hash value as the received hash value is stored. If the storage device stores data having the same hash value as the received hash value, the storage device gives the client access rights to the stored data, thereby avoiding duplicate storage of the same data.
JDSF | General information site on data storage | Japan Data Storage Forum [online], [October 15, 2012 search], Internet <URL: http://www.jdsf.gr.jp/de-dupe/index .html> Makoto Goto, "Deduplication Online Storage Service for Consumers", IPA 2009 (2009) Results Report Unexplored IT Human Resource Discovery and Development Project Mark W. Storer, Kevin Greenan, Darrell D. E. Long, Ethan L. Miller, "Secure Data Deduplication", StorageSS '08, October 31, 2008
However, the above-described dedupe technique and the technique for individually managing only the metadata for each user have a problem that the cost on the user side cannot be reduced.
For example, in the above-described dedupe technique and the technique for individually managing only the metadata for each user, the storage cost of data in the storage device is reduced by preventing duplicate storage. However, even if the storage cost of data in such a storage device is reduced, there is no direct merit for the user.
As a result, incentives such as preferentially transferring data shared by many users to the storage device do not work, and data shared by many users is not transferred to the storage device, thus avoiding duplicate storage Can not do it. In addition, when the same data as the data that the client intends to newly store is not stored in the storage apparatus, data transfer is required, and thus the network load cannot be reduced.
When data is stored in a storage server on the network, it is common to encrypt the data in order to ensure the privacy of the client. However, data encrypted with different encryption keys cannot be distinguished from the same data even if the original data is the same data. For this reason, duplicate storage of the same data encrypted with different encryption keys cannot be avoided.
In addition, when the same data is encrypted with the same encryption key, the privacy of the user cannot be ensured. In addition, with the technology that manages only metadata for each user, data that the client does not actually own can be read from the storage server by sending the hash value of the data that the client does not actually own to the storage server. There's a problem.
In one disclosed embodiment, an object is to provide an information processing apparatus, a storage apparatus, a storage system, a backup program, and a backup method capable of storing data at a minimum cost for a user.
In one embodiment, the information processing apparatus stores one or more data. This information processing device is a fee that is incurred when depositing data from a storage server that deposits data from one or more information processing devices to the storage server, depending on the number of clients that deposit the same data Get variable charges. Then, the information processing apparatus selects data to be deposited in the storage server according to the acquired fee amount.
In one embodiment, an information processing apparatus, a storage server, a storage system, a backup program, and a backup method that can store data at a minimum cost for a user can be provided.
FIG. 1 is a diagram for explaining a storage system according to the first embodiment. FIG. 2 is a diagram illustrating a functional configuration of the server according to the first embodiment. FIG. 3 is a diagram illustrating an example of information stored in the meta information storage unit. FIG. 4 is a diagram for explaining an example of information stored in the saved information user database. FIG. 5 is a diagram for explaining a functional configuration of a client according to the first embodiment. FIG. 6 is a diagram illustrating an example of information stored in the meta information management unit. FIG. 7 is a flowchart for explaining the flow of processing executed by the monitoring agent when the client is activated for the first time. FIG. 8 is a flowchart for explaining the flow of processing periodically executed by the server. FIG. 9 is a flowchart for explaining the flow of processing periodically executed by the client. FIG. 10 is a flowchart for explaining the flow of data storage processing executed by the server. FIG. 11 is a flowchart for explaining the flow of data acquisition processing executed by the server. FIG. 12 is a flowchart for explaining the flow of data deletion processing executed by the server. FIG. 13 is a flowchart for explaining the flow of processing executed by the client when writing data. FIG. 14 is a flowchart for explaining the flow of processing executed by the client when reading data. FIG. 15 is a flowchart for explaining the flow of processing executed by the client when updating data. FIG. 16 is a flowchart for explaining the flow of processing executed by the client when data is deleted. FIG. 17 is a diagram illustrating a computer that executes a storage program.
The information processing apparatus, storage server, storage system, backup method, and backup program will be described below with reference to the accompanying drawings.
Hereinafter, an example of a storage system that stores data deposited by a plurality of clients will be described with reference to FIG. FIG. 1 is a diagram for explaining a storage system according to the first embodiment. In the example illustrated in FIG. 1, the storage system 1 includes a server 2, a network 3, and a plurality of clients 4 to 6.
The network 3 is an arbitrary communication network such as a WWW (World Wide Web), a LAN (Local Area Network), or a WAN (Wide Area Network). Further, although three clients 4 to 6 are shown in FIG. 1, the network 3 can have an arbitrary number of similar clients. Further, in the following description, the clients 5 and 6 assume the same functions as the client 4 and will not be described in detail.
The server 2 is a storage server that stores data deposited by the clients 4 to 6 via the network 3. Further, the server 2 has a function of avoiding redundant storage of data that has already been stored. Hereinafter, an example of the operation of the server 2 will be described. In the following description, it is assumed that the clients 4 to 6 store the data A, respectively.
For example, when receiving a storage request for requesting storage of data A from the client 4 via the network 3, the server 2 determines whether or not the data A is stored. If the server 2 determines that the data A is not stored, the server 2 receives the data A from the client 4 via the network 3, stores the received data A, and the client 4 stores the data A. Metadata indicating that it is held is stored.
Subsequently, when receiving a storage request for requesting storage of data A from the client 5, the server 2 determines whether or not the data A is stored. Here, the server 2 stores data A received from the client 4. Therefore, the server 2 does not receive the data A from the client 5 and stores only metadata indicating that the client 5 holds the data A.
Further, the server 2 calculates a market price that is a charge per unit time for storing data. Specifically, for each stored data, the server 2 calculates a market price that varies depending on the size of the data and the number of clients that hold the data. As a detailed example, the server 2 assumes that the data size is “S”, the number of clients holding data is “N”, the unit price per data size is “C”, and the basic charge is “B”. A value “V” represented by “V = (S / N) * C + B” is a market price. For this reason, the server 2 decreases the value of the market price as the data size is small, and decreases the value of the market price as the number of clients holding data increases.
On the other hand, the client 4 stores a plurality of data. In addition, the client 4 acquires the market price for each stored data from the server 2. Then, the client 4 selects data to be deposited in the server 2 according to the acquired market price, and transmits a storage request for the selected data to the server 2 via the network 3. As described above, the client 4 obtains the market price from the server 2 for each data to be stored, and selects the data to be deposited in the server 2 according to the obtained market price. Can be stored.
In addition, the market price when the server 2 stores data varies depending on the number of clients that have deposited the same data with the server 2. For this reason, when the client 4 selects the data to be transmitted to the server 2 according to the value of the market price acquired from the server 2, the client 4 tries to deposit the same data as the data deposited by the server 2. To do. Here, when the server 2 receives a storage request related to the same data as the data already stored, the server 2 does not receive the data but stores only the metadata indicating that the data is retained. As a result, since the storage system 1 can reduce the amount of data transferred, the load on the network can be reduced.
[Server function configuration]
Next, the functional configuration of the server 2 will be described with reference to FIG. FIG. 2 is a diagram illustrating a functional configuration of the server according to the first embodiment. As shown in FIG. 2, the server 2 includes a real data storage unit 10, a meta information storage unit 11, a stored information user database 12, a market value calculation unit 13, a response unit 14, a data transmission / reception unit 15, a virtual reception unit 16, and an authentication unit. 17. The actual data storage unit 10 stores data deposited from the clients 4 to 6.
Specifically, the actual data storage unit 10 is a KVS (Key Value Store) in which a meta information ID, which is information uniquely indicating data, is set to key, and a data body indicated by the meta information ID is set to value. Here, it is desirable that the meta information ID is an ID that always has different data indicating different values. For example, the actual data storage unit 10 uses a meta information ID as an output when a data body is input to a hash function having collision difficulty, such as SHA (Secure Hash Algorithm) 256, and corresponds to the meta information ID and the data body. Add and remember.
The meta information storage unit 11 stores the meta information ID of the data stored in the actual data storage unit 10 and the market price in association with each other. Hereinafter, information stored in the meta information storage unit 11 will be described with reference to FIG. FIG. 3 is a diagram illustrating an example of information stored in the meta information storage unit. In the example illustrated in FIG. 3, the meta information storage unit 11 stores a meta information ID, a storage destination, a data size, a storage number, a market price, and a storage list in association with each other. Here, the storage destination is information indicating a location where the data indicated by the associated meta information ID is stored, and more specifically, an address indicating the storage area of the actual data storage unit 10.
The data size is information indicating the data capacity of the data indicated by the associated meta information ID. The number of saved items is information indicating the number of clients that have deposited the data indicated by the meta information ID with the server 2. Further, the market price is a charge per unit time that is generated when the data indicated by the meta information ID is stored, and increases as the data size of the data indicated by the meta information ID increases, and decreases as the storage number increases. It is a value calculated by the function to The save list is a list of user IDs that uniquely indicates users who have deposited the data indicated by the meta information ID.
For example, in the example illustrated in FIG. 3, the meta information storage unit 11 stores the data indicated by the meta information ID “0x0123456” at “address # 1” of the actual data storage unit 10 and the data size is “10 kb (kilobytes). ) ”. Further, the meta information storage unit 11 indicates that “2” clients have deposited the data indicated by the meta information ID “0x0123456” and the market price is “5”. Further, the meta information storage unit 11 indicates that the data indicated by the meta information ID “0x0123456” is deposited by the clients whose client user IDs are “1” and “2”.
In the example shown in FIG. 3, the meta information storage unit 11 stores the data indicated by the meta information ID “0x0123457” at “address # 2” of the actual data storage unit 10 and the data size is “24 kb”. It shows that it is. Also, the meta information storage unit 11 stores the data indicated by the meta information ID “0x0123457” by “1” client, the market price is “24”, and the user ID of the client who has stored the data is “4”. Indicates that there is.
In the example illustrated in FIG. 3, the meta information storage unit 11 stores the data indicated by the meta information ID “0x0123458” at “address # 3” of the actual data storage unit 10 and the data size is “1024 MB (megabytes). ) ”. Further, in the meta information storage unit 11, the data indicated by the meta information ID “0x0123458” is deposited by “3241817” clients, the market price is “0.05”, and the user ID of the client who deposited the data is “1”. 2, 3, ... ".
Returning to FIG. 2, the saved information user database 12 stores the user IDs of the clients 4 to 6 and the meta information IDs indicating the data deposited by the clients 4 to 6 in association with each other. Hereinafter, an example of information stored in the saved information user database 12 will be described with reference to FIG.
FIG. 4 is a diagram for explaining an example of information stored in the saved information user database. As shown in FIG. 4, the stored information user database 12 stores a user ID, authentication information, a meta information ID list, and billing information in association with each other. Here, the authentication information is information for authenticating the client indicated by the associated user ID.
The meta information ID list is a list of meta information IDs indicating data deposited by the client to the server 2. The billing information is the sum of the market prices of the data indicated by the meta information IDs included in the meta information ID list, and is a charge per unit time charged for the client indicated by the associated user ID.
For example, in the example illustrated in FIG. 4, the saved information user database 12 indicates that a certificate is stored to authenticate a client whose user ID is “1”. In the stored information user database 12, the client with the user ID “1” deposits the data indicated by the meta information ID “0x01” and “0x02” in the server 2, and the charge per unit time is “2”. It shows that it is.
The saved information user database 12 indicates that a password is stored to authenticate a client having a user ID “2”. Further, in the stored information user database 12, a client having a user ID “2” deposits data indicated by meta information “0x01” and “0x03” in the server 2, and a charge per unit time is “2.1. ".
The stored information user database 12 indicates that a source IP (Internet Protocol) for authenticating a client having a user ID “3” is stored. In the stored information user database 12, the client with the user ID “3” deposits the meta information “0x04”, “0x07”, and “0x01” data in the server 2, and the charge per unit time is “1”. .05 ".
Returning to FIG. 2, the market price calculation unit 13 calculates the market price according to the number of clients that have deposited the data for each data stored in the actual data storage unit 10. Specifically, the market price calculation unit 13 periodically accesses the meta information storage unit 11 and calculates a market price value for each meta information ID.
For example, the market price calculation unit 13 acquires the data size and the number of storages for each meta information ID from the meta information storage unit 11. Then, the market value calculator 13 sets the data size to “S”, the number of saved data to “N”, the unit price per data size to “C”, and the basic charge to “B”, “V = (S / N) * C + B "V" is calculated. Then, the market price calculation unit 13 updates the market price value stored in the meta information storage unit 11 with the calculated market price value “V”.
In the above description, the formula used by the market price calculation unit 13 to calculate the value of the market price is merely an example, and different formulas may be used depending on the accounting system of the storage system 1 and the number of clients. For example, the market price calculation unit 13 may consider weighting according to the data size and the number of stored values.
In response to requests from the clients 4 to 6, the response unit 14 notifies the market price when the server 2 stores the data stored in the clients 4 to 6. Specifically, when the response unit 14 receives the meta information ID from the clients 4 to 6 via the network 3, the response unit 14 requests the authentication unit 17 to authenticate the client that is the transmission source of the meta information ID.
When the response unit 14 receives a notification from the authentication unit 17 that the client authentication has been normally performed, the response unit 14 accesses the meta information storage unit 11 and the current price associated with the received meta information ID. To get. Then, the response unit 14 transmits the acquired market price to the client that is the transmission source of the meta information ID. When the meta information storage unit 11 does not store the market price associated with the received meta information ID, the response unit 14 transmits “null” indicating that the market price is not stored. Send to the original client. When the response unit 14 receives a notification from the authentication unit 17 that the client authentication has not been performed normally, the response unit 14 transmits an error response to the client that is the transmission source of the meta information ID.
When the data transmission / reception unit 15 receives a data acquisition request from the clients 4 to 6, the data transmission / reception unit 15 performs the following data acquisition process. First, the data transmission / reception unit 15 acquires the user ID of the acquisition requesting client and the meta information ID of the data to be acquired. Next, the data transmitting / receiving unit 15 accesses the stored information user database 12 and determines whether or not the acquisition request source user ID and the meta information ID of the data to be acquired are stored in association with each other.
When the user ID of the acquisition request source and the meta information ID of the data to be acquired are stored in association with the saved information user database 12, the user transmission / reception unit 15 stores the meta of the data to be acquired. Data with the information ID “key” is acquired from the actual data storage unit 10. That is, the user transmission / reception unit 15 acquires data to be acquired from the actual data storage unit 10. Thereafter, the user transmitting / receiving unit 15 transmits the acquired data to the acquisition requesting client. On the other hand, if the user ID of the acquisition request source and the meta information ID of the data to be acquired are not stored in association with the saved information user database 12, the user transmission / reception unit 15 sends an error notification to the request source client. Send to.
In addition, when the data transmission / reception unit 15 receives a data storage request from the clients 4 to 6, the data transmission / reception unit 15 performs the following data storage process. First, the data transmission / reception unit 15 acquires the user ID of the client requesting the storage request and the meta information ID of the data to be stored. Next, the data transmitting / receiving unit 15 determines whether or not the meta information storage unit 11 stores the meta information ID of the data to be stored. That is, the data transmitting / receiving unit 15 determines whether the data to be stored is already stored in the actual data storage unit 10.
Then, when the meta information storage unit 11 stores the meta information ID of the data to be stored, the data transmitting / receiving unit 15 stores the data to the virtual receiving unit 16 by the client of the storage request source. Request to determine if Thereafter, when the data transmission / reception unit 15 receives a notification from the virtual reception unit 16 that the storage request source client stores the data, the storage request source user ID and the meta information ID of the data to be stored Are stored in the saved information user database 12 in association with each other. Specifically, the data transmitting / receiving unit 15 adds the meta information ID of the data to be stored to the meta information ID list associated with the user ID of the client requesting the storage request.
Further, the data transmission / reception unit 15 accesses the meta information storage unit 11 and adds the user ID of the storage requesting client to the save list associated with the meta information ID of the data to be stored. Then, the data transmitting / receiving unit 15 notifies the storage request source client that the data access right has been set. On the other hand, when the data transmission / reception unit 15 receives a notification from the virtual reception unit 16 that the storage requesting client does not store data, the data transmission / reception unit 15 transmits an error notification to the storage requesting client.
Further, when the meta information storage unit 11 does not store the meta information ID of the data to be stored, the data transmitting / receiving unit 15 transmits a data transmission request to the storage request source client, and the data to be stored Receive. The data transmitting / receiving unit 15 stores the meta information ID of the data to be stored in association with the data to be stored in the actual data storage unit 10.
Further, the data transmission / reception unit 15 adds an entry for the meta information ID of the data to be stored to the meta information storage unit 11, and adds the user ID of the client that requested the storage to the storage list of the added entry. Further, the data transmitting / receiving unit 15 accesses the stored information user database 12 and adds the meta information ID of the data to be stored to the meta information ID list associated with the user ID of the client requesting the storage.
In addition, when the data transmission / reception unit 15 receives a data deletion request from the clients 4 to 6, the data transmission / reception unit 15 performs the following data deletion process. First, the data transmission / reception unit 15 acquires the user ID of the deletion request source client and the meta information ID indicating the data to be deleted. Then, the data transmission / reception unit 15 accesses the stored information user database 12 and deletes the acquired meta information ID from the meta information ID list associated with the user ID of the deletion request source client. Further, the data transmission / reception unit 15 accesses the meta information storage unit 11 and deletes the user ID of the deletion request source client from the save list associated with the meta information ID of the data to be deleted.
The data transmission / reception unit 15 requests the authentication unit 17 to authenticate various requesting clients before performing the above-described data acquisition processing, data storage processing, and data deletion processing. When the data transmission / reception unit 15 receives notification from the authentication unit 17 that the client has been successfully authenticated, the data transmission / reception unit 15 starts various processes. On the other hand, when the data transmission / reception unit 15 receives a notification from the authentication unit 17 that the client could not be normally authenticated, the data transmission / reception unit 15 transmits an error notification to various requesting clients.
When the virtual transmission / reception unit 16 is requested by the data transmission / reception unit 15 to determine whether the storage requesting client stores data, the virtual reception unit 16 executes the following processing. First, the virtual receiving unit 16 generates a random number, transmits the generated random number to the client that requests the storage, and requests a hash value that receives the transmitted random number and the data to be stored. Specifically, the virtual receiving unit 16 sets the hash value “C = Hash (R || A)” when the generated random number is “R” and the data to be stored is “A”. C "is requested.
In addition, the virtual reception unit 16 acquires from the actual data storage unit 10 data having a meta information ID of data to be stored as key, that is, data to be stored. Then, the virtual receiving unit 16 sets the acquired data as “A ′”, the generated random number as “R”, and the hash value “C ′” represented by “C ′ = Hash (R || A ′)”. calculate. Thereafter, when the hash value “C” acquired from the storage request source matches the calculated hash value “C ′”, the virtual reception unit 16 indicates that the storage request source client stores data. The data transmission / reception unit 15 is notified. On the other hand, if the hash value “C” acquired from the storage request source and the calculated hash value “C ′” do not match, the virtual reception unit 16 does not store the data. This is notified to the data transmitting / receiving unit 15.
As described above, when the server 2 receives a storage request for data already stored in the real data storage unit 10, the server 2 generates a random number, transmits the generated random number to the client that is the storage request source, and becomes a storage target. A hash value is calculated by inputting the data and the transmitted random number. Further, the server 2 calculates a hash value with the data to be stored and the generated random number as inputs. Then, the server 2 compares the hash value calculated by itself with the hash value generated by the client that is the storage request source, so that the client that is the storage request source actually stores the data to be stored Determine whether or not.
As a result, since the server 2 can prevent registration of the user ID for a client having only the meta information ID, it is possible to prevent data read by such a client and improve the security performance.
The authentication unit 17 authenticates the client that communicates with the response unit 14 or the data transmission / reception unit 15 by using an authentication protocol determined in advance with each of the clients 4 to 6. For example, when the authentication unit 17 is requested to authenticate the client from the response unit 14 or the data transmission / reception unit 15, the authentication unit 17 reads the authentication information of the client to be authenticated from the saved information user database 12. Then, the authentication unit 17 executes client authentication using the read authentication information, and notifies the response unit 14 or the data transmission / reception unit 15 of the authentication result.
Note that the authentication unit 17 can apply an arbitrary protocol to the method of authenticating the clients 4 to 6. For example, when the authentication information “certificate” is associated with the user ID of the client to be authenticated, the authentication unit 17 performs authentication using the public key certificate. Further, when the authentication information “password” is associated with the user ID of the client to be authenticated, the authentication unit 17 requests the client to be authenticated to transmit the password. If the password received as a response matches the password stored in the saved information user database 12, the authentication unit 17 authenticates the client to be authenticated.
Further, when the authentication information “source IP” is associated with the user ID of the client to be authenticated, the authentication unit 17 confirms the IP address of the client to be authenticated. If the confirmed IP address matches the IP address stored in the saved information user database 12, the authentication unit 17 authenticates the client to be authenticated.
[Client function configuration]
Next, the functional configuration of the client 4 will be described with reference to FIG. FIG. 5 is a diagram for explaining a functional configuration of a client according to the first embodiment. In the example illustrated in FIG. 5, the client 4 includes a file system 20, an application 21, a meta information management unit 22, a filter file system 23, a monitoring agent 24, a setting unit 25, a data transmission / reception unit 26, a virtual transmission unit 27, and an authentication unit 28. Have
The file system 20 is a storage unit that stores various data, and an existing file system that is generally used can be applied. The application 21 is an application that the client 4 operates, and has a function of creating, changing, and deleting data stored in the file system 20 via the filter file system 23. It should be noted that the function of creating, changing, and deleting data by the application 21 is assumed to be performed by a general file operation API (Application Programming Interface), and detailed description thereof is omitted.
The meta information storage unit 22 stores the meta information ID of data stored in the file system 20, the access frequency to the data, the market price of the data, and the efficiency when the data is stored in the server 2 in association with each other. Hereinafter, an example of information stored in the meta information storage unit 22 will be described with reference to FIG.
FIG. 6 is a diagram illustrating an example of information stored in the meta information management unit. In the example illustrated in FIG. 6, the meta information management unit 22 stores a file ID, a meta information ID, property information, access information, efficiency, market price, and deposit information in association with each other. Here, the file ID is an identifier that uniquely specifies data of each file stored in the file system 20. If there are a plurality of replicated data in the file system 20, different file IDs are assigned to the respective data, but the meta information ID of each replicated data may be the same. .
The property information is information indicating the characteristics of the data indicated by the associated file ID, and is, for example, a file path (filepath) indicating a position where the data is stored in the file system 20 or a data size. . The access information is information indicating the access frequency for the data indicated by the associated file ID, and is, for example, the number of accesses per unit time or the Unix time when there was the last access.
The efficiency is a value calculated from the access information and the market price, and is information indicating the efficiency when the data indicated by the associated file ID is deposited in the server 2. Specifically, the efficiency is a value calculated by the monitoring agent 24, and is a value calculated from the access information, the current price, and the data size. The larger the value, the higher the value that should be deposited in the server 2. Show. For example, the efficiency is a value that increases as the value of access information, the value of market price, or the value of data size is smaller, the market price is “v”, the data size is “s”, and the access information is “a”. When "," 1 / (ak + v / s ) ", or a value calculated by" 1 / (a k + v / s) ".
Here, “k” is an arbitrary coefficient set according to the status of the storage system 1. For example, the coefficient “k” is a parameter set based on the amount of network traffic allowed by the storage system 1, the cost allowed for the network, the cost allowed for the storage such as the actual data storage unit 10, and the like. The storage system 1 can propose the minimum point between the cost for the user and the network traffic of the storage system 1 to the user by setting the coefficient “k” to an appropriate value.
The market price is a market price generated when the data indicated by the associated file ID is deposited in the server 2, and is a market price that the monitoring agent 24 acquires from the server 2 for each data stored in the file system 20. is there. That is, the meta information management unit 22 stores the market price calculated by the server 2. The deposit information is information indicating whether or not the data indicated by the associated file ID has been deposited in the server 2, and “◯” indicating that the data has been deposited, or indicating that the data has not been deposited. “X” is stored.
The filter file system 23 controls access of the application 21 to each data stored in the file system 20. Specifically, the filter file system 23 executes the following writing process when the application 21 generates new data to be stored in the file system 20.
First, the filter file system 23 acquires data generated by the application 21 instead of the file system 20. The filter file system 23 stores the acquired data in the file system 20 and adds a new entry to the meta information management unit 22. Then, the filter file system 23 stores a meta information ID, which is a hash value of data stored in the file system 20, a file ID, and property information in a new entry. The filter file system 23 stores the Unix time when the data is stored in the access information.
The filter file system 23 executes the following read process when the application 21 reads data stored in the file system 20. First, the filter file system 23 extracts an entry storing a file ID indicating data to be read from each entry of the meta information management unit 22. Then, the filter file system 23 determines whether or not the deposit information of the extracted entry is “◯”.
Here, when the deposit information is “◯”, the filter file system 23 outputs the meta information ID of the extracted entry to the data transmitting / receiving unit 26 and requests the data transmitting / receiving unit 26 to execute the data acquisition process. . Thereafter, when receiving the data to be read from the data transmitting / receiving unit 26, the filter file system 23 outputs the received data to the application 21 and updates the access information of the extracted entry.
On the other hand, if the deposit information is “x”, the filter file system 23 acquires the data to be read from the file system 20, outputs the acquired data to the application 21, and updates the access information of the extracted entry To do.
In addition, when the application 21 updates the data stored in the file system 20, the filter file system 23 executes the following update process. First, the filter file system 23 extracts an entry storing a file ID indicating data to be read from the meta information management unit 22. Then, the filter file system 23 determines whether or not the deposit information of the extracted entry is “◯”.
Here, when the deposit information is “◯”, the filter file system 23 makes a difference between the data deposited in the server 2 and the data stored in the file system 20, so the data deposited in the server 2 Must be deleted. Therefore, the filter file system 23 outputs the meta information ID of the extracted entry to the data transmission / reception unit 26 and requests the data transmission / reception unit 26 to execute the data deletion process.
Then, the filter file system 23 updates the data stored in the file system 20 and updates the access information of the extracted entry. On the other hand, when the deposit information is “x”, the filter file system 23 updates the data stored in the file system 20 and updates the access information of the extracted entry.
In addition, when the application 21 deletes data, the filter file system 23 performs the same process as the update process, thereby deleting the data stored in the server 2 or the data stored in the file system 20. Do. At this time, the filter file system 23 deletes the entry storing the file ID indicating the data to be deleted from the meta information management unit 22.
The monitoring agent 24 periodically crawls the file system 20 and updates information stored in the meta information management unit 22. Specifically, the monitoring agent 24 acquires the value of the market price associated with each meta information ID stored in the meta information management unit 22 periodically from the server 2. Then, the monitoring agent 24 updates the value of the market price associated with each meta information ID stored in the meta information management unit 22 with the acquired value of the market price.
For example, the monitoring agent 24 transmits the meta information ID stored in the meta information management unit 22 to the response unit 14 to the response unit 14, and acquires the market price for the data indicated by each meta information ID from the response unit 14. . Then, the monitoring agent 24 stores the acquired market price in the meta information management unit 22.
Further, the monitoring agent 24 calculates the efficiency for each entry of the meta information management unit 22 from the access information, the current price, and the property information. For example, if the market price is “v”, the data size is “s”, and the access information is “a”, the monitoring agent 24 is “1 / (ak + v / s)” or “1 / (ak + v / s)”. Update the efficiency value of each entry with the calculated efficiency value.
Further, the monitoring agent 24 selects each entry of the meta information management unit 22 in descending order of efficiency until the sum of the market prices becomes a predetermined value. That is, the monitoring agent 24 selects data that fits within a predetermined budget in descending order of efficiency. Then, the monitoring agent 24 executes a data deposit process indicated by the meta information ID of the selected entry.
For example, the monitoring agent 24 confirms the deposit information of the selected entry. If the deposit information is “◯”, the monitoring agent 24 ends the processing. On the other hand, when the deposit information of the selected entry is “x”, the monitoring agent 24 outputs the meta information ID of the selected entry to the data transmitting / receiving unit 26 and requests execution of the data storage process. When the monitoring agent 24 is notified of the completion of the data storage process from the data transmitting / receiving unit 26, it updates the deposit information of the selected entry to “◯” and ends the data deposit process.
Further, when the data deposit process is completed, the monitoring agent 24 checks the deposit information of the entry that is not the target of the data deposit process. When the deposit information of the entry that is not the target of the data deposit process is “◯”, the monitoring agent 24 outputs the meta information ID of the entry to the data transmission / reception unit 26 and executes the data acquisition process. And request execution of data deletion process.
The setting unit 25 sets various processes executed by the monitoring agent 24. For example, the setting unit 25 sets a time interval at which the monitoring agent 24 crawls the file system 20 and sets a maximum value of the market price generated when depositing data in the server 2.
The data transmitter / receiver 26 transmits / receives data in cooperation with the data transmitter / receiver 15 of the server 2. Specifically, when the data transmitting / receiving unit 26 receives the meta information ID from the filter file system 23 or the monitoring agent 24 and is requested to execute the data storage process, the data acquisition process, or the data deletion process, Perform the requested process.
For example, when executing the data storage process, the data transmission / reception unit 26 transmits a meta information ID to the data transmission / reception unit 15 of the server 2 and transmits a data storage request. In such a case, the data transmission / reception unit 15 of the server 2 identifies the client 4 as the storage requesting client.
Here, when the data indicated by the meta information ID transmitted by the data transmitter / receiver 26 is not stored, the data transmitter / receiver 15 transmits a data transmission request to the data transmitter / receiver 26. In such a case, the data transmission / reception unit 26 acquires the data indicated by the meta information ID from the file system 20 and transmits the acquired data to the data transmission / reception unit 15 of the server 2. Then, the data transmitting / receiving unit 26 deletes the acquired data from the file system 20 and notifies the monitoring agent 24 of the completion of the data storage process.
On the other hand, when the server 2 stores the data indicated by the transmitted meta information ID, the virtual transmission unit 27 cooperates with the virtual reception unit 16 to store the data indicated by the transmitted meta information ID as described later. It is determined whether or not the system 20 has memorized it. When the virtual reception unit 16 determines that the file system 20 stores the data indicated by the transmitted meta ID, the data transmission / reception unit 26 notifies the data transmission / reception unit 15 that the access right has been set. Receive. In such a case, the data transmitting / receiving unit 26 notifies the monitoring agent 24 of the completion of the data storage process.
Further, when executing the data acquisition process, the data transmission / reception unit 26 transmits the meta information ID to the data transmission / reception unit 15 of the server 2 and transmits a data acquisition request. In such a case, the data transmission / reception unit 15 identifies the client 4 as the acquisition request source client, and transmits the data indicated by the meta information ID transmitted by the data transmission / reception unit 26 to the data transmission / reception unit 26. Then, the data transmitting / receiving unit 26 notifies the filter file system 23 of the received data and the completion of the data acquisition process.
Further, when executing the data deletion processing, the data transmission / reception unit 26 transmits a meta information ID to the data transmission / reception unit 15 of the server 2 and issues a data deletion request for requesting deletion of data indicated by the transmitted meta information ID. Send. Note that the data transmission / reception unit 26 requests the authentication unit 28 to perform authentication of the client 4 with respect to the server 2 when executing data storage processing, data acquisition processing, and data deletion processing. Then, after the authentication unit 28 succeeds in authentication, the data transmission / reception unit 26 executes the above-described data storage processing, data acquisition processing, and data deletion processing.
The virtual transmission unit 27 determines whether the data stored in the server 2 is stored in the client 4 in cooperation with the virtual reception unit 16. Specifically, the virtual transmission unit 27 receives a random number from the virtual reception unit 16 and a request for a hash value that receives the random number and data to be stored.
In such a case, the virtual transmission unit 27 obtains data to be stored from the file system 20 and calculates a hash value with the obtained data and a random number as inputs. For example, the virtual transmission unit 27 calculates the hash value “C” represented by “C = Hash (R || A)”, assuming that the data to be stored is “A” and the received random number is “R”. Then, the virtual transmission unit 27 transmits the calculated hash value “C” to the virtual reception unit 16.
In other words, in the conventional technology that manages only metadata for each user, data that is not actually owned by the client can be read from the storage server by sending the hash value of the data that is not actually owned by the client to the storage server. There is a problem that you can. However, when the storage system 1 newly manages only the metadata, the server 2 and the client 4 calculate a hash value with the random number R and the data generated by the server 2 as inputs, and the calculated hash value By performing the matching, it is determined whether or not the client 4 actually stores data. For this reason, the storage system 1 can prevent unauthorized reading by a client that does not actually store data.
The authentication unit 28 authenticates the client 4 to the server 2 when the data transmission / reception unit 26 performs data storage processing, data acquisition processing, and data deletion processing. Specifically, the authentication unit 28 authenticates the client 4 by transmitting a certificate, a password, and the like to the authentication unit 17 based on the authentication method requested by the authentication unit 17.
[Flow of processing executed by the storage system]
Hereinafter, the flow of processing executed by the storage system 1 will be described with reference to FIGS. First, the flow of processing executed by the monitoring agent 24 when the client 4 is activated for the first time will be described with reference to FIG. FIG. 7 is a flowchart for explaining the flow of processing executed by the monitoring agent when the client is activated for the first time.
First, the monitoring agent 24 lists the data stored in the file system 20 (step S101). Next, the monitoring agent 24 calculates the meta information ID of each data, and registers the calculated meta information ID in the meta information management unit 22 (step S102). Then, the monitoring agent 24 registers the property information of each data in the meta information management unit 22 in association with the meta information ID of each data (step S103). Thereafter, the monitoring agent 24 initializes the access information associated with each data to the maximum value (step S104). For example, the monitoring agent 24 stores the Unix time at the time of processing execution as the access information associated with each data.
Next, the monitoring agent 24 determines whether or not the market price is known for the first entry stored in the meta information management unit 22 (step S105). If the entry is not known (No at Step S105), the monitoring agent 24 inquires the market price of the server 2 (Step S106). Next, the monitoring agent 24 determines whether or not the response of the market price from the server 2 is “null” (step S107). If it is “null” from the server 2 (Yes in step S107), The market price is calculated (step S108).
That is, the monitoring agent 24 calculates the market price when the data is not stored in the server 2 and the market price is not calculated, since the market price can be calculated by the client 4 alone. For example, the monitoring agent 24 calculates the market price “V” represented by “V = S * C + B”, where “S” is the data size, “B” is the basic fee, and “C” is the unit price per data size.
Next, the monitoring agent 24 registers the market price in the meta information management unit 22 (step S109), and then registers the efficiency in the meta information management unit 22 (step S110). Then, the monitoring agent determines whether or not efficiency has been registered for all data (step S111). If it is determined that efficiency has been registered for all data (Yes in step S111), the process ends. To do. On the other hand, if the monitoring agent 24 determines that the efficiency is not registered for all data (No at Step S111), the monitoring agent 24 moves the processing target to the next entry (Step S112) and executes the processing at Step S105. .
If the market price is known (Yes at Step S105), the monitoring agent 24 registers the known market price (Step S109). If the response of the market price notified from the server 2 is not “null” (No at Step S107), the monitoring agent 24 registers the market price notified from the server 2 (Step S109).
Next, the flow of processing that the server 2 periodically executes will be described with reference to FIG. FIG. 8 is a flowchart for explaining the flow of processing periodically executed by the server. In the example shown in FIG. 8, the server 2 calculates the market price per data size of the data indicated by the meta information ID stored in the meta information storage unit 11 (step S201). Then, the server 2 registers the calculated market price in the meta information storage unit 11 (step S202), and ends the process.
Next, the flow of processing periodically executed by the client 4 will be described with reference to FIG. 9. FIG. 9 is a flowchart for explaining the flow of processing periodically executed by the client. First, the client 4 inquires the server 2 about the market price for each meta information ID to be stored (step S301).
Next, the client 4 determines whether or not the response of the market price is “null” for each data (step S302). If the response of the market price is “null” (Yes in step S302), the client 4 The market price is calculated for the data whose response is “null” (step S303). Then, the client 4 registers the market price notified from the server 2 or the calculated market price in the meta information management unit 22 (step S304).
Next, the client 4 sorts the entries registered in the meta information management unit 22 in order of high efficiency (step S305), and selects the entry with the highest efficiency among the unselected entries (step S305). S306). Further, the client 4 determines whether or not the total price of the selected entry exceeds a predetermined value (step S307). If the total amount does not exceed the predetermined value (No at Step S307), the client 4 determines whether the deposit information of the entry selected at Step S306 is “◯” (Step S308).
If the client 4 determines that the deposit information is not “◯” (No at Step S308), the client 4 executes data storage processing (Step S309) and selects the next most efficient entry (Step S306). ). On the other hand, when the deposit information is “◯” (Yes at Step S308), the client 4 selects the next most efficient entry (Step S306).
Further, when the total value of the market value of the selected entry exceeds a predetermined value (Yes at Step S307), the client 4 determines whether or not the deposit information of the selected entry is “x” (Step S310). ). If the deposit information of the selected entry is not “x” (No at Step S310), the client 4 executes a data acquisition process for data indicated by the meta information ID of the selected entry (Step S311).
Next, the client 4 executes data deletion processing for the data indicated by the meta information ID of the selected entry (step S312), and determines whether or not the periodic processing has been executed for all entries (step S313). If the client 4 has executed the regular processing for all entries (Yes at step S313), the client 4 ends the processing.
On the other hand, if the regular processing has not been executed for all entries (No at Step S313), the client 4 selects the next entry not selected at Step S306 (Step S314), and executes the processing at Step S310. To do. Further, when the deposit information of the selected entry is “x” (Yes at Step S310), the client 4 executes the process of Step S313.
Next, the flow of data storage processing executed by the server 2 will be described with reference to FIG. FIG. 10 is a flowchart for explaining the flow of data storage processing executed by the server. In the following description, a case where the server 2 is requested to store data from the client 4 will be described. First, the server 2 receives the meta information ID from the client 4 (step S401). Next, the server 2 authenticates the client 4 (step S402).
Further, the server 2 determines whether or not the authentication of the client is successful (step S403). If the authentication is successful (Yes in step S403), the meta information ID notified from the client 4 to the meta information storage unit 11 Is registered (step S404). Then, the server 2 determines whether or not the meta information ID notified from the client 4 is registered in the meta information storage unit 11 (step S405). If it is registered (Yes in step S405), the random number R is generated and transmitted to the client 4 (step S406).
Next, the server 2 calculates a hash value having the random number R and the data as inputs (step S407), and receives the hash value calculated by the client 4 (step S408). Then, the server 2 determines whether or not the hash value calculated in step S407 matches the hash value received in step S408 (step S409). If it is determined that they do not match (No in step S409). ), An error is returned to the client 4 (step S410), and the process is terminated.
On the other hand, if the hash values match (Yes at Step S409), the server 2 adds 1 to the number of storages stored in the meta information storage unit 11 for the meta information ID notified from the client 4 (Step S411). Next, the server 2 updates the stored information user database 12 (step S412). Specifically, the server 2 adds the notified meta information ID to the meta information ID list associated with the user ID indicating the client 4 and updates the billing information. Thereafter, the client 4 deletes the data stored in the file system (step S413), and the data storage process ends.
On the other hand, when the notified meta information ID is not registered in the meta information storage unit 11 (No at Step S405), the server 2 requests the client 4 to transmit data (Step S414). Then, the server 2 calculates a meta information ID from the data received from the client 4 (step S415), and determines whether or not the calculated meta information ID matches the meta information ID received in step S401 (step S415). S416).
Next, when the calculated meta information ID matches the meta information ID received in Step S401 (Yes in Step S416), the server 2 stores data in the actual data storage unit 10 (Step S417). Then, the server 2 stores various pieces of meta information in the meta information storage unit 11 (step S418), and continuously executes the process of step S411. On the other hand, when the server 2 cannot authenticate the client 4 (No at Step S403), or when the meta information ID calculated at Step S415 does not match the meta information ID received at Step S401. (No in step S416), an error is returned to the client 4 (step S419), and the process ends.
Next, the flow of data acquisition processing executed by the server 2 will be described with reference to FIG. FIG. 11 is a flowchart for explaining the flow of data acquisition processing executed by the server. For example, the server 2 receives the meta information ID from the acquisition request source client (step S501). Then, the server 2 confirms the meta information ID list associated with the user ID indicating the acquisition request source client from the saved information user database 12 (step S502).
Then, the server 2 determines whether or not the meta information ID received in step S501 is included in the meta information ID list (step S503), and if included (Yes in step S503), the actual data Data having the meta information ID as key is acquired from the storage unit 10 (step S504). Then, the server 2 transmits the data to the acquisition requesting client (step S505), and ends the process. On the other hand, if the received meta information ID is not included in the meta information ID list (No at Step S503), the server 2 notifies the acquisition request source client of an error (Step S506) and ends the process.
Next, the flow of data deletion processing executed by the server 2 will be described with reference to FIG. FIG. 12 is a flowchart for explaining the flow of data deletion processing executed by the server. First, the server 2 receives the meta information ID from the deletion request source client (step S601). In such a case, the server 2 authenticates the deletion request source client (step S602), and determines whether or not the authentication is successful (step S603).
If the server 2 succeeds in authenticating the client requesting the deletion request (Yes at step S603), the server 2 stores the number of saves associated with the received meta information ID among the information stored in the meta information storage unit 11. The user ID indicating the deletion requesting client is deleted from the save list associated with the received meta information ID by 1 (step S604). Next, the server 2 determines whether or not the stored number associated with the received meta information ID is “0” (step S605). If the stored number is “0”, the server 2 has received the stored number. Data having the meta information ID “key” is deleted from the actual data storage unit 10 (step S606).
Further, the server 2 deletes the entry in which the received meta information ID is stored from the meta information storage unit 11 (step S607). Then, the server 2 accesses the stored information user database 12 and deletes the meta information ID received in step S601 from the meta information ID list associated with the user ID indicating the deletion request source client (step S608). ). Thereafter, the server 2 updates the billing information associated with the deletion request source client (step S609), and ends the process.
On the other hand, when the server 2 cannot authenticate the deletion request source client (No in step S603), the server 2 returns an error to the deletion request source client (step S610) and ends the processing. In addition, when the storage number associated with the received meta information ID is not “0” (step S605), the server 2 ends the process.
Next, a flow of processing executed by the client 4 when the application 21 writes new data will be described with reference to FIG. FIG. 13 is a flowchart for explaining the flow of processing executed by the client when writing data. For example, when the application 21 creates new data (step S701), the client 4 writes data to the file system 20 (step S702). Then, the client 4 creates an entry having a new file ID in the meta information management unit 22, stores the meta information ID, property information, and access information (step S703), and ends the process.
Next, a flow of processing executed by the client 4 when the application 21 reads data will be described with reference to FIG. FIG. 14 is a flowchart for explaining the flow of processing executed by the client when reading data. First, when the application 21 reads out data (step S801), the client 4 accesses the meta information management unit 22, and the deposit information associated with the data ID indicating the data to be read is “◯”. Is determined (step S802).
When the deposit information is not “◯” (No at Step S802), the client 4 reads the data to be read from the file system 20 (Step S803). On the other hand, when the deposit information is “◯” (Yes at Step S802), the client 4 executes a data acquisition process (Step S804). Specifically, the client 4 transmits a data acquisition request to the server 2 to cause the server 2 to execute the process of FIG.
Thereafter, the client 4 passes the data read from the file system 20 or the data received from the server 2 to the application (step S805), and stores it in the meta information management unit 22 in association with the meta information ID indicating the data to be read. The accessed access information is updated (step S806), and the process is terminated.
Next, a flow of processing executed by the client 4 when the application 21 updates data will be described with reference to FIG. FIG. 15 is a flowchart for explaining the flow of processing executed by the client when updating data. First, when the application 21 updates a file (step S901), the client 4 accesses the meta information management unit 22, and the deposit information associated with the data ID indicating the data to be updated is “◯”. Whether or not (step S902).
If the deposit information is “◯” (Yes at Step S902), the client 4 executes a data acquisition process (Step S903) and updates the acquired data (Step S904). Thereafter, the client 4 executes a data deletion process using the meta information ID indicating the data before the update (step S905). In such a case, the server 2 executes the process shown in FIG.
On the other hand, when the deposit information is not “◯” (No at Step S902), the client 4 updates the data read from the file system 20 (Step S906). Then, the client 4 writes the data updated in step S904 or step S906 to the file system 20 (step S907). Thereafter, the client 4 adds a new entry for the updated data to the meta information management unit 22, updates the meta information management unit 22 (step S908), and ends the process.
Next, a flow of processing executed by the client 4 when the application 21 deletes data will be described with reference to FIG. FIG. 16 is a flowchart for explaining the flow of processing executed by the client when data is deleted. First, when the application 21 deletes data (step S1001), the client 4 accesses the meta information management unit 22, and the deposit information associated with the data ID indicating the data to be deleted is “◯”. Whether or not (step S1002).
When the deposit information is “◯” (Yes at Step S1002), the client 4 executes data deletion processing (Step S1003). Specifically, the client 4 transmits a data deletion request to the server 2 to cause the server 2 to execute the process of FIG. On the other hand, when the deposit information is not “◯” (No at Step S1002), the client 4 deletes the data to be deleted from the file system 20 (Step S1004).
Thereafter, the client 4 deletes the entry having the meta information ID indicating the data to be deleted from the meta information management unit 22 (step S1005), and ends the process.
As described above, the client 4 acquires the time value generated when the server 2 deposits the data stored in the file system 20 from the server 2 that stores the data deposited from the clients 4 to 6. Then, the client 4 selects data to be deposited in the server 2 from the data stored in the file system 20 according to the acquired market price. For this reason, the client 4 can store data at a minimum cost for the user.
Further, the client 4 monitors the access frequency for each data stored in the file system 20, and evaluates the efficiency when depositing the data in the server 2 according to the monitored access frequency and the current price. Thereafter, the client 4 selects data to be deposited in the server 2 in accordance with the efficiency evaluation result for each data. For this reason, the client 4 can suppress an increase in network traffic in the network system 1.
That is, the client 4 can suppress an increase in network traffic in the network system 1 when the server 2 deposits data with low access frequency. As a result, the network system 1 can handle more users with the same equipment, and can reduce the cost required for the service operator and the users.
Further, the client 4 selects a plurality of data in order from the data with the highest efficiency evaluation result so that the sum of the market prices when depositing the data is equal to or less than a predetermined value. For this reason, the client 4 can automatically deposit the data stored in the client 4 to the server 2 in accordance with a rule (policy) set in advance by the user. Note that the rules can be applied to chargeable and timely rules such as depositing data that is less than 100 yen per month and that have not been accessed for more than a week to the server 2 as much as possible. Rules that limit the types of data to be deposited can also be applied.
Further, the client 4 obtains, from the server 2, a market price that varies according to the number of clients that have deposited the same data and the data capacity. For this reason, since the client 4 preferentially deposits data stored by more clients to the server 2, the cost for the user can be further reduced.
Further, the server 2 stores data deposited from one or a plurality of clients 4 to 6. Further, the server 2 counts the number of clients that have deposited the same data as each stored data. And the server 2 calculates the market price at the time of memorize | storing data according to the number of counted clients, and notifies the calculated market price to the clients 4-6. For this reason, the server 2 can provide an incentive to preferentially deposit the same data with respect to each of the clients 4 to 6, so that duplicate storage can be efficiently performed.
Although the first embodiment has been described so far, the disclosed invention may be implemented in various different forms other than the above-described embodiment. Therefore, other embodiments will be described below.
(1) Server 2 and Client 4 The server 2 described above has an actual data storage unit 10, a meta information storage unit 11, and a saved information user database 12. However, the embodiment is not limited to this. For example, the actual data storage unit 10, the meta information storage unit 11, and the saved information user database 12 may be databases stored in the same storage device. . Each component of the server 2 and the client 4 shown in the figure is functionally conceptual and does not necessarily need to be physically configured as shown.
In other words, the specific form of distribution / integration of each device is not limited to that shown in the figure, and all or a part thereof may be functionally or physically distributed or arbitrarily distributed in arbitrary units according to various loads or usage conditions. Can be integrated and configured. For example, the filter file system 23 and the monitoring agent 24 may be integrated. Furthermore, all or any part of each processing function may be realized by a CPU and a program that is analyzed and executed by the CPU, or may be realized as hardware by wired logic.
In addition, among the processes described in the first embodiment, all or part of the processes described as being automatically performed can be manually performed, or have been described as being manually performed. All or a part of the processing can be automatically performed by a known method. In addition, the processing procedure, control procedure, specific name, and information including various data and parameters shown in the above-described document and drawings can be arbitrarily changed unless otherwise specified.
(2) Distribution In the first embodiment described above, all the functions of the server 2 are provided in a single housing. However, the first embodiment is not limited to this, and for example, each function of the server 2 can be distributed. For example, each function of the server 2 may be realized by a plurality of server devices in cooperation, or the server 2 may be operated as a virtual server on a so-called cloud system.
Further, when the functions of the server 2 are distributed, for example, the data stored in the stored information user database 12 may be stored in different storage devices for each user, that is, for each entry. Further, the data stored in the actual data storage unit 10 may be stored in a different storage device for each associated key and value, and the information stored in the meta information storage unit 11 is for each meta information ID, that is, an entry. A different storage device may store the data.
(3) User privacy When data is stored in a storage server on the network, it is common to encrypt the data in order to ensure the privacy of the client. However, data encrypted with different encryption keys cannot be distinguished from the same data even if the original data is the same data. For this reason, duplicate storage of the same data encrypted with different encryption keys cannot be avoided. Note that when the same data is encrypted with the same encryption key, the privacy of the user cannot be ensured.
However, the storage system 1 described in the first embodiment described above can be implemented in combination with an arbitrary security system. For example, the storage system 1 can hide the data contents from the service operator by using the data calculated by Convergence Encryption. Since the calculation of the first hash function and the calculation of the meta information ID in Convergence Encryption have the same calculation contents, the calculation amount in the server 2 and the client 4 can be reduced.
(4) Program It is also possible to create a program in which the processing executed by the client 4 described in the above embodiment is described in a language that can be executed by a computer. For example, it is possible to create a storage program in which processing executed by the client 4 according to the first embodiment is described in a language that can be executed by a computer. In this case, when the computer executes the storage program, the same effect as in the above embodiment can be obtained. Further, the storage program is recorded on a computer-readable recording medium, and the storage program recorded on the recording medium is read by the computer and executed, thereby realizing the same processing as in the first embodiment. Also good. An example of a computer that executes a storage program that implements the same function as the client 4 shown in FIG. 5 will be described below.
FIG. 17 is a diagram illustrating a computer that executes a storage program. As illustrated in FIG. 17, the computer 1000 includes, for example, a memory 1010, a CPU 1020, a hard disk drive interface 1030, a disk drive interface 1040, and a network interface 1070, and these units are connected by a bus 1080. The
The memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012 as illustrated in FIG. The ROM 1011 stores a boot program such as BIOS (Basic Input Output System). The hard disk drive interface 1030 is connected to the hard disk drive 1031 as illustrated in FIG. The disk drive interface 1040 is connected to the disk drive 1041 as illustrated in FIG. For example, a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive.
Here, as illustrated in FIG. 17, the hard disk drive 1031 stores, for example, an OS 1091, an application program 1092, a program module 1093, and program data 1094. That is, the above storage program is stored in, for example, the hard disk drive 1031 as a program module in which a command to be executed by the computer 1000 is described.
The various data described in the above embodiment is stored as program data, for example, in the memory 1010 or the hard disk drive 1031. Then, the CPU 1020 reads the program module 1093 and the program data 1094 stored in the memory 1010 and the hard disk drive 1031 to the RAM 1012 as necessary, and executes each procedure.
Note that the program module 1093 and the program data 1094 related to the storage program are not limited to being stored in the hard disk drive 1031, but may be stored in, for example, a removable storage medium and read by the CPU 1020 via the disk drive or the like. Good. Alternatively, the program module 1093 and the program data 1094 related to the storage program are stored in another computer connected via a network (LAN (Local Area Network), WAN (Wide Area Network), etc.), and via the network interface 1070. May be read by the CPU 1020.
Although several embodiments have been described so far, the technology disclosed in the present application is not limited to these embodiments. That is, these embodiments can be implemented in various other forms, and various omissions, replacements, and changes can be made.
For example, the specific form of distribution / integration of each device (for example, the form shown in FIG. 5) is not limited to the one shown in the figure, and all or a part thereof can be changed in arbitrary units according to various loads and usage conditions. Functionally or physically distributed and integrated. For example, the data transmission / reception unit 26 and the virtual transmission unit 27 may be integrated as one unit.
In addition, among the processes described in the embodiments, all or a part of the processes described as being automatically performed can be manually performed. For example, the function exhibited by the setting unit 25 in FIG. 5 may be performed manually.
Further, the authentication units 17 and 28 may be connected as external devices of the server 2 and the client 4 via a network, and authentication may be performed on a network such as OAuth, for example.
These embodiments and modifications thereof are included in the invention disclosed in the claims and equivalents thereof as well as included in the technology disclosed in the present application.
DESCRIPTION OF SYMBOLS 1 Storage system 2 Server 3 Network 4, 5, 6 Client 10 Real data storage part 11 Meta information storage part 12 Stored information user database 13 Current value calculation part 14 Response part 15, 26 Data transmission / reception part 16 Virtual reception part 17, 28 Authentication part DESCRIPTION OF SYMBOLS 20 File system 21 Application 22 Meta information management part 23 Filter file system 24 Monitoring agent 25 Setting part 27 Virtual transmission part
A storage unit for storing one or more data;
Information that is charged when the data stored in the storage unit is deposited in the storage server from a storage server that deposits data from one or a plurality of information processing apparatuses, and the same data as the data is deposited An acquisition unit that acquires, for each piece of data, a fee that varies according to the number of devices;
An information processing apparatus comprising: a selection unit that selects data to be deposited in the storage server from data stored in the storage unit according to a fee amount acquired by the acquisition unit.
A monitoring unit that monitors the frequency of access to the data stored in the storage unit for each data;
Evaluation that evaluates, for each piece of data, the efficiency when depositing the data stored in the storage unit to the storage server based on the frequency of access monitored by the monitoring unit and the fee amount acquired by the acquisition unit And
The information processing apparatus according to claim 1, wherein the selection unit selects data to be stored in the storage server among data stored in the storage unit according to an evaluation result of the evaluation unit.
The said selection part selects from the data which the said memory | storage part memorize | stores so that the sum of the said charge amount may be below a predetermined amount in order with the high evaluation result by the said evaluation part. Information processing device.
The said acquisition part acquires the charge amount fluctuate | varied according to the number of the information processing apparatuses which deposited the same data as the said data from the said storage server, and the data capacity of the said data. Information processing apparatus as described in any one of -3.
A storage unit for storing data received from one or more information processing devices;
For each data, a counting unit that counts the number of information processing devices that have deposited the same data as the data;
A calculation unit that calculates a fee amount for storing the data for each data according to the number of information processing devices counted by the counting unit;
A storage server, comprising: a notification unit that notifies the fee calculated by the calculation unit in response to a request from the information processing apparatus.
In a storage system having one or a plurality of information processing apparatuses and a storage server for storing data deposited by the information processing apparatuses,
For each data deposited from the information processing device, a counting unit that counts the number of information processing devices deposited with the same data as the data,
A calculation unit that calculates, for each piece of data, a fee for storing the data according to the number of information processing devices counted by the counting unit;
An acquisition unit for acquiring the fee calculated by the calculation unit for the same data as the data stored in the storage unit;
A storage system comprising: a selection unit that selects data to be stored in the storage server from data stored in the storage unit according to a fee amount acquired by the acquisition unit.
A backup method executed by an information processing apparatus having a storage device for storing one or more data,
An information processing apparatus that is charged when the data stored in the storage device is deposited in the storage server from the storage server that deposits data from one or a plurality of information processing apparatuses, and the same data as the data is deposited An acquisition process for acquiring a fee that varies depending on the number of
A backup method comprising: a selection step of selecting data to be deposited in the storage server from data stored in the storage device according to the fee amount acquired in the acquisition step.
A computer having a storage device for storing one or more data;
An information processing apparatus that is charged when the data stored in the storage device is deposited in the storage server from the storage server that deposits data from one or a plurality of information processing apparatuses, and the same data as the data is deposited An acquisition step to acquire a fee that varies depending on the number of
A backup program that executes a selection step of selecting data to be deposited in the storage server from data stored in the storage device according to the fee amount acquired in the acquisition step.
JP2012234964A 2012-10-24 2012-10-24 Information processor, storage server, storage system, backup method, and backup program Pending JP2014085882A (en)
JP2012234964A JP2014085882A (en) 2012-10-24 2012-10-24 Information processor, storage server, storage system, backup method, and backup program
JP2014085882A true JP2014085882A (en) 2014-05-12
ID=50788881
JP2012234964A Pending JP2014085882A (en) 2012-10-24 2012-10-24 Information processor, storage server, storage system, backup method, and backup program
JP (1) JP2014085882A (en)
JP2006011786A (en) * 2004-06-25 2006-01-12 Hitachi Information Systems Ltd Computer centralized operation center system and data management control method for the same, and program
2012-10-24 JP JP2012234964A patent/JP2014085882A/en active Pending
AU2004242455B2 (en) 2010-03-04 Architecture for controlling access to a service by concurrent clients
EP2731044B1 (en) 2019-04-10 Client computer for querying a database stored on a server via a network
JP5638082B2 (en) 2014-12-10 Data cache management method for rights holders
KR20050091898A (en) 2005-09-15 Information management system
JP2011082983A (en) 2011-04-21 Apparatus and method for protecting network resource
JP4410324B2 (en) 2010-02-03 Qualification management method and apparatus