Font Size: a A A

Study Of Fault Tolerance Mechanism Based On Erasure Code In Distributed Storage Systems

Posted on:2008-11-27Degree:DoctorType:Dissertation
Country:ChinaCandidate:G LiuFull Text:PDF
GTID:1118360272966767Subject:Computer system architecture
Abstract/Summary:PDF Full Text Request
With the development of distributed systems and network technology, the storage capacity, performance, and scalability of distributed storage systems have increased rapidly. However, distributed storage systems are confronted with great challenges in fault tolerance. As storage systems scale up, they consist of thousands of storage nodes. Multiple failures will occur frequently, which would induce a disaster because of data loss. How to design a efficient and reliable fault tolerance mechanism has become a issue that needs to be resolved urgently in distributed storage systems.Fault tolerance mechanism based on erasure code integrates erasure code and group communication services, which aims to resolve the fault tolerance in distributed storage systems. By using group communication services, storage nodes are organized in a fault tolerance group. Through negotiating and cooperating, storage nodes in a group can provide high available and reliable data services. After encoding, data are stored in corresponding storage nodes. When a storage node fails, original data can be recovered by decoding the data stored in other nodes. To keep fault tolerance group stabilizing, fault nodes should be detected in time and the fault tolerance group need to reconfigure itself.Information of fault tolerance groups are kept in metadata server, and user can fetch relative fault tolerance group when sending request to metadata server. While distributed storage system is running, storage nodes in a fault tolerance group communicates with metadata server and manage server, and update the information of fault tolerance group in them. By updating these information, metadata server can ensure that I/O requests are delivered to correct store nodes, and manage server can ensure the validity of history record in a fault tolerating group.The major contributions of fault tolerance mechanism based on erasure code are as follows:Present fault tolerance groups in distributed storage systems that merge erasure code and group communication services. A fault tolerance group is a set of storage nodes that implement erasure code, and the Identifier of a node correspond to a serial number of the data after encoding. Data are chosen storage nodes to store according to the serial number. A fault tolerance group uses a group view to record members of the group, and the events that a storage node joins, leaves and fails will cause update of the group view. To make read/write and management more convenience, object-based storage and storage virtualization are introduced in fault tolerance groups. Because of the effect of cache, the performance of a storage node is better than that of a disk.Propose I/O operation based on erasure code in a fault tolerance group, include read, write, and update. Unlike the traditional method where a client accesses a storage controller, a storage node picked randomly acts as a coordinator. A client sends its read or write request to the coordinator, and the coordinator forwards the request to members in the group. Responses are returned through the same coordinator to the client. The I/O operation based on erasure code needs to avoid computation of encoding and decoding, and keep data in every storage node consistent. So the erasure codes in fault tolerance groups are systematic code, original data will be contained in data after encoding. In a read operation, coordinator directly accesses data, and decoding is only needed when node fails and data loss. If data are stored into fault tolerance group in the first time, encoding process are absolutely necessary. However, when updating data, delta that is exclusive-or of the last data and newest data can be calculated and then sends to the storage nodes storing related checksum data. To keep data consistent, timestamp, two-phase protocol and log are applied in update operation.Propose a QB-AFD failure detector in fault tolerance based on QoS. To detect failure nodes in a group, each node sends heartbeat messages to each other member and listens others heartbeat messages at the same time. A failure detector may suspect a storage node when it can't receive heartbeat messages from that node at a timeout point. A failure detector should also satisfy the requirement of speed and accuracy, so the QB-AFD failure detector dynamically adapts the heartbeat period and timeout delay to fulfill the metrics of QoS.Present reconfiguration of fault tolerance group through group membership services. When nodes join, leave and fail, a view update algorithm based on two-phase commit maintains a consistent global view in every storage node. And an adding algorithm generates a view when a node joins a group.
Keywords/Search Tags:fault tolerance group, erasure code, group communication services, failure detector, group membership services
PDF Full Text Request
Related items