All the Q and A will be in this first post.
_______________________________________________________________________
Q1: How to start using Reiser4?
You need:
1. kernel (>= 4.5.3) patched with latest patches from http://sourceforge.net/projects/reiser4 ... linux-4.x/
2. reiser4.progs-1.1.0 or higher http://sourceforge.net/projects/reiser4 ... er4-utils/
For HDDs:
3. Create reiser4 partition with:
Reiser4 with cryptocompression:
Code: Select all
mkfs.reiser4 /dev/xxxCode: Select all
mkfs.reiser4 -o create=reg40 /dev/xxx4. Mount the new partition with these mount options:
Code: Select all
noatime3. Create reiser4 partition with:
Reiser4 with cryptocompression:
Code: Select all
mkfs.reiser4 -d /dev/xxxCode: Select all
mkfs.reiser4 -d -o create=reg40 /dev/xxx4. Mount the new partition with these mount options (txmod=wa for COW, discard for Trim support):
Code: Select all
noatime,txmod=wa,discard"du (1) statistics does not reflect (online) real space usage, as
i_bytes and i_blocks are unsupported by cryptcompress plugin
(supporting those fields "on-line" leads to performance drop).
However, their proper values can be set "offline" by reiser4.fsck." -Edward Shiskin
http://marc.info/?l=reiserfs-devel&m=11 ... 826615&w=2
OBSOLETE Q3: I get lots of errors about wrong size when fscking cryptocompress R4 partition. Am I in trouble?
No you're not. These are false positives when checking cryptocompress data. That's proper values mentioned in Q2. As of version of reiser4.progs-1.0.7 these issues are fixed. These warnings can be suppressed with -s.
OBSOLETE Q4: I'm having trouble with OpenRC and Reiser4, how can I fix it?
Set fsck_args="-a" in /etc/conf.d/fsck
Shouldn't be a problem with recent OpenRC
OBSOLETE Q5: Can I use loopback files on reiser4?
You can on plain Reiser4. On Reiser4+cryptocompress you have to create loopback file this way:
Code: Select all
dd if=incompressible_file of=loopfile bs=65537 count=1http://marc.info/?l=reiserfs-devel&m=12 ... 103900&w=2
This item should be fixed in recent kernels.
Q6: What are the R4 strong points?
Usage with small files, low fragmentation especially with cryptocompression, efficient space usage (usual / without /home is 40% smaller with R4+cc than with plain ext3), robustness wrt. power failures, very fast for certain workloads (eg. for /usr/portage).
When there are SSDs and HDDs in one system R4 can be optimized for both, to use COW allocation on SSD and Journal (or Hybrid-default) on HDD for maximum performance.
Q7: What are R4 weak points?
Currently some large multimedia files are falsely considered as compressable.
Loopback support still has some rough edges.
Performance with atime can be low on cryptocompressed partitions, and deletion of large files on cryptocompressed partitions can take more time than on plain partitions. This is a trade off for better overall performance.
Q8: Where can I find some benchmarks?
http://marc.info/?l=reiserfs-devel&m=12 ... 609180&w=2
http://openbenchmarking.org/result/1104 ... -110329637
Q9: How would I know what's the right fs for me?
Every fs has its strong points, so try to use those which suits you most. Test them not with some synthetic benchmarks, but with your usage patterns. Comparative tests have to be under same conditions (same partition etc.).
Q10: I've formated my / with r4 and now can't boot. What should I do?
You'll have to use a separate /boot partition (50-100MB ext2).
Q11: When will Reiser4 be included in mainline Linux kernel?
Ask $DEITY.
http://www.phoronix.com/scan.php?page=n ... &px=OTA2MwI don't see any technical obstacles for Reiser4 inclusion. There are only organisation ones: I don't think it will be accepted without support from some vendor.
Thanks,
Edward.
Q12: Where can I find more informations?
There's a mailing list reiserfs-devel@vger.kernel.org with archives and IRC channel #reiser4 at irc.oftc.net
There's a wiki too at http://reiser4.wiki.kernel.org/index.php/Main_Page
Q13: Where can I find a LiveCD with Reiser4 support?
www.sysresccd.org supports Reiser4 from version 3.1.1: http://sourceforge.net/projects/systemr ... esccd-x86/
www.elivecd.org supports Reiser4 from version 2.4.0: http://www.elivecd.org/download/beta/
Q14: Any bugs that I should know of?
All of these bugs are reported as fixed as of reiser4-for-3.7 http://marc.info/?l=reiserfs-devel&m=13 ... 421045&w=2
There is a bug in patches for kernels 3.17 to 4.5 because kernel dropped barriers support but R4 still relied on it. If you use reiser4 patch <4.5.3 add "no_write_barrier" mount option.
It is fixed as of reiser4-for-4.5.3.patch
Q15: Are there any tuning options?
There is a dedicated Reiser4 tuning thread at http://forums.gentoo.org/viewtopic-t-707465.html
Q16: Why is there no patch for just released linux kernel?
VFS layer in linux kernel changes from time to time, and fixing the R4/VFS interaction is usually a nontrivial task because bugs can be easily introduced and because we like our data. All we can do is wait.
Q17: Does it support encryption?
http://marc.info/?l=reiserfs-devel&m=12 ... 120315&w=2Edward wrote:Actually it is implemented on a low level. Moreover,
long time ago I got a reiser4 partition transparently
compressed and ciphered by aes ecb. The problem
was that Linux didn't have a good key manager. Now
I believe that the situation is improved, so in order to
announce encryption we need:
1. a fast iv-generator stable to watermark attack for
cbc encryption mode;
2. to adjust any convenient key manager to perform
encryption per file/directory/volume.
I estimate the complexity of this task as 2 of 5.
Thanks,
Edward.
Q18: Are there any special options when using Reiser4 on a SSD? What about TRIM support?
It's advisable to not use Reiser4 compression with SSD controllers that compress data (sandforce ones) as you'll include overhead for compressing the data twice.Edward wrote:When formatting your SSD partition by mkfs.reiser4 use the option -d: it will issue discard request for the whole partition before creating reiser4 structure on it. This option is available in reiser4progs-1.0.9
As of reiser4-for-3.14.1.patch there is an option for different transaction model per fs so you can activate COW mode for your SSD partitions with a mount option: "txmod=wa"
http://forums.gentoo.org/viewtopic-t-986096.html
Also as of reiser4-for-3.16.2.patch reiser4 supports Trim feature http://en.wikipedia.org/wiki/Trim_%28computing%29 http://marc.info/?l=reiserfs-devel&m=13 ... 207357&w=2 which enable automatic discarding of deleted blocks with mount option:"discard". If you use controller/SSD drive <SATA3.1 you could induce a performance penalty on other FSes because Trim is slow on those but Reiser4 solves this problem by queuing discard requests together and by dispatching them at the end of queue..
http://forums.gentoo.org/viewtopic-t-990364.html
http://forums.gentoo.org/viewtopic-p-65 ... ml#6533722dusanc wrote:If you align your FS, use -noatime as you should do with any FS on SSD, thing is that good SSD controllers won't deteriorate easily over time (like Intel or sandforce ones). Not using your SSD for portage, tmp, or swap helps too![]()
Q19: I have very long mount times with my large Reiser4 partition. What should I do?
Use dont_load_bitmap mount option.
Q20: I need $FEATUREX. What should I do?+dont_load_bitmap
+ Don't load all bitmap blocks at mount time, it is useful for
+ machines with tiny RAM and large disks.
$FEATURE1=Encryption
Use LUKS
$FEATURE2=Snapshots
Use LVM or Rsnapshot
$FEATURE3=Subvolumes
WIP so use LVM
$FEATURE4=RAID
WIP so use MD RAID
Q21: Is there a Git repository?
https://github.com/edward6/reiser4
Q22: What do these mount options mean?
Active mount options can be shown with:
Code: Select all
cat /proc/mountstmgr.atom_max_age=N - Atoms older than N seconds will be forced to commit. N is decimal. Default=600s
tmgr.atom_min_size=N - In committing an atom to free dirty pages, force the atom less than N blocks in size to fuse with another one. Default=256blocks
tmgr.atom_max_flushers=N - limit of concurrent flushers for one atom. 0 means no limit. Default=1
tree.cbk_cache.nr_slots=N - Number of slots in the cbk cache.
flush.relocate_threshold=N - If flush finds more than FLUSH_RELOCATE_THRESHOLD adjacent dirty leaf-level blocks it will force them to be relocated.
flush.relocate_distance=N - If flush finds can find a block allocation closer than at most FLUSH_RELOCATE_DISTANCE from the preceder it will relocate to that position.
flush.written_threshold=N - If we have written this much or more blocks before encountering busy jnode in flush list - abort flushing hoping that next time we get called this jnode will be clean already, and we will save some seeks.
flush.scan_maxnodes=N - The maximum number of nodes to scan left on a level during flush.
optimal_io_size=N - The preferred IO size in bytes for programs to write to Reiser4.
32bittimes - turn on 32 bit times.
dont_load_bitmap - Don't load all bitmap blocks at mount time, it is useful for faster boot time.
atomic_write - disable transaction commits during write().
discard - enable issuing of discard requests, useful for SSDs.
dont_punch_holes - disable hole punching at flush time
onerror= - what to do in case of error, available values remount-ro, panic, NULL. Default=NULL
txmod= - which transaction model [journal (for HDDs), cow (for SSDs), hybrid (default)] is used to commit transactions.
_____________________________________________________________________
I hope that this will help people and I would be very grateful for every addition/correction to this FAQ.
Have fun
Dushan
Edit:
25Dec2016: Updated Q20 and added Q22.
25Sep2016: Added Q21.
29May2016: Updated Q1, added info about removed barriers bug to Q14.
10Dec2014: Rearranged Q1, Q3-Q5 now obsolete, added more info to Q6, updated Q13 with new liveCD, added "discard" mount option to Q18, added Q20.
30Oct2014: Added Q19.
25Oct2014: Q18: R4 now supports trim.
06May2014: Q18: Added info about new features for SSD drives (COW and Trim support per volume).
01Dec2013: Q18:Added comment about not using compression with SSD controllers that compress data (sandforce).
17Jan2013: Updated Q1 and Q14 as there are no more open bug reports.
08Dec2012: Q13: R4 support is back in SystemRescueCD. Q14: Added some current bug info.
10Sep2012: Updated links in Q1 and Q13, and updated Q14.
15Nov2011: Updated to new location of files since kernel.org was compromised. Updated Q14.
11Jun2011: Updated Q11.
30May2011: Added new bug info to Q14.
04Apr2011: Added more benchmarks and updated Q10 (there's no grub support for R4).
08Feb2011: Updated Q14.
04Jan2011: Added more info to Q18.
30Dec2010: Updated Q1, Q7, Q14, added Q18.
13Jan2010: Added Q17, bugs info to Q14, wiki link to Q12, and inclusion info to Q11.
11Jan2010: Added Q16.
25Jul2009: Added info about hitchhiker sources.
07Apr2009: Added info about GCC build bug, and about tuning thread.
27Feb2009: Added info about reiser4.progs-1.0.7, and brought some issues up to date.
08Sep2008: Added minimum kernel version to use and location of R4 LiveCD, thanks to gentree and neuron.





