Hi,

On Mon, Feb 27, 2012 at 12:28:00PM +0000, Alex Hornung wrote:
> 
> On 27/02/12 12:20, Zenny wrote:
> > I tried to create a RAID10 with natacontrol with 4 2TB HDDs, but it
> > only shows 2TB (1718306MB) size of ar0 created instead of 4TB.
> 
> In principle there is no such limit that I'm aware of, apart from the
> MBR partition size limit. It all depends where you are seeing those 2
> TB. If it's a partition size, try using GPT.

Nataraid itself doesn't seem to be limited to 2TB RAID volumes but some
of the on-disk metadata format it uses are.

By default, when no BIOS-created metadata is recognized, natacontrol
creates a volume using the Promise metadata format -- and this one has
an inherent limit of 32-bit disk sectors.

The Intel MatrixRAID format moves this limit to 64-bit sectors, way
beyond the 2TB barrier.

The attached patch changes nataraid to use it by default instead of the
Promise format. It _could_ allow the creation of > 2TB RAID volumes on
unrecognized controllers.

-- 
Francois Tigeot
diff --git a/sys/dev/disk/nata/ata-raid.c b/sys/dev/disk/nata/ata-raid.c
index 8438614..505a912 100644
--- a/sys/dev/disk/nata/ata-raid.c
+++ b/sys/dev/disk/nata/ata-raid.c
@@ -1105,11 +1105,11 @@ ata_raid_create(struct ata_ioc_raid_config *config)
                 * metadata format from the disks (if we support it).
                 */
                kprintf("WARNING!! - not able to determine metadata format\n"
-                      "WARNING!! - Using FreeBSD PseudoRAID metadata\n"
+                      "WARNING!! - Using Intel PseudoRAID metadata\n"
                       "If that is not what you want, use the BIOS to "
                       "create the array\n");
-               ctlr = AR_F_FREEBSD_RAID;
-               rdp->disks[disk].sectors = PROMISE_LBA(rdp->disks[disk].dev);
+               ctlr = AR_F_INTEL_RAID;
+               rdp->disks[disk].sectors = INTEL_LBA(rdp->disks[disk].dev);
                break;
            }
 

Reply via email to