Updated: 2013-01-28
Created: 2012-08-12
This section is about known hints and issues with various aspects of common filesystems. They can be just inconveniences or limitations or severe performance problems.
Version independent hints:
raid6 resync (like raid5) is optimised for an array the is already in sync. It reads everything and checks the P and Q blocks. When it finds P or Q that are wrong, it calculates the correct value and goes back to write it out.
On a fresh drive, this will involve lots of writing which means seeking back to write something. With a larger stripe_cache, the writes can presumably be done in larger slabs so there are fewer seeks.
You might get a better result by creating the array with two missing devices and two spares. It will then read the good devices completely linearly, and write the spares completely linearly and so should get full hardware speed with normal stripe_cache size.
For raid5, mdadm makes this arrangement automatically. It doesn't for raid6.
Version dependent hints:
In Linux kernels prior to version 2.6.28 there were two distinctly different types of md devices that could be created: one that could be partitioned using standard partitioning tools and one that could not. Since 2.6.28 that distinction is no longer relevant as both type of devices can be partitioned.