Launchpad Entry: https://launchpad.net/distros/ubuntu/+spec/reiser4
Created: 2006-06-13 by JackWasey
Packages affected: beagle kernels installer grub
Reiser4 is a fairly radical departure from Reiser3 and other filesystems. Benchmarks show some very average desktop performance in some use cases, but excellent performance in many areas. On-the-fly compression can increase bandwidth (and capacity). This filesystem should be available for Edgy, and its peculiar advantages could be exploited.
Reiser4 shows good performance in a range of use cases. It should be a choice, especially for server installs. It is not supported in the mainstream kernel, apparently due to arguments about coding style.
The Reiser4 equivalent of user_xattr is a system where meta-data is stored as sub-files, so a file is actually a folder and a file. (A strange concept, but attractive on consideration, also approved technically by Mr. Torvalds.)
This could be a barrier, or an opprtunity to drench Ubuntu with rich meta-data and make desktop usability take off. Each file format has its own meta-data structures. This is annoying, and there are frequently severe limitations on meta-data storage and incompatibility between versions (e.g. id3 tags). Under the Reiser4 paradigm (and possible with use of user_xattr: is this possible?) the user can attach meta-data to any file, obviating the need for each file format to continue to redesign the wheel. See second use case.
- Penelope wants to try out Reiser4 on a new server build. She heard the performance was excellent. She installs Edgy because it is cutting edge, and expects Reiser4 to be there.
- Horace has thousands of photos and mp3s. Using Edgy with Reiser4, the mp3 lyrics are stored as text files 'inside' the mp3 file/folders. His annotaions of pictures are stored in the same way. This replaces hidden .folders everywhere, and is much faster.
- Reiser4 as option at install time
- Beagle would need rewriting to use Reiser4 meta-data scheme, instead of user_xattr. This could probably be abstracted fairly easily.
- See how meta-data can be integrated more closely in ubuntu's operation, particularly in search. Replacing extensive .hidden folders with resier4 type structures is a much neater and more efficient solution.
- Include Reiser4 patches in the Ubuntu kernel build
- Reiser4 tools are already in the repos.
Data preservation and migration
- SELinux + Reiser4 is a no-go due to their xattr implementation.
- Reiser4 is not yet upstream and is likely not to be for a while, at the earliest Reiser4 will be in 2.6.19 depending on code review.
- There are known, possibly unsolvable, deadlocks in the file-as-directory implementation.
- Grub needs support to boot from a Reiser4 partition, a patch is available
BoF agenda and discussion
- Due to the lack of upstream acceptance currently this comes down to whether or not Edgy will be able to ship a kernel with support and Reiser4 making it upstream in time to allow Ubuntu plenty of time to test and implement Reiser4 support. Therefore this is likely to be an Edgy+1 item.
- I did some leg work and talked to Hans Reiser and Nate Diller, I managed to get Namesys to provide a Reiser4 plugin to provide the "legacy" xattr interface so that SELinux, beagle and every other feature that requires this will work on Reiser4. However this isn't prioritized highly compared to getting into the kernel and optimizing fsync so Hans estimates January, Nate was more interested in getting this quickly and offered to spend his sparetime implementing this and we have already seen the first iteration of the required work. I also know that both Hans Reiser and Andrew Morton are very interested in getting Resier4 support in an experimental form in a distribution to vet the code. If anyone wants to help me modify the Dapper installer I would love to work on this as a side project with the aim of getting into edgy+1 - David Nielsen
- I'd like to note that it's relatively easy to add reiser4 support to the kernel - it doesn't *break* anything by adding a filesystem. Mark it as experimental in the install process (or don't have it there at all). But support for it would be nice.