NetBSD-Users archive

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

raidframe cooldown parameter out of range?



I have a box with 2 disks in RAID1.  I probably set it up in 2006 under
NetBSD 3, but I don't remember clearly.  I just updated to netbsd-5
(from netbsd-5 last December or so) and on boot got:

  raid0: cooldown 218828043 out of range

and there was a bunch of parity rewriting, but not the whole disk.   I
have swapoff=YES and have not had parity rewriting in general.

So I figured that the place that has the cooldown parameter was never
intialized, and did:

  raidctl -M set 8 40000 0 raid0

I now see

  $ raidctl -m raid0
  raid0: parity map enabled with 4096 regions of 93MB
  raid0: regions marked clean after 8 intervals of 40.000s
  raid0: write/sync/clean counters 386/5/4
  raid0: 28 dirty regions
  raid0: parity map will remain enabled on next configure

which seems reasonable, but it matches what was before.

So, I wonder if the code that objects to 218828043 should assume 8 if
the value is bad, rather than exiting?  Specifically in
rf_paritymap_set_params(), it seems like parameters should be validated
and objected to when writing, but when reading from disk we should make
the most of a messy situation.

Also, I don't see any guidance in raidctl(8) for setting cooldown and
tickms.  It seems the answer is 8 and 40000, but this doesn't make sense
to me.  Is it to avoid rewriting the parity map, figuring that redoing
28/4096 of the disk at boot isn't bad, especially since if the system is
shut down cleanly no rewriting is necessary?  So it really means a
region is marked clean after 320s of not being written to?

Attachment: pgpQKeDvFTkbO.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index