WO2022190681A1 - ストレージシステム、データ処理方法、及びデータ処理プログラム - Google Patents
ストレージシステム、データ処理方法、及びデータ処理プログラム Download PDFInfo
- Publication number
- WO2022190681A1 WO2022190681A1 PCT/JP2022/002644 JP2022002644W WO2022190681A1 WO 2022190681 A1 WO2022190681 A1 WO 2022190681A1 JP 2022002644 W JP2022002644 W JP 2022002644W WO 2022190681 A1 WO2022190681 A1 WO 2022190681A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- metadata
- storage
- server
- data
- node
- Prior art date
Links
- 238000003672 processing method Methods 0.000 title claims description 6
- 238000000034 method Methods 0.000 claims description 9
- 238000005516 engineering process Methods 0.000 description 19
- 230000010365 information processing Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000006870 function Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 4
- 239000000470 constituent Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
Definitions
- Japanese Patent Application Laid-Open No. 2015-15047 describes a system that replicates data objects in a way that makes more optimal use of the transmission bandwidth by avoiding transmission of data that is already available at the replication destination server. sends metadata about objects that have data or chunks already available on the destination server to ensure data and metadata consistency.
- Japanese Patent Application Laid-Open No. 2010-509686 discloses that in a system provided with a cluster in which a plurality of independent nodes are network-connected at each location, a cooperative relationship is formed between a first cluster and a second cluster, and the first cluster Copying fixed content and metadata of a first cluster from to a second cluster is described.
- the storage system in order to reduce the risk of data loss and service outage in the event of a failure, multiple storage nodes are placed in different geographical locations, and the same storage nodes are installed at each location. Data is stored with redundancy. In such a storage system, it is required to maintain consistency of data stored among a plurality of storage nodes arranged at each site. For example, in an object storage system that handles data to be stored in units of objects containing data and metadata, both data and metadata are required to be consistent among a plurality of storage nodes. Data synchronization in such a storage system is assumed to be performed via a network that interconnects multiple storage nodes located at each site. requires a sufficiently wide network. However, deploying a broadband network can be costly and difficult to implement.
- the disclosed technology has been made in view of the above points, and aims to ensure consistency of stored data while suppressing the amount of data transfer between a plurality of storage nodes that should store the same data. aim.
- a storage system is a storage system that includes a plurality of storage nodes each having at least one processor and storage device.
- Each processor of a plurality of storage nodes receives an object including at least one of the same data and first metadata about the object, generates second metadata about the received object, and stores the second metadata about the received object. Metadata is stored in the local node's storage device.
- each processor of the storage nodes other than the some storage nodes among the plurality of storage nodes receives the second metadata generated in the own node. metadata with the received second metadata.
- a data processing method is a data processing method in a storage system that includes a plurality of storage nodes each having at least one processor and a storage device, wherein first metadata about the same data and objects
- a process of receiving an object including at least one of the objects, generating second metadata related to the received object, and storing the received object including the second metadata in the storage device of the own node is performed by a plurality of storage nodes.
- a processor included in each node transmits only the second metadata among the data included in the object stored in the storage device of the node and the first and second metadata related to the object to other storage nodes
- the processors included in some of the plurality of storage nodes execute the processing.
- a data processing program receives an object including at least one of data and first metadata about the object, generates second metadata about the received object, and adds the second metadata to the received object.
- data, including data is stored in the storage device of the self-node, and only the second metadata of the data contained in the object stored in the storage device of the self-node and the first and second metadata related to the object is stored in the storage device of the self-node.
- FIG. 1 is a diagram showing an example of a configuration of a storage system according to an embodiment of technology disclosed herein; FIG. It is a figure which shows an example of the hardware configuration of the server based on embodiment of the disclosed technology.
- 2 is a functional block diagram showing an example of a functional configuration of a server functioning as a master according to an embodiment of technology disclosed herein;
- FIG. 2 is a functional block diagram showing an example of a functional configuration of a server functioning as a slave according to an embodiment of technology disclosed herein;
- FIG. 4 is a diagram showing an example of a configuration of an object transferred from an information processing device according to an embodiment of technology disclosed to a server;
- FIG. 2 is a diagram showing an example of a configuration of objects saved in a server according to an embodiment of technology disclosed herein;
- FIG. 4 is a diagram illustrating an example of synchronization processing according to an embodiment of technology disclosed herein;
- FIG. 4 is a diagram illustrating an example of synchronization processing according to an embodiment of technology disclosed herein;
- 4 is a flow chart showing an example of the flow of processing performed by executing a data processing program according to an embodiment of technology disclosed herein;
- FIG. 1 is a diagram showing an example of the configuration of a storage system 1 according to an embodiment of technology disclosed herein.
- the storage system 1 includes an information processing device 10, a server 20A and a server 20B.
- the storage system 1 is connected to user terminals 50 via a network 40 .
- a user terminal 50 is a computer used by a user who uses the storage system 1 .
- the storage system 1 saves the object requested by the user terminal 50 for saving. Further, when receiving an object read request from the user terminal 50 , the storage system 1 reads the requested object and transmits it to the user terminal 50 . That is, the storage system 1 according to this embodiment configures an object storage system that handles data in units of objects.
- An object includes at least one of a data body and metadata about the object.
- the servers 20A and 20B constitute storage nodes, respectively, and are located at different geographical locations.
- An object requested to be stored by the user terminal 50 is duplicated by the information processing apparatus 10, and the same object 60 is redundantly stored in both the server 20A and the server 20B.
- the servers 20A and 20B perform synchronization processing for maintaining consistency of objects stored in them via a local network 15 separated from the network 40.
- FIG. Note that the storage system 1 may include three or more servers (storage nodes) that store the same object.
- the storage device 203 is realized by a non-volatile storage medium such as an HDD (Hard Disk Drive), SSD (Solid State Drive), or flash memory.
- a data processing program 210 is stored in the storage device 203 .
- the CPU 201 reads the data processing program 210 from the storage device 203, develops it in the memory 202, and executes it. Note that the CPU 201 is an example of a processor in technology disclosed herein.
- the information processing device 10 functions as a wrapper that mediates the transmission of objects between the servers 20A and 20B and the user terminal 50. As shown in FIG. 1, the information processing apparatus 10 duplicates an object to be saved transmitted from the user terminal 50, and transmits (transfers) the same object 60 to the server 20A and the server 20B.
- the servers 20A and 20B are arranged in different geographical locations from the viewpoint of avoiding the loss of objects and the suspension of services when a failure occurs. the object is saved.
- the servers 20A and 20B execute the data processing program 210 to perform synchronization processing for maintaining the consistency of the objects stored therein.
- one of the servers 20A and 20B functions as a master, and the other functions as a slave.
- the server 20A functions as a master and the server 20B functions as a slave.
- FIG. 3A is a functional block diagram showing an example of the functional configuration of the server 20A functioning as a master.
- a server 20 ⁇ /b>A functioning as a master includes a receiver 21 , a metadata generator 22 , a storage processor 23 and a transmitter 24 .
- the server 20A By executing the data processing program 210 by the CPU 201 of the server 20A, the server 20A functions as a master and functions as the receiving section 21, the metadata generating section 22, the storage processing section 23, and the transmitting section 24.
- FIG. 3B is a block diagram showing an example of the functional configuration of the server 20B functioning as a slave.
- the server 20B functioning as a slave includes a receiving section 25, a metadata generating section 26, a storage processing section 27, and a metadata replacing section .
- the server 20B By executing the data processing program 210 by the CPU 201 of the server 20B, the server 20B functions as a slave, and functions as the receiving section 25, the metadata generating section 26, the saving processing section 27, and the metadata replacing section .
- the details of each functional block described above will be described below.
- the information processing device 10 duplicates an object 60 to be saved, and transmits (transfers) the same object 60 to the server 20A and the server 20B.
- Object 60 includes data 61 and first metadata 62 .
- Data 61 is the body of user data such as image data, video data, text data, and the like.
- a first metadata 62 is metadata about the object 60 .
- the first metadata 62 may include identification information (object key) for uniquely identifying the object 60, for example.
- the first metadata 62 may also include additional information such as the date and time of creation of the data 61, type, classification, size, retention period, and the like.
- the first metadata 62 can be arbitrarily set by the user of the user terminal 50 .
- the object 60 transmitted from the information processing device 10 may contain only the data 61 or may contain only the first metadata 62 . That is, the object 60 to be saved includes at least one of data 61 and first metadata 62 .
- the receiving unit 21 of the server 20A and the receiving unit 25 of the server 20B each receive the storage target object 60 transmitted from the information processing apparatus 10 .
- the metadata generation unit 22 of the server 20A generates second metadata 63A regarding the object 60 received.
- the metadata generation unit 26 of the server 20B generates second metadata 63B regarding the received object 60.
- the second metadata 63A may include information indicating the reception date and time of the object 60 at the server 20A
- the second metadata 63B may include information indicating the reception date and time of the object 60 at the server 20B.
- the second metadata 63A and the second metadata 63B may be UUIDs (Universally Unique Identifiers). The reception date and time of the object 60 on the server 20A and the server 20B do not always match.
- the contents of the second metadata 63A and the second metadata 63B are different from each other. 5 to 7, the second metadata 63A generated by the server 20A is written as "second metadata #1", and the second metadata 63B generated by the server 20B is written as " second metadata #2”.
- the storage processing unit 23 of the server 20A functioning as a master stores data 61, first metadata 62, and second metadata included in an object 60 stored in the storage device 203 of its own node.
- 63A only the second metadata 63A is transmitted to the server 20B functioning as a slave.
- the second metadata 63A is transferred over the network 15 from the server 20A to the server 20B.
- the metadata replacement unit 28 of the server 20B functioning as a slave receives the second metadata 63A transmitted from the server 20A, it replaces the object stored in the storage device 203 of its own node with the second metadata 63A.
- the second metadata 63B contained in 60 is replaced with the received second metadata 63A.
- step S ⁇ b>1 the receiving unit 21 of the server 20 ⁇ /b>A and the receiving unit 25 of the server 20 ⁇ /b>B each receive the object 60 to be saved transmitted from the information processing device 10 .
- step S2 the metadata generation unit 22 of the server 20A generates second metadata 63A regarding the object 60 received in step S1.
- the metadata generation unit 26 of the server 20B generates second metadata 63B regarding the object 60 received in step S1.
- the contents of the second metadata 63A and 63B are different from each other.
- step S3 the save processing unit 23 of the server 20A adds the second metadata 63A generated in the own node in step S2 to the object 60 received in step S1 and saves it in the storage device 203 of the own node.
- the save processing unit 27 of the server 20B adds the second metadata 63B generated by the own node in step S2 to the object 60 received in step S1 and saves it in the storage device 203 of the own node.
- step S4 the CPUs 201 of the servers 20A and 20B respectively determine whether their own nodes are masters or slaves. It is assumed that management information indicating a server functioning as a master and a server functioning as a slave is created by an administrator of the storage system 1, and this management information is stored in the storage device 203 of each server. Here, it is assumed in the management information that the server 20A functions as a master and the server 20B functions as a slave. The CPU 201 of the server 20A determines that its own node is the master based on the management information. The CPU 201 of the server 20B determines that its own node is the slave based on the management information.
- step S5 the transmission unit 24 of the server 20A functioning as a master, out of the data 61, the first metadata 62, and the second metadata 63A included in the object 60 saved in the storage device 203 of its own node, Only the second metadata 63A is transmitted to the server 20B functioning as a slave.
- objects to be saved are redundantly saved in the servers 20A and 20B.
- the objects to be saved are redundantly saved in the servers 20A and 20B. In this way, by saving the same object redundantly in the servers 20A and 20B located at different geographical locations, even if some of the servers fail, the object will not be lost. and service outages can be avoided.
- the second metadata 63A and 63B generated inside the server 20A and the server 20B respectively have different contents, so that the server 20A and the server 20B do not have an object inconsistency. It will be saved as it was created.
- the server 20A functioning as a master transmits the second metadata 63A generated by its own node to the server 20B functioning as a slave.
- the server 20B functioning as a slave receives the second metadata 63A transmitted from the server 20A
- the server 20B replaces the second metadata 63B generated by its own node with the received second metadata 63A.
- the second metadata included in the objects 60 have the same content, and the inconsistency of the objects 60 is eliminated.
- the information processing device 10 transmits the object to be saved only to the server 20A.
- the server 20A generates second metadata regarding the received object, adds it to the received object, and stores it in the storage device 203 of its own node.
- the server 20A transmits the object to which the second metadata is added to the server 20B via the network 15.
- FIG. The server 20B saves the object transmitted from the server 20A in the storage device 203 of its own node.
- objects including data and metadata are transferred from the server 20A to the server 20B via the network 15. It is assumed that the data size is significantly larger than that of the metadata. Therefore, the amount of data to be transferred may become enormous, and in order to deal with this, it is required that the bandwidth of the network 15 be wide enough. However, deploying a broadband network can be costly and difficult to implement.
- data transferred between servers via the network 15 is only metadata (second metadata 63A) with a relatively small data size. That is, according to the storage system 1 according to the embodiment of the disclosed technique, it is possible to ensure consistency of stored data while suppressing the amount of data transfer between a plurality of storage nodes that should store the same data. It becomes possible. Therefore, it is not necessarily required to deploy a broadband network.
- the user terminal 50 may also serve as the information processing device 10 . That is, the function as a wrapper may be implemented in the user terminal 50 .
- a processing unit processing As the hardware structure of the unit, the following various processors can be used.
- the various processors include, in addition to the CPU, which is a general-purpose processor that executes software (programs) and functions as various processing units, a processor such as an FPGA whose circuit configuration can be changed after manufacture.
- Programmable Logic Device PLD
- ASIC Application Specific Integrated Circuit
- One processing unit may be composed of one of these various processors, or a combination of two or more processors of the same type or different types (for example, a combination of multiple FPGAs, a combination of a CPU and an FPGA). combination). Also, a plurality of processing units may be configured by one processor.
- an electric circuit combining circuit elements such as semiconductor elements can be used.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
ストレージシステムは、各々が少なくとも1つのプロセッサ及び記憶装置を備えた複数のストレージノードを備えている。複数のストレージノードの各々のプロセッサは、互いに同じデータ及びオブジェクトに関する第1のメタデータの少なくとも一方を含むオブジェクトを受信し、受信したオブジェクトに関する第2のメタデータを生成し、受信したオブジェクトに第2のメタデータを含めて自ノードの記憶装置に保存する。複数のストレージノードのうちの一部のストレージノードのプロセッサは、自ノードの記憶装置に保存されたオブジェクトに含まれるデータ及びそのオブジェクトに関する第1及び第2のメタデータのうち、第2のメタデータのみを他のストレージノードに送信する。
Description
開示の技術は、ストレージシステム、データ処理方法、及びデータ処理プログラムに関する。
複数のストレージノードに同一のデータを、冗長性を持たせて保存する技術として、以下の技術が知られている。例えば特開2015-15047号公報には、レプリケーション先サーバで既に利用可能なデータの送信を避けることによって送信帯域幅をより最適に利用するようにしてデータ・オブジェクトを複製するシステムにおいて、レプリケーション元サーバが、レプリケーション先サーバで既に利用可能なデータまたはチャンクを有するオブジェクトに関するメタデータを送信して、データおよびメタデータの一貫性を保証させることが記載されている。
特開2010-509686号公報には、それぞれのロケーションにおいて複数の独立ノードがネットワーク接続されたクラスタを備えたシステムにおいて、第1クラスタと第2クラスタとの間に連携関係を構成し、第1クラスタから第2クラスタに第1クラスタの固定コンテンツおよびメタデータをコピーすることが記載されている。
ストレージシステムにおいては、障害発生時におけるデータの消失及びサービス停止のリスクを低減するために、複数のストレージノードを互いに異なる地理的位置に配置し、各拠点に配置された複数のストレージノードに同一のデータを、冗長性を持たせて保存することが行われる。このようなストレージシステムにおいては、各拠点に配置された複数のストレージノード相互間において保存されるデータの整合性を保つことが要求される。例えば、保存するデータを、データ及びメタデータを含むオブジェクトの単位で扱うオブジェクトストレージシステムにおいては、データ及びメタデータの双方が複数のストレージノード間で整合していることが要求される。このようなストレージシステムにおけるデータの同期は、各拠点に配置された複数のストレージノードを相互に接続するネットワーク介して行うことが想定されるが、転送されるデータ量が膨大である場合、帯域幅が十分に広いネットワークが必要となる。しかしながら、広帯域のネットワークを配備することは、コスト面から実現が困難である場合がある。
開示の技術は、上記した点に鑑みてなされたものであり、同一のデータを保存すべき複数のストレージノード間において、データ転送量を抑制しつつ保存されるデータの整合性を確保することを目的とする。
開示の技術に係るストレージシステムは、各々が少なくとも1つのプロセッサ及び記憶装置を備えた複数のストレージノードを含むストレージシステムである。複数のストレージノードの各々のプロセッサは、互いに同じデータ及びオブジェクトに関する第1のメタデータの少なくとも一方を含むオブジェクトを受信し、受信したオブジェクトに関する第2のメタデータを生成し、受信したオブジェクトに第2のメタデータを含めて自ノードの記憶装置に保存する。複数のストレージノードのうちの一部のストレージノードのプロセッサは、自ノードの記憶装置に保存されたオブジェクトに含まれるデータ及びそのオブジェクトに関する第1及び第2のメタデータのうち、第2のメタデータのみを他のストレージノードに送信する。
複数のストレージノードのうちの上記一部のストレージノード以外のストレージノードの各々のプロセッサは、上記一部のストレージノードから送信された第2のメタデータを受信した場合、自ノードにおいて生成した第2のメタデータを、受信した第2のメタデータに置換する。
第1のメタデータは、オブジェクトの識別情報を含んでいてもよく、第2のメタデータは、受信したオブジェクトの受信日時を示す情報を含んでいてもよい。複数のストレージノードは、互いに異なる地理的位置に配置されていてもよい。
開示の技術に係るデータ処理方法は、各々が少なくとも1つのプロセッサ及び記憶装置を備えた複数のストレージノードを含むストレージシステムにおけるデータ処理方法であって、互いに同じデータ及びオブジェクトに関する第1のメタデータの少なくとも一方を含むオブジェクトを受信し、受信したオブジェクトに関する第2のメタデータを生成し、受信したオブジェクトに第2のメタデータを含めて自ノードの記憶装置に保存する処理を、複数のストレージノードの各々が備えるプロセッサが実行し、自ノードの記憶装置に保存されたオブジェクトに含まれるデータ及びそのオブジェクトに関する第1及び第2のメタデータのうち、第2のメタデータのみを他のストレージノードに送信する処理を、複数のストレージノードのうちの一部のストレージノードが備えるプロセッサが実行する、というものである。
開示の技術に係るデータ処理プログラムは、データ及びオブジェクトに関する第1のメタデータの少なくとも一方を含むオブジェクトを受信し、受信したオブジェクトに関する第2のメタデータを生成し、受信したオブジェクトに第2のメタデータを含めて自ノードの記憶装置に保存し、自ノードの記憶装置に保存されたオブジェクトに含まれるデータ及びそのオブジェクトに関する第1及び第2のメタデータのうち、第2のメタデータのみを他のストレージノードに送信する処理をストレージノードが備える少なくとも1つのプロセッサに実行させるためのプログラムである。
開示の技術によれば、同一のデータを保存すべき複数のストレージノード間において、データ転送量を抑制しつつ保存されるデータの整合性を確保すること可能となる。
以下、本発明の実施形態の一例を、図面を参照しつつ説明する。なお、各図面において同一または等価な構成要素及び部分には同一の参照符号を付与し、重複する説明は省略する。
図1は、開示の技術の実施形態に係るストレージシステム1の構成の一例を示す図である。ストレージシステム1は、情報処理装置10及びサーバ20A及びサーバ20Bを含んで構成されている。ストレージシステム1は、ネットワーク40を介してユーザ端末50に接続されている。ユーザ端末50は、ストレージシステム1を利用するユーザによって使用されるコンピュータである。ストレージシステム1は、ユーザ端末50から保存要求があったオブジェクトを保存する。また、ストレージシステム1は、ユーザ端末50からオブジェクトの読み出し要求があった場合、要求されたオブジェクトを読み出してユーザ端末50に送信する。すなわち、本実施形態に係るストレージシステム1は、データをオブジェクト単位で扱うオブジェクトストレージシステムを構成するものである。オブジェクトは、データ本体と、オブジェクトに関するメタデータの少なくとも一方を含んで構成される。
サーバ20A及びサーバ20Bは、それぞれ、ストレージノードを構成するものであり、互いに異なる地理的位置に配置されている。ユーザ端末50から保存要求があったオブジェクトは、情報処理装置10によって複製され、同一のオブジェクト60が、冗長性を有してサーバ20A及びサーバ20Bの双方に保存される。このように、各拠点に配置された複数のストレージノードに同一のオブジェクトを、冗長性を持たせて保存することで、一部のストレージノードに障害が発生した場合でも、オブジェクトの消失及びサービスの停止を回避することができる。サーバ20A及びサーバ20Bは、これらに保存されるオブジェクトの整合性を保つための同期処理を、ネットワーク40から切り離されたローカルなネットワーク15を介して行う。なお、ストレージシステム1は、同一のオブジェクトが保存される3台以上のサーバ(ストレージノード)を備えていてもよい。
図2は、サーバ20A及びサーバ20Bのハードウェア構成の一例を示す図である。サーバ20A及びサーバ20Bは、互いに同じハードウェア構成を有する。サーバ20A及びサーバ20Bは、それぞれ、CPU(Central Processing Unit)201、一時記憶領域としてのメモリ202及び記憶装置203を含む。また、サーバ20A及びサーバ20Bは、ネットワークに接続されるネットワークインターフェース204及び外部インターフェース205を含む。CPU201、メモリ202、記憶装置203、ネットワークインターフェース204、及び外部インターフェース205はバス206に接続される。
記憶装置203は、HDD(Hard Disk Drive)、SSD(Solid State Drive)、又はフラッシュメモリ等の不揮発性の記憶媒体によって実現される。記憶装置203には、データ処理プログラム210が記憶される。CPU201は、データ処理プログラム210を記憶装置203から読み出し、メモリ202に展開し、実行する。なお、CPU201は、開示の技術におけるプロセッサの一例である。
情報処理装置10は、サーバ20A及びサーバ20Bとユーザ端末50との間のオブジェクトの送信を仲介するラッパーとしての機能を有する。図1に示すように、情報処理装置10は、ユーザ端末50から送信された保存対象のオブジェクトを複製し、同一のオブジェクト60をサーバ20A及びサーバ20Bにそれぞれ送信(転送)する。
上記したように、ストレージシステム1においては、障害発生時におけるオブジェクトの消失及びサービスの停止を回避する観点から、サーバ20A及びサーバ20Bは互いに異なる地理的位置に配置され、これらのサーバには同一のオブジェクトが保存される。このような冗長構成を有するストレージシステム1においては、各拠点に配置されたサーバ相互間において、保存されるオブジェクトの整合性を保つことが要求される。すなわち、オブジェクトに含まれるデータ及びメタデータの双方がサーバ20Aとサーバ20Bとの間で整合していることが要求される。そこで、サーバ20Aとサーバ20Bは、データ処理プログラム210を実行することにより、これらに保存されるオブジェクトの整合性を保つための同期処理を行う。この同期処理においては、サーバ20Aとサーバ20Bのいずれか一方がマスターとして機能し、他方がスレーブとして機能する。以下の説明においては、サーバ20Aがマスターとして機能し、サーバ20Bがスレーブとして機能する場合を例に説明する。
図3Aは、マスターとして機能するサーバ20Aの機能的な構成の一例を示す機能ブロック図である。マスターとして機能するサーバ20Aは、受信部21、メタデータ生成部22、保存処理部23及び送信部24を含む。サーバ20AのCPU201がデータ処理プログラム210を実行することにより、サーバ20Aは、マスターとして機能し、受信部21、メタデータ生成部22、保存処理部23及び送信部24として機能する。
図3Bは、スレーブとして機能するサーバ20Bの機能的な構成の一例を示すブロック図である。スレーブとして機能するサーバ20Bは、受信部25、メタデータ生成部26、保存処理部27、メタデータ置換部28を含む。サーバ20BのCPU201がデータ処理プログラム210を実行することにより、サーバ20Bは、スレーブとして機能し、受信部25、メタデータ生成部26、保存処理部27及びメタデータ置換部28として機能する。以下において、上記した各機能ブロックの詳細について説明する。
図4に示すように、情報処理装置10は、保存対象のオブジェクト60を複製し、同一のオブジェクト60をサーバ20A及びサーバ20Bにそれぞれ送信(転送)する。オブジェクト60は、データ61及び第1のメタデータ62を含んで構成されている。データ61は、画像データ、映像データ、テキストデータ等のユーザデータの本体部分である。第1のメタデータ62は、オブジェクト60に関するメタデータある。第1のメタデータ62は、例えば、オブジェクト60を一意に識別するための識別情報(オブジェクトキー)を含んでいてもよい。また、第1のメタデータ62は、データ61の作成日時、種別、分類、サイズ、保存期間等の付加情報を含んでいてもよい。第1のメタデータ62は、ユーザ端末50のユーザによって任意に設定することが可能である。なお、情報処理装置10から送信されるオブジェクト60は、データ61のみを含んでいてもよく、第1のメタデータ62のみを含んでいてもよい。すなわち、保存対象のオブジェクト60は、データ61及び第1のメタデータ62の少なくとも一方を含む。サーバ20Aの受信部21及びサーバ20Bの受信部25は、それぞれ、情報処理装置10から送信された保存対象のオブジェクト60を受信する。
図5に示すように、サーバ20Aのメタデータ生成部22は、受信したオブジェクト60に関する第2のメタデータ63Aを生成する。同様にサーバ20Bのメタデータ生成部26は、受信したオブジェクト60に関する第2のメタデータ63Bを生成する。すなわち、第2のメタデータ63A、63Bは、それぞれ、サーバ20A、20Bの内部で生成される。第2のメタデータ63Aは、サーバ20Aにおけるオブジェクト60の受信日時を示す情報を含み、第2のメタデータ63Bは、サーバ20Bにおけるオブジェクト60の受信日時を示す情報を含んでいてもよい。また、第2のメタデータ63A及び第2のメタデータ63Bは、UUID(Universally Unique Identifier)であってもよい。サーバ20A及びサーバ20Bにおけるオブジェクト60の受信日時は、必ずしも一致するとは限らない。同一のUUIDが付与されることはない。従って、第2のメタデータ63Aと第2のメタデータ63Bは、内容が互いに異なるものとなる。なお、図5~図7において、サーバ20Aにおいて生成された第2のメタデータ63Aは、「第2のメタデータ#1」と表記され、サーバ20Bにおいて生成された第2のメタデータ63Bが「第2のメタデータ#2」と表記されている。
図5に示すように、サーバ20Aの保存処理部23は、受信したオブジェクト60に第2のメタデータ63Aを付加して自ノードの記憶装置203に保存する。同様に、サーバ20Bの保存処理部27は、受信したオブジェクト60に第2のメタデータ63Bを付加して自ノードの記憶装置203に保存する。上記したように、サーバ内部で生成される第2のメタデータ63A及び63Bは、内容が互いに異なっている。すなわち、サーバ20A及びサーバ20Bには、オブジェクト60が不整合を生じた状態で保存される。サーバ20Aとサーバ20Bは、オブジェクト60の整合性を保つための同期処理を以下のようにして行う。
図6に示すように、マスターとして機能するサーバ20Aの保存処理部23は、自ノードの記憶装置203に保存されたオブジェクト60に含まれるデータ61、第1のメタデータ62及び第2のメタデータ63Aのうち、第2のメタデータ63Aのみを、スレーブとして機能するサーバ20Bに送信する。第2のメタデータ63Aは、ネットワーク15を介してサーバ20Aからサーバ20Bに向けて転送される。
図7に示すように、スレーブとして機能するサーバ20Bのメタデータ置換部28は、サーバ20Aから送信された第2のメタデータ63Aを受信した場合、自ノードの記憶装置203に保存されているオブジェクト60に含まれる第2のメタデータ63Bを、受信した第2のメタデータ63Aに置換する。これにより、サーバ20A及びサーバ20Bの各々に保存されているオブジェクト60において、そのオブジェクト60に含まれる第2のメタデータが同じ内容となり、オブジェクト60の不整合が解消される。
以下に、サーバ20A及びサーバ20Bの作用について説明する。図8は、サーバ20A及びサーバ20BのCPU201が、データ処理プログラム210を実行することによって実施される処理の流れの一例を示すフローチャートである。データ処理プログラム210は、例えば、情報処理装置10から保存対象のオブジェクトが送信された場合に実行される。
ステップS1において、サーバ20Aの受信部21及びサーバ20Bの受信部25は、それぞれ、情報処理装置10から送信された保存対象のオブジェクト60を受信する。
ステップS2において、サーバ20Aのメタデータ生成部22は、ステップS1において受信したオブジェクト60に関する第2のメタデータ63Aを生成する。同様に、サーバ20Bのメタデータ生成部26は、ステップS1において受信したオブジェクト60に関する第2のメタデータ63Bを生成する。第2のメタデータ63A及び63Bは、内容が互いに異なるものとなる。
ステップS3において、サーバ20Aの保存処理部23は、ステップS1において受信したオブジェクト60に、ステップS2において自ノードで生成した第2のメタデータ63Aを付加して自ノードの記憶装置203に保存する。同様に、サーバ20Bの保存処理部27は、ステップS1において受信したオブジェクト60に、ステップS2において自ノードで生成した第2のメタデータ63Bを付加して自ノードの記憶装置203に保存する。
ステップS4において、サーバ20A及びサーバ20BのCPU201は、それぞれ、自ノードがマスターであるかスレーブであるかを判定する。マスターとして機能するサーバ及びスレーブとして機能するサーバを示す管理情報は、ストレージシステム1の管理者によって作成され、この管理情報が各サーバの記憶装置203に格納されているものとする。ここでは、サーバ20Aがマスターとして機能し、サーバ20Bがスレーブとして機能することが管理情報において定められているものとする。サーバ20AのCPU201は、管理情報に基づいて自ノードがマスターであると判定する。サーバ20BのCPU201は、管理情報に基づいて自ノードがスレーブであると判定する。
ステップS5において、マスターとして機能するサーバ20Aの送信部24は、自ノードの記憶装置203に保存されたオブジェクト60に含まれるデータ61、第1のメタデータ62及び第2のメタデータ63Aのうち、第2のメタデータ63Aのみを、スレーブとして機能するサーバ20Bに送信する。
ステップS6において、スレーブとして機能するサーバ20Bのメタデータ置換部28は、マスターとして機能するサーバ20Aから送信された第2のメタデータ63Aを受信したか否かを判定する。メタデータ置換部28は、第2のメタデータ63Aを受信したと判定すると、ステップS7において、自ノードの記憶装置203に保存されているオブジェクト60に含まれる、自ノードで生成した第2のメタデータ63Bを、受信した第2のメタデータ63Aに置換する。
本実施形態に係るストレージシステム1によれば、保存対象のオブジェクトが、冗長性を有してサーバ20A及びサーバ20Bに保存される。このように、互いに異なる地理的位置に配置されたサーバ20A及びサーバ20Bに同一のオブジェクトを、冗長性を持たせて保存することで、一部のサーバに障害が発生した場合でも、オブジェクトの消失及びサービスの停止を回避することができる。
また、ストレージシステム1によれば、サーバ20A及びサーバ20Bの内部でそれぞれ生成される第2のメタデータ63A及び63Bは、内容が互いに異なるため、サーバ20A及びサーバ20Bには、オブジェクトが不整合を生じた状態で保存されることとなる。しかしながら、マスターとして機能するサーバ20Aは、自ノードで生成した第2のメタデータ63Aを、スレーブとして機能するサーバ20Bに送信する。スレーブとして機能するサーバ20Bは、サーバ20Aから送信された第2のメタデータ63Aを受信した場合、自ノードで生成した第2のメタデータ63Bを、受信した第2のメタデータ63Aに置換する。これにより、サーバ20A及びサーバ20Bの各々に保存されているオブジェクト60において、そのオブジェクト60に含まれる第2のメタデータが同じ内容となり、オブジェクト60の不整合が解消される。
ここで、複数のストレージノードにおいて、保存されるデータの整合性を確保するための同期処理の他の態様としては、例えば、以下の態様が考えられる。情報処理装置10は、保存対象のオブジェクトをサーバ20Aのみに送信する。サーバ20Aは、受信したオブジェクトに関する第2のメタデータを生成し、これを受信したオブジェクトに付加して自ノードの記憶装置203に保存する。サーバ20Aは、第2のメタデータを付加したオブジェトを、ネットワーク15を介してサーバ20Bに送信する。サーバ20Bは、サーバ20Aから送信されたオブジェクトを自ノードの記憶装置203に保存する。
上記の同期処理の態様によれば、データ及びメタデータを含むオブジェクトが、ネットワーク15を介してサーバ20Aからサーバ20Bに転送される。データはメタデータと比較してデータサイズが顕著に大きいことが想定される。従って、転送されるデータ量が膨大となるおそれがあり、これに対処するために、ネットワーク15の帯域幅を十分に広くしておくことが要求される。しかしながら、広帯域のネットワークを配備することは、コスト面から実現が困難である場合がある。
開示の技術の実施形態に係るストレージシステム1によれば、ネットワーク15を介してサーバ間で転送されるデータは、データサイズが比較的小さいメタデータ(第2のメタデータ63A)のみである。すなわち、開示の技術の実施形態に係るストレージシステム1によれば、同一のデータを保存すべき複数のストレージノード間において、データ転送量を抑制しつつ保存されるデータの整合性を確保することが可能となる。従って、広帯域のネットワークを配備することは必ずしも要求されない。
なお、上記の各実施形態において、情報処理装置10が独立して存在する場合を例示したが、ユーザ端末50が情報処理装置10を兼ねる構成とすることも可能である。すなわち、ユーザ端末50にラッパーとしての機能が実装されていてもよい。
上記の各実施形態において、例えば、受信部21、25、メタデータ生成部22、26、保存処理部23、27、送信部24、メタデータ置換部28といった各種の処理を実行する処理部(processing unit)のハードウェア的な構造としては、次に示す各種のプロセッサ(processor)を用いることができる。上記各種のプロセッサには、前述したように、ソフトウェア(プログラム)を実行して各種の処理部として機能する汎用的なプロセッサであるCPUに加えて、FPGA等の製造後に回路構成を変更可能なプロセッサであるプログラマブルロジックデバイス(Programmable Logic Device:PLD)、ASIC(Application Specific Integrated Circuit)等の特定の処理を実行させるために専用に設計された回路構成を有するプロセッサである専用電気回路等が含まれる。
1つの処理部は、これらの各種のプロセッサのうちの1つで構成されてもよいし、同種又は異種の2つ以上のプロセッサの組み合わせ(例えば、複数のFPGAの組み合わせや、CPUとFPGAとの組み合わせ)で構成されてもよい。また、複数の処理部を1つのプロセッサで構成してもよい。
複数の処理部を1つのプロセッサで構成する例としては、第1に、クライアント及びサーバ等のコンピュータに代表されるように、1つ以上のCPUとソフトウェアの組み合わせで1つのプロセッサを構成し、このプロセッサが複数の処理部として機能する形態がある。第2に、システムオンチップ(System on Chip:SoC)等に代表されるように、複数の処理部を含むシステム全体の機能を1つのIC(Integrated Circuit)チップで実現するプロセッサを使用する形態がある。このように、各種の処理部は、ハードウェア的な構造として、上記各種のプロセッサの1つ以上を用いて構成される。
更に、これらの各種のプロセッサのハードウェア的な構造としては、より具体的には、半導体素子などの回路素子を組み合わせた電気回路(circuitry)を用いることができる。
また、上記実施形態では、データ処理プログラム210が記憶装置203に予め記憶(インストール)されている態様を説明したが、これに限定されない。データ処理プログラム210は、CD-ROM(Compact Disc Read Only Memory)、DVD-ROM(Digital Versatile Disc Read Only Memory)、及びUSB(Universal Serial Bus)メモリ等の記録媒体に記録された形態で提供されてもよい。また、データ処理プログラム210は、ネットワークを介して外部装置からダウンロードされる形態としてもよい。
なお、2021年3月9日に出願された日本国特許出願2021-037758の開示は、その全体が参照により本明細書に取り込まれる。また、本明細書に記載された全ての文献、特許出願および技術規格は、個々の文献、特許出願、および技術規格が参照により取り込まれることが具体的かつ個々に記された場合と同程度に、本明細書中に参照により取り込まれる。
Claims (6)
- 各々が少なくとも1つのプロセッサ及び記憶装置を備えた複数のストレージノードを含むストレージシステムであって、
前記複数のストレージノードの各々のプロセッサは、互いに同じデータ及びオブジェクトに関する第1のメタデータの少なくとも一方を含むオブジェクトを受信し、受信したオブジェクトに関する第2のメタデータを生成し、受信したオブジェクトに前記第2のメタデータを含めて自ノードの記憶装置に保存し、
前記複数のストレージノードのうちの一部のストレージノードのプロセッサは、自ノードの記憶装置に保存されたオブジェクトに含まれるデータ及びそのオブジェクトに関する第1及び第2のメタデータのうち、第2のメタデータのみを他のストレージノードに送信する
ストレージシステム。 - 前記複数のストレージノードのうちの前記一部のストレージノード以外のストレージノードの各々のプロセッサは、前記一部のストレージノードから送信された第2のメタデータを受信した場合、自ノードにおいて生成した第2のメタデータを、受信した第2のメタデータに置換する
請求項1に記載のストレージシステム。 - 前記第1のメタデータは、オブジェクトの識別情報を含み、
前記第2のメタデータは、受信したオブジェクトの受信日時を示す情報を含む
請求項1又は請求項2に記載のストレージシステム。 - 前記複数のストレージノードは、互いに異なる地理的位置に配置されている
請求項1から請求項3のいずれか1項に記載のストレージシステム。 - 各々が少なくとも1つのプロセッサ及び記憶装置を備えた複数のストレージノードを含むストレージシステムにおけるデータ処理方法であって、
互いに同じデータ及びオブジェクトに関する第1のメタデータの少なくとも一方を含むオブジェクトを受信し、受信したオブジェクトに関する第2のメタデータを生成し、受信したオブジェクトに前記第2のメタデータを含めて自ノードの記憶装置に保存する処理を、前記複数のストレージノードの各々が備えるプロセッサが実行し、
自ノードの記憶装置に保存されたオブジェクトに含まれるデータ及びそのオブジェクトに関する第1及び第2のメタデータのうち、第2のメタデータのみを他のストレージノードに送信する処理を、前記複数のストレージノードのうちの一部のストレージノードが備えるプロセッサが実行する
データ処理方法。 - データ及びオブジェクトに関する第1のメタデータの少なくとも一方を含むオブジェクトを受信し、
受信したオブジェクトに関する第2のメタデータを生成し、
受信したオブジェクトに前記第2のメタデータを含めて自ノードの記憶装置に保存し、
自ノードの記憶装置に保存されたオブジェクトに含まれるデータ及びそのオブジェクトに関する第1及び第2のメタデータのうち、第2のメタデータのみを他のストレージノードに送信する
処理をストレージノードが備える少なくとも1つのプロセッサに実行させるための
データ処理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2023505188A JPWO2022190681A1 (ja) | 2021-03-09 | 2022-01-25 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2021037758 | 2021-03-09 | ||
JP2021-037758 | 2021-03-09 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2022190681A1 true WO2022190681A1 (ja) | 2022-09-15 |
Family
ID=83226707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2022/002644 WO2022190681A1 (ja) | 2021-03-09 | 2022-01-25 | ストレージシステム、データ処理方法、及びデータ処理プログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JPWO2022190681A1 (ja) |
WO (1) | WO2022190681A1 (ja) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010176189A (ja) * | 2009-01-27 | 2010-08-12 | Fujitsu Ltd | 割当制御プログラム、割当制御装置及び割当制御方法 |
JP2013041353A (ja) * | 2011-08-12 | 2013-02-28 | Fujitsu Ltd | 情報処理装置、ストレージ制御方法およびプログラム |
JP2013257798A (ja) * | 2012-06-14 | 2013-12-26 | Nec Corp | データ収集システムおよびデータ収集方法 |
JP2014178827A (ja) * | 2013-03-14 | 2014-09-25 | Nec Corp | レプリケーションシステム |
JP2015141446A (ja) * | 2014-01-27 | 2015-08-03 | 富士通株式会社 | 情報処理装置、インデックス作成制御方法及びインデックス作成制御プログラム |
-
2022
- 2022-01-25 WO PCT/JP2022/002644 patent/WO2022190681A1/ja active Application Filing
- 2022-01-25 JP JP2023505188A patent/JPWO2022190681A1/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010176189A (ja) * | 2009-01-27 | 2010-08-12 | Fujitsu Ltd | 割当制御プログラム、割当制御装置及び割当制御方法 |
JP2013041353A (ja) * | 2011-08-12 | 2013-02-28 | Fujitsu Ltd | 情報処理装置、ストレージ制御方法およびプログラム |
JP2013257798A (ja) * | 2012-06-14 | 2013-12-26 | Nec Corp | データ収集システムおよびデータ収集方法 |
JP2014178827A (ja) * | 2013-03-14 | 2014-09-25 | Nec Corp | レプリケーションシステム |
JP2015141446A (ja) * | 2014-01-27 | 2015-08-03 | 富士通株式会社 | 情報処理装置、インデックス作成制御方法及びインデックス作成制御プログラム |
Also Published As
Publication number | Publication date |
---|---|
JPWO2022190681A1 (ja) | 2022-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11354336B2 (en) | Fault-tolerant key management system | |
US20210329072A1 (en) | Optimized communication pathways in a vast storage system | |
AU2015269352B2 (en) | Disaster recovery at high reliability in a storage cluster | |
US11494498B2 (en) | Storage data decryption | |
AU2016218381B2 (en) | Storage system architecture | |
JP2006004434A (ja) | 分散障害許容型コンピューティングシステムにおける効率のよいレプリカセットの変更 | |
US12101379B2 (en) | Multilevel load balancing | |
WO2022190681A1 (ja) | ストレージシステム、データ処理方法、及びデータ処理プログラム | |
WO2022196112A1 (ja) | ストレージシステム、データ処理方法、及びデータ処理プログラム | |
WO2022176497A1 (ja) | ストレージシステム、データ処理方法、及びデータ処理プログラム | |
US20240380815A1 (en) | Storage cluster utilizing differing load balancers | |
JP5815000B2 (ja) | ノードおよびプログラム | |
WO2022196104A1 (ja) | 情報処理装置、ストレージシステム、情報処理方法、及び情報処理プログラム | |
JP6588484B2 (ja) | 復旧装置、復旧方法、および復旧プログラム | |
CN117729095A (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: 22766648 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2023505188 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 22766648 Country of ref document: EP Kind code of ref document: A1 |