Reiser5 file system available

Available for testing, a Reiser5 file system with support for logical volumes on the local machine. The main innovation is parallel scaling (scaling out), which is carried out not at the block level, but by means of the file system.

As an advantage of this approach, the absence of disadvantages inherent in FS + RAID / LVM bundles and non-parallel file systems (ZFS, Btrfs), such as the problem of free space, performance subsidence when the volume is filled over 70%, outdated logical volume layout algorithms (RAID / LVM), not allowing efficient distribution of data across a logical volume. In a parallel FS, before adding a device to a logical volume, it must be formatted using the standard mkfs utility.

Reiser5 uses an O(1) free block allocator. The maximum cost of any free block search operation is independent of the size of the logical volume. It is possible to simply and efficiently arrange a logical volume from block devices of different sizes and throughputs. The distribution of data among such devices occurs with the help of new algorithms (the so-called "fiber-striping") proposed by the Russian mathematician and programmer Eduard Shishkin.

The portion of I / O requests directed to each device is equal to its relative capacity, assigned by the user, so that the logical volume is filled with data "evenly" and "fairly". At the same time, smaller block devices get fewer blocks for storage, and devices with lower bandwidth do not become a β€œbottleneck” (as happens, for example, in RAID arrays).

Adding a device to a volume and removing a device from a volume is accompanied by a rebalance that preserves the β€œfairness” of the distribution. In this case, the portion of migrated data is also equal to the relative capacity of the added (removed) device. The speed of migration of unfragmented data is close to the speed of writing to disk. It is possible to simultaneously service all block devices included in the logical volume, using an individual approach to each of them (defragmenting for HDD, issuing Discard requests for SSD, etc.). Free space on a logical volume is monitored using the standard df(1) utility. In addition, the user is given the ability to monitor the free space on each component device of the logical volume.

All operations with logical volumes (adding, deleting devices, etc.) are atomic and implemented using standard transaction tools in Reiser4. The correct "deployment" of the volume after an interrupted such operation is regulated by the instructions. At the moment Reiser5 does not yet have off-line (unmounted) volume management tools, so users are encouraged to store and update their logical volume configurations for the time being. It is easy to prepare such a configuration for a mounted volume using the logical volume utility, which is part of the reiser4progs package.

Planned:

  • Distribution of metadata across multiple subvolumes;
  • Checking / restoring logical volumes with the fsck utility (by upgrading its old version);
  • User management of distribution and transparent data migration, which is of great importance for HPC applications (Burst Buffers);
  • Data and metadata checksums;
  • 3D-snapshots (snapshots) of logical volumes with the ability to roll back not only regular file operations, but also operations on volumes (such as adding and removing devices);
  • Global (networking) volumes that aggregate devices on different machines.

Source: opennet.ru

Add a comment