DragonFly users List (threaded) for 2012-02
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]
Re: Is there a size limit of natacontrol?
--oyUTqETQ0mS9luUI
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
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
--oyUTqETQ0mS9luUI
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="patch-ataraid_default_intel.txt"
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;
}
--oyUTqETQ0mS9luUI--
[
Date Prev][
Date Next]
[
Thread Prev][
Thread Next]
[
Date Index][
Thread Index]