large RAID volume partition strategy

Ivan Voras ivoras at
Fri Aug 17 19:44:59 PDT 2007

Vivek Khera wrote:

> My only fear of this is that once this system is in production, that's
> pretty much it.  Maintenance windows are about 1 year apart, usually
> longer.

Others will have to comment about that. I have only one 7-CURRENT in
production (because of ZFS) and I had only one panic (in ZFS). But this
machine is not heavily utilized.

>> When you get there, you'll need to create 1 small RAID volume (<= 1 GB)
>> from which to boot (and probably use it for root) and use the rest for
>> whatever your choice is (doesn't really matter at this point). This is
>> because you can't have fdisk or bsdlabel partitions larger than 2 TB and
>> you can't boot from GPT.
> So what your saying here is that I can't do either my option 1 or 2, but
> have to create smaller volumes exported as individual drives?  Or just
> that I can't do 1, because my case 2 I could make three 2Tb fdisk slices
> which bsdlabel can then partition?

fdisk and bsdlabels both have a limit: because of the way they store the
data about the disk space they span, they can't store values that
reference space > 2 TB. In particular, every partition must start at an
offset <= 2 TB, and cannot be larger than 2 TB.

In theory, the maximum you could do in "normal" (read on) circumstances
is have a 4 TB volume partitioned into two 2 TB slices/partitions, and
that's it. In practice, you can't usefully partition drives larger than
2 TB at all.

There's one (also theoretical... I doubt anyone has tried it) way out of
it: simulate a device with larger sector size through gnop(8). For
example, if you use a 1 KB sector size you'll double all the limits (at
least for bsdlabel, I think fdisk is stuck in 512-byte sectors) to 4 TB,
for 4 KB sectors, to 16 TB). I know from experience that UFS can handle
sectors up to 8 KB, other file systems might not.

(ref: sys/disklabel.h:

        struct partition {              /* the partition table */
                u_int32_t p_size;       /* number of sectors in partition */
                u_int32_t p_offset;     /* starting sector */
                u_int32_t p_fsize;      /* filesystem basic fragment size */
                u_int8_t p_fstype;      /* filesystem type, see below */
                u_int8_t p_frag;        /* filesystem fragments per block */
                u_int16_t p_cpg;        /* filesystem cylinders per group */
        } d_partitions[MAXPARTITIONS];  /* actually may be more */

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 250 bytes
Desc: OpenPGP digital signature
Url :

More information about the freebsd-stable mailing list