tech-userlevel archive

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

Re: disklabel problems on 3TB disc



>> Back some years ago, I had occasion to (for work) set up a RAID of
>> something like six or seven TB.  The individual drives were well
>> under the 2T limit, but even so I had some 32-bit bugs to fix.

> support for >2TB raidframe was not implemented until this comment:

> date: 2010/11/01 02:35:25;  author: mrg;  state: Exp;  lines: +19 -21
> add support for >2TB raid devices.

> which was later pulled upto netbsd-5.  before this, you could not
> create or use rf devices larger than 2TB, regardless of the size of
> the individual components.

Perhaps not, but it was pretty close.  It took only a few fixes.

I did the first version of this under 2.x, but I no longer have that
tree (or, if I do, I don't know where).  Looking at my 4.0.1 tree, I
see only these changesets touching sys/dev/raidframe:

* aec5aaa Bugfix: when clearing diskwatch on a raid `disk', use the correct 
value for `none set'.
* 096b537 Add diskwatch support to raidframe pseudo-disks.
* 5ba6878 Autoconfiguration rework in raidframe.
* 4d7b7d3 A few >32-bit fixes in raidframe.
* 6174918 Handle shutdown during reconstruction/rebuild better.
* 20a3038 Import newer raidframe code.

The first two are not relevant to this discussion; they're entirely
diskwatch-related.  Taking the other four in chronological order,

* 20a3038 Import newer raidframe code.

This moved five files (rf_reconmap.c, rf_reconmap.h, rf_reconstruct.c,
rf_reconstruct.h, and rf_revent.c) to 2008-05-25 versions (I can give
CVS version numbers, but don't see much point).  Looking at the diffs,
none of them look directly related to 32-bit issues.

* 6174918 Handle shutdown during reconstruction/rebuild better.

This is not 32-bit related.

* 4d7b7d3 A few >32-bit fixes in raidframe.

This is most of the 32-bit stuff.  There are only four hunks in the
diff, all applying to rf_netbsdkintf.c.  Three of them are writing
100ULL instead of 100 when computing percentages; the fourth is

-               if (lp->d_secperunit != rs->sc_size)
+               if ((long)lp->d_secperunit != (long)rs->sc_size)

* 5ba6878 Autoconfiguration rework in raidframe.

A quick skim here makes me think none of these are related to 32-bit
issues either.

The resulting 4.0.1 tree does indeed work for a RAID 5 that's about 7T
or so.  Of course, the filesystem is on the d partition of the
resulting RAID, since I didn't do anything to deal with the "disklabel
on >2T disk" issue.  (Actually, it's a RAID 15 - a RAID 5 whose members
are RAID 1s.)  I can supply full diffs if desired, or anyone with git
installed is welcome to clone the repo and look at the aforementioned
changesets. (For those interested, it's at
git://git.rodents-montreal.org/Mouse/netbsd-fork/4.0.1/src.)

It's possible there were other fixes required elsewhere in the tree,
but I don't think so.

/~\ The ASCII                             Mouse
\ / Ribbon Campaign
 X  Against HTML                mouse%rodents-montreal.org@localhost
/ \ Email!           7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B


Home | Main Index | Thread Index | Old Index