After a year-long hiatus in development
LizardFS
To ensure fault tolerance, data is divided into replicas, which are distributed over different nodes with redundancy (several copies are placed on different nodes). In case of failure of nodes or drives, the system continues to work without loss of information and automatically redistributes data taking into account the remaining nodes. To expand the storage, it is enough to connect new nodes to it without stopping work for maintenance (the system itself replicates part of the data to new servers and balances the storage taking into account new servers). You can do the same to reduce the size of the cluster - you can simply turn off the obsolete equipment that is being decommissioned.
Data and metadata are stored separately. For operation, it is recommended to install two metadata servers operating in master-slave mode, as well as at least two data storage servers (chunkserver). Additionally, log servers can be used to back up metadata, which store information about changes in metadata and allow you to restore work in case of damage to all existing metadata servers. Each file is divided into blocks (chunk), up to 64 MB in size. Blocks are distributed among storage servers in accordance with the selected replication mode: standard (explicit definition of the number of copies to be placed on different nodes, including in relation to individual directories - for important data, the number of copies can be increased, and for non-essential data, reduced), XOR (RAID5 ) and EC (RAID6).
Storage can scale up to petabyte sizes. Of the areas of application, archiving, storage of virtual machine images, multimedia data, backups, use as DRC (Disaster Recovery Center) and as storage in high-performance computing clusters are mentioned. LizardFS provides a very high read speed for files of any size, and when writing, it shows good performance when writing entire large and medium files, when there is no constant modification, intensive work with open files and one-time operations with a bunch of small files.
Among the features of the file system, one can also note the support for snapshots that reflect the state of files at a certain time, and the built-in implementation of the "recycle bin" (files are not deleted immediately and are available for recovery for some time). Access to a partition can be restricted by IP address or password (similar to NFS). There are quota and QoS mechanisms to limit the size and bandwidth for certain categories of users. It is possible to create geographically distributed storages, the segments of which are located in different data centers.
The LizardFS project was founded in 2013 as a fork of
The release of LizardFS 3.13.0 is scheduled for release at the end of December. The main innovation of LizardFS 3.13 is the use of a consensus algorithm to ensure fault tolerance (switching master servers in case of failure).
Among other changes: a new client based on the FUSE3 subsystem, solving problems with error correction, the nfs-ganesha plugin was rewritten in the C language. The 3.13.0-rc2 update fixes several critical bugs that made previous test releases of the 3.13 branch unusable (the fixes for the 3.12 branch have not yet been published, and the upgrade from 3.12 to 3.13 still results in a complete loss of data).
In 2020, work will focus on developing
Full support for write versioning will be added to the LizardFS client, which will improve the reliability of failover, solve problems that arise when different clients access the same data, and allow for significant performance improvements. The client will be transferred to its own network subsystem running in user space. The first working prototype of LizardFS based on Agama is planned to be ready in the second quarter of 2020. At the same time, they promise to implement tools for integrating LizardFS with the Kubernetes platform.
Source: opennet.ru