Re: Write intent bitmaps

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Leslie Rhorer (lrhorer@xxxxxxxxxxx) wrote on 7 June 2009 21:10:
 >1. The write-intent bitmap seems to be rather similar to a file system
 >journal.  Are there any features of the bitmaps which distinguish them from
 >a journal, other than the fact they operate at the RAID layer, of course,
 >instead of the filesystem layer?

The bitmap doesn't have the info to be written, it's just a bit for
the whole region. The FS journal has the [journaled part of the] info,
which can be fully recovered later if necessary. Don't forget that
raid doesn't protect against unclean shutdowns; if the array is taken
down during a write, some disks may have the new version of the stripe
and others not. When it's resynced the parity will be recalculated
from what's on all disks, that is a mix of new and old versions of the
stripes. If later a disk fails before the blocks are re-written the
not-the-one-you-want parity will be used, and you'll have corruption.

 >2. On a RAID5 or RAID6 array, how much of a performance hit might I expect?

Depends on the chunk and where the bitmap is. With an internal one the
default chunk will cause a BIG hit. Fortunately it's very easy to try
different settings with the array live, so you can easily revert when
the world suddenly freezes around you... Our arrays are rather busy,
so performance is important and I gave up on it. If you can put it on
other disks I suppose it's possible to find a chunk size compatible
with performance.

 >3. The threads I have read all speak about the benefits during a power
 >failure.  Power failures are not the only source of dirty shutdowns,
 >however.  Are there any benefits to a bitmap for recovering a failed array
 >or a degraded array?  A resync can take more than a day, and the array is
 >vulnerable during that time.

That's the benefit and the purpose of the bitmap. Besides being
vulnerable during the resync, you also have a BIG performance hit if
your array is busy (or the resync takes forever), so it's worth trying.

 >4. How much space will be required for the bitmap on an external drive?

You decide it with the chunk size.

 >5. What happens if the bitmap is lost or the external drive fills up?

No idea.

 >6. Would it be best to allocate a small separate partition entirely for the
 >bitmap?

For performance what's important is to have the bitmap and array on
different disks. Having a filesystem exclusively for the bitmap might
avoid fragmentation but I suspect this is negligible in practice.
If the bitmap disks are being used for other things you'll have to
wait for the heads to come back, which may impact performance
noticeably.

 >If so, would ext2 probably be the best choice?

That's what the man page says. I find it strange since if it's a file
the filesystem shouldn't matter. Neil?

 >How does one guarantee the partition and filesystem will be
 >available prior to the assembly of the RAID array during boot?

Your boot process must guarantee it. If the bitmap is internal you get
it automatically from the kernel.
--
To unsubscribe from this list: send the line "unsubscribe linux-raid" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux RAID Wiki]     [ATA RAID]     [Linux SCSI Target Infrastructure]     [Linux Block]     [Linux IDE]     [Linux SCSI]     [Linux Hams]     [Device Mapper]     [Device Mapper Cryptographics]     [Kernel]     [Linux Admin]     [Linux Net]     [GFS]     [RPM]     [git]     [Yosemite Forum]


  Powered by Linux